[M3devel] dtoa.h?

Jay jayk123 at hotmail.com
Mon Mar 17 15:26:31 CET 2008


It was probably compiled with -Os. With gcc, that I don't think I built myself, the "standard" Cygwin one (3.x, not 4.x, not my doing/choice, 3.x is what they have).
C can be perfectly ok, and C can be difficult to understand. The same is probably true of Modula-3.
I have to punt on this for now and just not optimize.
Too much else to do.
Hopefully some day someone else will try NT386GNU.
Once I get the spawn/perf stuff in I can try to make a mondo "std" distribution, even with all the X stuff (did I mention that Juno appears to work? :) ) and declare it done! (modulo dtoa...leave it for someone else.. maybe still fix __stdcall but it kind of drops away as mattering, NT386 works for Win32 GUI, NT386GNU works for X Windows GUI, NT386MINGNU nobody cares about)
 
 - Jay


From: hosking at cs.purdue.eduTo: jay.krell at cornell.eduDate: Mon, 17 Mar 2008 10:19:04 -0400CC: m3devel at elegosoft.comSubject: Re: [M3devel] dtoa.h?
How was dtoa compiled?  That code is a fragile part of the run-time system that uses C that breaks with some C compilers.  (See why I hate non-portable C!).


Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484


On Mar 17, 2008, at 6:11 AM, Jay wrote:

any advise to for debuging..I think I'll just turn off optimization..that fixed it...no patience to debug codegen bugs or anything in dtoa..confusing stuff...This wasn't occuring..but now I can repro it consistently compiling some of m3core/extended*, m3core/real*, m3core/longreal*. The rest of m3core compiles ok.. Program received signal SIGSEGV, Segmentation fault.mult (a=0x1426860, b=0x1426880) at ..//src//Csupport//Common/dtoa.h:535535                     *x = 0;(gdb) bt#0  mult (a=0x1426860, b=0x1426880) at ..//src//Csupport//Common/dtoa.h:535#1  0x00626721 in pow5mult (b=0x1426880, k=1185)    at ..//src//Csupport//Common/dtoa.h:620#2  0x00628011 in m3_dtoa (d=4.9406564584124654e-324, mode=2, ndigits=14,    decpt=0x22bc74, sign=0x22bc60, rve=0x22bc68)    at ..//src//Csupport//Common/dtoa.h:2224#3  0x0061534d in Convert__InternalFromLongFloat (M3_CKMnXU_buf=0x22be58,    M3_CtKayy_v=4.9406564584124654e-324, M3_AcxOUs_p=13,    M3_BTpO8m_style=2 '\002', M3_Bkn9rd_exponentChar=88 'X')    at ..\src\convert\Convert.m3:367#4  0x00614c1f in Convert__FromExtended (M3_CKMnXU_buf=0x22be58,    M3_C4YHmT_v=4.9406564584124654e-324, M3_AcxOUs_p=13,    M3_BTpO8m_style=2 '\002') at ..\src\convert\Convert.m3:282#5  0x005bb6ca in M3Buf__PutFloat (M3_DmgyYA_t=0x7fe9d290,    M3_DYj8sa_f=0x7fed4b5c) at ..\src\M3Buf.m3:156#6  0x005760c9 in ReelExpr__GenFPLiteral (M3_DopDyP_p=0x7fed4b4c,    M3_DmgyYA_buf=0x7fe9d290) at ..\src\exprs\ReelExpr.m3:278#7  0x0054bf68 in Expr__GenFPLiteral (M3_ES44mX_t=0x7fed4b4c,    M3_DmgyYA_mbuf=0x7fe9d290) at ..\src\exprs\Expr.m3:224#8  0x005301b2 in Constant__AddFPTag (M3_AjdbKy_t=0x7fed4abc,    M3_BlO1Kl_x=0x22bf68) at ..\src\values\Constant.m3:225#9  0x004cb94c in Value__AddFPTag (M3_EjfEr4_t=0x7fed4abc,    M3_BlO1Kl_x=0x22bf68) at ..\src\values\Value.m3:143#10 0x004cb6e1 in Value__ToFP (M3_D9M1dT__result=0x22bff4,    M3_EjfEr4_t=0x7fed4abc) at ..\src\values\Value.m3:120#11 0x004cbec3 in Value__Declare (M3_EjfEr4_t=0x7fed4abc)    at ..\src\values\Value.m3:202#12 0x004bb7dd in Scope__Enter (M3_DurAC9_t=0x7fed48e0)    at ..\src\misc\Scope.m3:239#13 0x004b2d70 in Module__CompileInterface (M3_DZ1mTg_t=0x7fecf77c)    at ..\src\values\Module.m3:870#14 0x004b2985 in Module__Compile (M3_DZ1mTg_t=0x7fecf77c)    at ..\src\values\Module.m3:836#15 0x0049fd4d in M3Front__DoCompile () at ..\src\misc\M3Front.m3:196#16 0x0049f37a in M3Front__Compile (M3_AT7GN4_input=0x22c1ec,    M3_AUoUsm_env=0x7fec084c, M3_BySCJy_options=0x7ff6415c)    at ..\src\misc\M3Front.m3:64#17 0x0040aad8 in Builder__RunM3 (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fecc1dc, M3_Bd56fi_object=0x7ff640e8)    at ..\src\Builder.m3:1454#18 0x0040927b in Builder__PushOneM3 (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fecc1dc) at ..\src\Builder.m3:1125#19 0x00408e94 in Builder__CompileM3 (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fecc1dc) at ..\src\Builder.m3:1076#20 0x00407b15 in Builder__CompileOne (M3_Bd9FNt_s=0x7ff3de1c,---Type <return> to continue, or q <return> to quit---qM3_AXLf8B_u=0x7fQuit) at ..\src\Builder.m3:911#21 0x00409f46 in Builder__CheckImp (M3_Bd9FNt_s=0x7ff3de1c,    M3_A7mgsK_u=0x7ff79d54, M3_EIVwTa_z=0x7ff79d68, M3_A2QN6Z_kind=1 '\001')    at ..\src\Builder.m3:1292#22 0x00409e45 in Builder__CheckImports (M3_Bd9FNt_s=0x7ff3de1c,    M3_A7mgsK_u=0x7ff79d54) at ..\src\Builder.m3:1279#23 0x00409acf in Builder__M3isStale (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:1229#24 0x00408e4b in Builder__CompileM3 (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:1071#25 0x00407b15 in Builder__CompileOne (M3_Bd9FNt_s=0x7ff3de1c,    M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:911#26 0x004077e7 in Builder__CompileEverything (M3_Bd9FNt_s=0x7ff3de1c,    M3_Cw4bpV_schedule=0x7ff247f0) at ..\src\Builder.m3:871#27 0x0040391d in Builder__CompileUnits (M3_Bd56fi_main=0x7ff67014,    M3_EEuw3X_units=0x7ff7e73c, M3_C1FTrk_sys_libs=0x7ff3dd60,    M3_A2QN6Z_info_kind=17 '\021', M3_An02H2_mach=0x7ff7e63c)    at ..\src\Builder.m3:239#28 0x0040250a in Builder__BuildLib (M3_Bd56fi_lib=0x7ff67014,    M3_EEuw3X_units=0x7ff7e73c, M3_C1FTrk_sys_libs=0x7ff3dd60,    M3_AicXUJ_shared=1 '\001', M3_An02H2_m=0x7ff7e63c) at ..\src\Builder.m3:36#29 0x0041afd0 in M3Build__DoLibrary (M3_An02H2_m=0x7ff7e63c,    M3_AcxOUs_n_args=1) at ..\src\M3Build.m3:1365#30 0x00477f27 in QMachine__DoCall (M3_An02H2_t=0x7ff7e63c,    M3_AcxOUs_n_args=1, M3_AicXUJ_isFunc=0 '\0', M3_AicXUJ_outer=0 '\0')    at ..\src\QMachine.m3:529#31 0x00476f1d in QMachine__Eval (M3_An02H2_t=0x7ff7e63c)    at ..\src\QMachine.m3:405#32 0x0047f1f3 in QMachine (M3_An02H2_t=0x7ff7e63c,    M3_Bd56fi_path=0x7ff939b0, M3_AicXUJ_from_code=0 '\0')    at ..\src\QMachine.m3:1660#33 0x0047f038 in QMachine (M3_An02H2_t=0x7ff7e63c, M3_Bd56fi_path=0x7ff939b0)    at ..\src\QMachine.m3:1631#34 0x00417959 in M3Build (M3_ABp1Zk_t=0x7ff7e63c, M3_Bd56fi_file=0x7ff939b0)    at ..\src\M3Build.m3:579#35 0x0041935f in M3Build__DoIncludeDir (M3_An02H2_m=0x7ff7e63c,    M3_AcxOUs_n_args=1) at ..\src\M3Build.m3:954#36 0x00477f27 in QMachine__DoCall (M3_An02H2_t=0x7ff7e63c,    M3_AcxOUs_n_args=1, M3_AicXUJ_isFunc=0 '\0', M3_AicXUJ_outer=0 '\0')    at ..\src\QMachine.m3:529#37 0x00476f1d in QMachine__Eval (M3_An02H2_t=0x7ff7e63c)    at ..\src\QMachine.m3:405#38 0x004756ef in QMachine__Evaluate (M3_An02H2_t=0x7ff7e63c,    M3_CYwAos_s=0x7ff93568) at ..\src\QMachine.m3:154#39 0x00486ad2 in Quake__Run (M3_An02H2_m=0x7ff7e63c,---Type <return> to continue, or q <return> to quit---qM3_Bd56fi_source_file=0x7Quit) at ..\src\Quake.m3:19#40 0x00415ee7 in M3Build__Run (M3_ABp1Zk_t=0x7ff7e63c,    M3_Bd56fi_makefile=0x7ff9243c) at ..\src\M3Build.m3:183#41 0x0042c706 in Main__DoIt () at ..\src\Main.m3:81#42 0x0042c9dc in Main_M3 (M3_AcxOUs_mode=1) at ..\src\Main.m3:195#43 0x005fa1ee in RTLinker__RunMainBody (M3_DjPxE3_m=0x63c020)    at ..\src\runtime\common\RTLinker.m3:399#44 0x005f9719 in RTLinker__AddUnitI (M3_DjPxE3_m=0x63c020)    at ..\src\runtime\common\RTLinker.m3:113#45 0x005f97a0 in RTLinker__AddUnit (M3_DjPxE5_b=0x42c9c7)    at ..\src\runtime\common\RTLinker.m3:122#46 0x00401085 in main (argc=1, argv=0x14218e8, envp=0x1420090)    at _m3main.mc:4

Helping your favorite cause is as easy as instant messaging. You IM, we give. Learn more.
_________________________________________________________________
Connect and share in new ways with Windows Live.
http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012008
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080317/be8e4291/attachment-0002.html>


More information about the M3devel mailing list