Hi,
I'm wondering if it's possible to run a Squeak3.7a-5816 image with the 3.6g-2 Unix VM? (http://www-sor.inria.fr/~piumarta/squeak/)?
When I try it a current squeak 3.7 image (plus some of my stuff):
/usr/local/bin/squeak /squeak/Squeak3.7a-5816_20040330a.56.image
or with a out of the box image:
/usr/local/bin/squeak /squeak/Squeak3.7a-5657.image
I get the following error:
Segmentation fault
169947472 SystemDictionary>lowSpaceWatcher 169947852 [] in SystemDictionary>installLowSpaceWatcher 169947944 [] in BlockContext>newProcess
The error seems to appear on the unix console just a moment before the squeak x-window opens.
After reviewing the Smalltalk level source code it seems to install the lowSpaceWatcher but then crashes while executing it.
No error log files are generated but a 1GB core dump file, squeak.core is created. For some reason Squeak is attempting to allocate a gigabyte or more of space! Maybe this is simply it's default of grabbing 1GB of memory maped space and some other error occurs that causes it to core dump, and thus it dumps it's entire virutal space. If I set memory lower it creates a smaller core dump file.
There is 750MB of RAM available on the server with 1.8 GB of swap space freely available. The OS is FreeBSD 4.8.
Are there any command line options that might solve this? I tried increasing the memory setting to 400m but this didn't help. (At 500m it fails to allocate memory for the heap).
What is the latest image version that will work with the 3.6g-2 Unix VM? Why?
What I really need is an image and vm that I can move between Unix and Windows freely to have easy development. My laptop computer where I do most of my development work is Windows. My production servers are Unix. Any ideas?
Cheers,
Peter
ps. Has any progress been made on upgrading to a full BSD style sockets interface for squeak?
On Tuesday 30 March 2004 5:42 pm, Peter William Lount wrote:
I'm wondering if it's possible to run a Squeak3.7a-5816 image with the 3.6g-2 Unix VM? (http://www-sor.inria.fr/~piumarta/squeak/)?
When I try it a current squeak 3.7 image (plus some of my stuff):
/usr/local/bin/squeak /squeak/Squeak3.7a-5816_20040330a.56.image
or with a out of the box image:
/usr/local/bin/squeak /squeak/Squeak3.7a-5657.image
I get the following error:
Segmentation fault
169947472 SystemDictionary>lowSpaceWatcher   169947852 [] in SystemDictionary>installLowSpaceWatcher   169947944 [] in BlockContext>newProcess
Please try the VM at:
http://bike-nomad.com/squeak/Neds3.6g-3LinuxVM.zip or http://bike-nomad.com/squeak/linux-squeak-vm-3.6g-2.zip (older and bigger)
and see if it works for you (assuming you have an Intel-like box).
Hi Ned,
Do you have the sources somewhere? I may have to recompile for freebsd.
Thanks,
peter
Please try the VM at:
http://bike-nomad.com/squeak/Neds3.6g-3LinuxVM.zip or http://bike-nomad.com/squeak/linux-squeak-vm-3.6g-2.zip (older and bigger)
and see if it works for you (assuming you have an Intel-like box). Ned Konz
On Tuesday 30 March 2004 6:22 pm, Peter William Lount wrote:
Do you have the sources somewhere? I may have to recompile for freebsd.
They're on the SourceForge CVS:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak login (empty password) Â cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak co -r ned-branch squeak
It can't find the "vm.display-X11" plugin even after I tell it where one is.
Ned it's missing the /usr/local/lib/squeak/3.6g-3/ directory and all the files such as the one above.
So put the files into /usr/local/lib/squeak/3.6g-3
Or use the -plugins /path/to/wherever/you/put/the/files
flag to Squeak.
Hi,
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak login (empty password) cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak co -r
ned-branch squeak Ok, I checked out the sources as above.
I tried to follow the build instructions, however the "configure" script "../platforms/unix/config/configure" is missing from the config directory.
It can't find the "vm.display-X11" plugin even after I tell it where one
is.
Ned it's missing the /usr/local/lib/squeak/3.6g-3/ directory and all the
files such as the one above.
So put the files into /usr/local/lib/squeak/3.6g-3
I've tried copying the "vm.display-X11" file into the directory but for some reason it always shows a file size of "0" bytes. Very strange. Would a file permission stop me, if so which one? I'm root... hmmm... weirdness...
Or use the -plugins /path/to/wherever/you/put/the/files
I tried that and it still gave the same message.
I'd prefer to build from source since that seems to be the route to continued upgrade successes.
Thanks for your help,
Peter William Lount
p.s. When I get this working I'll be able to put the new smalltalk.org site into gamma test on the production server. Thanks.
Hi,
On Wed, Mar 31, 2004 at 12:54:26AM -0800, Peter William Lount wrote:
Hi,
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak login (empty password) cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak co -r
ned-branch squeak Ok, I checked out the sources as above.
I tried to follow the build instructions, however the "configure" script "../platforms/unix/config/configure" is missing from the config directory.
I'm not sure if my memory is correct, but you need to run make once to 'make' the configure script if it doesn't exist. I think when getting a tar.gz from Ian's site this file is present but not when building from scratch.
cheers Mike
Hi,
I'm not sure if my memory is correct, but you need to run make once to
'make' the configure script if it doesn't exist. I think when getting a tar.gz from Ian's site this file is present but not when building from scratch. I've been trying to do that Mike, but it doesn't want to make. Sigh... how is this C project & tool chain organized?
Can anyone else build this package from the ned cvs sources? If so how?
Peter
Hi Peter,
I'm not sure if my memory is correct, but you need to run make once to
'make' the configure script if it doesn't exist. I think when getting a tar.gz from Ian's site this file is present but not when building from scratch. I've been trying to do that Mike, but it doesn't want to make. Sigh... how is this C project & tool chain organized?
I'm sorry about that. I didn't mean that to be obvious. ok here is what I have just done
mkdir tmp cd tmp cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak co -r ned-branch squeak cd squeak/platforms/unix/config make
this produces the output ./mkacinc > acplugins.m4 + ../vm-display-Quartz/acinclude.m4 + ../vm-display-X11/acinclude.m4 + ../vm-display-fbdev/acinclude.m4 + ../vm-sound-MacOSX/acinclude.m4 + ../vm-sound-NAS/acinclude.m4 + ../vm-sound-OSS/acinclude.m4 + ../vm-sound-Sun/acinclude.m4 + ../vm/acinclude.m4 + ../plugins/B3DAcceleratorPlugin/acinclude.m4 + ../plugins/BerkeleyDbPlugin/acinclude.m4 + ../plugins/FT2Plugin/acinclude.m4 + ../plugins/Mpeg3Plugin/acinclude.m4 + ../plugins/ObjectiveCPlugin/acinclude.m4 + ../plugins/PseudoTTYPlugin/acinclude.m4 + ../plugins/SpreadPlugin/acinclude.m4 + ../plugins/SqueakFFIPrims/acinclude.m4 + ../plugins/XDisplayControlPlugin/acinclude.m4 aclocal-1.7 autoconf rm acplugins.m4
you don't get this output? if not this may suggest that something is missing in your tool chain. I'm afraid that I'm not entirely sure what packages you need. All the various flavours of Linux that I have tried this on always seem to have the right things installed. Someone else should be able to chip in with the answer.
I'm afraid I don't know anything about freebsd. I think that is your system type?
Looking at the makefile and my system
/usr/bin/aclocal-1.7 -> provided by automake /usr/bin/autoconf -> provided by autoconf
On my Gentoo system I have autoconf-2.58-r1 automake-1.7.7 make-3.80 m4-1.4-r1
quick dependencies m4 <- autoconf <- automake
Hope this is a tad more useful but you may already have these installed.
Cheers
Mike
From: "Michael Roberts" mike@mjr104.co.uk
I'm sorry about that. I didn't mean that to be obvious.
That's ok, being obvious is good. I'm much more of an expert with Smalltalk than the unix C tool chain.
you don't get this output?
Nope! I changed the makefile so that it used aclocal instead of aclocal-1.7. My FreeBSD system has aclocal-1.5 installed. I hope that's ok. If not please let me know and I'll upgrade it.
I'm afraid I don't know anything about freebsd. I think that is your
system type? Yes.
Hope this is a tad more useful but you may already have these installed.
Yes, much more usefull.
Here is the sequence that I'm now doing:
mkdir-p /localstorage/servers/squeak/ned_squeak cd /localstorage/servers/squeak/ned_squeak cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak login cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/squeak co -r ned-branch squeak cd squeak/platforms/unix/config
I then edit the Makefile and change "aclocal-1.7" to "aclocal".
make cd /localstorage/servers/squeak/ned/ ./squeak/platforms/unix/config/configure
Here is the results of :
sensei# pwd /disk0e/localstorage/servers/neds_squeak/squeak sensei# ./platforms/unix/config/configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes /disk0e/localstorage/servers/neds_squeak/squeak/platforms/unix/config/missin g: Can't open /disk0e/localstorage/servers/neds_squeak/squeak/platforms/unix/config/missin g: No such file or directory configure: WARNING: `missing' script is too old or missing checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets ${MAKE}... yes checking sanity of VMMaker src directory... bad missing dir: /disk0e/localstorage/servers/neds_squeak/squeak/src
Ok, it builds the configure script with the down graded aclocal, but now it reports that two files/directories are missing:
../squeak/platforms/unix/config/missing: and /disk0e/localstorage/servers/neds_squeak/squeak/src
It looks like the ../squeak/src isn't being downloaded from the cvs server.
As for the other missing "../config/missing" file/directory could it be because of the older "aclocal" program?
FreeBSD and Smalltalk.org It sure would be nice to have a build script of the cutting edge unix port that works with FreeBSD. This would enable me to keep Smalltalk.org's new development site upto date easily. I'd rather focus on building a cool smalltalk.org web site application that muck around with C tool chains... For the current smalltalk.org development demo please see: http://dev.smalltalk.org/zokudev. Your support is greatly appreciated.
FreeBSD has a squeak3 (version 3.5_2) port. Here are some links including the current cvs for it. http://www.freebsd.org/cgi/url.cgi?ports/lang/squeak3/pkg-descr http://www.freebsd.org/cgi/pds.cgi?ports/lang/squeak3 http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/squeak3/
Actually it might be a good idea to update the FreeBSD port aswell. I've included the FreeBSD port maintainer in this email and sent him a request as well.
I'd like to help with the unix vm in anyway that I can aswell. I know C fairly well, Smalltalk very very well, and the C tool chain not as well as needed, but I'm willing to upgrade my skills to get this working.
Thanks again,
Peter William Lount, Smalltalk.org
On Wednesday 31 March 2004 8:17 am, Peter William Lount wrote:
From: "Michael Roberts" mike@mjr104.co.uk
I'm sorry about that. I didn't mean that to be obvious.
That's ok, being obvious is good. I'm much more of an expert with Smalltalk than the unix C tool chain.
you don't get this output?
Nope! I changed the makefile so that it used aclocal instead of aclocal-1.7. My FreeBSD system has aclocal-1.5 installed. I hope that's ok. If not please let me know and I'll upgrade it.
I think that should work. I put in aclocal-1.7 as a stopgap to avoid aclocal-1.8, which *doesn't* work.
Ok, it builds the configure script with the down graded aclocal, but now it reports that two files/directories are missing:
../squeak/platforms/unix/config/missing: and /disk0e/localstorage/servers/neds_squeak/squeak/src
It looks like the ../squeak/src isn't being downloaded from the cvs server.
That's because it's not in CVS.
You generate that from Squeak using VMMaker before you build.
Set up a Squeak image in the root directory (i.e. the one named "squeak", above platforms). Load VMMaker from SqueakMap. Open a VMMaker tool. Tell it to generate sources to the src/ directory. Now you should have squeak/squeak.{image,changes} (which you put there) squeak/src (generated by VMMaker) squeak/platforms (downloaded from CVS)
If you can't run Squeak at all, I've made a tarball of my src/ directory and put it at http://bike-nomad.com/squeak/SqueakVMSource3.6g-3.tgz
Just unpack it in the squeak directory.
Have you read the docs in squeak/platforms/unix/doc/HowToBuildFromSource.html/index.html
As for the other missing "../config/missing" file/directory could it be because of the older "aclocal" program?
Perhaps. I don't have one.
I've posted a complete source tarball of Ned's branch of CVS plus the VMMaker generated files plus the configure scripts pre-built. It's linked on DownloadForUnix, and it's also available at:
http://bike-nomad.com/squeak/uploads
Now you can extract, make a build directory, run configure, and run "make install". I have tested it and it runs 3.7 images just fine.
-Lex
Hi,
I get the same gcc error message when I run the compile_squeak.sh script on a brand new FreeBSD5.2.1 box as I did on the FreeBSD 4.7 box.
Peter
Hi,
On Wed, Mar 31, 2004 at 08:17:04AM -0800, Peter William Lount wrote:
Here is the sequence that I'm now doing:
Here is the results of :
sensei# pwd /disk0e/localstorage/servers/neds_squeak/squeak sensei# ./platforms/unix/config/configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes /disk0e/localstorage/servers/neds_squeak/squeak/platforms/unix/config/missin g: Can't open /disk0e/localstorage/servers/neds_squeak/squeak/platforms/unix/config/missin g: No such file or directory configure: WARNING: `missing' script is too old or missing checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets ${MAKE}... yes checking sanity of VMMaker src directory... bad missing dir: /disk0e/localstorage/servers/neds_squeak/squeak/src
Ok, it builds the configure script with the down graded aclocal, but now it reports that two files/directories are missing:
../squeak/platforms/unix/config/missing:
I'm not sure what this is but I get that warning too
and /disk0e/localstorage/servers/neds_squeak/squeak/src
It looks like the ../squeak/src isn't being downloaded from the cvs server.
ah no. this is the next stage.
You need to use an existing Squeak system to create the src directory. This is the bootstrap, if that is the right phrase, for making the VM.
* You need an existing VM that is going to work on your system * I tend to get a 3.6 version off Ian's site
http://www-sor.inria.fr/~piumarta/squeak/
so for me on Linux
wget http://www-sor.inria.fr/~piumarta/squeak/devel/dist/Squeak-3.6g-2.i686-pc-li... tar -xzvf Squeak-3.6g-2.i686-pc-linux-gnu.tar.gz
* and a suitable image. I use the latest 3.6 image
wget http://www-sor.inria.fr/~piumarta/squeak/devel/dist/Squeak-3.6g-5420.image.t... tar -xvzf Squeak-3.6g-5420.image.tar.gz
I don't want to install this VM as root because I don't want to modify my system so I'm just going to do this locally
cp Squeak-3.6g-2/usr/local/lib/squeak/Squeak3.6g-5420.image.gz . cp Squeak-3.6g-2/usr/local/lib/squeak/Squeak3.6g-5420.changes.gz . gunzip Squeak3.6g-5420.changes.gz Squeak3.6g-5420.image.gz
* you also need the sources file I already have these on my system, you probably do too, but for those reading who also need it
wget http://www-sor.inria.fr/~piumarta/squeak/unix/release/Squeak-3.sources.tar.g...
or link it from where ever it might be
ln -s ~mike/src/Squeak-3/usr/local/lib/squeak/SqueakV3.sources
* now fire up this existing squeak system + VM since I haven't installed the 3.6 VM as root I need to do
./Squeak-3.6g-2/i686-pc-linux-gnu/usr/local/lib/squeak/3.6g-2/squeak -plugins ./Squeak-3.6g-2/i686-pc-linux-gnu/usr/local/lib/squeak/3.6g-2 Squeak3.6g-5420.image
* Welcome to squeak etc * Check any update stream updates squeak flap -> load code updates
* then use SM to upgrade all the installed packages world menu -> open package loader
say yes to the new client then context menu -> upgrade all installed say yes to Monticello update
undeclared, blaah blaah.
* then use SM to install VMMaker select VMMaker -> install
add my initials
wait
* open VMMaker
world menu -> open -> VMMaker
* fix the path to platform code this happens to be /home/mike/tmp/squeak/platforms
* set the path to generated sources /home/mike/tmp/squeak/src
make sure you alt-s to save the changes to the initial one
* make all the plugins external i don't know much about plugins so you may need some more finesse here
* generate all wait
* save and quit * run configure again (might as well do this at the top level) mkdir build cd build ../squeak/platforms/unix/config/configure
* configure now completes
* build the vm make
hmm.. this dies on me with /home/mike/tmp/squeak/platforms/Cross/vm/sqVirtualMachine.c:314: undefined reference to `isArray'
ok. I've done this before! honestly! but this is clearly not working as I'm writing this email. That should get you further. I'll investigate and get back to you.
As for the other missing "../config/missing" file/directory could it be because of the older "aclocal" program?
doesn't seem to matter once you get the VMMaker src sorted out.
FreeBSD and Smalltalk.org It sure would be nice to have a build script of the cutting edge unix port that works with FreeBSD.
yes, a script would be great. It is something I have thought about in the past. We would need a shell script to download all the right bits first. You would then need a smalltalk script to drive VMMaker externally. As you can see it is quite involved and there are various morphic prompts that would get in the way of driving this without a UI. I'm not sure what people think about this? I think both VMMaker and SM have well developed models so I imagine this can be driven without morphic popping anything up? or maybe with some work?
I'll get back to you why I can't get the VM to build. Probably something I've done but I'm no expert here either!
Cheers Mike
Michael Roberts mike@mjr104.co.uk wrote:
yes, a script would be great. It is something I have thought about in the past. We would need a shell script to download all the right bits first. You would then need a smalltalk script to drive VMMaker externally. As you can see it is quite involved and there are various morphic prompts that would get in the way of driving this without a UI. I'm not sure what people think about this? I think both VMMaker and SM have well developed models so I imagine this can be driven without morphic popping anything up? or maybe with some work?
VMMaker is completely scriptable. Always has been, always will be. The morphic part is VMMakerTool and it isn't needed at all if you want to play with 'cmdline hacking'.
It's even explained in the class comments, the VMMakerTool help window and the swiki. VMMaker was originally written for exobox to allow daily automated VM builds, so assuming we still have a working cmdline script capability it should still work.
It should also work to cross-build, though I've never made any serious attempt at it because of the lineend issues. At least within unix versions it should be trivial. If you've got a working *nix system there should be no problem at all with building the src tree on one and moving it across to another.
On the issue of actually compiling on *nix, last thing I recall was that one had to have a particular version of autoconf (?) for the build to work. Since my linux machine is buried in a storage locker now I can't check on that.
tim -- Tim Rowledge, tim@sumeru.stanford.edu, http://sumeru.stanford.edu/tim Useful random insult:- Mind like a steel sieve.
On Wednesday 31 March 2004 1:30 am, Peter William Lount wrote:
I'm not sure if my memory is correct, but you need to run make once to
'make' the configure script if it doesn't exist. I think when getting a tar.gz from Ian's site this file is present but not when building from scratch.
I've been trying to do that Mike, but it doesn't want to make.
In what way?
If you've got automake 1.8 installed, try either - downgrading to automake 1.7, or - installing automake 1.7 alongside and changing the Makefile to read
configure : .force ./mkacinc > acplugins.m4 aclocal-1.7 autoconf rm acplugins.m4
.force :
That is, force the use of aclocal-1.7 (which comes with automake-1.7)
Sigh... how is this C project & tool chain organized?
in platforms/unix/config: Makefile produces configure and makefile template using snippets in plugins and vm directories
in build directory: running ../platforms/unix/config/configure makes Makefiles running make makes everything
Can anyone else build this package from the ned cvs sources? If so how?
I think that Mike is pointing you in the right direction (that is, to run make in the config directory).
Hi Ned,
It can't find the "vm.display-X11" plugin even after I tell it where one is.
Ned it's missing the /usr/local/lib/squeak/3.6g-3/ directory and all the files such as the one above.
Please email me the source so that I can do a full build. Thanks.
All the best,
peter
"Peter" == Peter William Lount peter@ActiveInfo.CA writes:
Peter> Hi Ned, It can't find the "vm.display-X11" plugin even after I Peter> tell it where one is.
I had a similar problem with 3.6g-2 on FreeBSD. I had to install a libgcc_s.so in my LD_LIBRARY_PATH (that I got from a previous compilation of a former GCC) and everything went fine.
Sam
squeak-dev@lists.squeakfoundation.org