On 02-Jan-2001, Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl> wrote:
Tue, 2 Jan 2001 22:28:02 +1100, Fergus Henderson <fjh@cs.mu.oz.au> pisze:
Doing it in a separate tool will lose efficiency in some important cases. If the compiler is compiling via C, then it can insert inline C code directly in the generated code, and thus get inlining. But I think a separate tool would have to put the C code in a separate C file, which would prevent inlining.
hsc2hs creates a .c file and a .h file for snippets of C code. The .h file is included into the .hc file generated by ghc.
OK, so this is a hybrid approach -- most of the work is done by an external tool, but ghc still needs to know to #include the right .h file in the .hc file. So you don't need `foreign_code', but you still need `foreign_decls' or equivalent. Personally I'd rather have a single well-designed convenient foreign language interface as a standard part of the language, rather than having a minimalistic foreign language interface in the language standard and having convenience provided by a separate tool (or by several competing separate tools). But I understand why you might differ on that point. -- Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit | of excellence is a lethal habit" WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.