←back to thread

Practical Scheme

(practical-scheme.net)
153 points ufko_org | 2 comments | | HN request time: 0.409s | source
Show context
valorzard ◴[] No.45653147[source]
What scheme do I used if I want to compile to a standalone executable on both Linux and windows? (That’s not Racket)
replies(9): >>45653161 #>>45653189 #>>45653225 #>>45653290 #>>45653324 #>>45653538 #>>45654712 #>>45655028 #>>45655451 #
hedari ◴[] No.45653538[source]
Others have already pointed out several good options. Let me add one more: Gambit Scheme https://gambitscheme.org/
replies(2): >>45653737 #>>45656770 #
1. valorzard ◴[] No.45653737[source]
I might try this next, will check out and try to build it tomorrow Shame that there’s no way to run ./configure on native windows though, I’ll have to use MSYS2
replies(1): >>45655118 #
2. whizzter ◴[] No.45655118[source]
Imho maintainers should just keep a set of pre-made header-files for a Windows compiler, a huge portion the work configure does is because we historically had:

- Bad compilers (that lacked stdlib features)

- Lacked package managers (so we need to detect versions instead of just specifying used libraries for the program)

- The mess of various nix/linux distros having differing paths (/bin or /local/bin or /usr/local/bin or whatever?) and nix binaries lacked a standardized way to just locate "themselves"

In contrast, Windows programs mostly just make an API call to detect where they live and then just load files from relative paths, this also allows for side-by-side installations of varying versions instead of multiple builds (Yes, some programs sadly needed installers but that's just bad engineering, whilst many programs have portable variants).

Considering Mac programs also are self contained I guess those also have some sane API's for program self-location.

Yes, I do realize that much of the centralization of programs harkens back to Unix multi-user paradigms with centralized management but personal computers has been the norm for some almost 40 years at this point (Even if we've moved to web mainframes instead).