|
|
|
|
Quick Links
Understanding XL
In depth
Other projects
|
XLR: Extensible Language and Runtime
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
XL, an extensible programming language, implements the ideas of Concept Programming.
If you want to know more, you should start here.
It had been a long time since I worked on XL, mostly because I had spent time writing an article about physics. For those interested, you will find more information about this "theory of incomplete measurements" in my blog, or on the dedicated web site. After this little distraction, I finally returned to XL, and it was, as usual, a pleasure to. I finally got the range type to work with Revision 313 (but it took practically all the check-ins since Revision 299 to get there). There is a small example in this short test, also shown below:
// Test that basic ranges work MyRange : variable := 1..3 MyOtherRange : variable := 1.5..7.2 It sure does not look like much, does it? But to get that to compile correctly, here is what needs to work:
One of the side effects of this effort was a new implementation of the core lookup algorithms in Revision 307, which was necessary mostly for maintainability. It very slightly degrades performance (44s instead of 41s to run the whole test suite on my laptop), but it makes it much easier to tweak the lookup order rules if I ever need to, since this will be done in a single place.
Meanwhile, C++0X continues to make slow progress towards standardization. Sadly, Daveed Vandevoorde's modules proposal did not make the cut. That's unfortunate, it looked rather well designed (to the extent that something like this can be said of anything related to C++...)
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2007 Christophe de Dinechin (Blog)
E-mail: XL Mailing List (polluted by spam, unfortunately)