LargeIntegersPlugin 32bit-64bit updates with unit test

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

LargeIntegersPlugin 32bit-64bit updates with unit test

David T. Lewis
 
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


LargeIntegersPluginTests-dtl.8.cs.gz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: LargeIntegersPlugin 32bit-64bit updates with unit test

timrowledge
 

>
> 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; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: LB: connect Line-voltage to BITNET


Reply | Threaded
Open this post in threaded view
|

Re: LargeIntegersPlugin 32bit-64bit updates with unit test

Andreas.Raab
In reply to this post by David T. Lewis
 
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
>
Reply | Threaded
Open this post in threaded view
|

Re: LargeIntegersPlugin 32bit-64bit updates with unit test

David T. Lewis
 
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