[fetter-devel] Re: Progress Report for Week of August 8

Kenny Tilton ktilton at nyc.rr.com
Tue Aug 16 00:29:22 UTC 2005



Rayiner Hashem wrote:

>Accomplished:
>
>1) Wrote C-FFI backend. It handles most interesting things, except
>defining C variables, which I'll do once I get things running on
>Luis's branch.
>
>2) Rewrote dependency reordering pass to do things The Right Way. This
>means using a DFS to calculate the finishing time for each vertex,
>generating a list of all definition edges in the graph, and sorting
>the list by finishing time. Being the "Right Way", it doesn't handle C
>semantics correctly. It doesn't messes up the dependencies for the
>following case:
>
>struct foo {bar* myBar};
>struct bar {foo* myFoo};
>
>This is fine for C-FFI, which doesn't have typed pointers, but not for
>UFFI, which I don't think can handle the situation at all.
>
I would not worry about UFFI. Even KMR believes a UFFI-2 is needed, and 
by UFFI-2 he means something not necessarily backward compatible with 
UFFI. Periodically there is a flurry of activity on the UFFI lists that 
almost but not quite gets work on UFFI-2 launched. My read is that a 
good job now on CFFI will make it the successor of UFFI. Verrazano will 
make it easy to replace any UFFI bindings with CFFI bindings, but if the 
calling application depends on something in UFFI incompatible with CFFI, 
of course UFFI lives on a while. Probably those calling packages will 
get ported to CFFI on their next big release.

>
>3) Wrote a Cairo demo application, updated website with output samples.
>
>4) Boring but necessary prerequisite work for C++ support. Wrote a
>simplification pass to unnest nested declarations, made sure member
>functions get handled properly, etc.
>
>5) Started the utility library to handled virtual functions calls into C++ code.
>
>6) Conceptual work on semantics of C++ bindings. Will post outline RSN.
>
>To Do:
>
>1) Write simplification pass to promote structures with member
>functions to class-type IR nodes, and demote classes without member
>functions to struct-type IR nodes.
>
>2) Make generated code use utility library to do virtual function calls.
>
>3) Emit proper declarations for non-virtual member functions. 
>
>4) Get things running on CFFI-Luis.
>
>
>  
>
Great work. I look forward to tossing Hello-C and redoing all my Cello 
bindings. And if we really can get to C++, I will be able to eliminate a 
whole layer of C glue I used to get to FTGL. (Freetype on OpenGL.)

-- 
Kenny

Why Lisp? http://lisp.tech.coop/RtL%20Highlight%20Film

"I've wrestled with reality for 35 years, Doctor, and I'm happy to state I finally won out over it."
    Elwood P. Dowd, "Harvey", 1950






More information about the fetter-devel mailing list