At this point, it doesn't really matter what the language does, because the author and I have mutual respect. There is none.
Here's an example https://github.com/adriaandens/XSamples/blob/master/XSamples...
At one point, the author may have written a fair bit of code by hand (starting with a Crafting Interpreters project, and then adapting it recently using agents?). The commit history is very confusing.
The design of the VM is nearly identical to the clox interpreter in Crafting Interpreters. There's also a bit of Lua inspiration mixed in the instruction encoding.
Who is this language for? Who is the audience, and what does the author intend to convey to them?
There's a ton of features -- are they used consistently? We have function overloading and traits. We have optional type annotations and effects -- the effects are handled with a (fragile) multi-shot continuation implementation (at least copy Leijen or libmprompt! that code is out there, free to use, and robust!)
There are two parallel type inference systems in `src/types`. The type system which the language actually uses is not consistent yet (see e.g. `inference.c`: "recursive type: bind anyways")
With that being said, I'd take the cross platform claims with an extreme grain of salt ...
Oooof brutal. I agree it is remarkable people release stuff like this.
Very impressive if I'm wrong (hopefully some of the comments help you prune some of these smells, if you wish)
skybrian•1h ago
On the website, the standard library lacks a table of contents, but you can see what it has here:
https://github.com/xs-lang0/xslang.org/tree/main/src/app/doc...
nine_k•39m ago
It's like busybox, which is unremarkable as Unix userland, but is interesting because it's a single small binary.
But beyond the standard Algolish stuff, XS seems to have quite a few modern niceties, such as traits, generics, closures, OOP, pattern-matching, and even algebraic effects.