3 ms·
> At the same time, the community identified that there were two groups with slightly different concerns about what R7RS Large would look like: some were concer
by twic 3y ago
> At the same time, the community identified that there were two groups with slightly different concerns about what R7RS Large would look like: some were concerned that the small language itself didn’t impose strict enough semantics for a safe high-level programming language,§
> § Indeed, the small language doesn’t even enforce bounds checking, even though almost all implementations do it. Such are the sacrifices for a language which might be expected to work on a tiny microcontroller. ↑
Okay but nobody in their right mind is writing Scheme for microcontrollers. I don't mean that nobody is doing that, but that the people who are are fringe weirdos whose desires should not be allowed to disrupt the evolution of the language for the rest of its users!
- kylec 3y agoPlus, if you want to use Scheme on a microcontroller, wouldn't it be better to use R7RS Small anyway?
- NikkiA 3y agoThat's the point, it's referring design decisions R7RS-small made, as being due to the possibility of running it on microcontrollers.
- neilv 3y agoFor production purposes, I would normally try not to run GC on a traditional microcontroller, whether it's Scheme, Python, JVM, or anything else. But it's maybe worth noting that using Scheme metalanguage abilities to generate non-GC target code for a microcontroller could be very sensible. For example, you have nontrivial control behavior, and there's a short lead time on the controller or device. So, you could define a macro/minilanguage to support modeling the behavior in terms of Harel Statecharts, and initially (for very quick development) have that expand to executable normal Scheme code, for development/testing/simulation. Then, once you've gotten the behavior you want, you tweak the macro/minilanguage a little, to also expand to non-GC target assembly, for the microcontroller dev board or device that you ordered when you started. (Racket syntax extension and submodules are especially nice for doing something like this, but you can also do it with more basic Scheme.)
- rcarmo 3y agoYou can take uLisp (http://ulisp.com http://ulisp.com) as an example there.
- djha-skin 3y agoCisco is a major backer and implementer of its own scheme implementation. Cisco only ever works on embedded stuff so it makes me think that somebody is doing it somewhere.