q3vm
janet
q3vm | janet | |
---|---|---|
7 | 79 | |
799 | 3,301 | |
- | 0.4% | |
3.6 | 9.4 | |
2 months ago | 7 days ago | |
C | C | |
GNU General Public License v3.0 only | 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.
q3vm
-
QCVM - QuakeC Virtual Machine written in C89
I am a big fan of Q3VM and have even used it in a couple of projects.
-
QCVM: Bite-sized QuakeC VM written in C
But it returned in Quake 3 the n?
https://github.com/jnz/q3vm
- Buying a permissive license for a Copyleft project
-
SHOULD A BEGINNER ATTEMPT A VIRTUAL MACHINE PROJECT?
You might want to check out Q3VM (A stripped down virtual machine from Quake III).
- Is it possible to dynamically execute C code from C++?
- Is there a Plan9 port for TCC?
-
Where can I find the source code of C language itself?
Finally, the compiler itself is the easy part, emitting x86/x86_64 instructions is where it starts to get very complex. For this reason, I really recommend Q3VM (https://github.com/jnz/q3vm). It is a single file VM (originally written for Quake III) which interprets fantasy but greatly simplified instructions from a slightly modified LCC compiler (also part of the project). This might be very useful to learn from.
janet
-
Scriptable Operating Systems with Lua [pdf]
Seems like a perfect use-case for Janet. (https://janet-lang.org/) A fast minimal VM like Lua, but even more extensible than Lua by being a "Lisp" with macro and C extension capabilities. Not a true Lisp, it's very pragmatic and performance-oriented. But it keeps the good stuff.
-
Ask HN: A Lisp with Cargo/NPM like build system?
You might be looking for: https://janet-lang.org/
It comes with a build tool `jpm` which installs dependencies globally by default, but you can have it be installed in your project folder as well.
-
Babashka: Fast native Clojure scripting runtime
I like Clojure, but I never had any good opportunities to use it other than for a few small hobby projects. It is unfortunate that it is so huge with tons of dependencies and no simpler native implementation. I started looking at various LISPs and Schemes to find something lighter to use instead and ended up settling for Janet that I think is Clojure-like enough to be comfortable to use, but in a small native binary with no dependencies and can be embedded in other native programs. I am sure for big, real, projects that Clojure makes more sense, but for my hobby projects and scripts I do not think I will install it again. I am still happy for the things I learned from learning Clojure. It was a real eye-opener for an old OO-programmer.
https://janet-lang.org/
- Janet Language
- Why Fennel?
- Embeddable Common Lisp 23.9.9
-
Sharpscript: Lisp for Scripting
One might also check out Janet for quick scripting tasks.
https://janet-lang.org
-
Red Programming Language
Thanks!
I thought about another multiplatform, homoiconic, highly compact language: https://janet-lang.org/ (takes 803 kb on my machine).
It has no types though.
-
Systems Programming with Racket
Racket is great, and if you like it you might find Rash interesting:
https://rash-lang.org/
Janet and Gerbil Scheme are also worth a look:
https://janet-lang.org/
https://cons.io/
-
how did you finally reach Lisp enlightenment?
Point here is that, for instance Janet language does not have cons / pair type but tuple (and so is lispoid, not lisp), but clearly this is sufficient for macros & hence seamless language construction: all you need is to be a lispoid although being a lisp gives another useful feature.
What are some alternatives?
wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)
Fennel - Lua Lisp Language
Wren - The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
get-started-with-clojure - Learn Clojure and Interactive Programming – Zero install
pocketlang - A lightweight, fast embeddable scripting language.
babashka - Native, fast starting Clojure interpreter for scripting
lcc - The lcc retargetable ANSI C compiler
scheme-for-max - Max/MSP external for scripting and live coding Max with s7 Scheme Lisp
Senegal - Senegal programming language
ferret - Ferret is a free software lisp implementation for real time embedded control systems.
QCVM - Bite-sized QuakeC VM written in C
kaboom.js - 💥 JavaScript game library