soegaard2
2021-8-27 11:31:36

@jbclements Check npm to see whether there are an existing “display binary tree” widget. I think the odds are in your favour.


soegaard2
2021-8-27 11:32:56

jestarray
2021-8-27 13:55:11

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?


jestarray
2021-8-27 14:05:21

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


mflatt
2021-8-27 14:28:18

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.


mflatt
2021-8-27 16:33:47

For those interested in Rhombus, we’ve turned on the GitHub discussions feature at https://github.com/racket/rhombus-brainstorming/discussions


alexharsanyi
2021-8-28 03:35:35

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?


jestarray
2021-8-28 05:06:48

racket cant handle pasting in svgs unlike jpegs right? i would have to export that to a png?