I tried to compile the VM on Darwin i386, but I got this error after compiling it strictly
following your instructions (after adding the header paths for X11, it worked smoothly)
[Session started at 2006-10-06 18:43:07 +0200.]
Self VM fatal error (/Users/niko/self/vm/mac_osx/vm_project/../../src/any/lookup/
sendDesc.cpp, line 457): first_sendDesc() has wrong lookup type
the debugger wouldn't tell me what the lookup type is, but I could fix the code to print it
to stdout, if that was necessary.
I've sent this mail before, only that it seemed to not have arrived. Well, since then I played
a bit more with the compliation settings to see what I can do, and I found out a couple of
interesting things, among which the precompiler line GCC3=1, which I found remarkable,
because the gcc3 for intel macs does only prodce output for ppc.
So, Self is meant to compiled with gcc4.0.1, right? Does it even make a difference?
I tried to compile the VM on Darwin i386, but I got this error after
compiling it strictly following your instructions (after adding the
header paths for X11, it worked smoothly)
[Session started at 2006-10-06 18:43:07 +0200.]
Self VM fatal error (/Users/niko/self/vm/mac_osx/vm_project/../../src/
any/lookup/sendDesc.cpp, line 457): first_sendDesc() has wrong lookup
the debugger wouldn't tell me what the lookup type is, but I could
fix the code to print it to stdout, if that was necessary.
I'm designing a network protocol where I need to serialize objects, and I'm trying to use some Self ideas.
I've been studying the memory representation of objects and I can understand almost everything, except for the "virtual function pointer", the fourth word of a map. What does it do, and how does it look? (I guess it's an array of pointers to native functions, but I don't know what they do).
Another question is how the Literal array of Bytecode object looks like? Is it an array of SmallInts/tagged pointers? How are the closures implemented and where are they stored?
And why is there only one literal array? I think it serves two functions, a) method names, and b) literals. No element can serve both functions. So splitting it into two arrays would save some INDEX-EXTENSION opcodes, while requiring some contant overhead. Am I right, and have the designers decided that it's better the current way?
Also, how is the Bytecode array of Bytecode object ended? Is there a length field somewhere, and when all the bytecodes are interpreted, the top of the current stack is pushed into the caller's stack?
Thanks for any tips. I couldn't find these things in Sun's documentation and I'm not quite able to face the Self source code...
Jecel Assumpcao Jr schrieb:
> > Alex suggested that the problem might have something to do with different
> > versions of Xcode. We've been using Xcode 2.3. I don't know whether that's
> > likely to make a difference or not.
> I thought you guys might have been using Xcode 3.0 already - I doubt
> there would be any real difference between 2.0 and 2.3. My problem was
> very likely to have been in the uncompression stage.
There is a difference. Xcode 2.0 uses the .xcode extension / bundle
format and Xcode 2.2 switched to the .xcodeproj extension / bundle
C. Ramakrishnan cramakrishnan(a)acm.org
Illposed Software http://www.illposed.com
I'm not sure what to tell you about the .xcodeproj file. I don't know much
about Mac OS "bundles." On my machine (a Powerbook running Mac OS 10.4.7),
when I download the Klein distribution from the website and double-click it
to unzip it, I can find the klein_C_code.xcodeproj file and it shows up
correctly (as a single bundle, not a directory).
Alex suggested that the problem might have something to do with different
versions of Xcode. We've been using Xcode 2.3. I don't know whether that's
likely to make a difference or not.
Is your Macintosh PowerPC-based or Intel-based? I'd be happy to send you my
kleinDebugServer executable, but I've only got a PowerPC version.
In any case, though, you shouldn't need the debug server just to browse
through the sources. At what point during the file-in process do you run
into errors? (What does the console output look like?) The postFileIn for
the vmKits module tries to run Klein's automated test suite (which requires
the debug server to be working), but by the time you get to that point, all
the Klein source code has been filed in. Assuming you've gotten to that
point, you should be able to browse through the sources (maybe after closing
the existing Self world and opening a new one) with no trouble.
On 9/29/06, Jecel Assumpcao Jr <jecel(a)merlintec.com> wrote:
> This is a bit off topic, but yesterday I was trying to install Klein 0.1
> into a Self 4.3 image on a Mac running MacOS X 10.4 but was unable to
> follow this simple instruction:
> - Use Apple's XCode to open up the klein_C_code.xcodeproj file in the
> klein_C_code/xcode/klein_C_code directory.
> One problem is that I have a directory with that name, not a file. Given
> the "bundles" stuff in MacOS X (where a directory can mascarade as a
> file some of the time) I figured that this might be normal, but trying
> to open this from Xcode 2.0 has no effect at all. Inside the directory I
> see three files: project.pbxproj, ungar.mode1 and ungar.pbxuser
> Clicking on the first or the third opens up Xcode but with no project
> open. And trying to open these files from Xcode also has no effect. By
> that I mean everything is exactly as before and there are no error
> messages at all.
> Since when loading Klein into Self it runs a lot of stuff and then
> crashes due to the missing debugServer I didn't get very far. I am not
> actually planning to run Klein but just to browse through the sources
> (which I could do in any text editor loading the .self files directly,
> but outliners are soooooooo much prettier!).
> -- Jecel