I have committed the 64-bit SoundPlugin updates to SqS/VMMaker.
Ian, John, Andreas: please proceed with platforms updates at your convenience (see below for details).
As a point of reference:
- Platforms sources in Subversion are currently at revision 2147.
- VMMaker version 3.11.11 (VMMaker-dtl.155) works with SVN 2147.
- The updated VMMaker is 3.11.12 (VMMaker-dtl.156). This will be out of sync with the SVN sources until the sound plugin platforms patches are applied.
Note to other VM builders: If you have compile errors building SoundPlugin, use VMMaker-dtl.155 or earlier until the necessary patches have been applied. See Mantis 7103 for background.
Thanks, Dave
On Tue, Dec 29, 2009 at 02:09:11PM -0500, David T. Lewis wrote:
Updates to the platforms code and VMMaker are needed to make SoundPlugin work on 64-bit platforms. This is a coordinated change affecting all platforms.
I'm not sure of folks' schedules right now, so Ian, John, Andreas - are you available to do the updates over say the next two weeks or so?
The following steps are required:
Dave:
- Update SoundPlugin in VMMaker with patches from Mantis 7103.
Ian:
- Update platforms/Cross and platforms/unix. The diffs on Mantis 7103 are slightly out of date, so I am attaching a fresh copy of the affected files (M7103-platforms.tgz). These are: platforms/Cross/plugins/SoundPlugin/SoundPlugin.h platforms/unix/plugins/SoundPlugin/sqUnixSound.c platforms/unix/vm/SqSound.h platforms/unix/vm-sound-ALSA/sqUnixSoundALSA.c platforms/unix/vm-sound-NAS/sqUnixSoundNAS.c platforms/unix/vm-sound-Sun/sqUnixSoundSun.c platforms/unix/vm-sound-MacOSX/sqUnixSoundMacOSX.c platforms/unix/vm-sound-null/sqUnixSoundNull.c platforms/unix/vm-sound-OSS/sqUnixSoundOSS.c
Andreas:
- Update platforms/win32/plugins/SoundPlugin/sqWin32Sound.c to match the new declarations in SoundPlugin.h. I believe this will involve only changing various int declarations to the appropriate sqInt or (void *) declarations, then testing to make sure sound still works. However, I have not tried a windows build to verify this.
John:
- Update the files in platforms/Mac OS/plugins/SoundPlugin/ with declarations to match SoundPlugin.h in Cross. I'm not sure what needs to be done here, although I think that current OS X support is based on the unix SoundPlugin, so you may be able to use the update in platforms/unix.
- I'm not sure of the implications (if any) for your new VM work or for iPhone.
Dave
--- background ---
For reference this was the suggested "to-do" list that I posted a while back. These updates will complete step #2 on the list. Note, with John's recent 64-bit work and new VM development, we will no doubt have a few new items to add to the list :)
- Closure support (COMPLETE)
- Priority: High, should be done as soon as possible
- All major VM distributions should support images with closure bytecodes.
- Changes to support Etoys and teaching for kids.
- Priority: High, supports large educational programs.
- Mantis 7266: SerialPlugin doesn't handle arbitrary nodes names (COMPLETE)
- Mantis 7103: Playing sounds in linux 64 bits causes a vm segmentation fault (subject of this note - NEXT UP on the list)
- Some simple updates for 23/64 bit platforms.
- Priority: Low
- Mantis 7236: Make AsynchFilePlugin work on 32/64 bit images and 32/64 bit unix VMs
- Mantis 6828: make FileCopyPlugin work on 32/64 bit images and 32/64 bit unix VMs
- Current status: These are minor updates, low priority but easy to do. Patches are available but must be coordinated for all platforms.
- 64-bit FFI (Interpreter updates as well as FFI)
- Priority: Medium
- Mantis 7237: Make FFI work on 64 bit platforms
- Current status: Patches are available, but additional work and testing may be required on some platforms. I consider this update important because it effects the interpreter as well as FFI itself, e.g. these changes are a prerequisite to closing out the issues in Mantis 6987: "signed32BitValueOf:, signed64BitValueOf: etc. broken".