[Vm-dev] Cog on linux

Eliot Miranda eliot.miranda at gmail.com
Thu Jul 15 19:23:25 UTC 2010


On Thu, Jul 15, 2010 at 12:03 PM, Rob Withers <reefedjib at yahoo.com> wrote:

>
>  Eliot,
>
> I am on 8 of these puppies.  I'll try -m32 in the CFLAGS and let you
> know....after my doc appt.   Rob
>

you'll also want -m32 in all link commands.

>
> processor       : 7
> vendor_id       : GenuineIntel
> cpu family      : 6
> model           : 15
> model name      : Intel(R) Xeon(R) CPU           E5335  @ 2.00GHz
> stepping        : 7
> cpu MHz         : 2000.252
> cache size      : 4096 KB
> physical id     : 1
> siblings        : 4
> core id         : 3
> cpu cores       : 4
> apicid          : 7
> initial apicid  : 7
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 10
> wp              : yes
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
> cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
> constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor
> ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow
> bogomips        : 3999.45
> clflush size    : 64
> cache_alignment : 64
> address sizes   : 36 bits physical, 48 bits virtual
> power management:
>
>  *From:* Eliot Miranda <eliot.miranda at gmail.com>
> *Sent:* Thursday, July 15, 2010 2:52 PM
> *To:* Squeak Virtual Machine Development Discussion<vm-dev at lists.squeakfoundation.org>
> *Subject:* Re: [Vm-dev] Cog on linux
>
>  ------------------------------
>
>
>
> On Thu, Jul 15, 2010 at 5:57 AM, Rob Withers <reefedjib at yahoo.com> wrote:
>
>>
>> Linux version 2.6.33-5.19.BHsmp (kernel at bluehost.com) (gcc version 4.1.2
>> 2008070                           4 (Red Hat 4.1.2-48))
>>
>> I have attached the error from make install...
>>
>> /home1/vawhigso/public_html/squeakelib/Cog/platforms/unix/vm/sqUnixHeartbeat.c:161:3:
>> error: #error "no high res clock defined"
>>
>
> If you look at the code the error is pointing you at:
>
> #if defined(__GNUC__) && ( defined(i386) || defined(__i386) ||
> defined(__i386__)  \
>             || defined(i486) || defined(__i486) || defined (__i486__) \
>             || defined(intel) || defined(x86) || defined(i86pc) )
>     __asm__ __volatile__ ("rdtsc" : "=A"(value));
> #else
> # error "no high res clock defined"
> #endif
>
> you'll see the system expects an x86.  Are you on an x86-64?  If so you
> need to specify something like -m32 in the CFLAGS and/or supply a flag with
> te same semantics to configure.
>
>
> HTH
> Eliot
>
>
>> Rob
>>
>>
>>
>> --------------------------------------------------
>> From: "Frank Shearar" <frank.shearar at angband.za.org>
>> Sent: Thursday, July 15, 2010 8:30 AM
>> To: <vm-dev at lists.squeakfoundation.org>
>> Subject: Cog on FreeBSD (Re: [Vm-dev] Re: [squeak-dev] Re: Cog on linux)
>>
>>
>>>
>>
>>
>> On 2010/07/14 23:29, Levente Uzonyi wrote:
>>>
>>>>
>>>> On Wed, 14 Jul 2010, Frank Shearar wrote:
>>>>
>>>> On 2010/07/13 23:04, Levente Uzonyi 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"
>>>>>>
>>>>>
>>>>> Are there any additional requirements like gcc version, for instance?
>>>>>
>>>>> I ask because I get errors on the above instructions, on FreeBSD 6.4,
>>>>> running gcc 3.4.6. I can attach configure's output and whatnot, if
>>>>> you're interested.
>>>>>
>>>>
>>>> If configure failed, then please attach the output and continue this
>>>> thread on the vm-dev list.
>>>>
>>>
>>> I didn't expect the instructions to work, since FreeBSD isn't Linux. So
>>> having said that, I've attached the output from configure (which looks
>>> fine, to my untrained eye) and the output from make install (which
>>> generates errors).
>>>
>>> That first error:
>>>
>>> In file included from /usr/home/frank/temp/src/vm/gcc3x-cointerp.c:21:
>>> /usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced
>>> by <stdlib.h>"
>>>
>>> is probably the culprit, I suppose?
>>>
>>> frank
>>>
>>>
>>>>
>>>> Levente
>>>>
>>>>
>>>>> frank
>>>>>
>>>>> 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/vm-dev/attachments/20100715/de4b2fcf/attachment-0001.htm


More information about the Vm-dev mailing list