MicroHs
lone
MicroHs | lone | |
---|---|---|
2 | 7 | |
241 | 298 | |
- | 1.7% | |
9.9 | 9.7 | |
16 days ago | about 1 month ago | |
Haskell | C | |
GNU General Public License v3.0 or later | GNU Affero General Public License v3.0 |
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.
MicroHs
-
How to Write a (Lisp) Interpreter (In Python)
> expand into lambda calculus statement that could then be compiled down to different sets of combinators
This approach can be reasonably efficient for implementing Haskell, as shown in [1] and the much more concise [2].
[1] https://github.com/augustss/MicroHs
[2] https://crypto.stanford.edu/~blynn/compiler/
- MicroHs: Haskell Implemented with Combinators
lone
-
How to Write a (Lisp) Interpreter (In Python)
I made something somewhat close to that: a freestanding lisp. It targets the Linux kernel directly. No libc.
https://github.com/lone-lang/lone
-
Boehm Garbage Collector
> register scanning isn't portable
Certainly not but it wasn't particularly hard to implement either. I just wrote some inline assembly for every architecture. Here's my programming language's x86_64 and aarch64 implementations:
https://github.com/lone-lang/lone/blob/master/architecture/x...
https://github.com/lone-lang/lone/blob/master/architecture/a...
-
Show HN: Self-contained Linux apps in Lisp
Not too long ago, a project of mine was shared here on HN.
https://news.ycombinator.com/item?id=38126052
In that thread I wrote:
> I have this vision in my mind: embedding lone modules into sections of the lone ELF and shipping it out. Zero dependencies, self-contained.
I've been working on that since that day. Proud to say I've gotten it to work and thought I'd make it the subject of my first Show HN. Some free software projects gained features along the way too.
The link is to an article with a proper demonstration, technical details and what happened in the past few weeks.
The complete repository itself can be found here:
https://github.com/lone-lang/lone
I've completely reorganized it since the last thread. Would be very happy if you guys tried it out.
- A standalone zero-dependency Lisp for Linux
-
Decoded: GNU Coreutils
To test my programming language. It's a freestanding lisp interpreter that doesn't link to libc. I wrote the code that handles the environment variables and in order to test it I needed full control over the program's inputs including its environment. The env utility provides this control by emptying the environment and setting only the variables I specify, solving 90% of the problem. Only thing I still can't control is argv[0]. With this new feature upstreamed, my test suite will be complete.
Here's the code if you'd like to take a look:
https://github.com/lone-lang/lone#testing
https://github.com/lone-lang/lone/blob/master/scripts/test.b...
-
Writing Small CLI Programs in Common Lisp (2021)
> only to be confronted with the notorious 'incompatible glibc version error'. It's super annoying.
I started making my own freestanding Linux Lisp because of this exact issue. It's nowhere near as performant as something like SBCL but it's small and once compiled has no dependencies and will literally run on any Linux.
https://github.com/lone-lang/lone
I'm taking a break from this project but I plan to add a feature where I can put a Lisp script into the ELF itself so I can just copy it with the scripts included.
-
The 90s Developer Starter Pack
The kernel just puts the data contiguously on the stack. Obtaining pointers to them can seem somewhat magical if you're writing a nolibc program but I wouldn't call it horrible.
I implemented it for my programming language with some rather simple assembly code:
https://github.com/lone-lang/lone/blob/master/arch/x86_64.c#...
https://github.com/lone-lang/lone/blob/master/arch/aarch64.c...