[M3devel] strange errors...

Tony Hosking hosking at cs.purdue.edu
Sat Jun 23 17:47:55 CEST 2007


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