Re:Owl Lisp – A purely functional Scheme that compiles to C
by hellofunk on Saturday September 10, 2016 @01:22PM
(#12470108)
I really like the growing interest in making lisps that compile to C, and one that is purely function is even better. I'd be curious how the GC in this compares to the fascinating work in Chicken for novel GC in C environments.
[ Parent
| on HN ]
Re:Owl Lisp – A purely functional Scheme that compiles to C
by lispm on Saturday September 10, 2016 @02:53PM
(#12470432)
If you find Lisp to C compilers interesting, then Common Lisp has a bunch for you. The first CL to C compiler was KCL (Kyoto Common Lisp from Japan in the mid 80s). It is the parent for several other compilers.
Gnu Common Lisp, Embeddable Common Lisp, mkcl, mocl. There are also attempts at C++ as a target language. See CLASP.
https://www.gnu.org/software/gcl/
https://common-lisp.net/project/ecl/
Re:Owl Lisp – A purely functional Scheme that compiles to C
by hellofunk on Saturday September 10, 2016 @05:41PM
(#12471000)
Cool, but then you have to actually deal with Common Lisp, which is not the kind of lisp that interests me. The more functional-oriented lisps like this Owl, and Clojure, are quite different in many ways from CL.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by etatoby on Saturday September 10, 2016 @01:35PM
(#12470172)
I agree that Chicken is based on a brilliant idea that turned out to work really well in practice. It's a very practical language / implementation.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by qwertyuiop924 on Saturday September 10, 2016 @01:51PM
(#12470225)
It's my favorite Scheme. It's minimalist, but practical, and usable for Real Work. It's everything I like about Racket, without all thinks I don't like about Racket (Racket's a fine language, it's just not my thing).
Re:Owl Lisp – A purely functional Scheme that compiles to C
by jopython on Saturday September 10, 2016 @02:42PM
(#12470396)
It is not practical enough for me to have a language which does not support native threads.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by qwertyuiop924 on Saturday September 10, 2016 @04:08PM
(#12470686)
Only Guile does that, AFAIK. And Chicken's threads are perfectly usable in most cases. And you can always fork(2), if you really want to.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by hga on Saturday September 10, 2016 @03:21PM
(#12470524)
And as I read it sometime ago while searching for Scheme implementations with native threads, Cheney on the MTA is inherently single threaded.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by justinethier on Saturday September 10, 2016 @03:54PM
(#12470636)
Not necessarily, it can be extended to support multithreading:
Re:Owl Lisp – A purely functional Scheme that compiles to C
by dleslie on Saturday September 10, 2016 @05:18PM
(#12470924)
Cyclone is a new Scheme with native threads that uses cheney.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by dleslie on Saturday September 10, 2016 @05:19PM
(#12470931)
There are ways to use native threads with Chicken; it's a bit hairy, though.
Chicken 5, the upcoming partial rewrite, is worth keeping an eye on.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by reitzensteinm on Saturday September 10, 2016 @05:24PM
(#12470951)
I've got an upcoming talk at EuroClojure on the subject:
http://euroclojure.org/speakers#mreitzenstein
Taking advantage of immutability and using clojure.spec generators at the top level, it specializes/simplifies the code using really simple transformations.
Demo of the specialization here:
Re:Owl Lisp – A purely functional Scheme that compiles to C
by ZenoArrow on Saturday September 10, 2016 @03:11PM
(#12470491)
How does Chicken compare to Gambit?
Re:Owl Lisp – A purely functional Scheme that compiles to C
by qwertyuiop924 on Saturday September 10, 2016 @04:14PM
(#12470702)
The perf is generally comparable (each has optimizations the other does not, although gambit is a bit faster in the general case), but Chicken has really fast call/cc. Also, Gambit has a very small library collection, especially compared to Chicken's, which is among the best of all the schemes, Library-wise. Neither supports native threading, and Chicken isn't fully re-entrant, which can lead to some problems integrating some libraries. Both have excellent FFI, but Chicken's is a bit better, IMHO.
Re:Owl Lisp – A purely functional Scheme that compiles to C
by qwertyuiop924 on Saturday September 10, 2016 @01:32PM
(#12470158)
What's so novel about Chicken's GC? Cheney on the MTA is quite clearly novel (Chicken compiles to CPS and essentially GCs its stack frames IIRC, making call/cc as fast as any other procedure call), but the algorithm itself is quite ordinary, IIRC.