6 ms·
Practical Scheme
- valorzard 1y agoWhat scheme do I used if I want to compile to a standalone executable on both Linux and windows? (That’s not Racket)
- ducklord 1y agohttps://github.com/cisco/ChezScheme https://github.com/cisco/ChezScheme
- kragen 1y agoI have not been able to get usable executables out of Chez, even on Linux, although it's nice and fast when used the normal way.
- crusty_jpeg 1y agoThe best way I've found to make a standalone executable is to compile my scheme program into a .boot file and embed it, along with Chez's .boot files, into a small C program that then calls the scheme program. All of the necessary functions to create such a C program documented here: https://cisco.github.io/ChezScheme/csug10.0/foreign.html#./foreign:s186 https://cisco.github.io/ChezScheme/csug10.0/foreign.html#./f... The relevant functions for this applictation are: Sscheme_init Sregister_boot_file_bytes Sbuild_heap Senable_expeditor (if you want to use Chez's builtin REPL) Sscheme_start Sscheme_deinit I'd post an example program, but I've not got access to my development machine at the moment.
- kragen 1y agoThank you! I wonder how much extra work it is to use Racket code in such a program. (Because that was what I wanted to do.)
- shawn_w 1y agoKawa + GraalVM? I think there's been some work lately to improve Chicken's Windows support.
- cess11 1y agoLikely Chez, but you provide too little information to be sure what might be a good option.
- valorzard 1y agoI’ve tried chez exe and I can’t tell if it’s bit rotted or if it just doesn’t work on windows anymore
- forgotpwd16 1y agoGauche that is hosted on this site can do it. It does by statically linking the entire Gauche system so may not be the best option. Besides Chez (compiling to native code) that sibling comments mentioned, other options are CHICKEN and Gambit compiling to C (CHICKEN docs provide instructions to even cross-compile[0]). [0]: http://wiki.call-cc.org/man/5/Cross%20development#cross-development http://wiki.call-cc.org/man/5/Cross%20development#cross-deve...
- zem 1y agoi am fairly sure chicken can do this (never used it on windows myself but the homepage lists all three major platforms). it worked great for building executables on linux and it had a good ecosystem of packages.
- valorzard 1y agoI’ve been able to build chicken on Linux kinda, but no dice on windows Edit: oh woops the maintainers responded to me on the mailing list! I should probably respond back https://lists.nongnu.org/archive/html/chicken-users/2025-10/index.html https://lists.nongnu.org/archive/html/chicken-users/2025-10/...
- hedari 1y agoOthers have already pointed out several good options. Let me add one more: Gambit Scheme https://gambitscheme.org/ https://gambitscheme.org/
- valorzard 1y agoI 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
- whizzter 1y agoImho 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).
- packetlost 1y agoGerbil gives you a lot of the niceties of Go and Racket on top of Gambit, I highly recommend it: https://cons.io https://cons.io
- kragen 1y agoI've found Chicken reasonably good at compiling to a standalone executable on Linux. Because of how it works I imagine you can get it to work with msys too.
- Boxxed 1y agoI've always liked bigloo. It's probably the most pragmatic of the schemes in my opinion. It never gets the attention that chicken and gambit get, though, and I've always wondered why.
- cess11 1y agoOh, right, I forgot about that one. As I remember, it's a good recommendation. I'm guessing it doesn't get much chatter due to INRIA being not very good at promotion of the stuff they do, and Bigloo doesn't have the academia-industry-matrimonial push that e.g. Pharo has received.
- precompute 1y agoIt can't make a standalone executable, but Babashka might be useful.
- Borkdude 11mo agoYou kinda can: https://github.com/babashka/babashka/wiki/Self-contained-executable https://github.com/babashka/babashka/wiki/Self-contained-exe...
- whateveracct 1y agoctrl+F "chez" 0 results why? it's so good
- cess11 1y agoIt's represented where appropriate, e.g. here: https://practical-scheme.net/wiliki/schemexref.cgi?ChezScheme https://practical-scheme.net/wiliki/schemexref.cgi?ChezSchem...
- lucas_membrane 11mo agoSeeing all those SRFI's listed, etc, on that page (63 of them), is astounding. How long would I have to work with scheme to get to comprehend what each represents without looking them up Captain Wimby's Bird Atlas of Nomenclature? What percentage of the people who take the time to read that page, for example, if they are trying to learn if Chez Scheme might fit their needs for a language implementation, are going to get a good idea about anything by scrutinizing that list? Isn't that like a bookstore filling its advertising with a list of ISBNs? I have tried to do some stuff with scheme at times in years past, and when I saw such lists galore with no plain-language information attached while trying figure out which tool to grab, it gave me some idea that the scheme community was a somewhat isolated ethnocentric culture of its own.
- forgotpwd16 1y agoPage doesn't seem to be all-inclusive in vein of awesome lists (such as github:schemedoc/awesome-scheme) but concentrated to author's own projects (Gauche and apps/libs). And maybe doesn't get updated beyond those (e.g. Bigloo homepage has been moved to https://www-sop.inria.fr/indes/fp/Bigloo/ https://www-sop.inria.fr/indes/fp/Bigloo/ years ago; probably before Chez became open which may be another reason it didn't made it to the list).
- GuestFAUniverse 1y agoWhere's the "practical" one that site really reflected? I liked scheme as a learning tool and got highest grades. That doesn't change my impression that most of the sites covering it are mental masturbation. Puzzles, or programs for the sake of scheme itself. Where's the stuff to solve real world problems? (OK, mostly solved by other languages anyway... Still: where is the content that really wants a junior to try it out for routine problems and the senior tonstay with it?)
- forgotpwd16 1y agoWhat you consider practical enough? The page links to a wiki software, a chat server, and a text preprocessor. Not popular sure but all are useful, practical programs you can use.
- NuclearPM 1y agoWhen did people start saying “a software”.
- exe34 1y agoI knew a software developer a long time ago.
- ohdeardear 1y ago[dead]
- noosphr 1y agoIt is hard to find people that can support it in production. But for building makets of production systems to see where they are likely to fall over I've never found a better language. The fact that you have to build everything from scratch is a plus when dealing with the eldrich horrors that lurk in business logic - you think you can use a standard queue? Hahaha let me tell you about a 6pm spike in latency that no one could explain and was driving the cellular network of a tier two city towards failure.
- neilv 1y agoI don't know how practical this Web site is: the front page has very old information, and no recent information.
- zippyman55 1y agoMy funny Scheme story. My work place was using it in production, 1999. A ton of code was written by a VERY SMART (and famous) person and of course it worked. He delivered it under pressure, ahead of schedule and it just worked. Ok, but my frustration was that we could not find anyone to support the decoders. So, I could have 300 resumes, and zero would reference scheme. So, there I was one Sunday, a church greeter, greeting people before church on a Sunday. And a fellow greeter brought up software, and I somewhat went off on Scheme as to how difficult it was to find interview candidates for the system. Then, I turn around to greet the next person, and he had a Fricken Scheme Polo Shirt with a prominent Lambda. I am not sure if he heard me.
- neilv 1y agoObviously that was divine intervention. Atheists in 1999 might have to go Usenet comp.lang.scheme to find Scheme experts. (Scheme polo shirt at church in 1999? My first guess is around Rice University. Second guess is Indiana.)
- imglorp 1y agoYale possibly. https://paulgraham.com/thist.html https://paulgraham.com/thist.html And of course MIT. https://archivesspace.mit.edu/repositories/2/archival_objects/312513 https://archivesspace.mit.edu/repositories/2/archival_object...
- neilv 1y agoScheme was a lot of places in 1999, so I started guessing about concentrations where someone might have had polo shirt schwag made up (e.g., Felleisen's PLT group at Rice, https://users.cs.northwestern.edu/~robby/logos/ https://users.cs.northwestern.edu/~robby/logos/ ) and a lot of churchgoing people (Texas, Indiana, and maybe later BYU/Utah). I was at MIT in 1999, and class T-shirts occasionally happened, and there were tens of churches within walking distance, for historic reasons, but not a lot of churchgoing people from the universities themselves, that I'm aware of. But who knows: toplevel works in strange and mysterious ways. > My work place was using it in production, 1999. A ton of code was written by a VERY SMART (and famous) person and of course it worked. He delivered it under pressure, ahead of schedule and it just worked. Ok, but my frustration was that we could not find anyone to support the decoders. Actually, except for the "famous" part, that sounds a bit like a major system in Scheme for which I was hired by a very smart person who'd done 10x or 100x development on it. And it just worked, and we could evolve it rapidly, and keep it just working. In 1999, it probably would have been based in New Jersey.