|
From: Dan I. <Da...@Sq...> - 2004-07-10 16:49:15
|
tim Rowledge <ti...@su...> wrote.. >With the two fixes I sent you in between packing boxes and disconnecting computers it should simulate about as well as can be expected right now. >As you've discovered, there are parts of some plugins which were not written with support for the simulator in mind. For example, 6 methods send strlen: and 7 strcmp: - neither of which are simulated. Well, my expectations are higher, but you're right that some recent additions seem never to have been simulated. >BalloonEngine>>#primInitializeBuffer: looks suspicious to me from a quick scan mainly because resetGraphicsEngineStats fills up 'workBuffer' which most likely needs to be wrapped in a CArrayAccessor in the BalloonEngineSimulation code. See BalloonEngineSimulation>smallSqrtTable for an example involving a small array. If Andreas is listening, it would be *extremely* useful to me to know how this is supposed to work. In other words if everything should fail in simulation, or if some or all of it will have to run in slang code. And whether that slang ever ran in simulation, or only in translation to C. >Interpreter>primitiveTruncated fails for utterly obvious reasons - the line self cCode:'pushInteger((int) trunc)' inSmalltalk:[self pushInteger: rcvr truncated]] quite obviously doesn't do a range test on the truncated number and since a very large float can easily exceed an acceptable 32bit int, kaboom. Yes, I fixed this way back. >All of the improvements Ned (&I) proposed in april when you started looking at 64bitness are in the VMMaker3-7b5 package. The extra two fixes compensate for the latest work on dispatching direct function addresses in the message sending. > >Aside from some places where the perpetrator of code can remember doing something unsimulable, the only real answer is to run till it breaks and find a fix each time. Ny experience is that this is tedious, time consuming and utterly unappreciated work that nobody cares about until they have a problem. Much like most VM work in fact :-) Having just bashed most of the kernel into execution of a true 64-bit image with a true 64-bit ObjectMemory, I'm pretty much into the tedium. I do appreciate what everyone has done before, and the best form of that appreciation in my mind would be for me to get things working right again, and to leave some basic tests in place that will make it easy for the guides or whoever to check that most everything is right before any major release. - Dan |