Attached is a set of unit tests for LargeIntegersPlugin. These tests should pass on any combination of 32 or 64 bit image and virtual machine.
For a 64 bit image, the patches on Mantis 5238 (http://bugs.squeak.org/view.php?id=5238) must be applied. After applying those patches, the LargeIntegersPluginTests must be recompiled so that large integer literals are correctly compiled in the unit tests. Any other methods in the image with large integer literals must also be recompiled.
No changes to the LargeIntegersPlugin are required whatsoever.
With the Mantis 5238 patches, the plugin works for all combinations of 32 and 64 bit image and virtual machine, and passes all tests.
On a 64 bit VM and 64 bit image without the plugin: Time millisecondsToRun: [2000 factorial] ==> 3334
On a 64 bit VM and 64 bit image with the LargeIntegerPlugin: Time millisecondsToRun: [2000 factorial] ==> 51
On a 64 bit VM and 32 bit image without the plugin: Time millisecondsToRun: [2000 factorial] ==> 3454
On a 64 bit VM and 32 bit image with the LargeIntegerPlugin: Time millisecondsToRun: [2000 factorial] ==> 59
I can now vouch for the following plugins as 32/64 bit clean on unix VMs:
- BalloonEnginePlugin - BitBltSimulation - FilePlugin - SocketPlugin - LargeIntegersPlugin - OSProcessPlugin - AioPlugin - XDisplayControlPlugin - AsynchFilePlugin - FileCopyPlugin
Dave
I can now vouch for the following plugins as 32/64 bit clean on unix VMs:
- BalloonEnginePlugin
- BitBltSimulation
- FilePlugin
- SocketPlugin
- LargeIntegersPlugin
- OSProcessPlugin
- AioPlugin
- XDisplayControlPlugin
- AsynchFilePlugin
- FileCopyPlugin
Well done Dave. Many thanks.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: LB: connect Line-voltage to BITNET
That is *wonderful*. The LargeInts plugin was one of the major pending issues for 64 bit!
Cheers, - Andreas
David T. Lewis wrote:
Attached is a set of unit tests for LargeIntegersPlugin. These tests should pass on any combination of 32 or 64 bit image and virtual machine.
For a 64 bit image, the patches on Mantis 5238 (http://bugs.squeak.org/view.php?id=5238) must be applied. After applying those patches, the LargeIntegersPluginTests must be recompiled so that large integer literals are correctly compiled in the unit tests. Any other methods in the image with large integer literals must also be recompiled.
No changes to the LargeIntegersPlugin are required whatsoever.
With the Mantis 5238 patches, the plugin works for all combinations of 32 and 64 bit image and virtual machine, and passes all tests.
On a 64 bit VM and 64 bit image without the plugin: Time millisecondsToRun: [2000 factorial] ==> 3334
On a 64 bit VM and 64 bit image with the LargeIntegerPlugin: Time millisecondsToRun: [2000 factorial] ==> 51
On a 64 bit VM and 32 bit image without the plugin: Time millisecondsToRun: [2000 factorial] ==> 3454
On a 64 bit VM and 32 bit image with the LargeIntegerPlugin: Time millisecondsToRun: [2000 factorial] ==> 59
I can now vouch for the following plugins as 32/64 bit clean on unix VMs:
- BalloonEnginePlugin
- BitBltSimulation
- FilePlugin
- SocketPlugin
- LargeIntegersPlugin
- OSProcessPlugin
- AioPlugin
- XDisplayControlPlugin
- AsynchFilePlugin
- FileCopyPlugin
Dave
On Tue, Nov 20, 2007 at 07:56:17PM -0800, Andreas Raab wrote:
That is *wonderful*. The LargeInts plugin was one of the major pending issues for 64 bit!
The funny thing is that the plugin itself has been 64bit clean all along, and we just did not know it. I was expecting the "conversion" to be a big job, and it turned out to be a non-event :)
Dave
vm-dev@lists.squeakfoundation.org