On Wednesday, 9 January 2013 at 12:29:07 UTC, Philippe Sigaud
wrote:
On Wed, Jan 9, 2013 at 12:05 PM, Timon Gehr <[email protected]>
wrote:
Yes, it is in D. Nothing is released yet. It needs to be
polished a little
so that there are no known embarrassing shortcomings anymore.
What? That's FOSS, release early, release often!
I want to release it at a time when I am ready to cope with
reactions and bug reports.
Also, it obviously needs a repl. :-)
Obviously.
Actually, at this point, the main challenge is getting the
interactive code editing to work.
And direct programmatic access to the lexer and the parser. I'm
coding
a macro system for D right now, as an over-layer above DMD
(like rdmd)
and having to create the AST by myself to transform them
according to
the user-defined macros is a pain.
CTFE is basically done (as a portable byte code interpreter,
but other
strategies, such as JIT, could be easily plugged).
Great!
This is a snippet of my regression test suite:
auto dynRangePrimes(){
DynRange!int impl(int start)=>
dynRange(cons(start,delay(()=>filter!(a=>a%start)(impl(start+1)))));
return impl(2);
}
static assert(array(take(dynRangePrimes(), 20)) ==
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71]);
Lazy recursive range, right? As the usual Haskell definition
for a prime generator. Nice!
It uses the usual range templates + dynRange, which wraps a range
using delegates in order to hide some static type information and
allow recursion.
I also need to decide on a licence.
Unless you've reason not to, I'd advise using the same as
Phobos: Boost.
I'll need to give it some thought, my knowledge about licensing
is still rather limited.
I assume that the alpha will be out in late spring. (I am busy
until early spring.)
You can count me in to test it (I gather to prefer to code this
as you see fit, right now).
Thanks!
You could also present it at the D conf.
I'd like to, but I probably cannot make it.
In any cases, congratulations for what seems to be a elegantly
done D implementation.
Thanks! (Well, it makes extensive use of string mixins to
simulate a coroutine-based system with low overhead.)