Hi Mike,
> On Sun, Nov 15, 2009 at 11:48 PM, talksmall <
stephenlr...@googlemail.com> wrote:
>
> > Hi Mike,
> > The OSX porting work that I did was under 10.5. I don't have access to
> > a 10.4 system to test on. The other point to be aware of is that the
> > OSX port, like with the Linux port, is command line only for the time
> > being.
>
> Yes, I understood this from the google code site. I was just
> wondering what the compile process was for *nix systems (like OS X &
> linux) and whether or not I could compile my own binary from the
> latest source on 10.4 in the same manner as I would for Linux. I
> downloaded the latest source but couldn't find a proper Makefile. You
> mentioned Xcode... is this how you compiled your binary in 10.5?
The short answer is yes, I built the binary using XCode. If you check
out the gcc-linux branch from SVN you will find a build.osx directory
and within that you will find the XCode project.
In addition to that checkout, you will also need an image and sources
bundle (specifically the strongtalk.bst image file and the source
directory and its files) from the latest archive available on the
downloads page (
http://strongtalk.googlecode.com/files/strongtalk-r181-
image%2Bsources.tgz). For OSX (and Linux for that matter) you can
effectively ignore the comment suggesting that this is for versions
r181 and later - the only significant change to the VM has been the
addition of a debugging primitive only relevant to the GUI debugger.
I used Xcode v3.1.3 to build the binary in the downloads section,
though I have no reason to believe that the most recent version will
cause any problems. Just to satisfy myself that it all still works I
just rebuilt the app and all the Smalltalk level tests pass (I haven't
yet tried to integrate the VM-level C++ tests with the OSX build). I
had one tiny error to fix in ClassChange::compute_needed_schema_change
() (found in vm/memory/reflection.cpp) due to different treatment of
the redeclaration of a loop index variable between MS and GCC. Removal
of the redeclaration fixed that. I'll upload the change to SVN.
I also tried building against the 10.4 SDK. The only problem seems to
be the absence of the getcontext(ucontext_t*) library function which
does not appear to be defined in the 10.4 SDK. This is not critical to
the operation of the VM. Commenting out the body of the
os_dump_context method in os_darwin.cpp allows the project to build
and run on my OSX 10.5 iMac.
As I mentioned, I don't have a 10.4 box to try it out on, but I'm
happy to upload the binary if you want to test it out. Alternatively,
I'll do my best to help if you want to build it yourself.
Regards, talksmall
PS. the reason that this is on the gcc-linux branch is historical; my
first involvement with Strongtalk was porting the code to linux and
the results were on this branch. At some stage we should merge this
back into the trunk, as this is now the leading edge of Strongtalk
development, but for the time being it resides on the gcc-linux branch.