Ark
minima
Our great sponsors
Ark | minima | |
---|---|---|
17 | 14 | |
548 | 46 | |
3.6% | - | |
8.4 | 0.0 | |
4 days ago | over 2 years ago | |
C++ | C | |
Mozilla Public License 2.0 | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Ark
-
Dealing with documentation
This results in two websites: - the documentation of the language on the "main" website, https://arkscript-lang.dev ; - the technical documentation (+ modules) on doxygen: https://arkscript-lang.dev/impl/
-
November 2022 monthly "What are you working on?" thread
1: https://github.com/ArkScript-lang/Ark 2: https://github.com/AFLplusplus/AFLplusplus
-
Making your project available through Homebrew
# Documentation: https://docs.brew.sh/Formula-Cookbook # https://rubydoc.brew.sh/Formula # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST! class ArkscriptAT330 < Formula desc "" homepage "" license "" head "https://github.com/ArkScript-lang/Ark.git" depends_on "cmake" => :build def install # ENV.deparallelize # if your formula fails when building in parallel system "cmake", "-S", ".", "-B", "build", *std_cmake_args system "cmake", "--build", "build" system "cmake", "--install", "build" end test do # `test do` will create, run in and delete a temporary directory. # # This test will fail and we won't accept that! For Homebrew/homebrew-core # this will need to be a test that verifies the functionality of the # software. Run the test with `brew test [email protected]`. Options passed # to `brew install` such as `--HEAD` also need to be provided to `brew test`. # # The installed folder is not in the path, so use the entire path to any # executables being tested: `system "#{bin}/program", "do", "something"`. system "false" end end
-
Understanding tail-call optimization
Lately, I've been working on optimizations for my language, ArkScript, and finally take some time to add tail-call optimization to my compiler.
-
Solving the stack problem
A nice and bigger example would be this one, a snake game: https://github.com/ArkScript-lang/Ark/blob/dev/examples/games/snake/snake.ark
- Contributed to some OSSs with pull-requests in this year too.
-
July 2021 monthly "What are you working on?" thread
Still working on ArkScript after releasing the 3.1.0, improving the standard library, adding modules, and working on performance improvements + adding parallel builtins soon!
- ArkScript 3.1.0 is here with macro and UTF-8 support
- ArkScript 3.1.0 is here with macros and UTF-8
-
GitHub actions are awesome
Until recently, when we wanted to create new releases for ArkScript, we had to build the language on all the system we support (currently Windows and Linux), build the modules (http, console, random, etc), test everything on each operating system, and then package the needed files and directory in ZIPs. We had to go to GitHub, create a new release, add the correct tag (and not mix it with the title as they are different things!), grep the latest changelog, and add our artifacts.
minima
-
Cannot Resolve a Conflicting Type Error
Currently, I'm trying to migrate a project from MSVC to GCC to target different platforms aside from Windows. Using this makefile, a error: conflicting types for for all the methods defined in builtins.c and builtins.h. I'm using macros to define the functions so I suspect that has something to do with it.
-
Trouble reproducing bug
Now to reproduce the bug, you have to run the contents of bug.txt. I ran it in REPL mode to see which specific line failed to execute (it’s the last line). Now inside one of the dependency files(the function sort_terms is where the bug occurred), I added the print statement to sorta approximate where it crashed.
-
Trouble Reproducing a Bug
The program that I am working on is an interpreter, Minima, and it’s compiled with MSVC. More specifically I’m working on a symbolic math library in Minima. The executable that crashed can be found here. Download all the files in the example folder with the executable, those mainly consist of the dependencies I was using.
-
Compiler Optimizations Without an AST
I did write an AST to expedite the development time since I had initially thought that ASTs were not necessary, especially considering the nature of my languages syntax. However a lot of complications have arisen from trying to implement compiler optimizations without an AST. I was wondering whether there are some low hanging compiler optimizations that don’t require an AST to implement.
-
Favorite Language and Why
Minima because I fucking wrote it. It’s OO, functional, supports lambdas and anon functions, and it’s way faster that Python.
-
July 2021 monthly "What are you working on?" thread
I’ve just finished writing Minima’s inheritance system. You can check out an example here . I’ve been trying to weed out all the bugs and make Minima super stable.
- Minima, an object-oriented scripting lang
-
Added inheritance to Minima
Minima now supports single-inheritance via the extend keyword. It resembles something akin to this example.
-
Composition vs Inheritance
From my observations, inheritance seems to be highly discourage among the programming community Although inheritance and polymorphism in general is a powerful tool when utilized properly, I’m unsure as to whether the addition of polymorphistic features to a programming language that I’m writing, is a sound idea.
What are some alternatives?
Peregrine - A blazing fast language for the blazing fast world(WIP)
boring-lang - A very boring programming language
hera - Hera: Ewasm virtual machine conforming to the EVMC API
Freeze-OS - An Operating System that runs on top of an interpreter.
fake-gcs-server - Google Cloud Storage emulator & testing library.
Yoakke - A collection of libraries for implementing compilers in .NET.
Feral - Feral programming language reference implementation
star - An experimental programming language that's made to be powerful, productive, and predictable
Cwerg - The best C-like language that can be implemented in 10kLOC.
zhetapi - A C++ ML and numerical analysis API, with an accompanying scripting language.
gravity - Gravity Programming Language