<div>Could you give more details about it?</div><div><br></div><div>I don't fully understand the scope of this library or what parts of Clang it will wrap / replace.</div><div><br></div><div>Right now using the AST library you can already get the calling convention, virtual layout and name manglings of objects.</div>

<div><br></div><div>Will this also provide backend things, like low-level calling convention details for each platform?</div><div><br></div><div>How will exception handling details be provided?</div><div><br></div><div>Will this provide a simplified interface to get all the data using the other Clang libraries or will the rest of Clang actually depend on this library?</div>

<div><br></div><div>The idea sounds interesting and it's nice to see you work on this.</div><div><br></div><div>On Tue, Oct 16, 2012 at 8:11 PM, Dave Abrahams <span dir="ltr"><<a href="mailto:dave@boostpro.com" target="_blank">dave@boostpro.com</a>></span> wrote:</div>

<div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
[ redirected at cfe-dev ]<br>
<br>
on Tue Oct 16 2012, John McCall <rjmccall-AT-apple.com> wrote:<br>
<br>
> On Oct 16, 2012, at 11:45 AM, Dave Abrahams wrote:<br>
>> I'm working on a project to separate from Clang all the logic necessary<br>
>> to generate C/C++/ObjC-ABI-compatible code so that other front-ends,<br>
>> both C family (e.g. Dragonegg, and in BoostPro's case, EDG) and other<br>
>> languages/code generators, can interoperate with C family code.<br>
><br>
> So, specifically, this would be some sort of API where you give it a C<br>
> function type and it tells you how to pass those arguments in LLVM IR?<br>
<br>
Oh, way more than that.  It has to deal with exception-handling, object<br>
layout, vtable layout, yada yada... and probably a few<br>
ObjectiveC-specific things I don't know about (not being versed in<br>
ObjC).<br>
<br>
> Seems commendable, but there's a lot of hidden complexity here.<br>
<br>
Don't I know it!  As I mentioned, I've been digging around in the code<br>
extensively and it's clearly a nontrivial undertaking.<br>
<br>
> Is there anything more to it than that?  Are you also going to try to<br>
> abstract, say, the sizes and alignments of fundamental types?<br>
<br>
yes<br>
<br>
> Struct layout?  Anything else?<br>
<br>
yes and yes.  Lots else.<br>
<br>
>> Eventually I want to put this work in a separate project that sits<br>
>> between Clang and LLVM, but for now, at Chandler's suggestion, I plan to<br>
>> make it a sub-library of Clang (I'll set up the CMakeLists.txt so the<br>
>> CABI library can't see the rest of clang).<br>
><br>
> Sounds reasonable.<br>
><br>
>> Suggestions, feedback, interaction welcomed.  Not my highest priority,<br>
>> but if anyone has a better name than CABI it would relieve one nagging<br>
>> source of discomfort ;-)<br>
><br>
> If it's just about the C ABI, that seems like a fine name for it.<br>
<br>
No, it's C/C++/ObjC ABI.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Dave Abrahams<br>
BoostPro Computing                  Software Development        Training<br>
<a href="http://www.boostpro.com" target="_blank">http://www.boostpro.com</a>             Clang/LLVM/EDG Compilers  C++  Boost<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>João Matos<br>
</div>