hacking a 3.9 VM

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

David T. Lewis
On Sun, Oct 08, 2006 at 12:30:07AM -0700, tim Rowledge wrote:
>
> Well, I'm startled at the problems we seem to be having here.  
> Obviously, as I was developing various versions of VMMaker I was  
> actually running them and building VMs. Clearly, I wouldn't have  
> deliberately released something that didn't work when testing it.  
> However, do remember that I do not have a Windows machine nor a *nix  
> machine so can't do anything but rely on others to test and report  
> back in a timely manner. IIRC, Dave Lewis for example has not had  
> problems with building *nix VMs recently.

I have not done a Unix build since SVN 1513, so I decided to give
it a try.  Somewhere between 1513 and 1546, a new problem seems to
have crept in.

Verifying on a 32 bit Intel Linux:

start with a clean Squeak 3.8 (Squeak3.8-6665-basic.zip)
update to 3.8.1
check version
  ==> SmalltalkImage current (sic) vmVersion 'Squeak3.8 of ''5 May 2005'' [latest update: #6665]'
update Squeak Map etc
load VMMaker 3.8b6 from SM
load OSProcessPlugin 4.0.1 from SM
load AioPlugin 2.0 from SM
  ==> %$%#$! SqueakMap gives user-friendly "can't find EOCD position" error
      loaded my own copy from disk
load XDisplayControlPlugin 2.0 from SM
  ==> another $#!%@$% SqueakMap error
      loaded my own copy from disk
get an up-to-date platforms tree from SVN (1546)
open VMMaker
  ==> MessageNotUnderstood: SystemDictionary>>wordSize
  load a copy of #wordSize from a 3.9 image
  enter Mantis 5198 to get #wordSize included in the next 3.8 release
open VMMaker
make all plugins internal except OSPP, AIO, XDCP
generate 32 bit code into ./src32 directory

then from a Unix shell:
$ ln -s src32 src
$ mkdir build32
$ cd build32
$ ../platforms/unix/config/configure
$ make install
  ==> no problems with build, but...
run Squeak
  ==> image startup fails in FileDirectory class>>startUp
      fails primitive in MacHFSPlusFileDirectory class>>primPathNameDelimiter
check "Smalltalk listLoadedModules" ==> FilePlugin is not loaded
  ==> hmmm... no wonder, VMM did not include it in the plugins to be built. Lots
      of other primitives were excluded also.
     
go back to an older version of platforms tree, SVN 1513.
open new VMMaker
  ==> FilePlugin and others are now included in the plugins to build
clean out src32, generate code, configure, make install
  ==> no problems with build
run Squeak
  ==> no problems

Dave


Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

timrowledge
In reply to this post by ccrraaiigg

On 8-Oct-06, at 10:11 AM, Craig Latta wrote:

>
>
> Hi Tim--
>
>> However, do remember that I do not have a Windows machine nor a *nix
>> machine so can't do anything but rely on others to test and report
>> back in a timely manner.
>
>      I thought you had a MacOSX machine?

True - now. At the time the last lot of vm development was done I  
didn't, so, yes I should modify that statement. And I know that  
underneath OSX lurks a form of *nix but I'm not about to try  
compiling VMs suitable for dedian or whatever; I simply don't have  
time to worry about everything. Besides, if nobody else is interested  
enough to assist on such things we might as well just drop the  
project altogether.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Cave ne ante ullas catapultas ambules = If I  
were you, I wouldn't walk in front of any catapults.



Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

timrowledge
In reply to this post by David T. Lewis

On 8-Oct-06, at 10:28 AM, David T. Lewis wrote:


>
> I have not done a Unix build since SVN 1513, so I decided to give
> it a try.  Somewhere between 1513 and 1546, a new problem seems to
> have crept in.

Sigh.

>
> Verifying on a 32 bit Intel Linux:
>
> start with a clean Squeak 3.8 (Squeak3.8-6665-basic.zip)
> update to 3.8.1
> check version
>   ==> SmalltalkImage current (sic) vmVersion 'Squeak3.8 of ''5 May  
> 2005'' [latest update: #6665]'

Well that's the version of the vm you are running on so it isn't a  
problem. Does the image version provide the right answer ie 3.81 and  
update 6747 ?

> update Squeak Map etc
> load VMMaker 3.8b6 from SM
> load OSProcessPlugin 4.0.1 from SM
> load AioPlugin 2.0 from SM
>   ==> %$%#$! SqueakMap gives user-friendly "can't find EOCD  
> position" error
>       loaded my own copy from disk
> load XDisplayControlPlugin 2.0 from SM
>   ==> another $#!%@$% SqueakMap error
>       loaded my own copy from disk
> get an up-to-date platforms tree from SVN (1546)
> open VMMaker
>   ==> MessageNotUnderstood: SystemDictionary>>wordSize
>   load a copy of #wordSize from a 3.9 image
>   enter Mantis 5198 to get #wordSize included in the next 3.8 release

OK, that ought to have been fixed by the update to 3.8.1 I see it in  
update 6669VMM38-64bit-imageUpdates.

> open VMMaker
> make all plugins internal except OSPP, AIO, XDCP
> generate 32 bit code into ./src32 directory
>
> then from a Unix shell:
> $ ln -s src32 src
> $ mkdir build32
> $ cd build32
> $ ../platforms/unix/config/configure
> $ make install
>   ==> no problems with build, but...
> run Squeak
>   ==> image startup fails in FileDirectory class>>startUp
>       fails primitive in MacHFSPlusFileDirectory  
> class>>primPathNameDelimiter
> check "Smalltalk listLoadedModules" ==> FilePlugin is not loaded
>   ==> hmmm... no wonder, VMM did not include it in the plugins to  
> be built. Lots
>       of other primitives were excluded also.

Check Smalltalk listBuiltinModules to see if the plugin was actually  
included. Remember, load means loaded and in use. If there is a  
problem that prevents loading it will be in one list and not the  
other. Made that mistake myself a few times.

In VMMakerTool if you use the menu option to 'make all internal' does  
the FilePlugin end up in the right list? If not, then perhaps some  
directory has got lost in some code reshuffle between svn 1513 and 1546?


tim
PS uncannily good sigline chosen by that 'random' generator.
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
In the long run, every program becomes rococco, and then rubble.



Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

David T. Lewis
Tim,

The point was the VMMaker was refusing to include FilePlugin and others
in the list of modules to be built. When I pointed my platforms
directory back to an older version of the SVN code (1513, which was the
last one I had used for a successful build), everything was fine.

Unfortunately, I have now pointed back to the 1546 version of the
platforms tree (intending to figure out what VMMaker was looking for
and not finding), and I am unable to reproduce the problem. So as
it stands right now, the VMMaker 3.8b6 plus SVN 1546 platforms code
plus Squeak 3.8 plus the missing SystemDictionary>>wordSize method
seems to be just fine on Linux 32 bit Intel.

I swear I did not imagine this, but the weather is too nice this
afternoon to waste any time trying to reproduce it again. I think
I'll just write it off to a tempory warp in the bogon flux density
caused by sunspot activity and a full moon. Sorry for the confusion,
everything looks fine now.

Time to take the Norton out for a ride before the cold weather sets in.

Dave

On Sun, Oct 08, 2006 at 10:55:19AM -0700, tim Rowledge wrote:

>
>
> On 8-Oct-06, at 10:28 AM, David T. Lewis wrote:
>
>
> >
> >I have not done a Unix build since SVN 1513, so I decided to give
> >it a try.  Somewhere between 1513 and 1546, a new problem seems to
> >have crept in.
>
> Sigh.
>
> >
> >Verifying on a 32 bit Intel Linux:
> >
> >start with a clean Squeak 3.8 (Squeak3.8-6665-basic.zip)
> >update to 3.8.1
> >check version
> >  ==> SmalltalkImage current (sic) vmVersion 'Squeak3.8 of ''5 May  
> >2005'' [latest update: #6665]'
>
> Well that's the version of the vm you are running on so it isn't a  
> problem. Does the image version provide the right answer ie 3.81 and  
> update 6747 ?
>
> >update Squeak Map etc
> >load VMMaker 3.8b6 from SM
> >load OSProcessPlugin 4.0.1 from SM
> >load AioPlugin 2.0 from SM
> >  ==> %$%#$! SqueakMap gives user-friendly "can't find EOCD  
> >position" error
> >      loaded my own copy from disk
> >load XDisplayControlPlugin 2.0 from SM
> >  ==> another $#!%@$% SqueakMap error
> >      loaded my own copy from disk
> >get an up-to-date platforms tree from SVN (1546)
> >open VMMaker
> >  ==> MessageNotUnderstood: SystemDictionary>>wordSize
> >  load a copy of #wordSize from a 3.9 image
> >  enter Mantis 5198 to get #wordSize included in the next 3.8 release
>
> OK, that ought to have been fixed by the update to 3.8.1 I see it in  
> update 6669VMM38-64bit-imageUpdates.
>
> >open VMMaker
> >make all plugins internal except OSPP, AIO, XDCP
> >generate 32 bit code into ./src32 directory
> >
> >then from a Unix shell:
> >$ ln -s src32 src
> >$ mkdir build32
> >$ cd build32
> >$ ../platforms/unix/config/configure
> >$ make install
> >  ==> no problems with build, but...
> >run Squeak
> >  ==> image startup fails in FileDirectory class>>startUp
> >      fails primitive in MacHFSPlusFileDirectory  
> >class>>primPathNameDelimiter
> >check "Smalltalk listLoadedModules" ==> FilePlugin is not loaded
> >  ==> hmmm... no wonder, VMM did not include it in the plugins to  
> >be built. Lots
> >      of other primitives were excluded also.
>
> Check Smalltalk listBuiltinModules to see if the plugin was actually  
> included. Remember, load means loaded and in use. If there is a  
> problem that prevents loading it will be in one list and not the  
> other. Made that mistake myself a few times.
>
> In VMMakerTool if you use the menu option to 'make all internal' does  
> the FilePlugin end up in the right list? If not, then perhaps some  
> directory has got lost in some code reshuffle between svn 1513 and 1546?
>
>
> tim
> PS uncannily good sigline chosen by that 'random' generator.
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> In the long run, every program becomes rococco, and then rubble.
>

Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

timrowledge

On 8-Oct-06, at 11:55 AM, David T. Lewis wrote:


>
> I swear I did not imagine this, but the weather is too nice this
> afternoon to waste any time trying to reproduce it again. I think
> I'll just write it off to a tempory warp in the bogon flux density
> caused by sunspot activity and a full moon. Sorry for the confusion,
> everything looks fine now.
>
> Time to take the Norton out for a ride before the cold weather sets  
> in.

Excellent idea. I spent the afternoon flying my little Extra 300  
model. Much more fun than worrying about software.

I really can't think why FilePlugin would get left out though. The  
only easily imaginable reason is that somehow VMM couldn't see the  
Cross or Unix directory for FilePlugin. That might possibly happen if  
you were hit by that uniquely (I hope) silly unixism of the stale  
directory handle. By pointing somewhere else and doing other stuff yo  
uwould likely have triggered enough gcs to have killed the old handle  
and then re-opened it later with fresh files. Or maybe you just  
burped at the wrong time.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
On Doc: http://www.poppyfields.net/filks/00281.html



Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

Andreas.Raab
In reply to this post by timrowledge
Hi Tim -

tim Rowledge wrote:
> Well, I'm startled at the problems we seem to be having here. Obviously,
> as I was developing various versions of VMMaker I was actually running
> them and building VMs. Clearly, I wouldn't have deliberately released
> something that didn't work when testing it. However, do remember that I
> do not have a Windows machine nor a *nix machine so can't do anything
> but rely on others to test and report back in a timely manner. IIRC,
> Dave Lewis for example has not had problems with building *nix VMs
> recently.

Well, it's not quite that bad. After all I was trying the downgrade to
see where my cc1 crashes come from. I'll have to look at this more
carefully later.

> Looking back in my history files, it is clear that VMMaker38b4 had the
> getImageName call in it. If you use the VMMaker38b4 branch from SVN and
> add the trivial
> char *getImageName(void) {
>     return imageName;
> }
> it *really* ought to work - obviously with your old build setup. This
> was the last pre-64bit work version. I've got a number of emails from
> around that date from people that were able to build a vm then, so it
> must have been reasonably ok at some point.

Right. But it seems as if the post-64bit world is not (compile)
compatible with the pre-64bit world which I had assumed (the differences
in byteAt: etc). Unfortunately, to get the new build setup working with
the old snapshots is more work than I'd like to invest right now.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

timrowledge

On 9-Oct-06, at 9:10 PM, Andreas Raab wrote:
[snip]

>
> Right. But it seems as if the post-64bit world is not (compile)  
> compatible with the pre-64bit world which I had assumed (the  
> differences in byteAt: etc). Unfortunately, to get the new build  
> setup working with the old snapshots is more work than I'd like to  
> invest right now.

Do you have an old build setup anywhere? It would be really nice to  
be able to finish off a 3.8b4 (ie pre 64 bit work) vmmaker/build  
world and be able to point newcomer vm builders to it as  stable  
starting point. I *think* all it really needs is that getImageName()  
and some testing.

The later 3.8b6 would be better thought of as a staring point for the  
3.9 vm and sometime I want to get your win32 subclass change etc  
integrated.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Overdue for deincarnation.



Reply | Threaded
Open this post in threaded view
|

Re: re: hacking a 3.9 VM

Dave Raymer


On 10/9/06, tim Rowledge <[hidden email]> wrote:



Do you have an old build setup anywhere? It would be really nice to
be able to finish off a 3.8b4 (ie pre 64 bit work) vmmaker/build
world and be able to point newcomer vm builders to it as  stable
starting point. I *think* all it really needs is that getImageName()
and some testing.

The later 3.8b6 would be better thought of as a staring point for the
3.9 vm and sometime I want to get your win32 subclass change etc
integrated.

I have such a build setup.  I'd be happy to contribute it if someone would like to sanity check it.

-- dave


12