<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=iso-8859-2 http-equiv=Content-Type>
<STYLE><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></STYLE>

<META name=GENERATOR content="MSHTML 8.00.6001.19412"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
id=MailContainerBody class=hmmessage leftMargin=0 topMargin=0 
CanvasTabStop="true" name="Compose message area">
<DIV><FONT face=Arial>I am not missing anything in quake. I just thought it was 
worth a look.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>If I would redo M3 (and I am too old for that), I 
would write a single</FONT></DIV>
<DIV><FONT face=Arial>byte-code producing </FONT><FONT face=Arial>compiler. So, 
no compelling need for quake</FONT></DIV>
<DIV><FONT face=Arial>or any other build tool. Plus a platform-dependent 
runtime and jitter</FONT></DIV>
<DIV><FONT face=Arial>(using e.g. libjit). </FONT><FONT face=Arial>Would make 
the whole thing much simpler.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>The biggest mistake IMHO was CM's new text 
model</FONT><FONT face=Arial> that obliges to</FONT></DIV>
<DIV><FONT face=Arial>code two branches for nearly any text-related 
</FONT><FONT face=Arial>job. I would have kept</FONT></DIV>
<DIV><FONT face=Arial>the pm3 text model but encoded in UTF-8. There is nearly 
no runtime</FONT></DIV>
<DIV><FONT face=Arial>penalty as one accesses text almost always 
sequentially. Tell me a</FONT></DIV>
<DIV><FONT face=Arial>single case where one needs random access 
to individual characters.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>I tried to do that, but TEXT is used in every nock 
and corner </FONT><FONT face=Arial>of the<BR>libraries. </FONT><FONT 
face=Arial>Also, surprisingly, it is significantly more difficult to 
revert</FONT></DIV>
<DIV><FONT face=Arial>from the cm3 to the pm3 </FONT><FONT face=Arial>model 
than CM's passage to the alternate</FONT></DIV>
<DIV><FONT face=Arial>model. You have to touch </FONT><FONT face=Arial>almost 
every module in the system. It took</FONT></DIV>
<DIV><FONT face=Arial>me half a day to </FONT><FONT face=Arial>grep through the 
libraries with Text, Text8, Text16,<BR>TextLiteral etc. And restarting from pm3 
sacrifices the indeniable</FONT></DIV>
<DIV><FONT face=Arial>improvements of the cm3 compiler,  
disregarding its text model.</FONT> </DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>That wide-character blunder was first introduced by 
Microsoft (does</FONT></DIV>
<DIV><FONT face=Arial>that surprise anybody?) when they thought that Unicode 
would never</FONT></DIV>
<DIV><FONT face=Arial>go beyond 16 bits. Sun followed the trail with Java and so 
did CM</FONT></DIV>
<DIV><FONT face=Arial>with M3. S. Ballmer's resignation (thanks the gods) comes 
to late to</FONT></DIV>
<DIV><FONT face=Arial>reverse the trend. </FONT><FONT face=Arial>Newer text 
models (e.g. Go) all acknowledge the</FONT></DIV>
<DIV><FONT face=Arial>mistake and use UTF-8.</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>I am currently working at a Unicode-friendly library that 
uses UTF-8</FONT></DIV>
<DIV><FONT face=Arial>text side-by-side with the existing 
cm3 TEXT.</FONT></DIV>
<DIV><BR></DIV>
<DIV style="FONT: 10pt Tahoma">
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A 
title="mailto:jay.krell@cornell.edu CTRL + Click to follow link" 
href="mailto:jay.krell@cornell.edu">Jay K</A> </DIV>
<DIV><B>Sent:</B> Sunday, August 25, 2013 9:31 AM</DIV>
<DIV><B>To:</B> <A 
title="mailto:dragisha@m3w.org CTRL + Click to follow link" 
href="mailto:dragisha@m3w.org">Dragiša Durić</A> ; <A 
title="mailto:dmuysers@hotmail.com CTRL + Click to follow link" 
href="mailto:dmuysers@hotmail.com">Dirk Muysers</A> </DIV>
<DIV><B>Cc:</B> <A title=m3devel@elegosoft.com 
href="mailto:m3devel@elegosoft.com">m3devel</A> </DIV>
<DIV><B>Subject:</B> RE: [M3devel] Build Automation</DIV></DIV></DIV>
<DIV><BR></DIV>
<DIV dir=ltr>For what we use it for, Quake is hard to beat.<BR> <BR>What 
are you missing in Quake?<BR> <BR>It falls down only 
slightly:<BR>   - not as much parallelism as it could have  
<BR>   - it is an obscure system, like Modula-3  
<BR>   - it is perhaps fairly Modula-3 specific; but it is extensible 
and we do have C/C++ in their, presumably one could add Java/C# support 
reasonably easily..<BR>   - doesn't offer building multiple 
programs/modules in one invocation -- directory traversal; we layer thin 
scripts over it   <BR>    - the name -- I assume it meant 
quick make <BR> <BR>it wins:<BR>  - integrated with the compiler (this 
can be viewed as bad too) <BR>  - declarative (or at least appears so, it 
is actually clever and imperative, but it is a great facsimile) 
<BR>  - presumably efficient -- they actually compile it down to a 
bytecode internally and execute that!<BR> - presumably efficient -- 
underlying native code Modula-3 implementation..if this means anything any 
longer, so much is written in JavaScript, C#, Java, theoretical efficiencies all 
over the place and yet most things seem ok<BR> <BR> <BR> - 
Jay<BR><BR><BR><BR> <BR>
<DIV>
<HR id=stopSpelling>
From: dragisha@m3w.org<BR>Date: Fri, 23 Aug 2013 22:03:16 +0200<BR>To: 
dmuysers@hotmail.com<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] 
Build Automation<BR><BR>Gradle is better maven, better ant, better Ivy, etc. It 
is from/for Java world.  
<DIV><BR></DIV>
<DIV>It integrates other Java ecosystem build tools and extends them. It is 
written in Groovy, and lots of its "virtue" derives from this fact.</DIV>
<DIV><BR></DIV>
<DIV>To be useable for us, it probably first needs to integrate quake. Not an 
easy task, without clear benefits.</DIV>
<DIV><BR>
<DIV><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" 
class=ecxApple-style-span><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" 
class=ecxApple-style-span>
<DIV><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" 
class=ecxApple-style-span>
<DIV>
<DIV>--</DIV></DIV></SPAN></DIV></SPAN><SPAN style="FONT-FAMILY: Helvetica" 
class=ecxApple-style-span>Dragiša Durić</SPAN><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" 
class=ecxApple-style-span> 
<DIV><SPAN 
style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" 
class=ecxApple-style-span>
<DIV>
<DIV><A href="mailto:dragisha@m3w.org">dragisha@m3w.org</A></DIV>
<DIV><BR></DIV></DIV></SPAN></DIV></SPAN></SPAN><BR 
class=ecxApple-interchange-newline></DIV><BR>
<DIV>
<DIV>On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote:</DIV><BR 
class=ecxApple-interchange-newline>
<BLOCKQUOTE>
  <DIV style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
  id=ecxMailContainerBody>
  <DIV><FONT face=Arial>Is <A href="http://www.gradle.org/" 
  target=_blank>Gradle</A> a better 
quake?</FONT></DIV></DIV></BLOCKQUOTE></DIV><BR></DIV></DIV></DIV></BODY></HTML>