Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak 4.1)

Eliot Miranda eliot.miranda at gmail.com
Wed Jul 14 20:55:30 UTC 2010


On Wed, Jul 14, 2010 at 11:23 AM, Chris Muller <asqueaker at gmail.com> wrote:

> Hi Eliot, if you replied to my original post under a different
> subject, I must have missed it:
>
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-June/151522.html
>
> I do not have adequate C or C++ experience to even run the debugger.
> I really just want to _get_ a Cog VM so I can be more productive in
> getting my work done so I can then work on things like learning new
> langauges and tools...   :)
>

If you can compile the VM you can surely learn to use gdb.  Its only a
debugger.  break foo. step. etc. etc.  It would really help (yourself and
others) if you'd take this next step.  You might be the only one trying too
build and run on your particular distro.  So you might be the only one who
can diagnose the problem.  Look on it as a learning experience.

BTW, I have work to do also.  I don't get paid to provide the open-source
Cog.  I get paid to keep Teleplace working.  You're potentially going to
benefit a lot by using a faster VM.  You might view putting in a little time
now as payback.  It'd be appreciated.

best
Eliot


> I had hoped, given that the problem seems to be exposed (the
> double-slash) that the cause and solution would be obvious to
> someone..
>
>
>
>
> On Wed, Jul 14, 2010 at 12:58 PM, Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
> >
> >
> > On Wed, Jul 14, 2010 at 10:22 AM, Chris Muller <asqueaker at gmail.com>
> wrote:
> >>
> >> I followed these instructions to the letter, and get the same result I
> >> got a few weeks ago.  I posted a question then, but no responses.  May
> >> I try again?
> >
> > Chris, I believe I replied suggesting you step though the dynamic loading
> > code to get more information.
> > I think everything starts from loadModules in
> > platforms/unix/vm/sqUnixMain.c.
> > I suggest you rerun the configure command to eliminate all optimization
> > (including deleting any -fomit-frame-pointer) and then step from
> loadModules
> > and see why you don't get to a functional dlopen call
> > in platforms/unix/vm/sqUnixExternalPrims.c.
> > HTH
> > Eliot
> >
> >>
> >> Everything seems to go just fine throughout these build instructions.
> >> For the final step, I put it in /usr/local/lib.
> >>
> >>    make install prefix=/usr/local/lib/squeak
> >>
> >> and I made sure /usr/local/lib/squeak exists before doing the make
> >> install.
> >>
> >> The make install appears to work fine, and I am able to see squeak
> >> -version:
> >>
> >> $ squeak -version
> >> 3.9-7 #1 Wed Jul 14 12:07:56 CDT 2010 gcc 4.3.3
> >> Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.20]
> >> Linux chrisT60p 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59
> >> UTC 2009 i686 GNU/Linux
> >> plugin path: /opt/4dst/thirdparty/squeak/lib/squeak/3.9-7/ [default:
> >> /opt/4dst/thirdparty/squeak/lib/squeak/3.9-7/]
> >>
> >> However, when I try to launch an image:
> >>
> >>  squeak my.image
> >>
> >> The image does not launch and I get the following:
> >>
> >>    could not find display driver vm-display-X11; either:
> >>      - check that /usr/local/lib/squeak/3.9-7//vm-display-X11.so
> >> exists, or
> >>      - use the '-plugins <path>' option to tell me where it is, or
> >>      - remove DISPLAY from your environment.
> >>
> >> notice the double-slash in reference to the plugins location.  Perhaps
> >> that's the problem, but what's the correct solution?
> >>
> >> Any advice is greatly appreciated..
> >>
> >>  - Chris
> >>
> >>
> >>
> >> On Tue, Jul 13, 2010 at 4:04 PM, Levente Uzonyi <leves at elte.hu> wrote:
> >> > On Tue, 13 Jul 2010, Rob Withers wrote:
> >> >
> >> >> Thanks Levente.  Unfortunately it did not work:
> >> >>
> >> >> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version `GLIBC_2.11' not
> >> >> found
> >> >> (required by ./lib/squeak/3.9-7/squeak)
> >> >
> >> > Seems like you have to build it yourself. Fortunately it's very easy,
> >> > since
> >> > Eliot commits the generated sources to the svn repo. So you can build
> a
> >> > CogVM/StackVM without VMMaker. Here is how:
> >> >
> >> > "How to build the Cog Croquet VM on Unix
> >> > -------------------------------
> >> > 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt
> >> > source))
> >> > 2. Check out the following sources from svn (if you haven't already -
> if
> >> > you're
> >> >   reading this in unixbuild its likely you've already got the sources)
> >> >     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
> >> >     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
> >> >     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild
> >> > 3. Open a shell, cd into the unixbuild/bld directory and execute
> >> >     ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2
> >> > -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1
> >> > -DCOGMTVM=0"
> >> > LIBS=-lpthread
> >> >     make install prefix=WhereYouWantTheVmToGo
> >> > 4. At the end of it you'll get a new VM in the path provided via
> >> > -prefix"
> >> >
> >> >
> >> > Levente
> >> >
> >> >>
> >> >> Rob
> >> >>
> >> >>
> >> >>
> >> >> ________________________________
> >> >> From: Levente Uzonyi <leves at elte.hu>
> >> >> To: The general-purpose Squeak developers list
> >> >> <squeak-dev at lists.squeakfoundation.org>
> >> >> Sent: Tue, July 13, 2010 3:21:43 PM
> >> >> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in
> >> >> Squeak
> >> >> 4.1)
> >> >>
> >> >> On Tue, 13 Jul 2010, Rob Withers wrote:
> >> >>
> >> >>> --------------------------------------------------
> >> >>> From: "Levente Uzonyi" <leves at elte.hu>
> >> >>> Sent: Tuesday, July 13, 2010 12:46 PM
> >> >>> To: "The general-purpose Squeak developers list"
> >> >>> <squeak-dev at lists.squeakfoundation.org>
> >> >>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak
> >> >>> 4.1)
> >> >>>
> >> >>>> On Tue, 13 Jul 2010, Rob Withers wrote:
> >> >>>>
> >> >>>>>
> >> >>>>> --------------------------------------------------
> >> >>>>> From: "Andreas Raab" <andreas.raab at gmx.de>
> >> >>>>> Sent: Tuesday, July 13, 2010 11:29 AM
> >> >>>>> To: "The general-purpose Squeak developers list"
> >> >>>>> <squeak-dev at lists.squeakfoundation.org>
> >> >>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1
> >> >>>>>
> >> >>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote:
> >> >>>>>>>
> >> >>>>>>> The low-space watcher is running, at least before the problem
> >> >>>>>>> starts.
> >> >>>>>>> I
> >> >>>>>>> do eventually run out of memory, but the uninterruptable state
> >> >>>>>>> happens
> >> >>>>>>> before this.
> >> >>>>>>
> >> >>>>>> In which case you want to do the following:
> >> >>>>>> * Launch your app and wait until it's in the "growing state"
> >> >>>>>> * Hit F2 and from the VM's preference menu choose "Debug" and
> then
> >> >>>>>> "Print all processes"
> >> >>>>>>
> >> >>>>>> This will dump a list of all the call stacks of all processes.
> One
> >> >>>>>> of
> >> >>>>>> them is the culprit consuming memory and you'll probably be able
> to
> >> >>>>>> tell
> >> >>>>>> quickly from just looking at it (if not, you can email the output
> >> >>>>>> here but
> >> >>>>>> it typically takes a domain expert to understand what's going
> >> >>>>>> wrong).
> >> >>>>>>
> >> >>>>>
> >> >>>>> Thanks for this pointer, Andreas.
> >> >>>>>
> >> >>>>> This time it was a Cog VM which spasmed, which I use for my client
> >> >>>>> (Squeak 4.1 for server for use with linux vm - I have no ability
> to
> >> >>>>> compile
> >> >>>>> a linux Cog vm:  would love if someone posted one that could be
> >> >>>>> launched
> >> >>>>> headless for my webhost).
> >> >>>>
> >> >>>> Cog works, but i think you're trying to use the -headless switch,
> >> >>>> which
> >> >>>> (is deprecated) and tells the vm to use the X11 display, but with
> no
> >> >>>> window.
> >> >>>> Servers usually don't have X11, so it won't work. You better use
> >> >>>> -vm-display-null (and -vm-sound-null). Try squeak --help for
> further
> >> >>>> useful
> >> >>>> options (like tuning Cog).
> >> >>>>
> >> >>>
> >> >>> I am trying to use the -headless switch.  Good to know it is
> >> >>> deprecated.
> >> >>>  So you happen to have a Cog for linux binary (version 17 - 20),
> which
> >> >>> I
> >> >>> could use?
> >> >>
> >> >> I have one, but I'm not sure it will work on your server. You can
> find
> >> >> it
> >> >> here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's built on
> >> >> ubuntu
> >> >> 10.04 and is optimized for core2.
> >> >>
> >> >>
> >> >> Levente
> >> >>
> >> >>>
> >> >>> Thanks,
> >> >>> Rob
> >> >>>
> >> >>>>
> >> >>>> Levente
> >> >>>>
> >> >>>>>
> >> >>>>> It started running at 100% and I did your F2 -> Debug Options ->
> >> >>>>> Print
> >> >>>>> all processes.  It started dumping a LOT to the Debug Console,
> then
> >> >>>>> it
> >> >>>>> froze, still at 100%, but no increase in memory now and it went
> (Not
> >> >>>>> Responding) and greyed out the window.
> >> >>>>>
> >> >>>>> Luckily, I was able to see enough of the stack that was causing
> >> >>>>> problems. It is infinitely looping in this method:
> >> >>>>>
> >> >>>>> LanguageEnvironment class>>#localeID: localeID
> >> >>>>> ^self knownEnvironments at: localeID ifAbsent: [self localeID:
> >> >>>>> (LocaleID isoLanguage: 'en')]
> >> >>>>>
> >> >>>>> This has nothing to do with my code, except I must be calling
> >> >>>>> something
> >> >>>>> that enters this loop.  It happens in both Cog (Windows) and
> >> >>>>> Squeak4.1
> >> >>>>> (Linux <headless> and Windows).
> >> >>>>>
> >> >>>>> Not sure how to fix this.
> >> >>>>>
> >> >>>>> Rob
> >> >>>>>
> >> >>>>>> Cheers,
> >> >>>>>>  - Andreas
> >> >>>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>>
> >> >
> >> >
> >>
> >
> >
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100714/ed6ac07b/attachment.htm


More information about the Squeak-dev mailing list