Asm sources in Self currently use assembler's macro facilities that
differ between clang and gas. Recent versions of clang asm is gas
compatible, but then as far as I understand apple's clang is special.
llvm's asm behaves differently if "IsDarwin" and the current llvm
macro code in Self is effectively apple-only.
I'm working on a NetBSD port and NetBSD supports both gcc and clang as
system compilers. I will porbably look at the FreeBSD port too and
FreeBSD is now clang only, afaik. This makes it a bit painful to work
with the current asm sources.
Would there be any objections to switching Self i386 asm sources to
use the C pre-processor? NetBSD has been doing that for ages (for a
large zoo of CPUs) and it's quite ok.
Some examples
https://github.com/NetBSD/src/blob/trunk/sys/arch/i386/include/asm.hhttps://github.com/NetBSD/src/blob/trunk/lib/libc/arch/i386/SYS.h
just to give a general idea of what it looks like. So, e.g.
start_exported_function currentFrame
will just become
start_exported_function(currentFrame)
Or
MACRO(ret_prim_error, error_code)
...
ret_bad_type: ret_prim_error badTypeOffset
will be
#define ret_prim_error(error_code) \
... ; \
...
ret_bad_type: ret_prim_error(badTypeOffset)
-uwe
"I’ve been reading a bunch of old papers from the Self project. It’s pretty incredible how many things they invented that are absolutely essential in modern, high-performance managed language runtimes. It might be the most influential programming language that most programmers have never heard of…”
https://dubroy.com/blog/self/
For the UKSTUG 2023 holiday meeting, Simberon's David Buck will present
Beagle Smalltalk.
Over the past 8 years, David has been developing a Smalltalk virtual
machine. He used it to release two Smalltalk Games written in VisualWorks
to run on Andriod and iPhone devices. More recently, he's re-written the VM
to use its own bytecode set and written his own Smalltalk compiler to make
it a stand-alone Smalltalk environment called Beagle Smalltalk named after
the ship that took Darwin on his voyage of discovery. David plans to
release this as an open-source Smalltalk to help and encourage kids to
explore the world of programming.
In this talk, David presents the current status of the project and where he
hopes to go with it.
David Buck is the president of Simberon ( http://simberon.com/ ) - a
company that has been providing Smalltalk training and consulting for over
25 years. Along with James Robertson, David produced the Industry
Misinterpretations podcast and later the Smalltalk Reflections podcast with
Craig Latta. David remains a Smalltalk enthusiast and works to spread the
word about Smalltalk.
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/290409453/ ) to receive the
meeting details.