AsyncFilePlugin 32/64 bit clean patches (updated)

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

AsyncFilePlugin 32/64 bit clean patches (updated)

David T. Lewis
 
This an update of the 32/64 bit clean changes for AsyncFilePlugin
that I originally posted November 2007. This update adds the platform
support changes for Windows and OS X. These are not tested, but
consist of straightforward changes to type declarations and removal
of unneeded casts, so I expect no problems.

I'm adding the Windows and Mac OS patches in hopes that this will
make it easier to adopt the plugin changes in VMMaker and Subversion
in a coordinated way. On Linux, the AsyncFilePlugin compiles cleanly
and works on all combinations of 32/64 bit VM and image. Windows and
Mac OS will hopefully be problem free, and there is no RiscOS version
of the plugin.

Note that VmUpdates-1007-dtl.cs is included in this collection of
patches, but this should really be considered part of the base 32/64
bit clean VM changes, which currently consist of:
  VmUpdates-1001-dtl.cs
  VmUpdates-1002-dtl.cs
  VmUpdates-1003-dtl.cs
  VmUpdates-1004-dtl.cs
  VmUpdates-1005-dtl.cs
  VmUpdates-1006-dtl.cs
  VmUpdates-1007-dtl.cs
  JMM-VmUpdates32bitclean.cs

-Dave

The diff and change set files are:

VmUpdates-1007-dtl.6.cs
  Fix object pointer arithmetic for #asOop: in plugins.
  Changes SmartSyntaxPluginCodeGenerator>>generateCoerceToObjectFromPtr:on:
  to handle address arithmetic for 32bit/64bit image and host.

VMMBytesPerWord-dtl.1.cs
  These changes make the current values of #bytesPerWord and #baseHeaderSize
  visible to plugins to enable clean address calculations on 64bit machines.

VMMBytesPerWord-withCPP-dtl.1.cs
  VMMBytesPerWord-dtl conflicts with VMMakerCppTranslation-dtl.
  This patch merges the two. Ignore this if you are not using
  VMMakerCppTranslation-dtl.

AsyncFilePluginFixes-dtl.1.cs
  These changes fix address calculation problems on 64 bit machines and
  enable the plugin to work on all combinations of 32bit/64bit image and
  host. Corresponding changes are required in the external support code,
  which will affect all platforms (hence a coordinated change of VMMaker
  and SVN sources is required).

platforms-Cross-plugins-AsynchFilePlugin-AsynchFilePlugin.h.diff
  Patch for AsynchFilePlugin header. Affects all platforms.

platforms-unix-plugins-AsynchFilePlugin-sqUnixAsynchFile.c.diff
  Patch for unix AsynchFilePlugin support code. Similar patches will be
  required for other platforms.

platforms-win32-plugins-AsynchFilePlugin-sqWin32AsyncFilePrims.c.diff
  The Windows changes compile, but I have not tested the result. The
  changes just involve removing type casts and minor changes from int
  to sqInt, so I expect that the result will be fine.

platforms-Mac_OS-plugins-AsynchFilePlugin-sqMacAsyncFilePrims.c.diff
  Added changes for Mac OS. These are not tested, but straightforward
  enough that they should work without further modification.


asynchfilepatches-dtl.zip (11K) Download Attachment