What's stopping people from just compiling Scheme for ARM? The website has a separate aarch64 download it seems, so why not patch that instead of relying on Rosetta2? The vfork/fork issue and the compiler upgrade issue don't seem to be too problematic to work around, so there must be some kind of ARM limitation that's preventing Scheme from working, but what?
MacOS on the M1 processor is the first to use, and require, the W^X bit in memory, meaning that pages of memory are either writable, or can be executed from, but not both. MIT Scheme's front page says this is fundamentally incompatible with their design, and therefore it won't build. When running in the emulator, this requirement would be relaxed for compatibility reasons. There is an escape hatch for writing JIT com…
MIT Scheme on Apple Silicon
71–80 of 87 posts
Re: MIT Scheme on Apple Silicon
#72Earlier quoted context omitted.
Basically, yeah. In addition, the usual way to bypass W^X memory, using ROP chains, is also mitigated by the pointer authentication the M1 implements. It's not bullet proof, but it prevents most of the old exploit methods from working at all. You'd need to throw up a VM on an M1 Mac to learn much this way (although that'd be ideal anyway, to get an environment without other protections like ASLR) I know at least Open…
Windows has had this enabled by default for a long time: https://docs.microsoft.com/en-us/windows/win32/memory/data-e... There's a per program exception list to handle legacy programs though.
Re: MIT Scheme on Apple Silicon
#73Earlier quoted context omitted.
Apple Silicon has a (mostly) hardware translation layer, which this software is running on. There's a special aarch64 build of the software available, so it clearly runs on ARM. Perhaps there's some kind of issue specifically on macOS that makes the existing ARM port incompatible with Apple's ARM implementation?
> Apple Silicon has a (mostly) hardware translation layer… I can’t imagine what you mean by this, Rosetta 2 is a binary translation system implemented in software, based on QuickTransit. There are a few features implemented in Apple Silicon to make translation easier and more efficient, such as supporting Intel memory ordering, but thats about it. I think it’s reasonable to worry about how long rosetta2 will be avail…
Re: MIT Scheme on Apple Silicon
#74Earlier quoted context omitted.
And for Apple, Rosetta 2 was developed in-house and doesn't require continuous licensing fees to keep around (not that I'm particularly sympathetic to Apple's pocketbook.) I don't think any of those things matter; Apple will stop supporting Rosetta 2 as quickly as they can. They announced the transition to Apple Silicon will be two years and unless something unforeseen happens, that's what it's going to be. I suspect…
> A great example is 32-bit apps, where Apple gave something like an 8-year heads-up that 32-bit apps were going away, which happened a few years ago but it's not hard to find threads on HN where people are still complaining about it. But actually, I personally believe that the actual reason Apple killed 32bit support was because they didn't want to build it into Rosetta. (And they didn't want Intel computers to be a…
32-bit isn’t completely gone, it’s still on watchOS.
Re: MIT Scheme on Apple Silicon
#75That MIT Scheme includes an emacs clone that uses Scheme instead of elisp is a nice touch.
Re: MIT Scheme on Apple Silicon
#76Just a UI comment, the white highlighting of white text on a black/grey background is pretty unreadable in my browser
Re: MIT Scheme on Apple Silicon
#77Earlier quoted context omitted.
I like it, but I have only worked about 1/3 of the way through it.
What would someone who has worked through SICP learn from it (based on the first third that you've read)?
Re: MIT Scheme on Apple Silicon
#78Earlier quoted context omitted.
> But actually, I personally believe that the actual reason Apple killed 32bit support was because they didn't want to build it into Rosetta. Rosetta 2 contains functionality to correctly emulate 32-bit Intel code.
It's not the 32 bit code though, it's all the old libraries (carbon) which happen to also be 32 bit.
Re: MIT Scheme on Apple Silicon
#79Earlier quoted context omitted.
What would someone who has worked through SICP learn from it (based on the first third that you've read)?
I've also gotten through about the first 1/3. Based on this, and the table of contents, it goes into much more depth (both in terms of implementation and non-trivial illustrative examples) into a number of topics that are either only touched upon in SICP, or not discussed at all. These include combinators, generic functions, pattern matching, etc. There's a chapter on propagators, which didn't even exist when the las…
Re: MIT Scheme on Apple Silicon
#80Just fyi in dark mode on this site, the code snippets are almost unreadable