Boost logo

Boost :

From: Joel de Guzman (djowel_at_[hidden])
Date: 2002-12-03 20:15:27


----- Original Message -----
From: "Jaakko Jarvi" <jajarvi_at_[hidden]>

> On Sun, 1 Dec 2002, John Maddock wrote:
>
> > I'm wondering if it's possible to get Lambda working with Borland's
> > compiler?
>
> I can help the best I can if someone wants to take up the task.

Hi Jaakko,

FWIW, Phoenix, (a derivative of BLL and FC++) works on Borland.
It took me quite some time (and hair pulling! now I'm almost getting
bald!) getting it to work on Borland. BLL code needs some major
reworking to get it working. IMO, not worth the trouble. But let me offer
an alternative....

Here goes... Jaakko, you there :-) Hi!

I am now working on Phoenix on MPL. I am not concentrating on
the Lambda stuff but instead I wish to focus on 'true' currying,
the phoenix::function and closures and the binders (of course).
These are the most important aspects that Spirit needs very much.
An obvious side-effect of this Phoenix-MPL initiative is of course
VC6/7/Borland compatibility. I am aware that VC7.1 will be out
sometime (soon?). However, I am also aware that 6/7 will still
be here with us for a long time. Not to mention of course other
less conforming compilers that do not have features such as PTS.

What's *cool* is that the resulting code should be very straightforward
and clean with no compiler workarounds at all. MPL takes care of that.
Currently, I have an MPLed version of the tuples that uses
N-membered structs and MPL type-vectors. I got it working
following the boost::tuple API (except the cons which IMO should
not be part of the API but should be regarded as an implementation
detail). I also wish to add some meta-transformations and
extraction extensions and other "algorithms" that work on tuples
such as "find the tuple element that satisfies this metafunction".
Getting the head/tail should be trivial but, IMO, should be part of
the tuple-algorithms library rather than hard coded as part
of the data structure.

BTW, Vladimir Prus, if you are there, this version generates optimal
code on Borland. All the boost::tuples tests except the cons are
working just fine. And did I mention that there is just a single
implementation (no special case for VC6/7). And hey, it can do
a 50 element make_tuple!

Bottom line is... I want to rekindle the BLL/Phoenix integration towards
Lambda-2 (if you will). I am still very interested to pursue what we
have started. There are lots of interesting stuff that I want to explore.
Quite recently, there has been some nice movements in the Phoenix
side of the fence that would be rather nice to have incorporated in
BLL.

Jaakko, please email me if you still want to go ahead with this
merger.

Many thanks,
--Joel

PS> Aleksey, did I mention that MPL is awesome?
PPS> Bit the bullet and am now using the boost preprocessor {:-o}


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk