[M3devel] Build Automation
Dirk Muysers
dmuysers at hotmail.com
Sun Aug 25 12:00:09 CEST 2013
I am not missing anything in quake. I just thought it was worth a look.
If I would redo M3 (and I am too old for that), I would write a single
byte-code producing compiler. So, no compelling need for quake
or any other build tool. Plus a platform-dependent runtime and jitter
(using e.g. libjit). Would make the whole thing much simpler.
The biggest mistake IMHO was CM's new text model that obliges to
code two branches for nearly any text-related job. I would have kept
the pm3 text model but encoded in UTF-8. There is nearly no runtime
penalty as one accesses text almost always sequentially. Tell me a
single case where one needs random access to individual characters.
I tried to do that, but TEXT is used in every nock and corner of the
libraries. Also, surprisingly, it is significantly more difficult to revert
from the cm3 to the pm3 model than CM's passage to the alternate
model. You have to touch almost every module in the system. It took
me half a day to grep through the libraries with Text, Text8, Text16,
TextLiteral etc. And restarting from pm3 sacrifices the indeniable
improvements of the cm3 compiler, disregarding its text model.
That wide-character blunder was first introduced by Microsoft (does
that surprise anybody?) when they thought that Unicode would never
go beyond 16 bits. Sun followed the trail with Java and so did CM
with M3. S. Ballmer's resignation (thanks the gods) comes to late to
reverse the trend. Newer text models (e.g. Go) all acknowledge the
mistake and use UTF-8.
I am currently working at a Unicode-friendly library that uses UTF-8
text side-by-side with the existing cm3 TEXT.
From: Jay K
Sent: Sunday, August 25, 2013 9:31 AM
To: Dragiša Durić ; Dirk Muysers
Cc: m3devel
Subject: RE: [M3devel] Build Automation
For what we use it for, Quake is hard to beat.
What are you missing in Quake?
It falls down only slightly:
- not as much parallelism as it could have
- it is an obscure system, like Modula-3
- 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..
- doesn't offer building multiple programs/modules in one invocation -- directory traversal; we layer thin scripts over it
- the name -- I assume it meant quick make
it wins:
- integrated with the compiler (this can be viewed as bad too)
- declarative (or at least appears so, it is actually clever and imperative, but it is a great facsimile)
- presumably efficient -- they actually compile it down to a bytecode internally and execute that!
- 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
- Jay
--------------------------------------------------------------------------------
From: dragisha at m3w.org
Date: Fri, 23 Aug 2013 22:03:16 +0200
To: dmuysers at hotmail.com
CC: m3devel at elegosoft.com
Subject: Re: [M3devel] Build Automation
Gradle is better maven, better ant, better Ivy, etc. It is from/for Java world.
It integrates other Java ecosystem build tools and extends them. It is written in Groovy, and lots of its "virtue" derives from this fact.
To be useable for us, it probably first needs to integrate quake. Not an easy task, without clear benefits.
--
Dragiša Durić
dragisha at m3w.org
On Aug 20, 2013, at 7:23 PM, Dirk Muysers wrote:
Is Gradle a better quake?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20130825/0f7c2f16/attachment-0002.html>
More information about the M3devel
mailing list