atomics
cl-gserver
atomics | cl-gserver | |
---|---|---|
5 | 12 | |
32 | 192 | |
- | - | |
4.9 | 8.0 | |
4 months ago | 30 days ago | |
Common Lisp | Common Lisp | |
zlib License | Apache License 2.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.
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
cl-gserver
-
Why Lisp?
> static strong typing
Alright, here is it: https://github.com/coalton-lang/coalton/
> small efficient native binaries
The numbers are: with SBCL's core-compression, a web app with dozens on dependencies will weight ±30 to 40MB. This includes the compiler, the debugger, etc. Without core compression, we reach ±150MB.
> The actor runtime?
the actor library: https://github.com/mdbergmann/cl-gserver
> couldn't find a way to make money with it. I suspect many other programmers are in my boat.
Alright. Some do, that's life. Yes, some companies go with CL even in 2023 (https://lisp-journey.gitlab.io/blog/lisp-interview-kina/, they released https://github.com/KinaKnowledge/juno-lang lately; Feetr (finance): https://twitter.com/feetr_io/status/1587182923911991303)
https://github.com/azzamsa/awesome-lisp-companies/
> Give us an HTTP (1.x & 2.0) and WebSockets libraries
How so? We have those libraries. HTTP/2: https://github.com/zellerin/http2/
https://github.com/CodyReichert/awesome-cl
- Sento: Actor Framework for Common Lisp
- Sento actor framework 3.0 released - no new features, many API changes: cleanups, obstacles removed, and hopefully a more consistent way of doing things.
- New version of the Sento Actor Framework released with a few new goodies in future handling. Nicer syntax and futures can now be mapped.
-
Between Two Lisps (2020)
It's nice to see the CL ecosystem evolving. SBCL sees regular updates with new optimizations. The editor support is getting better: [Vim, Atom, Sublime, VSCode… have good to very good support](https://lispcookbook.github.io/cl-cookbook/editor-support.ht...), & Jupyter notebook, the Lem editor… and a new lisper started a CL editor based on Tauri: [Parrot](https://github.com/fonol/parrot). Cool projects emerge ([lisp-stats](https://github.com/Lisp-Stat/lisp-stat/), the [Sento / cl-gserver](https://github.com/mdbergmann/cl-gserver) actors library, the Kons-9 3D graphics library, the CLOG web-gui…)
> 50MB
With compression (zstd now), SBCL binaries weigh ±25MB. Start-up time is super fast. I built a standalone binary for my web app, it is straightforward to start it on the background and access it from an Electron window.
-
LEM - What If Emacs Was Multithreaded
what's nice in CL is that we can choose. We have a nice actor-style library now (https://github.com/mdbergmann/cl-gserver).
-
Moving from the BEAM to Common Lisp: What are my concurrency options?
You might be interested in cl-gserver0.
-
Low weight timeouts async `ask` operations
Version 1.9 of cl-gserver adds low weight timeouts for async ask operations with the help of timer wheels. https://github.com/mdbergmann/cl-gserver
-
CL hash-table thread-safety
Have a look at the tests here: https://github.com/mdbergmann/cl-gserver/blob/master/tests/hash-agent-test.lisp
-
Curiosity: scheduler choices for lispy microservice architecture.
I have seen cl-gearman used in the wild (for example for Ultralisp), there is lfarm (distributing work across machines, on top of lparallel and usocket), "jobs" and "workers" makes me think cl-gserver (Erlang-inspired GenServer, actors pattern)… not really answering, throwing ideas in case you didn't see them, and furnish this discussion a bit :]
What are some alternatives?
cloture - Clojure in Common Lisp
Common-Lisp-Actors - An actor system for Common Lisp.
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.
juno-lang - Juno Language Repository
calispel - CSP-like channels for common lisp
opendylan - Open Dylan compiler and IDE
chanl - Portable channel-based concurrency for Common Lisp
Akka.net - Canonical actor model implementation for .NET with local + distributed actors in C# and F#.
awesome-cl - A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.
lfarm - Distribute work across machines using the lparallel API.
s2 - A data-binding function for the DOM.
lisp-stat - Lisp-Stat main system