I'm proud to announce Leaf <http://leaflang.org/>, a soon to be great
new programming language. I've been working over a year on it now,
though it's nowhere near completion. Consider this a pre-alpha prototype
stage announcement. ;)
A lot of my progress is due entirely to LLVM. So while Leaf has a host
of features <http://leaflang.org/features/index.html>, I'd like to
point
out some things that highlight my use of LLVM.
- Multiple execution models: building libraries, executables, or even
running the JIT. I'm trying to stay very flexible here and LLVM is
making it easy.
- Optimization: So far I've done nothing, LLVM is doing a great job
cleaning up my rather underwhelming IR. This lets me focus entirely on
my language at the moment.
- Arbitrary bit-size integers: I really like having these in the IR. I
dislike fretting at the high-level about exactly what size an integer
is, thus I've directly exposed LLVM's ability to have arbitrary bit
sizes. (I just need a large-integer division routine now to fully
support > 128bits.)
- Exception handling: The landing pads and the ExceptionDemo got me a
lot of the way to implementing exception handling.
- Clang: Having a C and C++ compiler which can emit IR has been
extremely helpful in deconstructing features of those languages.
Slowly I'm working my way through every instruction and will soon find
my way into the attributes (I'll start with debugging symbols). Soon
I'll also start using multiple targets -- right now I support only
x86_64 on Linux. I'll make another announcement when I can show
something more.
Though still early in its development, there is room to get involved
now. If anybody is interested then just let me know and I'll welcome you
to the project.
Leaf
http://leaflang.org/
--
edA-qa mort-ora-y