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.)

Reply via email to