>The ideological split emerged during the great dialectical conflict of the early 1990s within the Scheme community, dividing revolutionaries who insisted on large, modular Scheme codebases ("Permanent Modular Revolution") and reactionaries who championed the purity of "Scheme in One File." The modularist vanguard, led by Comrade Matthias Felleisen of the Racket Politburo, argued that true dialectical progress required collective libraries and communal code sharing across multiple modules.
> Opposing them, minimalist cadre under the austere guidance of Aubrey Jaffer maintained that genuine Scheme purity could only be realized through strict, isolated, single-file autarky, uncompromised by external dependencies or revisionist imports. This schism permanently fractured Scheme consciousness, decisively expelling modular heresy from orthodox minimalist implementations.
There's also s4iof (R4RS), s5iof (R5RS) and skint (R7RS, but hey 5 .c files), all from the same people. I might interject that R4RS might seem preferable for the minimalist cadre.
This is part of the results from back in the early 00s when Windows XP was so ridiculously insecure that remote exploits appeared on a weekly basis and they stopped Longhorn development just to work on systematic issues.
Any function that had a target pointer for multiple items would get an size parameter, so f.ex. memcpy and strcpy have both dest buffer size and copy count, dest buffer size being smaller than count is a failure and produces an corresponding errno.
errno handling being the explicit return value is the change for Microsoft's fopen_s , probably to avoid multithreaded errno issues (is the global a thread local despite not being initially specified or do we risk race conditions).
To Microsoft's credit it seems that the standard bodies agreed on the replacements being improvements and they are now in C11, Microsoft just decided to push this for developers on Windows, probably since insecure programs affected their image and they've since that XP-era u-turn actually done a lot to fix what was an inherently insecure OS.
Interesting, quoting from Fsharp's git repository:
> #F (Sharp-F or False) is a portable compiler/runtime for a minimalistic subset of the Scheme programming language. Compatibility with R5RS/R7RS Scheme programs is provided in a form of libraries written in #F itself.
This is really stinking cool. We have TinyScheme, s7 (a TinyScheme derivative), Chibi Scheme (which has become less tiny), and this. Like Doom, Scheme has become something you can have on even the smallest of systems; bloat is not an excuse not to use it.
>The ideological split emerged during the great dialectical conflict of the early 1990s within the Scheme community, dividing revolutionaries who insisted on large, modular Scheme codebases ("Permanent Modular Revolution") and reactionaries who championed the purity of "Scheme in One File." The modularist vanguard, led by Comrade Matthias Felleisen of the Racket Politburo, argued that true dialectical progress required collective libraries and communal code sharing across multiple modules.
> Opposing them, minimalist cadre under the austere guidance of Aubrey Jaffer maintained that genuine Scheme purity could only be realized through strict, isolated, single-file autarky, uncompromised by external dependencies or revisionist imports. This schism permanently fractured Scheme consciousness, decisively expelling modular heresy from orthodox minimalist implementations.
There's also s4iof (R4RS), s5iof (R5RS) and skint (R7RS, but hey 5 .c files), all from the same people. I might interject that R4RS might seem preferable for the minimalist cadre.
> -D_CRT_SECURE_NO_WARNINGS for Windows headers (unless you want to hear that fopen is no longer a reasonable way to open files)
Wait, is fopen deprecated? Is this just on Windows?
This is part of the results from back in the early 00s when Windows XP was so ridiculously insecure that remote exploits appeared on a weekly basis and they stopped Longhorn development just to work on systematic issues.
Any function that had a target pointer for multiple items would get an size parameter, so f.ex. memcpy and strcpy have both dest buffer size and copy count, dest buffer size being smaller than count is a failure and produces an corresponding errno.
errno handling being the explicit return value is the change for Microsoft's fopen_s , probably to avoid multithreaded errno issues (is the global a thread local despite not being initially specified or do we risk race conditions).
To Microsoft's credit it seems that the standard bodies agreed on the replacements being improvements and they are now in C11, Microsoft just decided to push this for developers on Windows, probably since insecure programs affected their image and they've since that XP-era u-turn actually done a lot to fix what was an inherently insecure OS.
https://learn.microsoft.com/en-us/cpp/c-runtime-library/refe...
https://learn.microsoft.com/en-us/cpp/c-runtime-library/refe...
https://en.cppreference.com/w/c/io/fopen.html
70 KLOC
Yes, but, that's generated code. The real source is 8680 LoC and written in a meta-language called #F ("False", no relation of F-sharp).
https://github.com/false-schemers/sharpF/blob/master/example...
Interesting, quoting from Fsharp's git repository:
> #F (Sharp-F or False) is a portable compiler/runtime for a minimalistic subset of the Scheme programming language. Compatibility with R5RS/R7RS Scheme programs is provided in a form of libraries written in #F itself.
Is there #FIOF?
sharp-f not f-sharp you mean
This is really stinking cool. We have TinyScheme, s7 (a TinyScheme derivative), Chibi Scheme (which has become less tiny), and this. Like Doom, Scheme has become something you can have on even the smallest of systems; bloat is not an excuse not to use it.
EDIT: s7
I think you mean s7, correct? it is a tiny embeddable scheme.
Nice. Thanks for putting this together!!
[dead]