ffigen-website/www/todo.html

93 lines
2.7 KiB
HTML
Raw Normal View History

<HTML>
<HEAD>
<TITLE>FFIGEN To-do list</TITLE>
<LINK REV="made" HREF="mailto:lth@acm.org">
</HEAD>
<BODY>
<H2>FFIGEN To-do list</H2>
Updated 14 June 2000.
<H3>Intermediate format features</H3>
<UL>
<LI> Full ANSI C support:
2023-05-19 03:28:13 -04:00
<UL>
<LI> [done] Bitfields.
<LI> General support for type qualifiers.
</UL>
<LI> Output a machine description.
<LI> Output struct/union sizes.
<LI> Output structure field offsets.
<LI> Output line and column information.
<LI> Retain and output comments.
2023-05-19 03:28:13 -04:00
<LI> Output source file information (the name of the input file to
<code>lcc -ffigen</code>); this can
2023-05-19 03:28:13 -04:00
be useful since the back end can generate C files which
<code>#includes</code> the source header file.
<LI> Support certain extensions: Microsoft __huge, __near, __far, __based,
__cdecl, __pascal; GNU __inline; others?
</UL>
<H3>Processing (both front-end and back-end)</H3>
<UL>
<LI> Some general support for a policy file?
<LI> More intelligent macro-expansion support: macros should be expanded
as far as possible, and extraneous cruft should be removed so that the
back end can produce better translations.
<LI> Support for some form of tokenized macros to support certain regular
2023-05-19 03:28:13 -04:00
and nice rewrites? C libraries like Open Inventor use macros
heavily in a virtual-function like style:
<pre>
#define SoSphSetOverride(_this, state) \
SoNodeSetOverride((SoNode *)_this, state)
</pre>
and it would be nice to provide some support for such cases in the form
of already-tokenized output.
</UL>
<H3>Implementation features</H3>
<UL>
<LI> Move to lcc 4.1, and ASDL.
<LI> [done] Move to lcc 3.6.
<LI> [done] Proper integration with lcc. Currently, it uses the lcc driver but
it generates code, performs assembly, and produces file.o (which it need
2023-05-19 03:28:13 -04:00
not do). In addition, the output file is called SYMBOLS but should
rather be called filename.ffi.
</UL>
<H3>Known bugs</H3>
<UL>
<LI> [done] Currently the rhs of a macro is output without any whitespace. This
is not correct if there are two adjacent identifiers or reserved words,
which happens in declarations (consider "const int blah"). [Harold]
</UL>
<H3>Back-ends</H3>
<UL>
<LI> Back-end for Scheme-to-C.
2023-05-19 03:28:13 -04:00
<LI> Back-end for Gambit-C (Harold's got one working, it also does
interesting things with Open Inventor macros (see above)).
<LI> Back-end for Tcl/Tk?
<LI> Back-ends for ILU and Modula-3.
<LI> Back-end for STk.
<LI> Improvements to Chez Scheme back-end.
</UL>
<H3>Miscellaneous</H3>
<UL>
<LI> Advertise on lcc mailing list.
</UL>
<HR>
<P>
Press <A HREF="index.html">here</A> to go to the FFIGEN home page.
<hr>
<address><a href="mailto:lth@acm.org">lth@acm.org</address>
</BODY>
</HTML>