April 11, 2003 - Am I dead or what? This site has seen much less activity in the past three or four months than before. This is a risk for a project maintained in large part by a single individual on his free time. I've been busy recently with another project, moving back to my home country. And an international move with a family of 5 in the current economic climate is not a piece of cake. Stay tuned...
|
November 29, 2002 - Slashdot Discussion There was a discussion on Slashdot recently about concept programming. This prompted a severe update of the web site. This is still work in progress. Please write to me about changes you'd like to see on the site.
|
November 15, 2002 - Windows Port Juan-Carlos Arevalo-Baeza is currently working on two Windows ports, one using gcc, and more interestingly for the masses, one using Visual C++ 6.0. Juan-Carlos also becomes the first outside contributor to receive write access to the CVS repository. The Mozart project is now a team :-)
|
September 14, 2002 - External Plug-Ins The XL compiler now knows how to invoke Moka plug-ins using the pragma notation. This is illustrated by this test, which invokes the differentiation plug-in. This should have been done a long time ago, but I apparently simply forgot about it.
|
September 12, 2002 - Web Site The web site went through a considerable overhaul. I hope that this makes it much easier to read.
|
August 3, 2002 - Slideware A new presentation of the Mozart ideas, in PDF format. This is supposed to answer the old 'why' and 'how' questions...
|
July 31, 2002 - Module interface and body Checked in support for separate module interface and body. This made it possible to write a close-to-final version of the console and text I/O interfaces, along with the corresponding console and text I/O implementations. Importantly, the implementation may contain generic (template) entities, which get instantiated when the corresponding interface is used.
|
June 5, 2002 - 70% faster than C++ for a Julia set computation on Itanium. This example shows how complex number computations will be done in XL. In C++, the pointer-based semantics in the complex class requires 4 memory loads and 2 memory stores for each addition. In XL, this cost disappears. The results are even more in favor of XL if C++ 'iostream' is used rather than the lower-level C-style printf functions.
|
April 20, 2002 - The XL Min and Max functions The XL compiler now compiles this code correctly. This simple source contains examples of XL generic features that C++ templates can't match:
- Implicit generics: the type 'ordered' implicitly makes 'Min' and 'Max' declaration generic, without the need to repeat template arguments as in C++
- Validated generics: the 'if' clause following the declaration of 'ordered' is checked before attempting to otherwise instantiate the generics that use it. Those of you who got utterly incomprehensible error messages from your C++ compiler while instantiating templates will appreciate.
- Variable argument lists: The Min and Max functions can take any number of arguments of any suitable (validated) type.
|
April 11, 2002: Release 1.0 Mozart and Moka have been labelled as release 1.0 today. They can be downloaded from the Project Page (download the package named 'moka-only').
For the more adventurous, a more complete and more experimental release, mozart-dev 0.1XL, also contains the XL compiler. As the release note indicates, this is probably of interest only to compiler developers.
|
April 1, 2002: New License? No I announced on April 1st that I was considering a license change for Mozart, pending approval of the new license as an Open Source License. While I have sent a request to approve the license to the OSI, I suspect they did not take it seriously. The full text of the proposed license can still be found here. Of course, I have little intent to use the license for Mozart itself, except one day a year.
|
January 2002: The XL compiler now generates code using registers for simple data structures. as a result, it generates better code than most C++ compilers for a normal implementation of complex numbers, in particular on modern architectures such as IA-64. This is an important step, since good optimization on modern architectures was one of the guiding principles during the design of the language. Coming soon: a C++ vs. XL shootout on the generation of Mandelbrot and Julia fractals (which typically involves complex number computations)
|
A new Mozart mailing list has been created to discuss various topics related to
Mozart. A new XL language mailing list has been created to discuss various topics related to the XL programming language.
Do not hesitate to subscribe or post, SourceForge is
apparently doing a rather good job at hiding your e-mail. You can also
get digests, or browse the archives.
|
September 2001: XL documentation is well underway. There are
currently about 6 chapters that I consider "done", and about 15 more
to go. About 80 pages of text so far. Documenting the language is a
good way to re-think many of my choices.
|
A CygWin port has been contributed by Bernard Hurley. Another
independent CygWin port has been contributed by Ingo Bruss. The
Cygwin port allows you to run Mozart on Windows. And this brings the
total number of contributors to a whopping 4, and the total number of
platforms on which Mozart has been tested to 7 (Linux, 64-bit Linux,
MacOSX, BeOS, HP-UX, Solaris, Windows.) Note that only gcc is
supported as a compiler today (it's the default compiler on all but
the last three OS.) |