[Vm-dev] CRC fix input (David T. Lewis)

ken.dickey at whidbey.com ken.dickey at whidbey.com
Mon Jul 25 13:36:23 UTC 2022


Dave,

Many thanks for the explanations.

At this point I am using the image scripts to generate a VMMaker image, 
which on RasPi4 Linux gets close and dies, but I am able to run the 
CoInterp init methods and generate code.

One wrinkle with the Squeak 6 version is that attempting to open a repo 
in the Monticello Browser (e.g. VMMakerInbox) generates "Error: 
primitiveSSLCreate failed".

I was able to access the repos via a 5.3 Squeak image and use the 
package-cache to be able to load a Monticello package into VMMaker.

I am able to generate and build aarch64 and riscv64 images for test.

The ThreadedRiscV64FFIPlugin shares much of the mechanics with 
ThreadedARM64FFIPlugin so is a subclass.  Because of this, some updates 
for riscv64 require a change to the ThreadedARM64FFIPlugin level.

The problem of the week is to get the C casting/coercion right for both 
arm64 and riscv64, but [A] I have not used C much in the last couple of 
decades and [B] I don't yet get know the VMMaker idioms to get the 
generated code to do what I want.  Still learning.

I know what I want at the CPU/machine/asm level and can get the (hacked) 
generated C code to work on both arm64 and riscv64 VM binaries (in the 
opensmalltalk-vm github repo see 
src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c) but have not yet figured 
out how to teach VMMaker how to get a clean RiscV64FFIPlugin.c from the 
Smalltalk source.

The problem is to get the FFI called function to return the properly 
cased float/double/other as the riscv64 gcc is very finicky to stick to 
the strict ABI.  Much less forgiving (or less creative) than the arm64 
gcc codegen.

So I am currently in an observe, theorize, test, repeat (er, hack, gen 
code, build) cycle as I learn the mechanics and I am re-remembering all 
the reasons I droped development in C in favor of Smalltalk.

If you are deep into the mechanics, you can take a look at the attached, 
but I will be experimenting in the mean time.  I am happy to do an 
off-line if you have a deep desire to get into the weeds on this, but I 
suspect a bit more experimenting will get the Smalltalk->C->gcc->run 
end-to-end up.

Thanks once again for the kind background description.
-KenD

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ThreadedARM64FFIPlugin-ffiCalloutToSpecOnStackin.st
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20220725/221b0362/attachment.ksh>


More information about the Vm-dev mailing list