- New Racket CS 7.8: CS is Chez Scheme, BC is the old half-assed C runtime.
Big plus: ARM64 support!
Big minus: Neither DRRacket nor any built .app launches on the Mac, you have to call them from command line. Gross incompetence & zero testing.
My basic gridtest.rkt demo still takes 100ms to render a frame, needs to be <16ms. But that’s interpreting from the shell, and I may look and see if they have a more efficient graphics API.
The bigger problem is that compiling doesn’t work with packages, or at least I don’t have the right magic invocations:
% cat build.zsh #!/bin/zsh rm -rf build mkdir build # Windows: --ico foo.ico # Mac: --icns foo.icns time raco exe --cs --gui ++lib memoize ++lib rsound ++lib portaudio -o build/gridtest gridtest.rkt % ./build.zsh && ./build/gridtest.app/Contents/MacOS/gridtest raco exe --cs --gui ++lib memoize ++lib rsound ++lib portaudio -o 39.14s user 2.40s system 87% cpu 47.390 total ffi-lib: could not load foreign library path: libportaudio.2.dylib system error: dlopen(libportaudio.2.dylib, 6): image not found context...: raise-dll-error .../ffi/unsafe.rkt:131:0: get-ffi-lib call-in-empty-metacontinuation-frame proc call-in-empty-metacontinuation-frame body of '#%embedded:portaudio/portaudio: temp35_0 run-module-instance! [repeats 6 more times] perform-require! call-in-empty-metacontinuation-frame eval-one-top eval-compiled-parts embedded-load proc call-in-empty-metacontinuation-frame
Well, that’s fucked. 40 seconds and a fuck you because it doesn’t bring in the dylib it needs.
Obviously I could just say “install Racket, run this script”, but that’s lame and distributes source, which in a real game I don’t want to do.