[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