A little surprised to not see any games using Janet- since it seems to be both made for gaming and has a surprising number of ‘batteries included’ like a web server and graphics. Then again, I’ve only stumbled upon it pretty recently myself. From my minor hacking with it, it’s def worth a peek in the Lisp/games arena.
If you like CL macros with first class environments, you will probably like s7.
It's also dead easy to use in WASM, which I am doing for a music pedagogy project. It's using the icing approach, but I would say the cake is 3/4 icing. Notably, it was not difficult to make generic functions for calling JS functions from Scheme and vice versa, which has made things very smooth. A ganache perhaps. :-)
Ultimately we switched to Fennel as a more pragmatic Lisp for mobile. AFAIK we were alone using s7 on mobile whereas Lua especially is a common mobile extension. Partly also this reflected the state of r7rs Scheme compatibility. We were running Guile on the desktop for development while shipping s7 and subtle incompatibilities would bite us regularly (a fun one was parameter evaluation order).
Thumbs up to both s7 and fennel for their great projects and community.
Where do you work (if it is not a secret)?
i don't wanna spoil what it's all about, but i ensure you it's a topic (and institute!) worth diving into. i poured 10h+ just reading the blog and all the related links and projects :)
Btw any icing with sdl I wonder.
And even the "untagged memory" bit might not hold; with things like CHERI, a LispM style architecture is due for a major comeback.
Why? Well, the pdp-11, besides being the unix protoplasm, is conceptually well-designed. In the same way we tend to write routines that 'fit on a screen', the pdp-11's small directly addressable space encourages not-very-big modules: it encourages modularity.
Is it inadequate for today? Sure. Especially painful for Big Data. But, conceptually -- there's a reason the pdp-11 was so successful, and continues to exist vestigially.
> "Rewrite it in Rust? No way! Rewrite it in Lisp!“
> This was not a problem on earlier CPUs because all memory was the same with similar access time.
That's not true. Many early systems had small RAM sizes (example: a DEC VAX 11/780 had a few Megabytes and often served dozens of users) and 10 (or more) times larger slow virtual memory.
Lisp systems then tried to deal with that with the first generational garbage collectors, often also compacting (related objects stayed near in memory). Ephemeral GCs watched for changed memory in RAM.
Since the 1980's that modern Lisps support all common data structures.
I'm comfortable with Clojure, uLisp and Common Lisp...but I feel like Guile Scheme has cleared away much of CL's cruft, and I'd love to have a compiled lisp at my disposal, specially as Guix and Shepard take off.
Are there any good resources for learning how to use Guile Scheme effectively? Besides Little Lisper and SICP...
one of my absolute favorite games of my childhood :')
I mean it is valid to use it for the fun of it, just wondering. Lua is already more or less a Scheme clothed in a more conventional syntax. On top of that the fact that Lua already has excellent metaprogramming capabilities kind of negates the typical advantage of using a lisp-style syntax. So what is Fennel bringing to the table?
There were some useful references in this thread: https://janet.zulipchat.com/#narrow/stream/409517-help/topic... and maybe I can try them later.
As it was, even with a proven production path, I still barely got something playable on time... ("Playable" is perhaps generous.)
Dunnet was originally written by Ron Schnell in 1982, as a Maclisp program running under TOPS-20. [1] In 1992, he ported it to Emacs Lisp; however, the Emacs Lisp version is more than just a simple port of the original, it extends the game with new rooms/items/puzzles, but also removes MIT-centric content–e.g. the "endgame" computer at the end of the game was originally named MIT-SALLY, was located at MIT, and was accessed via Chaosnet–the GNU Emacs version removes all those (dated) MIT references–although the GNU Emacs version contains (obviously intentionally) equally dated (albeit more widely recognisable) content such as a VAX 11/780
[0] https://en.wikipedia.org/wiki/Dunnet_(video_game)
[1] Original is here: https://github.com/Quogic/DunnetPredecessor/blob/master/foo....
I found the CPU, the Key (guarded by the bear) and made it into the house. Was a fun diversion I guess I need to play it more seriously sometime.