urn
glsp
Our great sponsors
urn | glsp | |
---|---|---|
6 | 8 | |
362 | 388 | |
- | - | |
0.0 | 3.6 | |
over 5 years ago | about 2 years ago | |
Common Lisp | Rust | |
BSD 3-clause "New" or "Revised" License | Apache License 2.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.
urn
-
Using other languages
There's many different languages that can compile to Lua: - TypeScript is probably the most well-known and most compatible language for Lua. The TypeScriptToLua compiler lets you compile TypeScript code into Lua with a mostly 1:1 conversion. You can use the @jackmacwindows/craftos-types and @jackmacwindows/cc-types NPM packages to add typing declarations for CraftOS APIs and modules. Alternatively, use my template repo for a more ready-to-go setup. - Haxe was built with compilation to Lua in mind, and so you can write code for it and have it run just fine in CC. There's some declarations for it available online, and I also have my own typing set for it (which I should really upload somewhere - DM me if you want it for now). - C# can also compile to Lua, but it's a bit tough to get working right in CC, as it has a huge default library and abuses the global table in a way that CC has trouble with. However, it's possible to use, and I've gotten it working in the past (unfortunately, I don't know how anymore). - Urn is a Lisp dialect that was built by two CC devs and was designed to run in CC. However, I wouldn't recommend it unless you're good with functional programming.
-
C-Lisp Implementations for microcontrollers?
Also, if the microcontroller you're working with is an ESP32 chip, you may be able to use use one of the lisp-to-Lua transpiled languages (urn or fennel) with something like Lua RTOS or NodeMCU. Not entirely sure how well this works in practice, but in theory it should be possible. Of the two, Fennel's probably more likely to behave well when used like this because it's more like a thin translation layer on top of Lua, but Urn's probably going to feel more comfortable to use because it feels like this weird mix of CL and Racket design.
-
Interesting or distinctive lisps?
Urn Lisp, A Lisp implementation on top of Lua: https://urn-lang.com
-
Trying Fennel for GTK apps and it's surprisingly good
For Lua-based lisps I kind of prefer Urn, which is more batteries-included and just feels better to me overall. Both are interesting though, if for no other reason, because Lua desperately needs macros in some form. :) Another interesting Lisp transpiled language is Amulet, which is an ML-style language somewhere between Haskell and OCaml in style. Something that's interesting about these Lua-based languages to me is they understand that Lua's an embeddable language and most of them have a way to generate Lua output that can be used wherever Lua's used, like in game modding
I don't know how much of reloading you need. I did something like that many moons ago. See here: https://github.com/SquidDev/urn/issues/12
-
Urn for CC?
Clone Urn: wget run https://gist.githubusercontent.com/SquidDev/e0f82765bfdefd48b0b15a5c06c0603b/raw/clone.lua https://github.com/SquidDev/urn.git (or similar)
glsp
-
Steel – An embedded scheme interpreter in Rust
3. Typed Racket
I almost used https://gamelisp.rs/ for a project but the nightly feature it needs broke and it's no longer maintained, glad to see something similar arise! You might want to consider adopting their choice of VecDeque as a list replacement, I think it makes a lot more sense than naive linked lists on modern machines.
-
Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.68]
Varied employment history has left me with great soft skills and a broad grab-bag of technical skills, mostly leaning towards high-performance systems programming. Major solo projects have included the scripting language GameLisp, a 2D game engine, and a novel computer vision library.
-
Interesting or distinctive lisps?
"Gamelisp is a scripting language for Rust game development." Feature list from the page: No garbage collection pauses (runs gc once per frame), Seamless Rust API, Memory-safe, Feature-rich ("Pattern‑matching, iterators, coroutines, macros..."), Easy entity scripting.
-
RoguelikeDev Does The Complete Roguelike Tutorial - Week 1
I'm using Rust to build a host program, and the actual game logic written in GameLisp on top of the bracket-lib. I only have superficial knowledge of Rust, 0 lisp experience, and never embedded a language before, so that's a lot to learn and implement at the same time.
-
RoguelikeDev Does The Complete Roguelike Tutorial Starting June 29th 2021
I'm not sure I'll go to the end of the 8 weeks, but I'll make that as fun/interesting as possible and (try to) use GameLisp!
- Practicality of embedding a lisp/scheme interpreter that is implemented as C library?
What are some alternatives?
Fennel - Lua Lisp Language
libtcod - A collection of tools and algorithms for developing traditional roguelikes. Such as field-of-view, pathfinding, and a tile-based terminal emulator.
LiveSplit - A sleek, highly customizable timer for speedrunners.
medley - The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
liz - Lisp-flavored general-purpose programming language (based on Zig)
cakelisp - Metaprogrammable, hot-reloadable, no-GC language for high perf programs (especially games), with seamless C/C++ interop
libtcod-vcpkg-template - A template for C++17 libtcod projects. This template uses Vcpkg to fetch dependencies.
flitter - A Livesplit-inspired speedrunning split timer for Linux/macOS terminal. Supports global hotkeys.
Penlight - A set of pure Lua libraries focusing on input data handling (such as reading configuration files), functional programming (such as map, reduce, placeholder expressions,etc), and OS path management. Much of the functionality is inspired by the Python standard libraries.
bracket-lib - The Roguelike Toolkit (RLTK), implemented for Rust.
hy - A dialect of Lisp that's embedded in Python
Yuescript - A Moonscript dialect compiles to Lua.