gerbil | fur | |
---|---|---|
17 | 2 | |
1,111 | 0 | |
1.3% | - | |
9.6 | 8.8 | |
9 days ago | 11 months ago | |
Scheme | C | |
GNU Lesser General Public License v3.0 only | GNU General Public License v3.0 only |
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.
gerbil
- Gerbil Scheme – A Lisp for the 21st Century
- Gerbil Scheme has a standalone httpd
-
Gerbil v0.18.1 NimzoLarsen released
That's a strange one! Can you go to https://github.com/mighty-gerbils/gerbil/issues and post an issue outlining this with slightly more detail? What platform, C compiler, libc version etc.
-
Gerbil Scheme v0.18.1 NimzoLarsen released
New in std library: an S3 client, an SMTP client, SSL for Postgres (enables Heroku support), better CLI support (including multicall binaries), and plenty of module updates. Plus a few minor bug fixes.
See Gerbil Scheme homepage https://cons.io
- Gerbil Scheme History
-
Gerbil Benchmarks
Here is the discussion: https://github.com/mighty-gerbils/gerbil/discussions/1008
-
Gerbil v0.18 Released
Gerbil Scheme < https://cons.io > just saw its release v0.18, with many usability and documentation upgrades, and a bunch of new functionality in the standard library. A "meta-dialect of Scheme with post-modern features", Gerbil layers a Racket-like module system (the best in the world by far) on top of Gambit Scheme (compiler that produces the fastest code), with lots of libraries as "batteries included" for production-level client/server code.
- Gerbil scheme releases v0.18 RC1
-
Strong typing, a hill I'm willing to die on
I'm more into Scheme than CL, but am aware of Coalton. My current lisp is Gerbil: https://cons.io which already has a type annotation system and will be enhancing it for the next major release (v19).
-
Not only Clojure – Chez Scheme: Lisp with native code speed
Another "post-modern" natively compiling Scheme is Gerbil Scheme [0]. It's seeing a lot of attention/enhancements lately, including some bounties to implement features.
[0]: https://cons.io
fur
-
Pratt Parsers: Expression Parsing Made Easy
I found this Rust tutorial[1] on Pratt parsers to be really easy to follow as well. I'm not a Rustacean but I didn't find not knowing Rust to be a barrier. I used that as a guide to write the parser for my experimental programming language Fur[2].
However, I'll caution anyone writing their own programming languages to read some wisdom from someone who has written a production-quality programming language[3]. Most programming language developers get bogged down in writing the parser and never even get into solving the real hard problems of language development, which are things like bytecode generation and garbage collection. The fact is, a naive recursive descent parser with some low lookahead number to handle left recursion will be performant and can be written in an afternoon for 99% of parsable languages. I'm not sure what it is about parsers that makes them susceptible to yak shaving, but it seems to be a trap a lot of people fall into (including myself!).
[1] https://matklad.github.io/2020/04/13/simple-but-powerful-pra...
[2] https://github.com/kerkeslager/fur/blob/main/parser.c
[3] https://craftinginterpreters.com/compiling-expressions.html#...
-
Strong typing, a hill I'm willing to die on
One might say that the embracing of reflection in Java and C# pretty much solidifies the case against static typing for complicated projects.
I'd tend to think the important feature here is strong typing, not static typing, and indeed TypeScript, which is hampered by the anemic type system of its parent JavaScript, it not the best example of strong typing.
Ultimately, strong typing is a hill I'm willing to die on, too. But a lot of people making arguments on this topic are conflating it with static typing, which just isn't the same thing. In general, that gives me the impression you haven't done enough work in enough different languages to really have an informed opinion.
Though uncommon, strong dynamic type systems do exist. This is the approach I'm taking with Fur[1]. Python is... stronger than many other popular languages (i.e. JavaScript), but still does a lot of coercion (particularly around truth-y/false-y values).
But perhaps more critically, weak static type systems also exist, such as C, which is the source of many of the world's most serious bugs. It's highly unwise to assume that static typing is strong typing.
[1] https://github.com/kerkeslager/fur
What are some alternatives?
schemepunk - A batteries-included extended standard library for seven R7RS Scheme dialects.
SICL - A fresh implementation of Common Lisp
swi-mqtt-pack - MQTT pack for SWI-Prolog
clj-kondo - Static analyzer and linter for Clojure code that sparks joy
rhombus-prototype - Brainstorming and draft proposals for Rhombus
eastwood - Clojure lint tool
chez-exe - Chez Scheme self hosting executable
talk-transcripts - Transcripts of Clojure-related talks
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
fib - Performance Benchmark of top Github languages
rescript-compiler - The compiler for ReScript.