← Back to context

Comment by chrsig

2 years ago

> SBCL has definitely proven itself to be a good companion to explore the generation of domain-specific machine code. I don’t know of any other language implementation with that kind of support for interactive programming and machine code generation (and inspection). FWIW, I believe LuaJIT + dynasm will soon be comparable.

Julia! It's very lispy, actually, but it does a very good job of exposing different layers of parsing & compilation through llvm

see the interactive utilities documentation[0] -- there are a few macros and functions, prefixed with code_, that output the generated code

[0] https://docs.julialang.org/en/v1/stdlib/InteractiveUtils/#In...

I really don't understand what would make someone say that Julia is lispy. People say that about R as well, but I don't see that either.

To me, lisp is many things, but the first thing it is is s-expressions. Most/many languages have macros. Lisp is just particularly good at those...

  • I didn't interpret OC as calling Julia lispy, as much as saying that Julia is matched to SBCL's interactive machine code generation and inspection. I don't have a dog in that particular fight; I've barely touched either language.

    Except, macros. I have never seen macro wizardry come anywhere near SBCL without homoiconicity.

    edit: pre-coffee reading comprehension, apparently. The word lispy is _right there_ in OC.

    • To clarify, I was trying to say that both

      - the julia runtime does a good job competing with sbcl with regard to interactive code generation. I'm not familiar enough with sbcl (or julia, really) to rank one over the other -- but from what I have seen, they're in the same ballpark.

      - julia feels like a lisp to me, due to many features of the language and how much it emphasizes repl based development. I can respect that others may not feel the same -- it's a subjective matter.

      I'm not heavily invested in either -- I just think they're both nifty.