Re: Front-end

John Moeller <[email protected]>
Newsgroups gmane.comp.lib.boost.langbinding
Message-ID <[email protected]>
David Abrahams wrote:
> on Sat Jun 30 2007, John Moeller <fishcorn-AT-gmail.com> wrote:
> 
>> Daniel Wallin wrote:
>>> John Moeller wrote:
>>>> I was wondering about the front-end a little bit, and since it would be 
>>>> essentially a DSEL, has any thought been given toward using Proto for 
>>>> the Langbinding front-end?
>>> I don't know which DSEL you're thinking of. 
>> The class_<>, def(), etc.  It's a DSEL that describes a class.
>>
>>> IIRC we use type erasure
>>> everywhere, in which case proto won't help. 
>> Type erasure.  That's the term I was looking for, thank you.  :)
>>
>> There's only type erasure (AFAICT) at the point where xxx binds.  Tuple 
>> transformations and other compile-time operations are used internally in 
>> langbinding.  All I'm saying is that it may be useful.  If you don't 
>> think so, so be it.
> 
> It would be useful if we needed to statically generate
> language-specific bindings from the user's binding code.  However,
> it's our hope to avoid that.

Ok.  I'll try to invent another use for proto outside langbinding.  It's 
just so neat!

>> Additionally, I've been wondering if type erasure is strictly necessary 
>> anyway.  A while back, you and Dave had discussed a system where static 
>> type information was utilized.  
> 
> Static type information will always be "utilized."

Hm.  That was vague, wasn't it?  Let me modify that to say, "utilized to 
determine xxx argument types."  I see now that that goes against the 
"compile-once-bind-anywhere" idea.

>> It seems that the idea of static converter generators was abandoned
>> in favor of type erasure, but I wasn't able to discern why.  
> 
> It enables us to have a single compiled front-end language binding
> that can be used with any number of backend languages.

That makes sense.

Ugh.  The "frontend"/"backend" thing is making me dizzy.  I tried to 
come up with alternatives ("native" to replace "frontend", for example), 
but I couldn't think of any role-independent terms for backend languages.

>> That's the point that I was trying to get at in my other post.  I
>> wanted to revisit the issue, if possible.
> 
> I don't think it's possible to get any advantage out of keeping more
> static information around... but I still have to get to your other
> posts ;-)

Ok.  Sorry if I sounded urgent.  :-)  I know that it takes time.

>>> We might have some parts
>>> that doesn't use type erasure, like the policy specification syntax, but
>>>  I don't think we'd want to do any tree transformations on that anyway..
>> Policy specification syntax?  Are you referring to something in 
>> Boost.Python or in Luabind?
> 
> Something proposed for Langbinding.

Cool!  Let's get it codified.  :-)  Was that one of the discussions I 
found in the archives, and I just didn't absorb it?  And by "policy" do 
you mean Alexandrescu-like policies, or something else?  I know there 
was a debate over the term "policy."

-- 

John Moeller
[email protected]


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.