I have spent a couple of evenings kicking the source tree to get it to
compile on NetBSD/macppc, hoping for some low-hanging fruits to fall.
I see from the history that the port was removed but then David rolled
that change back, so I guess it's not entirely unwanted.
I pushed the results to github:
https://github.com/nbuwe/self/tree/feature/netbsd-macppc
This branch is off the feature/netbsd-i386 branch that Russell might
hopefully merge to dev.
The changes are confined to the ppc subdir except for bringing back
ppc support in cmake files and one small tweak to netbsd-specific
kludge in allocation.cpp. These changes should not affect i386 builds
in any way.
One manual kludge I have to use to build the tree is to compile only
the search_ppc.cpp file with -maltivec - my cmake-fu is non existent,
so I don't know how to do express that properly.
(I tried to keep macosx/ppc parts intact. I guess I can eventually
set up macos on an external drive - I have the retail dvd for the last
version that supported ppc - and see if it compiles, but I guess the
demand for that is vanishingly small and I'd rather sink my not so
copious free time into making it actually work on netbsd. :)
The resulting binary doesn't work - not that I expected it to. After
I had time to look past the surface level problems of making it to
compile, I see that the frame code is written for the macos ABI:
Inside Macintosh: Introduction to PowerPC System Software, 1-44
https://developer.apple.com/library/archive/documentation/mac/pdf/PPC_Syste…
so of course that doesn't work on ELF ABI with a different stack frame
layout.
Adapting to ELF ABI (while, ideally, not breaking macos) is a bit too
much for my current time budget. I realize there's probably not much
practical demand for the working ppc port, but doing these changes was
quick and easy, didn't break anything (hopefully) and that leaves it
in a batter shape. So on an off chance that someone might be
interested in picking this up, the tree is in a mostly buildable
state. Broken windows theory and all that...
-uwe
WebAssembly (WASM - https://wikiwand.com/en/Webassembly ) is an instruction
format for portable high-performance code, run by a stack-based virtual
machine. To Smalltalkers, this sounds very familiar. WASM is supported by
the three most popular web browsers, and by other host platforms as well.
Perhaps we can translate certain Smalltalk compiled methods to WASM,
augmenting our support for physical processors and for livecoding the Web.
For our February meeting, Craig Latta will describe his initial
experiments, using the Epigram compilation framework (
https://thiscontext.com/epigram ).
Craig Latta ( https://thiscontext.com/ ) is a research computer scientist
in Berkeley and Amsterdam, with interests including livecoding, music
performance, and interactive visualization. The discovery of a
mysteriously-placed copy of the Blue Book at university led to stints at
several exploratory labs, and a pursuit of improvisation wherever code is
found.
This will be an online meeting from home.
If you'd like to join us, please sign up in advance on the meeting's Meetup
page ( https://www.meetup.com/ukstug/events/291365015/ ) to receive the
meeting details.