[M3devel] strange errors...

Tony Hosking hosking at cs.purdue.edu
Tue Jul 3 17:28:59 CEST 2007


Excellent! The problem was in the way the weak references  
implementation squirrels away traced references and hides them from  
the run-time system.

In my digging I have also discovered that there appears to be some  
sort of race in the VBT code that leads to double-release of a lock.   
It appears not to be GC-related.  Is anyone familiar enough with the  
VBT code to diagnose this?  It always happens at the same place:

#0  ThreadPThread__Die (M3_AcxOUs_lineno=167, M3_Bd56fi_msg=0x1061088)
     at ThreadPThread.m3:1238
#1  0x010360d7 in ThreadPThread__InnerUnlockMutex  
(M3_AYIbX3_m=0xb4d127c4,
     M3_BXP32l_self=0xb4d1e010) at ThreadPThread.m3:167
#2  0x010362ee in ThreadPThread__UnlockMutex (M3_AYIbX3_m=0xb4d127c4)
     at ThreadPThread.m3:188
#3  0x004dca26 in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb4d127c4,
     M3_BFdKo9_ch=0xb4d15164, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:799
#4  0x004d51dd in VBT__Sync (M3_BJ2YpW_v=0xb4d15164, M3_AicXUJ_wait=1  
'\001')
     at VBT.m3:1167
#5  0x00524838 in JoinedVBT__Sync (M3_B2daE0_v=0xb4d12654,
     M3_BFdKo9_ch=0xb4d12730, M3_AicXUJ_wait=1 '\001') at  
JoinedVBT.m3:101
#6  0x004dc9ff in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb4d12730,
     M3_BFdKo9_ch=0xb4d126b4, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:797
#7  0x004dc9ff in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb4d126b4,
     M3_BFdKo9_ch=0xb24c5e48, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:797
#8  0x004dc9ff in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb24c5e48,
     M3_BFdKo9_ch=0xb4d1e0b0, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:797
#9  0x004dc9ff in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb4d1e0b0,
     M3_BFdKo9_ch=0xb4d1e31c, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:797
#10 0x004dc9ff in VBTClass__SyncDefault (M3_Dg4CVT_v=0xb4d1e31c,
     M3_BFdKo9_ch=0xb4d1e1a0, M3_AicXUJ_wait=1 '\001') at  
VBTClass.m3:797
#11 0x004d51dd in VBT__Sync (M3_BJ2YpW_v=0xb4d1e1a0, M3_AicXUJ_wait=1  
'\001')
     at VBT.m3:1167
#12 0x00bcc273 in MGV__MGRedisplay (M3_AdEaVQ_v=0xb4d1e1a0,
     M3_A0Kbc5_br=0xcf2600) at MGV.m3:146
#13 0x00bb7fa1 in Animate__DoAnimation (M3_CCfZY3_t=0xb2506534,
     M3_BUucNs_time=0.157132864, M3_BUucNs_timePrev=0.156615973,
     M3_AdEaVQ_v=0xb4d1e1a0, M3_DsL7Zz_mg=0x0) at Animate.m3:57
#14 0x00bb80eb in Animate__Do (M3_CCfZY3_t=0xb2506534, M3_DsL7Zz_mg=0x0,
     M3_AdEaVQ_v=0xb4d1e1a0, M3_BUucNs_duration=1) at Animate.m3:74
#15 0x00bcd5c6 in MGV__Animation (M3_AdEaVQ_v=0xb4d1e1a0,
     M3_BUucNs_duration=1) at MGV.m3:313
#16 0x0031a3f3 in GraphVBT__AnimateGraph (M3_Cj00zi_graph=0xb4d1e0b0,
     M3_BUucNs_t0=0, M3_BUucNs_t1=1) at GraphVBT.m3:656
#17 0x08077aec in PackingView3__Probe (M3_ClPWAg_view=0xb24c5e48,
     M3_AcxOUs_bin=1, M3_BUucNs_total=0.972417712) at PackingView3.m3:68
#18 0x0806c76c in BinpackIE__OEDispatcher (M3_Ao6Rbg_v=0xb24c5e48,
     M3_Af40ku_evt=0xb7fda068) at BinpackIE.m3:96
#19 0x001f83fb in Zeus__ViewThread (M3_BH3Tll_self=0xb4d22030) at  
Zeus.m3:331
#20 0x01038d80 in ThreadPThread__RunThread (M3_EkbOya_me=0x84c5b98)
     at ThreadPThread.m3:547
#21 0x01038895 in ThreadPThread__ThreadBase (M3_AJWxb1_param=0x84c5b98)
     at ThreadPThread.m3:517
#22 0x42a2a3db in start_thread () from /lib/libpthread.so.0
#23 0x4296f26e in clone () from /lib/libc.so.6

On Jul 3, 2007, at 5:13 AM, Mika Nystrom wrote:

>
> Wow!  It works!  I am able to compile the various stages of bootstrap
> as well as run Juno, mentor, etc., without any @M3 hacks, on FreeBSD
> with the user-level threads, as of this afternoon's checkout (around
> 3 p.m. Pacific).  On my quest to move on from various dusty PM3
> decks, I am still struggling with some of my own code, which seems
> to be having issues with pickles, network objects, trestle, m3gdb,
> and a few other odds and ends, but I will return to those at a later
> date.  All the garbage collector issues that I am aware of seem
> resolved on FreeBSD.  A big thanks!!!
>
>      Mika
>
> P.S. Tony, if you'd like a testing account on my home machine, which
> is running FreeBSD5.5-RELEASE/i386, just let me know.  Of course
> I'm happy to try updating and compiling things, too.
>
> Tony Hosking writes:
>> In follow up to my previous message, I think I may have a simpler
>> fix.  Can you please try the latest version of ThreadPosix.m3 that I
>> just checked in.  Unfortunately, I don't have a user-level threads
>> system on which to try (Linux is broken because setjmp/longjmp use
>> encryption to prevent stack-smashing security exploits), and my
>> Solaris boxes are not available right now.
>>
>> On Jul 2, 2007, at 6:35 AM, Mika Nystrom wrote:
>>
>>> Ok, things are certainly better on FreeBSD/i386 now.  I just spent
>>> a few minutes playing a newly compiled tetris.
>>>
>>> However, I still get that very first error I wrote about:
>>>
>>> /home/mika/u/parserlib/ktok/FreeBSD4/tok ../src/Lang.t -o LangTok.i3
>>> WELCOME!
>>> GOT TOKPARAMS!
>>> GOT TOKENS
>>> GOT SUBS!
>>>
>>>
>>> ***
>>> *** runtime error:
>>> ***    <*ASSERT*> failed.
>>> ***    file "../src/runtime/common/RTCollector.m3", line 2310
>>> ***
>>>
>>> What I did was... I wasn't sure exactly what state my CM3 was in,
>>> as usual, so I deleted all of /usr/local/cm3, plus my repository
>>> checkout, checked it out from scratch, and followed your bootstrap
>>> instructions of June 24 to the letter, except that where you said
>>> to do "do-cm3-std.sh realclean" I did "do-cm3-core.sh realclean"
>>> and then "do-cm3-std.sh realclean", built the stage 1 and stage 2,
>>> installed the new compiler.  No problems until trying to run
>>> this code, which is part of our local version of the "caltech-
>>> parser"...
>>> Here we go:
>>>
>>>
>>> Program received signal SIGABRT, Aborted.
>>> 0x68b5e0c7 in kill () from /lib/libc.so.5
>>> (gdb) where
>>> #0  0x68b5e0c7 in kill () from /lib/libc.so.5
>>> #1  0x68b5312e in raise () from /lib/libc.so.5
>>> #2  0x68bc6cef in abort () from /lib/libc.so.5
>>> #3  0x682bc7f2 in RTOS__Crash () at RTOS.m3:20
>>> #4  0x682b3b66 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at
>>> RTProcess.m3:65
>>> #5  0x682b1e30 in RTError__EndError (M3_AicXUJ_crash=1 '\001') at
>>> RTError.m3:115
>>> #6  0x682b1b71 in RTError__MsgS (M3_AJWxb1_file=0x682dd4c8,
>>> M3_AcxOUs_line=2310, M3_Bd56fi_msgA=0x682df048,
>>> M3_Bd56fi_msgB=0x682d9630, M3_Bd56fi_msgC=0x682df048) at  
>>> RTError.m3:40
>>> #7  0x682b21f4 in RTException__Crash (M3_Cblw37_a=0xbfbfe0b8,
>>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0x682d94e0) at
>>> RTException.m3:79
>>> #8  0x682b1f58 in RTException__DefaultBackstop
>>> (M3_Cblw37_a=0xbfbfe0b8, M3_AicXUJ_raises=0 '\0') at  
>>> RTException.m3:39
>>> #9  0x682b1ebc in RTException__InvokeBackstop
>>> (M3_Cblw37_a=0xbfbfe0b8, M3_AicXUJ_raises=0 '\0') at  
>>> RTException.m3:25
>>> #10 0x682bdc37 in RTException__Raise (M3_Cblw37_act=0xbfbfe0b8) at
>>> RTExFrame.m3:29
>>> #11 0x682b1ff8 in RTException__DefaultBackstop
>>> (M3_Cblw37_a=0xbfbfe0b8, M3_AicXUJ_raises=0 '\0') at  
>>> RTException.m3:47
>>> #12 0x682b1ebc in RTException__InvokeBackstop
>>> (M3_Cblw37_a=0xbfbfe0b8, M3_AicXUJ_raises=0 '\0') at  
>>> RTException.m3:25
>>> #13 0x682bdc37 in RTException__Raise (M3_Cblw37_act=0xbfbfe0b8) at
>>> RTExFrame.m3:29
>>> #14 0x6829da9e in RTHooks__ReportFault
>>> (M3_AJWxb1_module=0x682dd640, M3_AcxOUs_info=73920) at  
>>> RTHooks.m3:110
>>> #15 0x682afc48 in _m3_fault (M3_AcxOUs_arg=73920) from /usr/local/
>>> cm3/pkg/m3core/FreeBSD4/libm3core.so.5
>>> #16 0x682ad065 in RTHooks__CheckStoreTraced
>>> (M3_Af40ku_ref=0x68c2b104) at RTCollector.m3:2310
>>> #17 0x682bfba2 in ThreadPosix__LockMutex (M3_AYIbX3_m=0x68c2b104)
>>> at ThreadPosix.m3:416
>>> #18 0x681ab817 in Wr__PutText (M3_BxxOH1_wr=0x68c2b104,
>>> M3_Bd56fi_t=0x68c05608) at Wr.m3:93
>>> #19 0x0804a445 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113
>>> #20 0x682b120a in RTLinker__RunMainBody (M3_DjPxE3_m=0x804cae0) at
>>> RTLinker.m3:399
>>> #21 0x682b0735 in RTLinker__AddUnitI (M3_DjPxE3_m=0x804cae0) at
>>> RTLinker.m3:113
>>> #22 0x682b07bc in RTLinker__AddUnit (M3_DjPxE5_b=0x8049e50) at
>>> RTLinker.m3:122
>>> #23 0x080491f5 in main (argc=4, argv=0xbfbfe40c, envp=0xbfbfe420)
>>> at _m3main.mc:4
>>> (gdb)
>>>
>>>    2302 PROCEDURE CheckStoreTraced (ref: REFANY) =
>>>    2303   VAR p := Word.RightShift (LOOPHOLE(ref, Word.T),
>>> LogBytesPerPage);
>>>    2304   BEGIN
>>>    2305     RTOS.LockHeap ();
>>>    2306     INC(checkStoreTraced);
>>>    2307
>>>    2308     WITH h = HeaderOf (LOOPHOLE(ref, RefReferent)) DO
>>>    2309       <*ASSERT h.typecode # RT0.TextLitTypecode*>
>>>    2310       <*ASSERT NOT h.gray*>
>>>    2311
>>>    2312       IF h.dirty THEN
>>>    2313         <*ASSERT NOT desc[p - p0].clean*>
>>>    2314       ELSE
>>>    2315         h.dirty := TRUE;
>>>    2316         IF desc[p - p0].clean THEN
>>>    2317           desc[p - p0].clean := FALSE;
>>>    2318           IF perfOn THEN PerfChange(p, PageCount(p)); END;
>>>    2319         END;
>>>    2320       END;
>>>    2321     END;
>>>    2322
>>>    2323     RTOS.UnlockHeap();
>>>    2324     RETURN;
>>>    2325   END CheckStoreTraced;
>>>
>>> I believe this is the same as the first bug I ran across.  The  
>>> program
>>> (ktok) does appear to work fine with @M3nogc.
>>>
>>> Further information: I am also "able" to get mentor and Juno to
>>> crash on this line 2310.  I checked the bootstrapping process by
>>> building a third-stage bootstrapped compiler, and it was byte-for- 
>>> byte
>>> identical to the second-stage bootstrap.  Finally, I am still a bit
>>> worried about libraries (maybe across the different booting stages)
>>> getting polluted: I am able to run Juno, mentor, etc., except for
>>> the garbage-collection problem, but my own Trestle applications
>>> crash somewhere in the (C) X libraries, even though they have worked
>>> fine on several other versions of Modula-3.  (Most likely, of  
>>> course,
>>> it's some sort of bug of mine... generally I am not in the habit of
>>> blaming the libraries or compiler, but you never know!)
>>>
>>> The line-2310 crashes also seem to go away with @M3noincremental,
>> by the
>>> way.
>>>
>>>
>>>
>>>     Mika
>>>
>>> Tony Hosking writes:
>>>> I've just checked in a fix to ThreadPosix.m3 that eliminates your
>>>> problem with user-level threads.  I have tested this on I386_DARWIN
>>>> and it appears to be working just fine now.  Please try again with
>>>> the updated ThreadPosix.m3.
>>>>
>>>> On Jun 25, 2007, at 3:05 PM, Mika Nystrom wrote:
>>>>
>>>>> Indeed, -g was one of the culprits.  I changed it to -gstabs+ and
>>>>> got a bit further... (please scroll down to STEP 2, sorry)
>>>>>
>>>>> Tony Hosking writes:
>>>>>> Sounds like we really need some work done in this area.  I very
>>>>>> rarely use the build scripts, since I bootstrap manually from old
>>>>>> compilers to new compilers rather than use the scripts.  I  
>>>>>> suggest
>>>>>> the following approach, which I hope you will try, and then  
>>>>>> report
>>>>>> back on.
>>>>>>
>>>>>> Install the bootstrap compiler as you did originally:
>>>>>>
>>>>>>> rm -rf /usr/local/cm3/*
>>>>>>>
>>>>>>> cd ~/cm3-cvs
>>>>>>> mkdir boot
>>>>>>> cd boot
>>>>>>> tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
>>>>>>> ./cminstall
>>>>>>
>>>>>> Now you will have some kind of cm3 installed, presumably in /usr/
>>>>>> local/cm3/bin/cm3.
>>>>>>
>>>>>> Make sure you have a fresh CVS checkout in directory cm3 (let's
>>>>>> assume this is in your home directory ~/cm3).  Also, make sure  
>>>>>> you
>>>>>> have an up-to-date version of the CM3 backend compiler cm3cg
>>>>>> installed by executing the following:
>>>>>>
>>>>>> STEP 0:
>>>>>>
>>>>>> export CM3=/usr/local/cm3/bin/cm3
>>>>>> cd ~/cm3/m3-sys/m3cc
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>>
>>>>>> You can skip this last step if you know your backend compiler  
>>>>>> is up
>>>>>> to date.
>>>>>>
>>>>>> Now, let's build the new compiler from scratch (this is the
>>>>>> sequence
>>>>>> I use regularly to test changes to the run-time system whenever I
>>>>>> make them):
>>>>>>
>>>>>> STEP 1:
>>>>>>
>>>>>> cd ~/cm3/m3-libs/m3core
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-libs/libm3
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-sys/m3middle
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-sys/m3linker
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-sys/m3front
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-sys/m3quake
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>> cd ~/cm3/m3-sys/cm3
>>>>>> $CM3
>>>>>> $CM3 -ship
>>>>>>
>>>>>> At this point you should have a bootstrapped version of cm3
>>>>>> installed
>>>>>> in the directory /usr/local/cm3/pkg/cm3/TARGET/cm3 (where  
>>>>>> TARGET is
>>>>>> the CM3 target platform you are building on -- e.g., LINUXLIBC6,
>>>>>> PPC_DARWIN, ...).  Note that this did not overwrite your original
>>>>>> installed compiler in /usr/local/cm3/bin/cm3.  We
>>>>>> are now going to test the new compiler, which was built using
>>>>>> the old
>>>>>> compiler, by bootstrapping it one more time.
>>>>>>
>>>>>> From here on out, please replace TARGET with your target
>>>>>> platform as
>>>>>> appropriate.
>>>>>>
>>>>>> STEP 2:
>>>>>>
>>>>>> export CM3=/usr/local/cm3/pkg/cm3/TARGET/cm3
>>>>>> cd ~/cm3/scripts
>>>>>> ./do-cm3-std.sh realclean
>>>>>> REPEAT STEP 1 to rebuild the libraries and the compiler using the
>>>>>> STEP 1 bootstrap compiler.
>>>>>>
>>>>>> Now you have a STEP 2 bootstrap compiler installed in /usr/local/
>>>>>> cm3/
>>>>>> pkg/cm3/TARGET/cm3.  Let's assume the new compiler now works
>>>>>> properly
>>>>>> since it successfully bootstrapped itself, but to be sure we can
>>>>>> now
>>>>>> use it to rebuild the world:
>>>>>
>>>>> Ok, I got this far.  I built the step 1 (m3core...cm3), set my
>>>>> compiler to the newly-built compiler, and rebuilt (m3core...cm3).
>>>>> No errors anywhere, beautiful.
>>>>>
>>>>>>
>>>>>> cd ~/cm3/scripts
>>>>>> ./do-cm3-std.sh realclean
>>>>>> ./do-cm3-std.sh buildship
>>>>>
>>>>> Here's where it dies:
>>>>>
>>>>> ./do-cm3-std.sh buildship
>>>>> CM3C =
>>>>> /big/home2/mika/2/cm3-cvs/fresh/cm3/scripts/pkgmap.sh -c "/usr/
>>>>> local/cm3/pkg/cm3/FreeBSD4/cm3 -build  -DROOT='/big/home2/mika/2/
>>>>> cm3-cvs/fresh/cm3'  && /usr/local/cm3/pkg/cm3/FreeBSD4/cm3 -ship -
>>>>> DROOT='/big/home2/mika/2/cm3-cvs/fresh/cm3' " m3core libm3
>>>>> patternmatching m3middle m3quake m3scanner m3tools m3cgcat m3cggen
>>>>> m3gdb m3bundle arithmetic bitvector digraph parseparams
>>>>> realgeometry set slisp sortedtableextras table-list tempfiles tcp
>>>>> udp libsio libbuf debug listfuncs embutils m3tk-misc http binIO
>>>>> commandrw m3tk mtex m3totex m3tohtml m3scan m3markup m3browser
>>>>> cmpdir cmpfp dirfp uniq netobj netobjd stubgen events rdwr
>>>>> sharedobj sharedobjgen odbc postgres95 db smalldb stable stablegen
>>>>> X11R4 ui PEX vbtkit cmvbt jvideo videovbt web formsvbtpixmaps
>>>>> formsvbt formsview formsedit codeview mg mgkit opengl anim3D zeus
>>>>> m3zume synloc synex metasyn obliqrt obliqparse obliqprint obliq
>>>>> obliqlibemb obliqlibm3 obliqlibui obliqlibanim obliqsrvstd
>>>>> obliqsrvui obliqbinmin obliqbinstd obliqbin!
>>>>> ui obliqbinanim visualobliq vocgi voquery vorun webvbt recordheap
>>>>> rehearsecode replayheap showheap shownew showthread pkl-fonts  
>>>>> juno-
>>>>> machine juno-compiler juno-app cube calculator fisheye mentor
>>>>> === package /big/home2/mika/2/cm3-cvs/fresh/cm3/m3-libs/m3core ===
>>>>>  +++ /usr/local/cm3/pkg/cm3/FreeBSD4/cm3 -build  -DROOT='/big/ 
>>>>> home2/
>>>>> mika/2/cm3-cvs/fresh/cm3'  && /usr/local/cm3/pkg/cm3/FreeBSD4/ 
>>>>> cm3 -
>>>>> ship -DROOT='/big/home2/mika/2/cm3-cvs/fresh/cm3'  +++
>>>>>
>>>>>
>>>>> ***
>>>>> *** runtime error:
>>>>> ***    <*ASSERT*> failed.
>>>>> ***    file "../src/runtime/common/RTCollector.m3", line 690
>>>>> ***
>>>>>
>>>>>
>>>>>
>>>>> ***
>>>>> *** runtime error:
>>>>> ***    <*ASSERT*> failed.
>>>>> ***    file "../src/runtime/common/RTCollector.m3", line 690
>>>>> ***
>>>>
>>>>> Abort trap
>>>>>  *** execution of  failed ***
>>>>>
>>>>> This time it appears to be cm3 itself that's crashing:
>>>>>
>>>>> (310)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>$CM3 -keep -commands
>>>>>
>>>>>
>>>>> ***
>>>>> *** runtime error:
>>>>> ***    <*ASSERT*> failed.
>>>>> ***    file "../src/runtime/common/RTCollector.m3", line 690
>>>>> ***
>>>>>
>>>>>
>>>>>
>>>>> ***
>>>>> *** runtime error:
>>>>> ***    <*ASSERT*> failed.
>>>>> ***    file "../src/runtime/common/RTCollector.m3", line 690
>>>>> ***
>>>>>
>>>>> Abort
>>>>>
>>>>> What follows is what m3gdb has to say about this.  I take it that
>>>>> the last error message comes from my -gstabs+ option.  m3gdb  
>>>>> doesn't
>>>>> like this new binary: it can't print variables and sometimes  
>>>>> crashes
>>>>> trying.  Would I have better luck with "-gstabs", do you  
>>>>> think?  Or
>>>>> do I just need to fix the compile process and install a new m3gdb?
>>>>> (I take it there is a newer one: mine is very old.  But I remember
>>>>> that m3gdb doesn't always work that well...)
>>>>>
>>>>>       Mika
>>>>>
>>>>> #1  16_81a619d in __raise ()
>>>>> #2  16_81a3b8f in abort ()
>>>>> #3  16_8178d16 in RTOS.Crash () at RTOS.m3:20
>>>>> #4  16_8171fd2 in RTProcess.Crash (msg=NIL) at RTProcess.m3:65
>>>>> #5  16_8170428 in RTError.EndError (crash=TRUE) at RTError.m3:115
>>>>> #6  16_8170169 in RTError.MsgS (file=16_820a508, line=690,
>>>>> msgA=16_820bfe8, msgB=16_8208170, msgC=16_820bfe8) at  
>>>>> RTError.m3:40
>>>>> #7  16_81707ec in RTException.Crash (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END, raises=FALSE, rte=16_8208020) at RTException.m3:79
>>>>> #8  16_8170550 in RTException.DefaultBackstop (a=RECORD  
>>>>> exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:39
>>>>> #9  16_81704b4 in RTException.InvokeBackstop (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:25
>>>>> #10 16_8179ca7 in RTException.Raise (act=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END) at RTExFrame.m3:29
>>>>> #11 16_81705f0 in RTException.DefaultBackstop (a=RECORD  
>>>>> exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:47
>>>>> #12 16_81704b4 in RTException.InvokeBackstop (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:25
>>>>> #13 16_8179ca7 in RTException.Raise (act=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END) at RTExFrame.m3:29
>>>>> #14 16_8160bba in RTHooks.ReportFault (module=16_820a680,
>>>>> info=22080) at RTHooks.m3:110
>>>>> #15 16_816e251 in _m3_fault (arg=22080) at RTCollector.m3:0
>>>>> #16 16_81649b7 in RTCollector.CollectorOn () at RTCollector.m3:690
>>>>> #17 16_816b595 in RTHooks.CheckLoadTracedRef (ref=16_681b3300) at
>>>>> RTCollector.m3:2296
>>>>> #18 16_814400c in Stdio.ShutDown () at Stdio.m3:43
>>>>> #19 16_8171f51 in RTProcess.InvokeExitors () at RTProcess.m3:40
>>>>> #20 16_8171fc5 in RTProcess.Crash (msg=NIL) at RTProcess.m3:61
>>>>> #21 16_8170428 in RTError.EndError (crash=TRUE) at RTError.m3:115
>>>> #22 16_8170169 in RTError.MsgS (file=16_820a508, line=690,
>>>>> msgA=16_820bfe8, msgB=16_8208170, msgC=16_820bfe8) at  
>>>>> RTError.m3:40
>>>>> #23 16_81707ec in RTException.Crash (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END, raises=FALSE, rte=16_8208020) at RTException.m3:79
>>>>> #24 16_8170550 in RTException.DefaultBackstop (a=RECORD  
>>>>> exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:39
>>>>> #25 16_81704b4 in RTException.InvokeBackstop (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:25
>>>>> #26 16_8179ca7 in RTException.Raise (act=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END) at RTExFrame.m3:29
>>>>> #27 16_81705f0 in RTException.DefaultBackstop (a=RECORD  
>>>>> exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:47
>>>>> #28 16_81704b4 in RTException.InvokeBackstop (a=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020;
>>>>>     un_arg = NIL;  END, raises=FALSE) at RTException.m3:25
>>>>> #29 16_8179ca7 in RTException.Raise (act=RECORD exception =
>>>>> 16_8208020; arg = 16_c; module = 16_820a680; line = 690; pc = NIL;
>>>>> info0 = NIL; info1 = NIL; un_except = 16_8208020; un_arg = NIL;
>>>>>      END) at RTExFrame.m3:29
>>>>> #30 16_8160bba in RTHooks.ReportFault (module=16_820a680,
>>>>> info=22080) at RTHooks.m3:110
>>>>> #31 16_816e251 in _m3_fault (arg=22080) at RTCollector.m3:0
>>>>> #32 16_81649b7 in RTCollector.CollectorOn () at RTCollector.m3:690
>>>>> #33 16_816b595 in RTHooks.CheckLoadTracedRef (ref=16_681b3004) at
>>>>> RTCollector.m3:2296
>>>>> #34 16_817c41e in ThreadF.ProcessStacks (p=16_816415e) at
>>>>> ThreadPosix.m3:522
>>>>> #35 16_8165213 in RTCollector.CollectSomeInStateZero () at
>>>>> RTCollector.m3:845
>>>>> #36 16_8164d2c in RTCollector.CollectSome () at RTCollector.m3:741
>>>>> #37 16_816487b in RTCollector.CollectEnough () at  
>>>>> RTCollector.m3:659
>>>>> #38 16_81673cd in RTHeapRep.AllocTraced (def=16_81f8f38,
>>>>> dataSize=8200, dataAlignment=4, initProc=16_bfbfe0f4, pool=RECORD
>>>>> desc = RECORD space = Current; generation = Younger; pure = FALSE;
>>>>>     note = Allocated; gray = FALSE; clean = FALSE; continued =
>>>>> FALSE; link = 0;  END; notAfter = {Copied}; page = 0; stack = 0;
>>>>> next = NIL; limit = NIL; busy = FALSE;  END)
>>>>>     at RTCollector.m3:1417
>>>>> #39 16_816218e in RTAllocator.GetOpenArray (def=16_81f8f38, s=
>>>>> [2048]) at RTAllocator.m3:308
>>>>> #40 16_8161737 in RTHooks.AllocateOpenArray (defn=16_81f8f38, s=
>>>>> [2048]) at RTAllocator.m3:156
>>>>> #41 16_8129d56 in M3ID_M3 (mode=1) at M3ID.m3:40
>>>>> #42 16_816f802 in RTLinker.RunMainBody (m=16_81f8cc0) at
>>>>> RTLinker.m3:399
>>>>> #43 16_816f6ca in RTLinker.RunMainBody (m=16_81c0880) at
>>>>> RTLinker.m3:379
>>>>> #44 16_816f6ca in RTLinker.RunMainBody (m=16_81c06a0) at
>>>>> RTLinker.m3:379
>>>>> #45 16_816f6ca in RTLinker.RunMainBody (m=16_81bc920) at
>>>>> RTLinker.m3:379
>>>>> #46 16_816ed2d in RTLinker.AddUnitI (m=16_81bc920) at
>>>>> RTLinker.m3:113
>>>>> #47 16_816edb4 in RTLinker.AddUnit (b=16_8065527) at  
>>>>> RTLinker.m3:122
>>>>> module "_m3main": missing debug info for global data
>>>>>
>>>>> (gdb) up 32
>>>>> #32 16_81649b7 in RTCollector.CollectorOn () at RTCollector.m3:690
>>>>> RTCollector.m3:690: No such file or directory.
>>>>> (gdb)
>>>>> Suspended
>>>>> (360)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>find ../.. -name
>>>>> RTCollector.m3
>>>>> ../../m3-libs/m3core/src/runtime/common/RTCollector.m3
>>>>> (361)rover:~/cm3-cvs/fresh/cm3/m3-libs/m3core>fg
>>>>> m3gdb /usr/local/cm3/pkg/cm3/FreeBSD4/cm3
>>>>> (gdb) dir ../../m3-libs/m3core/src/runtime/common/
>>>>> Source directories searched: /big/home2/mika/2/cm3-cvs/fresh/ 
>>>>> cm3/m3-
>>>>> libs/m3core/../../m3-libs/m3core/src/runtime/common:$cdir:$cwd
>>>>> (gdb) list
>>>>> 685     VAR timeOnEntry, timeOnExit: Time.T;     (* time of
>>>>> collector entry/exit *)
>>>>> 686
>>>>> 687     PROCEDURE CollectorOn () =
>>>>> 688       (* LL >= RTOS.LockHeap *)
>>>>> 689       BEGIN
>>>>> 690         <* ASSERT NOT collectorOn *>
>>>>> 691         collectorOn := TRUE;
>>>>> 692
>>>>> 693         IF incremental AND NOT RTLinker.incremental
>>>>> 694           OR generational AND NOT RTLinker.generational THEN
>>>>> (gdb) print collectorOn
>>>>> can't find identifier: collectorOn
>>>>> (gdb) up
>>>>> #33 16_816b595 in RTHooks.CheckLoadTracedRef (ref=16_681b3004) at
>>>>> RTCollector.m3:2296
>>>>> 2296          CollectorOn();
>>>>> (gdb) print collectorOn
>>>>> can't find identifier: collectorOn
>>>>> (gdb) print ref
>>>>> Segmentation fault
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Assuming this succeeded then we can be pretty sure /usr/local/ 
>>>>>> cm3/
>>>>>> pkg/
>>>>>> cm3/TARGET/cm3 is good, so we can make it our default compiler by
>>>>>> replacing the original /usr/local/cm3/bin/cm3:
>>>>>>
>>>>>> cp $CM3 /usr/local/cm3/bin/cm3
>>>>>>
>>>>>> On Jun 23, 2007, at 2:38 PM, Mika Nystrom wrote:
>>>>>>
>>>>>>> Ok, I'm sorry if I seem a bit dimwitted in the morning like  
>>>>>>> this,
>>>>>>> but how exactly does one get started?  I wish there were a file
>>>>>>> called
>>>>>>> "GETTING_STARTED" or something like that in scripts...
>>>>>>>
>>>>>>> My Mac is very slow so I switched to my FreeBSD/i386 system
>>>>>>> (which has
>>>>>>> PM3 happily installed on it) and tried to install CM3 from
>>>>>>> scratch.
>>>>>>> Here are the exact commands I typed.
>>>>>>>
>>>>>>>
>>>>>>> rm -rf /usr/local/cm3/*
>>>>>>>
>>>>>>> cd ~/cm3-cvs
>>>>>>> mkdir boot
>>>>>>> cd boot
>>>>>>> tar xzvf ../cm3-min-POSIX-FreeBSD4-d5.3.1-2005-10-05.tgz
>>>>>>> ./cminstall
>>>>>>>
>>>>>>> # now I seem to have some kind of cm3 installed, /usr/local/cm3/
>>>>>>> bin/
>>>>>> cm3
>>>>>>>
>>>>>>> cd cm3   # location of my CM3 checkout
>>>>>>> cvs update -d .
>>>>>>>
>>>>>>> cd scripts
>>>>>>> ./boot-cm3-with-m3.sh realclean
>>>>>>> ./do-cm3-std.sh realclean
>>>>>>>
>>>>>>> ./upgrade.sh                      # fails here, libm3 not  
>>>>>>> compiled
>>>>>>> ./boot-cm3-with-m3.sh build       # builds cm3, but fails on
>>>>>>> cminstall, patternmatching not built
>>>>>>>
>>>>>>> ./do-cm3-std.sh build             # OK
>>>>>>> ./do-cm3-std.sh buildship         # OK
>>>>>>>
>>>>>>> ./boot-cm3-with-m3.sh realclean   # start over
>>>>>>> ./boot-cm3-with-m3.sh build       # OK
>>>>>>> ./boot-cm3-with-m3.sh buildship   # OK
>>>>>>>
>>>>>>> ./do-cm3-std.sh realclean         # OK
>>>>>>> ./do-cm3-std.sh build             # dies miserably... maybe the
>>>>>>> compiler can't handle the new libraries?
>>>>>>>
>>>>>>> ./install-cm3-compiler.sh upgrade # OK, new cm3 binary installed
>>>>>>>
>>>>>>> After all that, "game over."  I have a cm3 that segfaults.
>>>>>>>
>>>>>>> Text.i3: In function 'Text_I3':
>>>>>>> Text.i3:81: internal compiler error: Segmentation fault
>>>>>>> Please submit a full bug report,
>>>>>>> with preprocessed source if appropriate.
>>>>>>> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
>>>>>>> compilation failed => not building library "libm3core.a"
>>>>>>> Fatal Error: package build failed
>>>>>>>  *** execution of  failed ***
>>>>>>>
>>>>>>> I can't seem to get either m3gdb or gdb to say anything  
>>>>>>> reasonable
>>>>>>> either.  ktrace shows nothing out of the ordinary.
>>>>>>>
>>>>>>> -----
>>>>>>>
>>>>>>> Meanwhile, my Mac got through "do-cm3-std.sh realclean" and
>>>>>>> "do-cm3-std.sh buildship" but my compiles are still dying on the
>>>>>>> same assertion tickled by ktok.  On that machine I have
>>>>>>> INSTALLROOT
>>>>>>> set to ~/cm3, but hopefully that has nothing to do with it...
>>>>>>>
>>>>>>> -----
>>>>>>>
>>>>>>> Does do-cm3-std.sh realclean clean EVERYTHING?  If so my Mac
>>>>>>> should
>>>>>>> really have a fresh setup.  The FreeBSD, I am not sure, maybe  
>>>>>>> the
>>>>>>> old binary version just doesn't work right?  Of course I  
>>>>>>> could try
>>>>>>> bootstrapping with PM3 as well... but really, there's an
>>>>>>> "approved"
>>>>>>> process to get from a blank system, no?
>>>>>>>
>>>>>>>       Mika
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Tony Hosking writes:
>>>>>>>> That sounds like you forgot to execute "do-cm3-std.sh  
>>>>>>>> realclean"
>>>>>>>> before initiating the build.  These sorts of errors sometimes
>>>>>>>> arise
>>>>>>>> if there are old build directories lying around.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Jun 23, 2007, at 3:34 AM, Mika Nystrom wrote:
>>>>>>>>
>>>>>>>>> Hello everyone,
>>>>>>>>>
>>>>>>>>> I am in the process of trying to consolidate build systems  
>>>>>>>>> for a
>>>>>>>>> few software packages I am maintaining.  Currently, I am
>>>>>>>>> using an
>>>>>>>>> old PM3 on FreeBSD4, an ancient PM3 (from Klagenfurt?) for
>>>>>>>>> Windows
>>>>>>>>> (NT386GNU), and trying to get the latest CM3 from cvs up and
>>>>>>>>> compiling
>>>>>>>>> things on PPC_DARWIN.  Ideally, I'd like to standardize
>>>>>>>>> everything
>>>>>>>>> on the new PM3---mainly so that I can use pickles (and Network
>>>>>>>>> Objects) across all three systems.  I'd also like to add
>>>>>>>>> Linux to
>>>>>>>>> the mix.
>>>>>>>>>
>>>>>>>>> It's natural for me to start with CM3 on Darwin, as there's no
>>>>>>>>> alternative.  But I am getting some assertions failing.
>>>>>>>>> Everything
>>>>>>>>> in the CM3 distribution compiles fine, and I believe I have
>>>>>>>>> compiled
>>>>>>>>> the libraries a few times (that is, including with  
>>>>>>>>> themselves),
>>>>>>>>> and
>>>>>>>>> updated the compiler, too (using boot-cm3-with-m3.sh).  I
>>>>>>>>> just cvs
>>>>>>>>> updated tonight.
>>>>>>>>>
>>>>>>>>> Here's what I'm running into:
>>>>>>>>>
>>>>>>>>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/CHP.t -o
>>>>>>>>> CHPTok.i3
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ***
>>>>>>>>> *** runtime error:
>>>>>>>>> ***    <*ASSERT*> failed.
>>>>>>>>> ***    file "../src/runtime/common/RTCollector.m3", line 2314
>>>>>>>>> ***
>>>>>>>>>
>>>>>>>>> Abort
>>>>>>>>>
>>>>>>>>> Also:
>>>>>>>>>
>>>>>>>>> /Users/mika/t/parserlib/ktok/PPC_DARWIN/tok ../src/PRS.t -o
>>>>>>>>> PRSTok.i3
>>>>>>>>> Illegal instruction
>>>>>>>>>
>>>>>>>>> As you can see, these things are coming from the
>>>>>>>>> caltech_parser.  I
>>>>>>>> am using
>>>>>>>>> our local version, but I don't think it is very different from
>>>>>>>>> what
>>>>>>>>> is in the
>>>>>>>>> CM3 tree.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Examining the first error (the failed assertion) more closely,
>>>>>>>>> I see
>>>>>>>>> the following:
>>>>>>>>>
>>>>>>>>> (gdb) list
>>>>>>>>> 108         wr := FileWr.Open(Pathname.ReplaceExt(tp.out,
>>>>>>>>> "m3"));
>>>>>>>>> 109       EXCEPT OSError.E =>
>>>>>>>>> 110         Debug.Error("Cannot open tok implementation output
>>>>>>>>> file: " &
>>>>>>>>> 111           Pathname.ReplaceExt(tp.out, "m3"));
>>>>>>>>> 112       END;
>>>>>>>>> 113       Wr.PutText(wr, subs.apply(Bundle.Get(Form,
>>>>>>>>> "tokform.m3")));
>>>>>>>>> 114       Wr.Close(wr);
>>>>>>>>> 115     END Main.
>>>>>>>>> (gdb) where
>>>>>>>>> #0  0x9004308c in kill ()
>>>>>>>>> #1  0x9009fb3c in abort ()
>>>>>>>>> #2  0x00096f50 in RTOS__Crash () at RTOS.m3:20
>>>>>>>>> #3  0x0005bd40 in RTProcess__Crash (M3_Bd56fi_msg=0x0) at
>>>>>>>>> RTProcess.m3:65
>>>>>>>>> #4  0x0008e4e0 in RTError__EndError (M3_AicXUJ_crash=1
>>>>>>>>> '\001') at
>>>>>>>>> RTError.m3:115
>>>>>>>>> #5  0x0008e08c in RTError__MsgS (M3_AJWxb1_file=0xc63d8,
>>>>>>>>> M3_AcxOUs_line=2314, M3_Bd56fi_msgA=0xca3d0,
>>>>>>>>> M3_Bd56fi_msgB=0xcbe90, M3_Bd56fi_msgC=0xca3d0) at  
>>>>>>>>> RTError.m3:40
>>>>>>>>> #6  0x0008eb88 in RTException__Crash (M3_Cblw37_a=0xbfffee00,
>>>>>>>>> M3_AicXUJ_raises=0 '\0', M3_AJWxb1_rte=0xcb538) at
>>>>>>>>> RTException.m3:79
>>>>>>>>> #7  0x0008e74c in RTException__DefaultBackstop
>>>>>>>>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at
>>>>>>>>> RTException.m3:39
>>>>>>>>> #8  0x0008e614 in RTException__InvokeBackstop
>>>>>>>>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at
>>>>>>>>> RTException.m3:25
>>>>>>>>> #9  0x00095d04 in RTException__Raise
>>>>>>>>> (M3_Cblw37_act=0xbfffee00) at
>>>>>>>>> RTExFrame.m3:29
>>>>>>>>> #10 0x0008e840 in RTException__DefaultBackstop
>>>>>>>>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at
>>>>>>>>> RTException.m3:47
>>>>>>>>> #11 0x0008e614 in RTException__InvokeBackstop
>>>>>>>>> (M3_Cblw37_a=0xbfffee00, M3_AicXUJ_raises=0 '\0') at
>>>>>>>>> RTException.m3:25
>>>>>>>>> #12 0x00095d04 in RTException__Raise
>>>>>>>>> (M3_Cblw37_act=0xbfffee00) at
>>>>>>>>> RTExFrame.m3:29
>>>>>>>>> #13 0x00079740 in RTHooks__ReportFault
>>>>>>>>> (M3_AJWxb1_module=0xb3eb8,
>>>>>>>>> M3_AcxOUs_info=74048) at RTHooks.m3:110
>>>>>>>>> #14 0x0006ff4c in _m3_fault (M3_AcxOUs_arg=74048)
>>>>>>>>> #15 0x0006bcf4 in RTHooks__CheckStoreTraced
>>>>>>>>> (M3_Af40ku_ref=0xb2415c) at RTCollector.m3:2314
>>>>>>>>> #16 0x000700e4 in ThreadPThread__InnerLockMutex
>>>>>>>>> (M3_AYIbX3_m=0xb2415c, M3_BXP32l_self=0xb24014) at
>>>>>>>>> ThreadPThread.m3:126
>>>>>>>>> #17 0x000704d8 in ThreadPThread__LockMutex
>>>>>>>>> (M3_AYIbX3_m=0xb2415c)
>>>>>>>>> at ThreadPThread.m3:153
>>>>>>>>> #18 0x00019b24 in Wr__PutText (M3_BxxOH1_wr=0xb2415c,
>>>>>>>>> M3_Bd56fi_t=0xb44d5c) at Wr.m3:93
>>>>>>>>> #19 0x00003f74 in Main_M3 (M3_AcxOUs_mode=1) at Main.m3:113
>>>>>>>>> #20 0x0005b1c4 in RTLinker__RunMainBody  
>>>>>>>>> (M3_DjPxE3_m=0xad190) at
>>>>>>>>> RTLinker.m3:399
>>>>>>>>> #21 0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at
>>>>>>>>> RTLinker.m3:113
>>>>>>>>> #22 0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at
>>>>>>>>> RTLinker.m3:122
>>>>>>>>> #23 0x00001fac in main (argc=4, argv=0xbffffb24,
>>>>>>>>> envp=0xbffffb38)
>>>>>>>>> at _m3main.mc:4
>>>>>>>>> (gdb)
>>>>>>>>>
>>>>>>>>> The second error:
>>>>>>>>>
>>>>>>>>> Program received signal EXC_BAD_INSTRUCTION, Illegal
>>>>>>>>> instruction/
>>>>>>>>> operand.
>>>>>>>>> 0x00b111ac in ?? ()
>>>>>>>>> (gdb) where
>>>>>>>>> #0  0x00b111ac in ?? ()
>>>>>>>>> #1  0x0001214c in TextSubs__Apply (M3_CN69dV_self=0xb26450,
>>>>>>>>> M3_Bd56fi_src=0xb21cec) at TextSubs.m3:63
>>>>>>>>> #2  0x0005b1c4 in RTLinker__RunMainBody  
>>>>>>>>> (M3_DjPxE3_m=0xad190) at
>>>>>>>>> RTLinker.m3:399
>>>>>>>>> #3  0x00059f88 in RTLinker__AddUnitI (M3_DjPxE3_m=0xad190) at
>>>>>>>>> RTLinker.m3:113
>>>>>>>>> #4  0x0005a084 in RTLinker__AddUnit (M3_DjPxE5_b=0x3600) at
>>>>>>>>> RTLinker.m3:122
>>>>>>>>> #5  0x00001fac in main (argc=4, argv=0xbffffb24,
>>>>>>>>> envp=0xbffffb38)
>>>>>>>>> at _m3main.mc:4
>>>>>>>>> (gdb) list
>>>>>>>>> 58        BEGIN
>>>>>>>>> 59          WHILE pos < textLen DO
>>>>>>>>> 60            c := Text.GetChar(src, pos);
>>>>>>>>> 61            IF c IN self.starts THEN
>>>>>>>>> 62              (* S("analysing: " & Text.Sub(src, pos),
>>>>>>>>> DebugLevel); *)
>>>>>>>>> 63              iter := self.tbl.iterateOrdered();
>>>>>>>>> 64              ind := pos;
>>>>>>>>> 65              original := "";
>>>>>>>>> 66              REPEAT
>>>>>>>>> 67                INC(ind);
>>>>>>>>> (gdb)
>>>>>>>>>
>>>>>>>>> Any ideas what to look at?
>>>>>>>>>
>>>>>>>>> I don't know if this is relevant:
>>>>>>>>>
>>>>>>>>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% uname -a
>>>>>>>>> Darwin lapdog.local 7.9.0 Darwin Kernel Version 7.9.0: Wed
>>>>>>>>> Mar 30
>>>>>>>>> 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC
>>>>>>>>> Power
>>>>>>>>> Macintosh powerpc
>>>>>>>>> [lapdog:~/t/cit_parse/PPC_DARWIN] mika% gcc -v
>>>>>>>>> Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
>>>>>>>>> Thread model: posix
>>>>>>>>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1666)
>>>>>>>>>
>>>>>>>>>      Mika
>>>>>>>>>
>>>>>>>>> P.S. Am I correct in assuming that I can get CM3 to build on
>>>>>>>>> Windows?
>>>>>>>>> I could switch to CM3 on Unix any time, of course, but I've
>>>>>>>>> never
>>>>>>>>> had luck with it on Windows, which is why I am using the  
>>>>>>>>> ancient
>>>>>>>>> Klagenfurt PM3, which comes on 40-odd "floppies" and a .EXE  
>>>>>>>>> that
>>>>>>>>> unpacks them into C: (and installation instructions only in
>>>>>>>>> German).
>>>>>>>>> If CM3 doesn't work on Windows, I am essentially wasting my
>>>>>>>>> time,
>>>>>>>>> as the current project I am working on absolutely requires  
>>>>>>>>> that
>>>>>>>>> the
>>>>>>>>> software run on Windows 2003 Server (yes, it sucks, but  
>>>>>>>>> what can
>>>>>>>>> you do?)  The very old PM3 at least kind of hobbles along on
>>>>>>>>> this
>>>>>>>>> platform---actually, better than that; it does Trestle  
>>>>>>>>> natively
>>>>>>>>> under Windows (no X required), at least on SOME Windows
>>>>>>>>> machines.
>>>>>>>>>
>>>>>>>>> P.P.S. Sorry for all the postscripts, but is it true that the
>>>>>>>>> build system has been changed so that building with overrides
>>>>>>>>> (cm3 -x)
>>>>>>>>> requires having the compiler sources available?  It didn't
>>>>>>>>> use to
>>>>>>>>> be that way, but I can't get Network Objects to work with
>>>>>>>>> overrides
>>>>>>>>> now unless I have the sources available...  It's a bit of a  
>>>>>>>>> pain
>>>>>>>>> because it means that every user has to have the compiler
>>>>>>>>> sources,
>>>>>>>>> or else ship everything, or was that not the intention?




More information about the M3devel mailing list