Gale is a concatenative programming language which:
-
Has a strong, dynamic, and generally structural type system that offers a moderate degree of type inference.
-
Is designed interactively-first, with REPL and Language Server experiences as first-class citizens, and as such encourages rapid prototyping and experimentation.
-
Can be embedded within Zig and C applications (and those written in languages supporting C FFI).
-
Sports a very small implementation: currently well under 5k lines of Zig (subtracting comments and blank lines) gets a runtime off the ground.
- Is extremely permissively licensed (
0BSD
, public domain equivalent)
See the sketches/
tree for now, which is in a constant state of flux and not
necessarily always kept up to date with what I'm aiming for, but I try.
lib/gale
is a pure-Zig implementation of the Gale nucleus as a librarysrc/gale
builds on these to provide a thin CLI that works with the usual stdin/stdout/stderrtests/
includes various end-to-end tests of language functionality that didn't cleanly fit as unit tests in the above categories
Currently, Gale is just a nights-and-weekends side project whenever my rather
busy life allows, and as with any hobby, I don't expect payment for it. For now,
simply riffing ideas with me and experimenting with Gale as it grows is payment
enough. If you really insist you want to financially support Gale in this
extremely early phase, there's a LiberaPay link in the .github/
tree.
Gale's canonical implementation and standard library is released under the
Zero-Clause BSD License,
distributed alongside this source in a file called COPYING
, and also found
at the top of each source file.
Further, while not a legally binding mandate, I ask that you have fun with it, build cool stuff with it, don't exploit your fellow humans or the world at large with it, and generally don't be an ass within or outside of the project or anything written with it. And if you want to give attribution, it's of course also appreciated.