lHasClosureSym & lGetClosureSym: turn recursive calls into loops
Remove unnecessary null check in lValFree
Added missing exit(200) to exception handler
A Lisp inspired language for games and other latency sensitive applications. Development started in order to give WolkenWelten a scripting runtime.
Mostly because I needed the following for WolkenWelten:
Since the engine is written in C this needs to be convenient and efficient.
This might require some effort from the programmer, but it should be possible to write very fast code for the parts where it actually matters. Because of this a bunch of decisions were made:
While dynamic typing can be fast, it is much harder to pull off, the much simpler solution is to put that burden on the programmer. Although Nujel will default to an any/boxed type.
As with dynamic typing, it is just much easier to support fast for-loops than it is to make map/reduce fast.
Windows/ARM/WASM need to be supported perfectly, requiring x86/Linux would exclude too many users.
Nujel should only require Make and a somewhat modern C compiler as a build environement, this makes it much easier to port to various platforms, since they probably already have a great C compiler.
This mostly means macros/runtime code generation, enabling DSLs which I would love to use in all kinds of areas of WolkeWelten (Animal Behaviour/WorldGen/UI)
Modding for WolkenWelten should be as open and inclusive as possible, this means spending a lot of time and effort on polishing documentation, writing tutorials, improving error handling/messages and building a welcoming and supportive community.
You can easily start experimenting with Nujel right in your browser by using a WASM release.
Master | Develop | |
---|---|---|
CI |
Operating System | CI Status |
---|---|
Arch Linux | |
Arch Linux (clang) | |
Arch Linux (tcc-git) | |
Alpine Linux | |
FreeBSD | |
NetBSD | |
OpenBSD | |
Debian Sid / ARM64 |