STklos
STklos Scheme (by egallesio)
LIPS
Scheme based powerful lisp interpreter in JavaScript (by LIPS-scheme)
STklos | LIPS | |
---|---|---|
7 | 39 | |
65 | 386 | |
- | 1.8% | |
9.5 | 9.9 | |
8 days ago | 7 days ago | |
C | JavaScript | |
GNU General Public License v3.0 only | MIT |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
STklos
Posts with mentions or reviews of STklos.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-04-03.
-
Oldest Scheme Implementations
STklos was indeed born in 2001, but it was the successor of Stk, which is much older. Its first release was in 1993. As far as I know, STkos did use code from STk, so I'm not sure one couldn't say it was born in 1993, as "STk".
-
Most readable Scheme implementation
That said, I'd just like to mention that I have made an effort to write internals documentation ( general: "hacking", bytecode: "vm") to STklos. It's an interesting implementation because it's easy to add primitives and change the compiler. The internals of the VM is actually a bit more complex... But it's really interesting code.
- STklos 1.70 was released
-
August 2021 - What are you up to schemers ?
I've been working on enhancing STklos' macro system. The idea is to implement `syntax-case` properly and use it to obtain a better implementation of `syntax-rules` (the one in STklos is quite old and has some issues).
-
STklos 1.60 released
SRFI 143 has already been accepted, and there are recent pull requests for 170, 215, 217! :)
LIPS
Posts with mentions or reviews of LIPS.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-10-29.
- LIPS: Powerful Scheme based Lisp interpreter in JavaScript
-
(Learn 'Scheme)
Sweet, I'll have to give that a go :)
Another option in browser land is lips[0], which exclusively targets a js backend.
[0] https://lips.js.org
-
All Web frontend lisp projects
For Scheme implementations there are LIPS and biwascheme. I haven't done more than play around with them, so I can't really give an informed opinion about pros and cons or favorites.
-
Extending a Language — Writing Powerful Macros in Scheme
Your example revealed a bug in my Scheme interpreter. This is an example that fails to match:
-
What other Scheme parser tricks do you know?
In my interpreter, LIPS Scheme, vector literal syntax is created using a syntax extension, a token that is mapped to a function or a macro. So you can use things like this:
-
How to list defined symbols?
I'm not sure about other Scheme interpreters but in my interpreter LIPS Scheme, there is (env) function that returns a list of symbols. You can also access environment objects e.g. (current-environment) return object that is used internally. And you can even access the scope chain because the env object has __parent__ property that returns the parent scope.
-
May I see some of your projects? :)
Few of my Open Source projects: * jQuery terminal * LIPS Scheme * Gaiman * Sysend * Wayne
-
Async / Await in Scheme
(define promise (--> '>(fetch "https://lips.js.org/") (then (lambda (res) (res.text))) (then (lambda (text) (. (text.match #/\s*([^>]+?)\s*<\/h1>/) 1)))))
-
Yes we are men. Men is what we are.
ngl when I first saw the headline my first thought was, “Wait, bring CAR into JavaScript? Make it a Lisp? But hasn't it already been done?”
-
If you were hired to create a new distribution of Lisp, what would you include?
Languages like Biwa Scheme and LIPS Scheme are good for running Scheme in the browser. But I would prefer compiling Scheme code to JavaScript in the server, then serving the compiled JavaScript image to the browser.
What are some alternatives?
When comparing STklos and LIPS you can also consider the following projects:
ribbit - A small and portable Scheme implementation with AOT and incremental compilers that fits in 4K. It supports closures, tail calls, first-class continuations and a REPL.
scheme-lsp-server