Changes to ObjectMemory needed to get StackInterpreter to compile from generated source

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Changes to ObjectMemory needed to get StackInterpreter to compile from generated source


I have a mcz VMMaker.oscog-tty.661.mcz in my local package-cache if you would like me to push it live.

Here is the low-down.

Compiling the StackInterpreter from the code currently in SVN in the stacksrc directory works fine--it is probably an artifact from the last time Eliot generated the StackInterpreter source code before moving on to other things.

However, using VMMaker,cleaning out that src tree and generating new source results in code that will not compile due to mesage sends to nowhere in NewObjectMemroy>>allInstancesOf:

The compile errors look like this:

...oscogvm/stacksrc/vm/gcc3x-interp.c:10108: undefined reference to `minLargeHeaderSize'
...oscogvm/stacksrc/vm/gcc3x-interp.c:10109: undefined reference to `sizeHeaderputBodySize'
...oscogvm/stacksrc/vm/gcc3x-interp.c:10180: undefined reference to `sizeHeaderputBodySize'

the unimplemented methods are



I have not studied the VM architectures yet*, so I just flipped a coin,  and took a wild guess at fixing things.

For sizeHeader:putBodySize, I did a cut-n-paste from baseHeader:put:

sizeHeader: oop putBodySize:aWord
    ^ self longAt: oop put: aWord.

for minLargeHeaderSize, I returned BaseHeaderSize    (Hey! BaseHeaderSize just HAS to be a valid header size, soooooo, let's make that the minimum one!).


Compilation worked and the image runs. 16 failures and 2 errors in test run.

If the above is not correct, I will revisit this after my plugin study and vm architecture study.

* (I will be studying them soon, I feel pretty good about compiling from scratch now and will be moving to Plugins tomorrow--after that, 64 bits or bust baby!--which implies studying the vm architecture in depth )

VM-beginners mailing list
[hidden email]