top | item 6633286

Hylas-Lisp - A JIT-compiled Lisp targeting LLVM

96 points| agumonkey | 12 years ago |github.com | reply

32 comments

order
[+] jnbiche|12 years ago|reply
I like this trend toward wide-spectrum languages. For other recent examples, see Terra and Nimrod (I realize Nimrod has been around for a while, but seems like it's recently gaining significant popularity).

It's nice how closely languages like Python and Lua and integrated C through their various FFIs (particularly Luajit's FFI), but it's still a huge pain in the ass to continuously context switch between languages whenever you have to drop down and do something low-level, or to improve performance. I hope at least one of these languages catches on in the wider programming community so I'll have a chance to use it in "real world" programming.

[+] agumonkey|12 years ago|reply
as people said on reddit, the CL timing on the chart is "bogus" http://www.reddit.com/r/lisp/comments/1pgdyo/hylaslisp/
[+] eudox|12 years ago|reply
Indeed (author here). Aside from Fibonacci being a worthless benchmark, the Common Lisp code was unoptimized and running on CLISP(!) on Windows(!!). Moreover, it was from an old version of the compiler. The benchmark just sat there for a while as I rewrote it from C++ in Common Lisp, and it was stupid of me to let it hang around for so long.
[+] phaer|12 years ago|reply
Yes, it's strange to benchmark a standard and not an implementation. Besides, timing in well-known implementation such as SBCL looks much better here than in the chart.
[+] j_m_b|12 years ago|reply
How hard is it to extend 'foreign' to other languages besides C/C++? If this is possible, a guide for doing so would be invaluable. It would be awesome if there was a lisp that could compile directly to LLVM using native objectiveC libraries on iOS. VERY cool work, thanks for sharing!
[+] eudox|12 years ago|reply
That was part of my original intention. The reason 'foreign' takes C as its first argument in the examples is so I could eventually add support for binding mangled C++ functions mangled through Clang/GCC (Which luckily use the same mangling scheme).
[+] 286c8cb04bda|12 years ago|reply
> It would be awesome if there was a lisp that could compile directly to LLVM using native objectiveC libraries on iOS.

You might be interested in http://programming.nu/

[+] hwh|12 years ago|reply
Am I missing something with the "Hylas" name vs. the lambda & gamma initials within the project logo?
[+] eudox|12 years ago|reply
The inverted lambda was supposed to look like the letter 'y'.

I like to pretend it looks more like 'hylas' than 'aylas'.

[+] wes-exp|12 years ago|reply
eudox, do you have a use case for this Lisp or is it more of an intellectual exercise?
[+] eudox|12 years ago|reply
I feel there is a spot between the performance and control of low-level languages and all the tremendously useful features of high-level languages. What I basically wanted was "C with Lisp macros". I think Rust is the closest language, ideologically, to Hylas.

There is no specification or anything very formal laid out except for a couple .md files in the docs folder. The language has evolved and changed a lot over the past year (Everything from the comments to the type system has changed), and is nowhere near prod-ready, but I want to eventually put it to practical use.