Comment by cess11
5 months ago
SBCL is disgustingly performant, and while Racket is fine for most applications you'll still notice sometimes that it's executed on a VM and hasn't prioritised speed to the same degree.
5 months ago
SBCL is disgustingly performant, and while Racket is fine for most applications you'll still notice sometimes that it's executed on a VM and hasn't prioritised speed to the same degree.
In addition, Common Lisp provides standardized ways to get fast code: OPTIMIZE policy, type annotations, stack allocations, disassemblies, etc. This is all there before you get to SBCL's specific tools for optimization and profiling.
Chez compiles, I think, its not a VM. It’s not as fast as SBCL of course, but it’s not interpreted.
It's what they consistently call it here, VM and bytecode:
https://docs.racket-lang.org/guide/performance.html
As I understand it the difference between raco make and raco exe is that the latter bundles a VM.
I don't really care about these minutiae, it's a great platform for GUI development that consistently builds as well on Debian as Windows.
From this very page you've linked to
"Every definition or expression to be evaluated by Racket is compiled to an internal bytecode format, although “bytecode” may actually be native machine code. In interactive mode, this compilation occurs automatically and on-the-fly. Tools like raco make and raco setup marshal compiled bytecode to a file, so that you do not have to compile from source every time that you run a program. ... For the CS implementation of Racket, the main bytecode format is non-portable machine code."
There's more about what this entails here and how to view the generated assembly: https://docs.racket-lang.org/reference/compiler.html#(part._...
>it's s a great platform for GUI development
Can you elaborate on that? I'm interested in deciding on a good tech stack for desktop GUI app development for personal projects, so was interested in your comment.
2 replies →