<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>This was not meant to change and I haven't seen that it did change.<div>Maybe my cleaning up of the config files. I'll check.</div><div><br></div><div><br></div><div>I understand the risks well. I have a potential plan to change it. But that is another matter.</div><div><br></div><div>You still need to backup libm3/m3core with cm3 -- so that cm3 can build anything that works.</div><div><br></div><div>The wrong uprade sequence still breaks cm3. That is at it should be.</div><div><br></div><div><br></div><div>Tangentially, here is my plan:</div><div>  The upgrade process must be "to the side and switch all at once", not "in place".</div><div> </div><div> It might go over and back though -- i.e. cm3 can move a new cm3, m3core, and libm3 all</div><div> into the install in tight sequence (not atomically). The trick on NT would be to unmap the</div><div> executable, and avoid returning to it -- some sort of "continuation passing style",</div><div> possibly off into a little bit of C++, whose main task would be to move a few files</div><div> and then exit. </div><div><br></div><div><br></div><div> That'd still leave all the platforms to test on to see if a running executable can be replaced.</div><div> esp. including AIX.</div><div><br></div><div><br></div><div>Perhaps it isn't worth it. I have at least endeavored to priortize everything else ahead of this</div><div>and just leave it as an idea/plan that I don't get to</div><div><br></div><div> - Jay</div><div><br><br><br><br><div>> Subject: Re: [M3devel] cm3 is broken<br>> From: hosking@purdue.edu<br>> Date: Sat, 22 Aug 2015 06:48:15 +1000<br>> CC: jay.krell@cornell.edu; m3devel@elegosoft.com<br>> To: rodney.m.bates@acm.org<br>> <br>> That is a regression.<br>> <br>> Sent from my iPad<br>> <br>> > On 22 Aug 2015, at 2:38 am, Rodney M. Bates <rodney_bates@lcwb.coop> wrote:<br>> > <br>> > <br>> > <br>> >> On 08/20/2015 06:32 PM, Antony Hosking wrote:<br>> >> cm3 should build with static link to m3core so as to allow backup as you describe.<br>> >> Did this change recently?<br>> > <br>> > Apparently it is now dynamic, as I see libm3core.so.5 in the backtrace.  Also, setting<br>> > a breakpoint at one of these places gives:<br>> > <br>> > <br>> > (m3gdb) b RTExFrame.m3:175<br>> > No source file named RTExFrame.m3.<br>> > Make breakpoint pending on future shared library load? (y or [n]) y<br>> > Breakpoint 1 (RTExFrame.m3:175) pending.<br>> > (m3gdb) run<br>> > <br>> > ........<br>> > <br>> > Breakpoint 2 at 0x7f446c889043: file ../src/runtime/ex_frame/RTExFrame.m3, line 175.<br>> > Pending breakpoint "RTExFrame.m3:175" resolved<br>> > <br>> > <br>> > <br>> >> <br>> >>> On Aug 21, 2015, at 3:19 AM, Jay <jay.krell@cornell.edu> wrote:<br>> >>> <br>> >>> Upgrade is failing because cm3 is already broken. I can see about making the error clearer.<br>> >>> <br>> >>> <br>> >>> I often upgrade.py nocleangcc to speed it up.<br>> >>> <br>> >>> <br>> >>> Right, backup must include libm3 m3core cm3cg cm3 config. See capture-min or capture-boot, I think I settled on capture-min.<br>> >>> <br>> >>> <br>> >>> m3cc either needs to keep the "front" tag or the scripts need to mention it explicitly. You can't safely always skip it.<br>> >>> <br>> >>> <br>> >>> Do you have recourse?<br>> >>> Old release maybe? (Be sure to edit the 5.8.6 config to avoid new cm3cg.)<br>> >>> <br>> >>> - Jay<br>> >>> <br>> >>>> On Aug 20, 2015, at 8:44 AM, "Rodney M. Bates" <rodney_bates@lcwb.coop> wrote:<br>> >>>> <br>> >>>> <br>> >>>> <br>> >>>>> On 08/19/2015 06:57 PM, Jay K wrote:<br>> >>>>> Did you upgrade.py? (or possibly upgrade.sh?)<br>> >>>> <br>> >>>> upgrade.py does this:<br>> >>>> <br>> >>>> rodney@allegheny:~/proj/m3/git/cm3/scripts/python$ python upgrade.py<br>> >>>> Traceback (most recent call last):<br>> >>>> File "upgrade.py", line 4, in <module><br>> >>>>   import pylib<br>> >>>> File "/home/rodney/proj/m3/git/cm3/scripts/python/pylib.py", line 656, in <module><br>> >>>>   if Target.startswith("NT386"):<br>> >>>> AttributeError: 'NoneType' object has no attribute 'startswith'<br>> >>>> <br>> >>>> I did 'do-cm3-front.sh' buildship' and 'install-cm3-compiler.sh upgrade',<br>> >>>> with front removed from the m3cc line in pkginfo.txt, since there were no<br>> >>>> changes to it, and it takes longer to compile than everything else combined.<br>> >>>> <br>> >>>> upgrade.sh now segfaults after cleaning things out, but that is no doubt just<br>> >>>> the now-broken cm3.<br>> >>>> <br>> >>>> I always make backup copies of cm3 & cm3cg in /usr/local/cm3/bin before installing<br>> >>>> a compiler, but restoring what I had before does not fix the problem.  I suppose<br>> >>>> it is in m3core, which I guess I need to add to my backup habit.<br>> >>>> <br>> >>>>> I changed the cm3/m3core interface, so you must do the ugprade in the usual proper order.<br>> >>>>> <br>> >>>>> I run upgrade.py frequently and recommend it.<br>> >>>>> <br>> >>>>> - Jay<br>> >>>>> <br>> >>>>> <br>> >>>>>> Date: Wed, 19 Aug 2015 17:20:25 -0500<br>> >>>>>> From: rodney_bates@lcwb.coop<br>> >>>>>> To: m3devel@elegosoft.com<br>> >>>>>> Subject: [M3devel] cm3 is broken<br>> >>>>>> <br>> >>>>>> As of a recent pull from modula3-cm3, done around 16:00 CDT, cm3 is going into<br>> >>>>>> runaway recursion trying to report a fault. This happens immediately upon<br>> >>>>>> running it, before it produces any output.<br>> >>>>>> <br>> >>>>>> Here is one cycle of the backtrace:<br>> >>>>>> <br>> >>>>>> #1745 0x00007fd9b0b0d935 in _m3_fault (arg=5600) from /usr/local/cm3-uniboot/bin/../lib/libm3core.so.5<br>> >>>>>> #1746 0x00007fd9b0b0d05d in InvokeHandler (f=16_00007fff488bcc20, a=<br>> >>>>>> RECORD exception = 16_00007fd9b0d4b780; arg = 16_000000000000001d; module = 16_00007fd9b0d62d40; line = 14; pc = NIL; info0 = NIL; info1 = NIL; un_except = NIL; un_arg = NIL; END) at ../src/runtime/ex_frame/RTExFrame.m3:175<br>> >>>>>> #1747 0x00007fd9b0b0cef1 in ResumeRaise (a=<br>> >>>>>> RECORD exception = 16_00007fd9b0d4b780; arg = 16_000000000000001d; module = 16_00007fd9b0d62d40; line = 14; pc = NIL; info0 = NIL; info1 = NIL; un_except = NIL; un_arg = NIL; END) at ../src/runtime/ex_frame/RTExFrame.m3:145<br>> >>>>>> #1748 0x00007fd9b0b0ccfe in Raise (act=<br>> >>>>>> RECORD exception = 16_00007fd9b0d4b780; arg = 16_000000000000001d; module = 16_00007fd9b0d62d40; line = 14; pc = NIL; info0 = NIL; info1 = NIL; un_except = NIL; un_arg = NIL; END) at ../src/runtime/ex_frame/RTExFrame.m3:91<br>> >>>>>> #1749 0x00007fd9b0ae9693 in Raise (ex=16_00007fd9b0d4b780, arg=16_000000000000001d, module=16_00007fd9b0d62d40, line=14)<br>> >>>>>> at ../src/runtime/common/RTHooks.m3:79<br>> >>>>>> #1750 0x00007fd9b0ae9951 in Self () at ../src/runtime/common/RuntimeError.m3:14<br>> >>>>>> #1751 0x00007fd9b0ae96ef in ReportFault (module=16_00007fd9b0d6a520, info=5600) at ../src/runtime/common/RTHooks.m3:98<br>> >>>>>> #1752 0x00007fd9b0b0d935 in _m3_fault (arg=5600) from /usr/local/cm3-uniboot/bin/../lib/libm3core.so.5<br>> >>>>>> <br>> >>>>>> So far, I haven't had the patience to keep hitting return until I get to the bottom of it.<br>> >>>>>> <br>> >>>>>> --<br>> >>>>>> Rodney Bates<br>> >>>>>> rodney.m.bates@acm.org<br>> >>>>>> _______________________________________________<br>> >>>>>> M3devel mailing list<br>> >>>>>> M3devel@elegosoft.com<br>> >>>>>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel<br>> >>>> <br>> >>>> --<br>> >>>> Rodney Bates<br>> >>>> rodney.m.bates@acm.org<br>> >>> _______________________________________________<br>> >>> M3devel mailing list<br>> >>> M3devel@elegosoft.com<br>> >>> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel<br>> >> <br>> >> <br>> > <br>> > -- <br>> > Rodney Bates<br>> > rodney.m.bates@acm.org<br></div></div>                                         </div></body>
</html>