steel
thinlisp
Our great sponsors
steel | thinlisp | |
---|---|---|
9 | 5 | |
848 | 30 | |
- | - | |
9.0 | 10.0 | |
7 days ago | about 9 years ago | |
Rust | Common Lisp | |
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.
steel
-
Helix: Release 24.03 Highlights
I absolutely don't mind the plugin system being a Scheme. It's a plugin for a text editor, and Steel(https://github.com/mattwparas/steel) seems to be a lot less of a maintenance burden than WASM plugins(besides that I find the WASM tooling to be extremely complex).
But besides all that, Helix learned be that I don't need fancy plugins or endless finicking with config files and toolchains. Using a combination of other tools, like yazi and lazygit, helps me not only inside my editor but outside of it as well. And Kakoune does this even better. In that regard it has been a real eye-opener and refreshing. The downside is, it's hard to go back to other editors!
- Steel – An embeddable and extensible Scheme dialect
-
Steel – An embedded scheme interpreter in Rust
Basically the differences are in the concepts you'll use to write code. Lisps themselves are very different from each other, but just like the languages you're used to, lisps have standard libraries that can be called, and those building blocks can be used to build applications or whatever else. In this case specifically, Steel provides the facility to call Rust functions within a Steel program: https://github.com/mattwparas/steel.
So, although I haven't used Steel, it looks like the advantage you'd get from using it is the opportunity to take advantage of features it provides like transducers and contracts, which are feature common to other Lisps as well.
So, just like choosing any other language, it boils down to a series of tradeoffs.
-
What’s everyone working on this week (19/2023)?
I've been adding my language steel as the plugin language for helix. There is a lot of discussion around what the plugin system will look like for helix and I figured I'd give it a shot since steel was designed originally for embedding. So far its working pretty well, it turns helix into emacs (without the nearly 50 years of development, so not quite as good). I'm reasonably confident the changes won't be accepted upstream (my language is a scheme but I am the only developer at the moment), but even if not it is a really fun experiment. Hoping that it can be used as a basis for whatever plugin system they eventually land on. An example of what configuration would look like:
-
What’s everyone working on this week (7/2023)?
Working on automatic doc generation for steel. I've been procrastinating building this out for a while - some of the easy cases are really easy, while the hard cases are definitely not easy.
-
What's everyone working on this week (6/2023)?
I'm working on steel, an embedded scheme like programming language. I have lofty goals of eventually adding a JIT and making it viable as a standalone language, but for now its just about as fast as python, and makes for fairly pleasant embedded scripting. Recently added modules and dylibs, and am working on getting documentation into a better place so that adding more libraries becomes easier. I've written a functioning slack bot in it, which is pretty fun, eventually want to make a discord bot as well out of it just to stress test it a bit
- Guile Steel: a proposal for a systems Lisp
thinlisp
-
Guile Steel: a proposal for a systems Lisp
> "something like C"
SBCL? Or ECL (compiles to C), CLASP (C++, LLVM)?
The older ThinLisp? (compiles a subset of CL to C) https://github.com/ska80/thinlisp
The very new NPT, a CL implementation in C? https://github.com/nptcl
> Static typing for ahead-of-time more-correct programs
the Coalton library. A ML/Haskell as a CL library. https://github.com/coalton-lang/coalton/
> Static typing for faster or leaner programs
SBCL
> WebAssembly
Common Lisp running natively over WebAssembly: https://news.ycombinator.com/item?id=31590819 (very much POC)
I know, I know, but he didn't mention any of these in the blog post, nor any CL project. Justice is done.
- Writing distributed apps with cl-etcd
- Thinlisp – Lisp to C translator for real-time applications (2001) [pdf]
- thinlisp - Lisp to C translator. Ship applications with all the benefits of C while getting the power of Lisp as you build your system. [2015]
What are some alternatives?
freya - Native GUI library for 🦀 Rust powered by 🧬 Dioxus and 🎨 Skia.
wisp - Lisp in WebAssembly
schemetran
wisp - A little Clojure-like LISP in JavaScript
astro-float - Arbitrary precision floating point numbers library
tesseract-wasm - JS/WebAssembly build of the Tesseract OCR engine for use in browsers and Node
simple-scaler - A simple on-prem OpenShift worker node scaler for stretching into Azure
websurfx - :rocket: An open source alternative to searx which provides a modern-looking :sparkles:, lightning-fast :zap:, privacy respecting :disguised_face:, secure :lock: meta search engine
coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.
rust-s3-async-ffi - Asynchronous streaming of AWS S3 objects in C and C++ powered by rust-s3
cl-project - Generate modern project skeletons