[FIX] simulator regression-testing, 2004-07-09

Craig Latta craig at netjam.org
Fri Jul 9 22:16:44 UTC 2004


Hi all--

	I tried simulating a current snapshot (3.7b.5969) with several versions
of the VMMaker package, in both MVC and Morphic. VMMaker 3.7b5 and 3.7b4
don't work because of bugs with the primitive function-pointer stuff
that Tim added in April (apparently these changes were never tested
under simulation?). VMMaker 3.7b2 yields a bizarre situation with
Interpreter>>positive32BitValueOf: getting run when the top of the stack
is a ReadStream instead of a number. VMMaker 3.6g2 and 3.7a2 are missing
InterpreterSimulator>>primitiveGetAttribute,
InterpreterSimulatorLSB>>halfWordAt: (but not
InterpreterSimulatorMSB>>halfWordAt:, which is weird), and
SequenceableCollection>>copyGrownBy:.

	VMMaker 3.7b1 has InterpreterSimulator>>primitiveGetAttribute, but is
missing the other two things that VMMaker 3.6g2 and 3.7a2 are missing.
After patching it (patch attached), it seems to start. The open issues
first encountered are:

-	When simulating MVC, there's no simulation for FloatArrayPlugin, and
hilarity ensues when the simulator tries to store an actual Float in the
object memory bitmap.

-	When simulating Morphic, when trying to dispatch for
"primitiveBrowserPluginReady", control goes to
Interpreter>>findObsoleteNamedPrimitive:length: (instead of an override
in InterpreterSimulator, as I would expect). The Slang code there
attempts one of its famous "at: 0" expressions, then bang. I guess the
simulation for that stuff has never been written.

	I've mostly been simulating 3.2 and 2.2 snapshots myself, with very
pedestrian plugins or no plugins at all, so I hadn't encountered those
issues. And I could have sworn the items in the attached patch had been
in VMMaker for some time, sorry for assuming incorrectly in my previous
message.

	Anyway, we seem to be in decent shape; the things that don't work seem
to be things that have never worked. :)  Happy hacking... I probably
wouldn't get to the open issues myself for some time. I'm currently
occupied with much weirder Squat stuff. But as usual, I would
reprioritize if someone paid me. :)


	thanks,

-C

--
Craig Latta
improvisational musical informaticist
craig at netjam.org
www.netjam.org
[|] Proceed for Truth!
-------------- next part --------------
'From Squeak3.7beta of ''1 April 2004'' [latest update: #5969] on 9 July 2004 at 2:19:12 pm'!

!InterpreterSimulatorLSB methodsFor: 'memory access' stamp: 'crl 7/9/2004 13:49'!
halfWordAt: byteAddress
	| lowBits |
	lowBits _ byteAddress bitAnd: 2.
	^((self longAt: byteAddress - lowBits)
		bitShift: (0 - lowBits) * 8)
		bitAnd: 16rFFFF! !


!SequenceableCollection methodsFor: 'copying' stamp: 'crl 7/9/2004 13:45'!
copyGrownBy: delta
	"Return a copy of self whose size is larger by delta.  The new elements will be filled in with nil or zero depending on the type of class (holds pointers or bytes/words)"

	| copy |
	copy _ self species ofSize: self size + delta.
	copy replaceFrom: 1 to: self size with: self startingAt: 1.
	^ copy! !



More information about the Squeak-dev mailing list