cloture
sci
cloture | sci | |
---|---|---|
8 | 20 | |
371 | 1,166 | |
- | 0.8% | |
4.5 | 7.2 | |
7 months ago | 12 days ago | |
Common Lisp | Clojure | |
- | Eclipse Public License 1.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.
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.
sci
-
What's the value proposition of meta circular interpreters?
I've tried researching this myself and can't find too much. There's this project metaes which is an mci for JS, and there's the SCI module of the Clojure babashka project, but that's about it. I also saw Triska's video on mci but it was pretty theoretical.
- Sci: Configurable Clojure/Script interpreter suitable for scripting
-
Windmill: Open-source developer platform to turn scripts into workflows and UIs
https://github.com/babashka/SCI if it's a requirement for proper sandboxing
-
Embedding cherry in an existing CLJS app for runtime eval
Since cherry is a compiler, the code generally runs faster than with SCI which is an interpreter. For many cases SCI is fast enough, but numerical computations in a hot loop isn't one of its strenghts:
-
Compiled and Interpreted Languages: Two Ways of Saying Tomato
Startup and sustained performance are absolutely implementation issues. For example, SBCL will take its sweet time to make machine code out of Common Lisp, but CLISP will interpret and generate bytecode. Both are useful, and both implement the same language. Clojure on the JVM takes also takes plenty of time to start up, so some use an interpreter instead. Furthermore neither of these languages has a cost model, so the cost of anything is an implementation issue.
- Show HN: Programming Google Flutter with Clojure
-
Third party integrations with a monolithic Clojure app
So far we have relied on an increasing number of home-grown integration points to our platform, where relevant combined with the excellent SCI (so we can write some Clojure-code when adhoc data conversions / calculations / tweaking is required).
-
Scala native equivalent to Clojure
Also take a look at SCI, https://github.com/babashka/sci/blob/master/doc/libsci.md
-
Langdev in Clojure
You probably want to take a look at sci if you are creating a DSL or want to use Clojure itself as your DSL.
-
ClojureRS – Clojure interpreter implemented in Rust
Built with the lovely SCI library (https://github.com/babashka/sci) + GraalVM, probably the most useful GraalVM project I've seen in the wild so far.
Also, Babashka will probably always support more features than ClojureRS could ever, particularly the interop with the various Java classes/functions, as that'd be very hard to achieve in ClojureRS.
What are some alternatives?
janet - A dynamic language and bytecode vm
clojure-lsp - Clojure & ClojureScript Language Server (LSP) implementation
clojerl - Clojure for the Erlang VM (unofficial)
tailwindcss-typography - Beautiful typographic defaults for HTML you don't control.
clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote
hotwire-rails - Use Hotwire in your Ruby on Rails app
etaoin - Pure Clojure Webdriver protocol implementation
mdx - Markdown for the component era
planck - Stand-alone ClojureScript REPL
rich4clojure - Practice Clojure using Interactive Programming in your editor
ClojureRS - Clojure, implemented atop Rust (unofficial)
babashka - Native, fast starting Clojure interpreter for scripting