Boost logo

Proto :

Subject: Re: [proto] Visitor Design Pattern
From: Joel de Guzman (joel_at_[hidden])
Date: 2010-10-25 10:59:30

On 10/25/10 7:44 PM, Thomas Heller wrote:
> On Mon, Oct 25, 2010 at 11:57 AM, Joel de Guzman
> <joel_at_[hidden]> wrote:
>> On 10/25/2010 12:39 PM, Eric Niebler wrote:
>>> On 10/24/2010 8:32 PM, Joel de Guzman wrote:
>>>> On 10/25/2010 8:49 AM, Eric Niebler wrote:
>>>>> Like "visitor", "actor" comes with lots of baggage that we don't want:
>>>>> Besides, as these things define algorithms, a name that's a verb would
>>>>> be better (std::transform, std::accumulate, etc. are verbs).
>>>> That's a totally different synonym. The actor that I meant is
>>>> connected to the meaning of "semantic action" and you are using
>>>> action/actions anyway (as well as grammars and rules). It's the
>>>> same domain.
>>> Oh. I didn't make the connection between "actor" and "semantic action".
>>> For me, "actor" is so strongly evocative of concurrent programming that
>>> I can't read it any other way.
>> It's the name we use in Spirit for objects that dispatch semantic
>> actions. What does an actor do: it executes an action for a
>> particular sub-rule (node).
>>>>> How about "evaluate":
>>>>> proto::evaluate<char_terminal, my_actions>()(a);
>>>> Hmmm... :P
>>> You're not loving that, either, are you? evaluate_with? with_actions?
>>> <shrug> They're all terrible. I won't bother the list any more with
>>> naming issues. Thanks to everybody who contributed ideas to the design
>>> of the-yet-to-be-named-thingie. Especial Thomas.
>> evaluate or eval in short is ok. I don't dislike it but
>> it's not at the top of my list.
>> Ditto, that's it for me. naming is only productive until a
>> specific point. After that, it becomes a bike-shed issue.
>> Any name from our list will do just fine. What's important is
>> that you've done an amazing work under the hood. So, kudos
>> to you and Thomas! hats off, sirs!
> Thank you very much! So, we are good to changing the internals of
> phoenix3 to use this extension mechanism?
> Regarding naming ....
> I like renaming phoenix::actor to phoenix::lambda. But what about the existing
> phoenix::lambda? Rename it to protect (from Boost.Lambda)?

Hmm. That, I object to. Perhaps I misunderstood. Let's not gratuitously
break backwards compatibility.


Joel de Guzman

Proto list run by eric at