ferret
fe
ferret | fe | |
---|---|---|
8 | 7 | |
1,065 | 1,286 | |
- | - | |
0.0 | 0.0 | |
almost 2 years ago | 8 months ago | |
Makefile | C | |
BSD 2-clause "Simplified" License | MIT License |
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.
ferret
- How to Write a (Lisp) Interpreter (In Python)
-
Ferret: A functional, lazy language for realtime embedded control systems
Seems like there has been no development since 2020 - https://github.com/nakkaya/ferret
-
Literate programming: Knuth is doing it wrong
The whole of ferret's source code is in a single org-mode file, following the literate programming style: https://github.com/nakkaya/ferret/blob/master/ferret.org
- Clojure – Differences with Other Lisps
-
Learning Clojure made me return back to C/C++
fyi there's some middle ground via ferret if you want to mix the two in the future. I think janet lang is more full featured, borrowing ideas from clojure while targeting simple embedding alongside c.
-
uLisp
Another commenter already mentioned Gambit Scheme. That provides for inline C and therefore very easy interop with external libraries. It still has a runtime and GC though - those might pose a problem depending on your platform and task.
Ferret (https://github.com/nakkaya/ferret) and Carp (https://github.com/carp-lang/Carp) are both Lisp-like low level languages. Both seem to be fairly experimental in nature though.
> anything but C
Taking you literally, Rust and D can both compile for bare metal. D in particular has a "Better C" subset. (https://dlang.org/spec/betterc.html)
In the same vein, Terra is a C like language (manual memory management) that you metaprogram with Lua. (https://github.com/terralang/terra)
Taking you very literally, Forth is also an option.
-
Writing a whole program in Org Mode
Impressive. Wonder how the performance in Emacs will be with a file this big... org source file
fe
-
Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
This is incredible. I'll be tinkering with this for a while, guaranteed. As the advantages of combining Lisp and Forth in this way are slowly revealed to me it's like unlocking parts of my brain to interact with each other that never have done before.
Pretentiousness on my part aside, this is a pretty mind-blowing concept. The interpreter being in less than 1000 lines of (comprehensible) C is all the more commendable (most of these minimal languages turn out to be some monolithic Rust thing or similar, which kinda defeats the entire purpose imo).
Excited to take a closer look at the source to see how the various data structures etc. are laid out in memory. I won't be able to resist making comparisons to my current/other favourite mini-language 'fe' (https://github.com/rxi/fe), a sub-1000-line Lisp also written in C. If you haven't seen that one I'd definitely recommend checking it out.
Thank you for putting this online. Happy hacking!
- How to Write a (Lisp) Interpreter (In Python)
-
fe: A tiny, embeddable language implemented in ANSI C
- Simple and easy to use C API
[1] https://github.com/rxi/fe/blob/master/doc/impl.md
- Fe: A tiny, embeddable language implemented in ANSI C
-
uLisp
Very cool! Quite similar to fe [1], a tiny, embeddable Lisp by the magnificent rxi. Seriously, if you like games and gorgeous C and Lua code, check out his projects and the games on itch.io!
[1] https://github.com/rxi/fe
What are some alternatives?
janet - A dynamic language and bytecode vm
ecl
ulisp - A version of the Lisp programming language for ATmega-based Arduino boards.
Lua-RTOS-ESP32 - Lua RTOS for ESP32
Carp - A statically typed lisp, without a GC, for real-time applications.
abuse - Abuse (1995) by Crack dot Com
esprit - ClojureScript on the ESP32 using Espruino
etaoin - Pure Clojure Webdriver protocol implementation
terra - Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
Fennel - Lua Lisp Language
llvm-project - Fork of LLVM with Xtensa specific patches. To be upstreamed.