@jbclements Check npm to see whether there are an existing “display binary tree” widget. I think the odds are in your favour.
when compiling to an exe file, if you don’t use raco exe --embed-dlls playsound.rkt on windows, the resulting exe wont be able to run on other windows machines that don’t have racket installed right?
PS D:\> raco exe --embed-dlls htdp2_game.rkt
open-output-file: error opening file
path: D:\htdp2_game.exe
system error: The process cannot access the file because it is being used by another process.; win_err=32
context...:
C:\Program Files\Racket\collects\compiler\embed.rkt:1562:6
C:\Program Files\Racket\share\pkgs\compiler-lib\compiler\commands\exe.rkt:100:0
body of "C:\Program Files\Racket\share\pkgs\compiler-lib\compiler\commands\exe.rkt"
C:\Program Files\Racket\collects\raco\raco.rkt:41:0
body of "C:\Program Files\Racket\collects\raco\raco.rkt"
body of "C:\Program Files\Racket\collects\raco\main.rkt" htdp2_game.rkt source: #lang racket/base
(require 2htdp/image)
(require 2htdp/universe)
(println "hello world") is it already known that raco exe --embed-dlls htdp2_game.rkt doesn’t work? Without the --embed-dlls it works fine though
To make an executable work on other platforms, in general you should use raco dist to package the result of raco exe. But on Windows, using --embed-dlls will typically also make the executable work elsewhere.
The error above when using --embed-dlls looks like a problem where htdp2_game.exe is still running, so the file can’t be replaced.
For those interested in Rhombus, we’ve turned on the GitHub discussions feature at https://github.com/racket/rhombus-brainstorming/discussions
If I understand correctly, many packages require additional files using define-runtime-path, and these files are still referenced from their original locations (making the executable run only on the local machine). raco dist will also package these files to be referenced from the dist directory.
For example, if you use the gregor package on windows, it will reference the tzdata package which contains timezone information files. A program that uses gregor will need a dist step even if --embed-dlls is used when creating the executable.
To me it means that
> But on Windows, using --embed-dlls will typically also make the executable work elsewhere. should probably read:
> But on Windows, using --embed-dlls will make the executable work elsewhere in some limited situations. Am I wrong?
racket cant handle pasting in svgs unlike jpegs right? i would have to export that to a png?