<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
There is another vague philosophical point I should maybe explore/teach here.<BR>
The vaguer I make it, the more irrefutable it is. :)<BR>
 <BR>
 <BR>
"Logging has a place".<BR>
And debuggers do too.<BR>
I have seen countless examples where<BR>
  logging exists, in some "reasonable" volume <BR>
  bugs are often largly or completely diagnosed from a log alone <BR>
  getting a debugger to the right point would be quite difficult <BR>
 <BR>
 <BR>
Logging is always "in situ" and often enabled proactively -- all the time.<BR>
  That is, no need to figure out exactly which command line to run,<BR>
   where to insert the debugger command, no need to try to keep temp files, etc.<BR>
 <BR>
Very good example: Our Hudson/Tinderbox jobs.<BR>
 <BR>
 <BR>
Callstacks upon assertion failures are a form of logging.<BR>
  Would be even better if they showed the local variables of every frame.<BR>
  Maybe expanding pointers one level.<BR>
 <BR>
I often make the prints subject to whether or not an upcoming assertion is going to fail.<BR>
 <BR>
 <BR>
There are counterpoints, of course. Logging wastes time and space.<BR>
It makes the source code bigger, the object code bigger. When it is<BR>
enabled it slows down runtime and usually "wastes" space to store the logs.<BR>
  Except when they end up used. The vast majority of logged date goes<BR>
  unread.<BR>
 <BR>
 <BR>
You can't log everything. Good debuggers show things at a much lower level<BR>
than most logging. (Except gdb on Debian 4.0 can't do anything, and<BR>
CodeView-based debuggers against Modula-3 show very little...)<BR>
 <BR>
 <BR>
I'll have to try m3gdb again, on Debian 5.0. And generate CodeView information.<BR>
The CodeView stuff I consider pretty high priority.<BR>
I've done a fair amount of research and am better prepared to implement<BR>
it than previously. A C generating backend has about<BR>
the same value and more.<BR>
 <BR>
 <BR>
 - Jay<BR><BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: hosking@cs.purdue.edu<BR>CC: m3devel@elegosoft.com<BR>Subject: RE: [M3devel] release engineering 5.8: trac issue 1005 (open array initializers)<BR>Date: Sat, 17 Apr 2010 01:48:44 +0000<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
I haven't found a viable debugger for Modula-3.<BR>Could be better now that I'm on Debian 5.0 though.<BR>gdb is now good, eveything is void*.<BR>VisualStudio/cdb/windbb are no good due to lack of CodeView information.<BR>I'll try m3gdb again, since upgrading to Debian 5.0.<BR>I'm keen on generating good CodeView information because of this.<BR> <BR> - Jay<BR><BR> <BR>
<HR id=ecxstopSpelling>
From: hosking@cs.purdue.edu<BR>Date: Fri, 16 Apr 2010 10:46:41 -0400<BR>To: jay.krell@cornell.edu<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] release engineering 5.8: trac issue 1005 (open array initializers)<BR><BR>PS  I don't use printouts when debugging.  I use a debugger.  There is never a need to put verbose debugging printouts into the source tree.  They just litter the code. 
<DIV><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=ecxecxApple-style-span>
<DIV><FONT class=ecxecxApple-style-span color=#0000ff><FONT class=ecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=ecxecxApple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN class=ecxecxApple-converted-space> </SPAN>|<SPAN class=ecxecxApple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=ecxecxApple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Office</SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span> +1 765 494 6001 |<SPAN class=ecxecxApple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=ecxecxApple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=ecxecxApple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=ecxecxApple-style-span><SPAN class=ecxecxApple-converted-space> </SPAN>+1 765 427 5484</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=ecxecxApple-style-span face=GillSans-Light><BR class=ecxecxkhtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=ecxecxApple-interchange-newline></SPAN></DIV></SPAN></SPAN><BR class=ecxecxApple-interchange-newline></DIV><BR>
<DIV>
<DIV>On 16 Apr 2010, at 05:58, Jay K wrote:</DIV><BR class=ecxecxApple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; WORD-SPACING: 0px" class=ecxecxApple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=ecxecxhmmessage>I believe Tony removed the print outs but imho they should be left in until the assertion failure is understood and fixed. They try to inform on what is going on when the assertion fails.<BR> <BR> - Jay<BR> <BR>> Date: Fri, 16 Apr 2010 11:38:14 +0200<BR>> From:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:wagner@elegosoft.com">wagner@elegosoft.com</A><BR>> To:<SPAN class=ecxecxApple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>> Subject: [M3devel] release engineering 5.8: trac issue 1005 (open array initializers)<BR>><SPAN class=ecxecxApple-converted-space> </SPAN><BR>> I'm currently reviewing the open issues again, and came across<BR>><SPAN class=ecxecxApple-converted-space> </SPAN><BR>><SPAN class=ecxecxApple-converted-space> </SPAN><A href="https://projects.elego.de/cm3/ticket/1005">https://projects.elego.de/cm3/ticket/1005</A><BR>><SPAN class=ecxecxApple-converted-space> </SPAN><BR>> Not sure if I've asked before, but do we need to solve this for this<BR>> release? The GC error seems strange:<BR>><SPAN class=ecxecxApple-converted-space> </SPAN><BR>> --- ../src/p2/p209/stderr.build 2009-06-29 21:47:53.000000000 +0200<BR>> +++ ../src/p2/p209/AMD64_LINUX/stderr.build 2009-07-20<SPAN class=ecxecxApple-converted-space> </SPAN><BR>> 08:17:17.000000000 +0200<BR>> @@ -0,0 +1,13 @@<BR>> +o is 0x348<BR>> +init_pc is 0x0<BR>> +bias is 0x5c8<BR>> +Target.Address.align is 0x40<BR>> +Target.Byte is 0x8<BR>> +<BR>> +<BR>> +***<BR>> +*** runtime error:<BR>> +*** <*ASSERT*> failed.<BR>> +*** file "../src/misc/CG.m3", line 1077<BR>> +***<BR>> +<BR>><SPAN class=ecxecxApple-converted-space> </SPAN><BR>> Olaf<BR>> --<SPAN class=ecxecxApple-converted-space> </SPAN><BR>> Olaf Wagner -- elego Software Solutions GmbH<BR>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany<BR>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95<BR>><SPAN class=ecxecxApple-converted-space> </SPAN><A href="http://www.elegosoft.com/">http://www.elegosoft.com</A><SPAN class=ecxecxApple-converted-space> </SPAN>| Geschäftsführer: Olaf Wagner | Sitz: Berlin<BR>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194<BR>><SPAN class=ecxecxApple-converted-space> </SPAN></DIV></SPAN></BLOCKQUOTE></DIV></DIV>                                           </body>
</html>