<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'>  > Stock gdb won't ever parse M3 expressions nor print M3 values. <div><br></div><div> 1) it comes close enough; I think; the languages aren't so different </div><div><br></div><div> 2) you are maybe somewhat ignoring GUI debuggers, built off of gdb or otherwise; in that case, the textual expression of things matters less -- at least for input </div><div><br></div><div><span style="font-size: 12pt; "> > I would much prefer providing M3 library support for source debuggers to parse and print.</span> </div><div><br></div><div>On Windows the debuggers are extensible to varying degrees.</div><div>cdb/ntsd/windbg you can write "pluings" for.</div><div>Visual Studio you can plugin languages for clearly, as it already supports multiple. I don't know if the interfaces are public.</div><div><br></div><div><br></div><div>But I still expect...hypothetical still I realize.. we can come close enough, such</div><div>that forking gdb won't be worth it. Extending other compilers, maybe.</div><div><br></div><div><br></div><div> - Jay<br></div><br><br><br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Subject: Re: [M3devel] "C-generating backend progress report, that nobody asked for" :)<br>From: hosking@cs.purdue.edu<br>Date: Mon, 10 Sep 2012 20:07:27 -0400<br>CC: dragisha@m3w.org; m3devel@elegosoft.com<br>To: jay.krell@cornell.edu<br><br>Stock gdb won't ever parse M3 expressions nor print M3 values.<div>So, there will always have to be some M3 support added.</div><div>I would much prefer providing M3 library support for source debuggers to parse and print.</div><div>I have no idea whether gdb has ever considered some of the extensibility support I pointed at in the link below.<br><div><br><div>
<span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;font-size:medium"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px"><div style="word-wrap:break-word"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><div style="word-wrap:break-word"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><span class="ecxApple-style-span" style="border-collapse:separate;color:rgb(0, 0, 0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;orphans:2;white-space:normal;widows:2;word-spacing:0px"><div><font class="ecxApple-style-span" color="#0000FF"><font class="ecxApple-style-span" face="Gill Sans"><span class="ecxApple-style-span" style="color:rgb(0, 0, 255);font-family:'Gill Sans'"><span class="ecxApple-style-span" style="color:rgb(0, 0, 255);font-family:'Gill Sans'">Antony Hosking</span></span></font></font><font class="ecxApple-style-span" face="Gill Sans"><span class="ecxApple-style-span" style="font-family:'Gill Sans'"><span class="ecxApple-style-span" style="font-family:'Gill Sans'"><span class="ecxApple-converted-space"> </span>|<span class="ecxApple-converted-space"> </span></span></span><span class="ecxApple-style-span" style="font-family:'Gill Sans'"><span class="ecxApple-style-span" style="font-family:'Gill Sans'">Associate Professor</span></span><span class="ecxApple-style-span" style="font-family:'Gill Sans'"><span class="ecxApple-style-span" style="font-family:'Gill Sans'"> | Computer Science | Purdue University</span></span></font></div><div><font class="ecxApple-style-span" face="GillSans-Light"><span class="ecxApple-style-span" style="font-family:GillSans-Light">305 N. University Street | West Lafayette | IN 47907 | USA</span></font></div><div><font class="ecxApple-style-span" color="#0000FF" face="Gill Sans"><span class="ecxApple-style-span" style="color:rgb(0, 0, 255);font-family:'Gill Sans'"><span class="ecxApple-style-span" style="color:rgb(0, 0, 255);font-family:'Gill Sans'">Mobile</span></span></font><font class="ecxApple-style-span" face="GillSans-Light"><span class="ecxApple-style-span" style="font-family:GillSans-Light"><span class="ecxApple-style-span" style="font-family:GillSans-Light"><span class="ecxApple-converted-space"> </span>+1 765 427 5484</span></span></font></div><div><font class="ecxApple-style-span" face="GillSans-Light"><br class="ecxkhtml-block-placeholder"></font></div></span></span></span></span></span></span></span><br class="ecxApple-interchange-newline"></span></div></span></div></span><br class="ecxApple-interchange-newline"></span><br class="ecxApple-interchange-newline">
</div>
<br><div><div>On Sep 10, 2012, at 1:47 AM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div class="ecxhmmessage" style="font-size:12pt;font-family:Calibri;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px"><div dir="ltr">Please, no.<br><br>Stock gdb and stock Visual C++ and stock cdb/ntsd/windbg ought to work well with Modula-3.<br>I expect they will pretty good pretty soon, and we should try to make them even better maybe...<br>by making globals visible in a reasonable fashion.<br><br><br>m3gdb isn't supported on Darwin and HP-UX (no stabs), at least.<br>If the gcc backend becomes obsolete and deleted...m3gdb would be the last of the<br>forked always-going-stale never-merging GPL stuff... i.e. another ripe target...<br><br><br><br> - Jay<br><br><div><div id="ecxSkyDrivePlaceholder"></div><hr id="ecxstopSpelling">Subject: Re: [M3devel] "C-generating backend progress report, that nobody asked for" :)<br>From: <a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a><br>Date: Sun, 9 Sep 2012 20:54:12 -0400<br>CC: <a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a>; <a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>To: <a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a><br><br>Stock debuggers are designed for C.  They generally will not be able to grok M3.  Better to use M3 run-time type information as per m3gdb.  See <a href="http://dx.doi.org/10.1145/143103.143112" target="_blank">10.1145/143103.143112</a>.<div><br><div><br><div><div>On Sep 9, 2012, at 4:07 PM, Jay <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div>The current method stinks for stock debugging. As I understand, globals are combined into structs & the fields all have generated names, & global records are flattened therein.</div><div><br></div><div><br></div><div>It works. But stock debuggers see garbage.</div><div><br><br> - Jay (briefly/pocket-sized-computer-aka-phone)</div><div><br>On Sep 9, 2012, at 12:22 PM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> wrote:<br><br></div><div></div><blockquote><div>I mis-spoke.  I think LLVM can cope with much the same as we currently have.  Front-end will continue to compute alignments and layouts.  We can assert the front-end's datalayout by passing it to LLVM explicitly, which will complain if it does not match the actual target.  This is a rather nice feature of LLVM in that it allows us to retain control while having LLVM optimize accordingly.</div><div><br><div><div>On Sep 9, 2012, at 11:05 AM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div style="word-wrap:break-word">Yes, agreed, these need to be properly typed too.<div>First step will be to lift the M3CG interface.</div><div>Problem: The compiler needs to control layout so that the run-time system knows where to find things.  This means that we need to assert alignments and layouts produced by the backend are the same as those in the front-end.  LLVM has nice ways to do this.  How will we do it in the C backend?  Does C have sufficient control over alignment?</div><div><br><div><div>On Sep 9, 2012, at 10:53 AM, Jay <<a href="mailto:jay.krell@cornell.edu"></a><a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div>Btw, can this include "segment"/globals? Can they each be separate named variables? At least some of them?</div><div><br></div><div><br> - Jay (briefly/pocket-sized-computer-aka-phone)</div><div><br>On Sep 9, 2012, at 7:48 AM, Antony Hosking <<a href="mailto:hosking@cs.purdue.edu"></a><a href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</a>> wrote:<br><br></div><div></div><blockquote>I'm looking at it...<div><br></div><div>First step is to lift slightly the level of M3CG to use properly typed memory access, instead of untyped address + offset.</div><div><br><div><div>On Sep 9, 2012, at 2:32 AM, Dragiša Durić <<a href="mailto:dragisha@m3w.org"></a><a href="mailto:dragisha@m3w.org"></a><a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a>> wrote:</div><br class="ecxApple-interchange-newline"><blockquote><div style="font-family:Helvetica;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;orphans:2;text-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px">I hope somebody will take on LLVM :).</div></blockquote></div></div></blockquote></blockquote></div></div></div></blockquote></div></div></blockquote></blockquote></div></div></div></div></div></div></blockquote></div><br></div></div></div>                                     </div></body>
</html>