libera/#lisp - IRC Chatlog
Search
3:38:37
lisbeths
The problem of how to write portable lisp code has been keeping me up at night for years
3:38:53
lisbeths
even different implementations of the same lisp can have code which is unique to that implementation
3:40:26
lisbeths
In the last few months I was thinking to narrow that subset all the way down to the lambda calculus and now I am hoping that that extreme is not necessary
3:40:35
nytpu
lisbeths: i mean, if you reference the CLHS and the behavior it describes rather than your implementation
3:41:25
lisbeths
I fear that it I write some code in sbcl and that clojure or scheme or some other lisp will become the most popular lisp then my code goes into the turing tarpit
3:42:27
lisbeths
There is a certain subset of lisp that will work inside of emacs lisp, guile, and in sbcl
3:44:15
nytpu
lisbeths: that's like writing C++ and hoping it'll keep working when you want to switch to rust, they're objectively different languages that happen to be in the same "family" of Lisp languages, in the same way that C, C++, et al are in the ALGOL family of languages
3:45:25
nytpu
the best you might be able to get is ISLISP that's nominally supposed to be compatible with Common Lisp and Scheme (https://en.wikipedia.org/wiki/ISLISP), and Emacs Lisp has a CL compatibilty layer iirc
3:46:32
nytpu
C is not C++ even though C++ programmers like to pretend it is. and SQLite is entirely in ISO C 89 (with perhaps some C++ test benches but they seem to prefer TCL for testing)
3:47:24
nytpu
C++ is only compatible with C because it uses the same calling conventions for non-OOP stuff and it has explicit `extern C` interfacing
3:48:46
lisbeths
justine tunney wrote an interpreter for sector forth which runs in javascript, c, and c++ using ifdef and ifndef
9:22:43
jcowan
nytpu: ISLisp is semantically compatible with CL, but it has different standard procedures and special forms. ISLisp is only incidentally compatible with Scheme (at the CAR, CDR, CONS, IF, ... level)