Hacker News new | past | comments | ask | show | jobs | submit login
Racket-On-Chez Status (racket-lang.org)
147 points by soegaard on Jan 5, 2018 | hide | past | favorite | 18 comments



WOW this just makes it one of the best implementation of scheme, though i would love to see the chez backend version to produce executable binaries like chicken scheme or current raco compiler does. The current chez scheme supports only fasl binaries which require a scheme interpreter to be distributed. The only hacky way currently is chez-exe.


As I understand it, raco (if it's the same as the old mzscheme) creates executables by combining bytecode with a complete interpreter and runtime. Chicken, via C, can probably leverage existing compiler support for creating minimal static binaries.

I've long been a fan of Dybvig and Chez Scheme and it would be a lot of fun to try running Hacker News on RoC with no effort on our part.


Gerbil/Gambit do this already. Fully static binaries, and are a ton faster than Chicken.


Are there any scheme implementations that dump executables the way e.g. cmucl or clozureCL do? That is they dump the entire core to disk and prepend the runtime. This is actually the more traditional way of creating an executable (all of the static compiling ones I'm aware of derive from a single implemenation, KCL)



Note that raco doesn't make static binaries unfortunately (b/c Racket is LGPL.. which is a bit unusual for programming language)


The license will soon(ish) change:

https://github.com/racket/racket/issues/1570


The license doesn't have anything to do with the behavior of `raco`.


I'd love to be wrong on this, but from what I understand Chicken Scheme can no longer produce static binaries.


IIRC it can, but whenever you use eggs (chicken libraries) there might be some limitations to whether you can create a fat executable or have to distribute the runtime and the eggs together with your application.

There is more info here: https://wiki.call-cc.org/man/4/Deployment


Very cool. I have been enjoying Chez since the licensing changed, I even started an application book using Chez (which may never get finished), but having the full Racket environment on top of Chez will be great when the re-write is finished.


Looks like there is a fundamental tradeoff for startup time here which might prevent using racket directly as a subshell (there are ways around this such as making the racket process a daemon). I'll be interested to see if the 'rough unscientific benchmark' numbers can reach the chez levels and to see some more scientific benchmarks (I've been trying to get the r7 repo to build to run some personal benchmarks, but haven't really had time).

Fantastic work and looking forward to what the future holds!


Note that the Chez startup time isn't that good, and even the current Racket startup time is not great (node is still maybe 5x faster to start up). We'd really like to improve this as well, but it's hard if you don't want to have your whole standard library linked into the binary.


Racket is one of my favorite languages for personal projects. Thank you Matthew Flatt for your dedication and work on this wonderful language!


Great news! With this and Gerbil, Scheme has a very bright future.


Glad to hear this hasn't stalled.


On the contrary. The racket7 repo is full of activity. In fact, I have many times wondered whether mflatt is a code producing robot. Just racket7 seems like more than a one-man job at times, with non-trivial patching of chez and lots and lots of new code.


I was just referring to going to Chez as the backend...happy it is moving along.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: