<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>I'm constantly noticing fixed sized buffers in the Modula-3 code and reinvention of basic data types and algorithms, such as growable arrays. Something seems off, eh?<BR>
<BR>
Here's the latest:<BR>
<BR>
-> linking cm3.exe<BR>c:\\docume~1\\jay\\locals~1\\temp\\cm3\\make-dist\\tmpukymas\\cm3-core-WIN32-NT3<BR>86GNU-d5.5.1\\pkg\\m3back\\NT386GNU\\m3back.lib c:\\docume~1\\jay\\locals~1\\tem<BR>p\\cm3\\make-dist\\tmpukymas\\cm3-core-WIN32-NT386GNU-d5.5.1\\pkg\\m3objfile\\NT<BR>386GNU\\m3objfile.lib c:\\docume~1\\jay\\locals~1\\temp\\cm3\\make-dist\\tmpukym<BR>as\\cm3-core-WIN32-NT386GNU-d5.5.1\\pkg\\m3quake\\NT386GNU\\m3quake.lib c:\\docu<BR>me~1\\jay\\locals~1\\temp\\cm3\\make-dist\\tmpukymas\\cm3-core-WIN32-NT386GNU-d5<BR>.5.1\\pkg\\m3front\\NT386GNU\\m3front.lib c:\\docume~1\\jay\\locals~1\\temp\\cm3<BR><A href="file://\\make-dist\\tmpukymas\\cm3-core-WIN32-NT386GNU-d5.5.1\\pkg\\m3linker\\NT386GNU\">\\make-dist\\tmpukymas\\cm3-core-WIN32-NT386GNU-d5.5.1\\pkg\\m3linker\\NT386GNU\</A><BR>\m3link.lib c:\\docume~1\\jay\\locals~1\\temp\\cm3\\make-dist\\tmpukymas\\cm3-co<BR>re-WIN32-NT386GNU-d5.5.1\\pkg\\m3middle\\NT386GNU\\m3middle.lib c:\\docume~1\\ja<BR>y\\locals~1\\temp\\cm3\\make-dist\\tmpukymas\\cm3-core-WIN32-NT386GNU-d5.5.1\\pk<BR>g\\libm3\\NT386GNU\\m3.lib.sa c:\\docume~1\\jay\\locals~1\\temp\\cm3\\make-dist\<BR>\tmpukymas\\cm3-core-WIN32-NT386GNU-d5.5.1\\pkg\\m3core\\NT386GNU\\m3core.lib.sa<BR> -lcomctl32 -lwsock32 -lnetapi32 -lgdi32 -luser32<BR>
***<BR>*** runtime error:<BR>*** <*ASSERT*> failed.<BR>*** file "..\src\M3ID.m3", line 58<BR>***<BR>
Stack trace:<BR> FP PC Procedure<BR>--------- --------- -------------------------------<BR> 0x22f198 0x59e9c3 Add + 0x53 in ..\src\M3ID.m3<BR> 0x22f1c8 0x4209cb Txt2ID + 0x14 in ..\src\M3Build.m3<BR> 0x22f208 0x478f9f PushText + 0x97 in ..\src\QMachine.m3<BR> 0x22f418 0x47c38f DoEscape + 0x341 in ..\src\QMachine.m3<BR> 0x22f478 0x476a37 DoCall + 0x568 in ..\src\QMachine.m3<BR> 0x22f558 0x475a49 Eval + 0x1845(!) in ..\src\QMachine.m3<BR> 0x22f578 0x4764ca CallProc + 0x2b in ..\src\QMachine.m3<BR> 0x22f6e8 0x413717 CallProc + 0x156 in ..\src\Builder.m3<BR> 0x22f758 0x40e96a BuildProgram + 0x66a in ..\src\Builder.m3<BR> 0x22f788 0x402282 BuildPgm + 0x62 in ..\src\Builder.m3<BR>......... ......... ... more frames ...<BR>
<BR>
PROCEDURE Add (x: TEXT; class: [0..255]): T =<BR> VAR<BR> t : T;<BR> len := Text.Length (x);<BR> buf : ARRAY [0..1024] OF CHAR;<BR> BEGIN<BR> IF len > NUMBER(buf) THEN<BR> IO.Put(x);<BR> END;<BR> <*ASSERT len <= NUMBER (buf) *><BR> Text.SetChars (buf, x);<BR> t := FromStr (buf, len);<BR> IF (class # 0) THEN classes [t] := class; END;<BR> IF (ids[t].text = NIL) THEN ids[t].text := x; END;<BR> RETURN t;<BR> END Add;<BR><BR><BR>The code is escaping imported .libs in order to write them into a response file, since gcc needs the doubled slashes..<BR>
I'm using a response file BECAUSE I have a long string..<BR>
<BR>
- Jay<BR><BR><br /><hr />Helping your favorite cause is as easy as instant messaging. You IM, we give. <a href='http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join' target='_new'>Learn more.</a></body>
</html>