atomics
cloture
atomics | cloture | |
---|---|---|
5 | 8 | |
32 | 371 | |
- | - | |
4.9 | 4.5 | |
4 months ago | 6 months ago | |
Common Lisp | Common Lisp | |
zlib License | - |
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.
atomics
-
Bordeaux-Threads API v2
On the latter, I'm aware of the atomics package and have considered using it, but it would significantly cut down on the number of supported platforms compared to BT.
-
Is there any double compare-and-swap (DCAS) library for CL?
https://github.com/cosmos72/stmx is transactional memory, so I think it does a bit more than simple CAS. CAS is in https://shinmera.github.io/atomics .
-
CL hash-table thread-safety
Not sure. You can check the atomics package. But ConcurrentHashMap in Java works with locks internally.
- Seeking clojure-styled concurrency operators for common lisp
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?
cl-skip-list - Lockless skip lists for Common Lisp; well, for now sbcl 1.0.42 or higher. Contributions for other Lisps welcome. See the README file for a list of what is required.
janet - A dynamic language and bytecode vm
calispel - CSP-like channels for common lisp
clojerl - Clojure for the Erlang VM (unofficial)
cl-gserver - Sento - Actor framework featuring actors and agents for easy access to state and asynchronous operations.
clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote
chanl - Portable channel-based concurrency for Common Lisp
etaoin - Pure Clojure Webdriver protocol implementation
awesome-cl - A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.
planck - Stand-alone ClojureScript REPL
ClojureRS - Clojure, implemented atop Rust (unofficial)
awesome-clojure-likes - Curated list of Clojure-like programming languages.