Has any one built a vanilla PPC VM on a Mac directly from the 2.3 image sources, using Code Warrior3.2 or newer?
I just did that, in anticipation of some fiddling with the VM, and found 3 small items (1 and 3 may be related).
1. There is a reference to a constant, 'kCurrentFragArch' which doesn't seem to be in any of the header files.
2. There is an 'long' variable named 'junk' in the sound support file, which the compiler thinks should be 'unsigned long'.
After making changes to the source support files with my fingers for these two items, I get a useable VM to link, but then:
3. The named plugin mechanism seems to have trouble finding the VM file itself as a plug in source.
These could easily be my own clumsiness; if you've made a clean VM from the image sources, I'd appreciate advice or a copy of the project file that you used.
...Tom M
Has any one built a vanilla PPC VM on a Mac directly from the 2.3 image sources, using Code Warrior3.2 or newer?
I just rebuilt one from scratch and put my notes up at:
http://www.ZenSpider.com/Languages/Smalltalk/Squeak.html
I just did that, in anticipation of some fiddling with the VM, and found 3 small items (1 and 3 may be related).
- There is a reference to a constant, 'kCurrentFragArch' which
doesn't seem to be in any of the header files.
What did you replace the constant with? kCurrentCFragArch, I believe is an old value from the Universal Headers. See my notes for a value that seems to work.
- There is an 'long' variable named 'junk' in the sound support
file, which the compiler thinks should be 'unsigned long'.
Yup.
- The named plugin mechanism seems to have trouble finding
the VM file itself as a plug in source.
I didn't test this out explicitly, but I did play with several "Play with Me" examples. Does that happen to invoke named plugins?
Ryan Davis -=- Zen Spider Software -=- mailto:zss@ZenSpider.com -=- http://www.ZenSpider.com/ -=- I know that you believe you understand what you think I said but, I'm not sure you realize that what you heard is not what I meant.
Has any one built a vanilla PPC VM on a Mac directly from the 2.3 image sources, using Code Warrior3.2 or newer?
I just did that, in anticipation of some fiddling with the VM, and found 3 small items (1 and 3 may be related).
- There is a reference to a constant, 'kCurrentFragArch' which
doesn't seem to be in any of the header files.
Change it to "kCompiledCFragArch"
- There is an 'long' variable named 'junk' in the sound support
file, which the compiler thinks should be 'unsigned long'.
Make the change:
Delay(1, (unsigned long *)&junk);
After making changes to the source support files with my fingers for these two items, I get a useable VM to link, but then:
- The named plugin mechanism seems to have trouble finding
the VM file itself as a plug in source.
In the "Edit:SqueakPPC Settings...", select "Linker:PPC PEF" and set the Fragment Name to "SqueakVMPrims". This is the fragment name the external primitive mechanism wants for internalized named primitives.
You may also need to make the PBxxxAsync calls get recognized in "sqMacAsyncFilePrims.c". The best way to do this is to insert the lines:
#undef OLDROUTINELOCATIONS #define OLDROUTINELOCATIONS 1
just before the inclusion of <Files.h>. This will have to be fixed in a bette way in the long run - I believe these particular calls are being replaced.
Good luck!
=================================================== Duane Maxwell dmaxwell (at) launchpados.com CTO http://www.launchpados.com Launchpad, Inc. (619) 578-8500 x226
Information contained herein is my personal opinion and not necessarily that of Launchpad, Inc. ===================================================
Ryan Davis, Bob Arning and Duanne Maxwell helped explain what to do to make a Mac VM, thanks very much.
Duanne's clear directions are below, or see Ryan's notes at:
http://www.ZenSpider.com/Languages/Smalltalk/Squeak.html
I've put a copy of these notes on a page on the Swiki for future reference.
...Tom M
Has any one built a vanilla PPC VM on a Mac directly from the 2.3 image sources, using Code Warrior3.2 or newer?
I just did that, in anticipation of some fiddling with the VM, and found 3 small items (1 and 3 may be related).
- There is a reference to a constant, 'kCurrentFragArch' which
doesn't seem to be in any of the header files.
Change it to "kCompiledCFragArch"
- There is an 'long' variable named 'junk' in the sound support
file, which the compiler thinks should be 'unsigned long'.
Make the change:
Delay(1, (unsigned long *)&junk);
After making changes to the source support files with my fingers for these two items, I get a useable VM to link, but then:
- The named plugin mechanism seems to have trouble finding
the VM file itself as a plug in source.
In the "Edit:SqueakPPC Settings...", select "Linker:PPC PEF" and set the Fragment Name to "SqueakVMPrims". This is the fragment name the external primitive mechanism wants for internalized named primitives.
You may also need to make the PBxxxAsync calls get recognized in "sqMacAsyncFilePrims.c". The best way to do this is to insert the lines:
#undef OLDROUTINELOCATIONS #define OLDROUTINELOCATIONS 1
just before the inclusion of <Files.h>. This will have to be fixed in a bette way in the long run - I believe these particular calls are being replaced.
Good luck!
squeak-dev@lists.squeakfoundation.org