Live data from Hacker News

MIT Scheme on Apple Silicon

kennethfriedman.org

11–20 of 87 posts

Re: MIT Scheme on Apple Silicon

#11
post #10
post #5

Earlier quoted context omitted.

It's also a bit disingenuous to say it's "on Apple Silicon" when you're running it through a translation layer that won't exist in a few year's time. I'd wager the reason why the GNU folks say it doesn't run on ARM is because... it doesn't. Running it as an x86 program is mandatory, apparently.

So Java, Groovy, Scala, Kotlin and Clojure aren't running on x86, nor ARM, nor Apple Silicon?

In a lot of ways, yes. Their runtimes are so massive that saying they "run" on any of those architectures is a stretch of what is actually happening at a lower level.

Re: MIT Scheme on Apple Silicon

#12
post #10

Earlier quoted context omitted.

So Java, Groovy, Scala, Kotlin and Clojure aren't running on x86, nor ARM, nor Apple Silicon?

In a lot of ways, yes. Their runtimes are so massive that saying they "run" on any of those architectures is a stretch of what is actually happening at a lower level.

No, it's not a stretch at all. This is just nerd contrarianism.

Re: MIT Scheme on Apple Silicon

#13
post #5
post #2

I find it a bit disingenuous to say that it runs on apple silicon if you need to modify source code. Also it's not because it compiles and starts that it's fully functional. The main MIT Scheme page say that it's not possible and need significant efforts, so I would be curious to get a description as to why one claim it's impossible while the other show that it compiles and starts. Are the original authors too much a…

It's also a bit disingenuous to say it's "on Apple Silicon" when you're running it through a translation layer that won't exist in a few year's time. I'd wager the reason why the GNU folks say it doesn't run on ARM is because... it doesn't. Running it as an x86 program is mandatory, apparently.

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?

Re: MIT Scheme on Apple Silicon

#14
post #8

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 compilers (essentially what MIT Scheme is in this case), described here https://developer.apple.com/documentation/apple-silicon/port... although it's fairly cumbersome and would almost certainly require a lot of extra, MacOS specific code. I assume that's why no-one has bothered so far to port it.

Re: MIT Scheme on Apple Silicon

#15

Earlier quoted context omitted.

In a lot of ways, yes. Their runtimes are so massive that saying they "run" on any of those architectures is a stretch of what is actually happening at a lower level.

No, it's not a stretch at all. This is just nerd contrarianism.

Well, let's see. Is there a way for me to run a Java program as native machine code? Or is the code that I'm executing still a runtime that interprets a program?

Re: MIT Scheme on Apple Silicon

#16

Earlier quoted context omitted.

No, it's not a stretch at all. This is just nerd contrarianism.

Well, let's see. Is there a way for me to run a Java program as native machine code? Or is the code that I'm executing still a runtime that interprets a program?

The vast majority of the programs in the world are written in Javascript, and there's no way for you to "run" them if by that you mean "natively".

Re: MIT Scheme on Apple Silicon

#17
post #5

Earlier quoted context omitted.

It's also a bit disingenuous to say it's "on Apple Silicon" when you're running it through a translation layer that won't exist in a few year's time. I'd wager the reason why the GNU folks say it doesn't run on ARM is because... it doesn't. Running it as an x86 program is mandatory, apparently.

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 available. The first version, that allowed Intel Macs to run PowerPC binaries, was available for 5 years. Having said that, there’s no guarantee versions of MacOS beyond 5 years time will run on today’s M1 anyway (though M1 compatible versions will likely still get updates beyond then).

Re: MIT Scheme on Apple Silicon

#18
post #16

Earlier quoted context omitted.

Well, let's see. Is there a way for me to run a Java program as native machine code? Or is the code that I'm executing still a runtime that interprets a program?

The vast majority of the programs in the world are written in Javascript, and there's no way for you to "run" them if by that you mean "natively".

I'm comfortable making that distinction. JavaScript isn't executed like normal, native code, so... I still agree.

Re: MIT Scheme on Apple Silicon

#19
post #17

Earlier 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…

[deleted]

Re: MIT Scheme on Apple Silicon

#20
post #16

Earlier quoted context omitted.

The vast majority of the programs in the world are written in Javascript, and there's no way for you to "run" them if by that you mean "natively".

I'm comfortable making that distinction. JavaScript isn't executed like normal, native code, so... I still agree.

When the majority of programs in the world can't be "run" according to your definition, you might want to reconsider your definition.
Post reply on HN