6 ms·
Chez compiles, I think, its not a VM. It’s not as fast as SBCL of course, but it’s not interpreted.
by lemming 1y ago
Chez compiles, I think, its not a VM. It’s not as fast as SBCL of course, but it’s not interpreted.
- cess11 1y agoIt's what they consistently call it here, VM and bytecode: https://docs.racket-lang.org/guide/performance.html 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.
- fuzztester 1y ago>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.
- cess11 1y agoSure. There is a rather extensive toolkit that comes with the basic distribution, https://docs.racket-lang.org/gui/ https://docs.racket-lang.org/gui/. For that you can use MrEd to build your layouts if you want, https://github.com/Metaxal/MrEd-Designer https://github.com/Metaxal/MrEd-Designer. The problem with that approach is that you need to figure out some parts on your own, like state management. If you need that flexibility it's still a good option, or you'd opt for gui-easy, a library on top of the GUI toolkit that adds observables for state management and a more declarative API, https://docs.racket-lang.org/gui-easy/index.html https://docs.racket-lang.org/gui-easy/index.html. I haven't managed to get cross-compilation going but I've had no problem just copying my Racket files to another computer and build there. It's supposed to be possible however, you'll probably manage to figure it out if it's important to you. The gui-easy library makes it trivial to pack up some small tool in a GUI in a few tens of lines of code. I'm guessing there is a way to prune the binaries but don't really care about it myself, I just go with the default ~20 MB executables.
- fuzztester 1y agothanks, good info.
- int_19h 1y agoFrom 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._cs-compiler-modes) https://docs.racket-lang.org/reference/compiler.html#(part._...