[M3devel] strange errors...

Tony Hosking hosking at cs.purdue.edu
Thu Jun 28 16:53:25 CEST 2007


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