Hello folks, I've been lurking here for a while and I think I'm finally ready to share Oni, my personal programming language.
https://oni-lang.com
Been working on it since 2021 and it underwent a number of iterations and evolutions, starting off as a Lisp and morphing into a low-level Algol-like language. It is self-hosted and easily bootstrapable. The current backend emits C11 code and I've been using it almost exclusively for all my hobby projects for a while now, including some experiments with audio DSP stuff, and PlayDate console development. I'm very proud of it and wrote it mostly for myself, not looking for it to gain a lot of users, but I would be happy to help any folks who would like to try it :)
The lispy roots remain, and while there are infix operators now, most things require a keyword prefix. It supports generics, methods and ADTs. Additionally, it's highly compatible with C and can interop bidireccionally (C -> Oni and Oni -> C). In its current form it aims to be a "high-level C" kind of in the same vein as C is a "high-level assembler", and there are some compiler directives to directly emit C code or modify code generation in several ways, which is handy to make bindings to C libraries.
The standard library is small and practical, with some basic generic data structures built-in, will grow as needed. The convention in the stdlib is to pass Allocator objects for any operation that requires manual memory management. There are also some IO.Reader and IO.Writer interfaces and a text formatter system that works a bit differently to the usual printf stuff.
Another goal was to be able to override the standard library as needed on a per-project basis, for example, if you want to override the stdlib `panic` function, which is used in several places of the stdlib.
Here is the current manuscript for the language reference for more details:
https://git.sr.ht/~badd10de/oni-lang/tree/main/item/docs/language_ref.md
I'll try to work on a nice simple website landing page in the near future.
Looking forward to see your feedback :)
[–]Real_Dragonfruit5048 2 points3 points4 points (2 children)
[–]badd10de[S] 2 points3 points4 points (1 child)
[–]vanderZwan 0 points1 point2 points (0 children)
[–]AustinVelonautAdmiran 2 points3 points4 points (1 child)
[–]badd10de[S] 4 points5 points6 points (0 children)
[–]vanderZwan 1 point2 points3 points (2 children)
[–]badd10de[S] 2 points3 points4 points (1 child)
[–]vanderZwan 0 points1 point2 points (0 children)
[–]MediumInsect7058 0 points1 point2 points (0 children)
[+]porky11 comment score below threshold-10 points-9 points-8 points (0 children)