clojure-scheme
cloture
clojure-scheme | cloture | |
---|---|---|
3 | 8 | |
565 | 371 | |
- | - | |
0.0 | 4.5 | |
over 4 years ago | 6 months ago | |
Clojure | Common Lisp | |
- | - |
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.
clojure-scheme
-
Years in Common Lisp: 2022 in review
For me it's microcontrollers, however I've heard in spite of the unmaintained status, clojure-scheme[1] is very usable. It uses gambit to produce C-code you can compile anywhere.
https://github.com/takeoutweight/clojure-scheme
-
ClojureRS – Clojure interpreter implemented in Rust
> But wouldn't it make more sense to first rewrite Clojure itself in some small/minimal scheme-y subset of Clojure
How about Scheme?: https://github.com/takeoutweight/clojure-scheme
Note that this project is unmaintained and the last updates are ~10 years old.
-
Lokke: Clojure for Guile
lokke seems to use Guile's tooling (compiler tower, to be specific) to compile clojure-esque code to objects understood by said Guile's tooling. This is a little different from Clojurescript's approach which use ClojureJVM to transpile to javascript. There was actually another Clojure to Scheme project that leverages Clojurescript JVM transpiler: https://github.com/takeoutweight/clojure-scheme - It targets Gambit scheme instead of Guile
cloture
-
Trouble defining a Lisp-1 DSL in Common Lisp
For reference, and to show that it's possible, you might be interested in how I did this for Cloture (Clojure in CL): https://github.com/ruricolist/cloture/blob/master/clojure/core.lisp
-
The Jank Language: LLVM Hosted Clojure
Why not use something like https://github.com/ruricolist/cloture (a Clojure "adapter" that runs on Common Lisp) if you want that?
- Cloture – Implementation of Clojure in Common Lisp
- ClojureRS – Clojure interpreter implemented in Rust
- Clojure – Differences with Other Lisps
-
Clojure, but without the JVM?
Clojure on Common Lisp: https://github.com/ruricolist/cloture
- Seeking clojure-styled concurrency operators for common lisp
-
On Repl-Driven Programming
It does not offer the full experience. It has no breakloop and no ability to browse and edit the live running environment. It has no ability to rummage around inside the dynamic environment of a suspended function call, much less to redefine the suspended function or the types of its parameters, nor to restart the suspended call. Indeed, the JVM makes some of that stuff really inconvenient to do.
You cannot do everything from the Clojure repl in the way you can from a Common Lisp repl or from a Smalltalk worksheet.
I don't know that the Clojure language design forbids it; you might, for example, implement Clojure on top of a Lisp or Smalltalk environment and hook up their tools to Clojure through its interop. That might work, and ruricolist has been working on such an implementation called Cloture:
https://github.com/ruricolist/cloture
But existing Clojure implementations don't have the full set of tools.
What are some alternatives?
ClojureRS - Clojure, implemented atop Rust (unofficial)
janet - A dynamic language and bytecode vm
farolero - Thread-safe Common Lisp style conditions and restarts for Clojure(Script) and Babashka.
clojerl - Clojure for the Erlang VM (unofficial)
cloroutine - Coroutine support for clojure
clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote
lokke - Lokke: Clojure for Guile
etaoin - Pure Clojure Webdriver protocol implementation
pod-registry - Pod manifests describe where pods can be downloaded, etc.
planck - Stand-alone ClojureScript REPL
process - Clojure library for shelling out / spawning sub-processes