[project @ 2001-07-23 23:08:04 by ken]
Rearranged the usage help message to move --no-compile to the bottom.
More importantly-- Fixed: hsc2hs was translating
#def inline ... function(...) { ... }
into (assuming defined(__GNUC__))
[in the _hsc.h file:] extern inline ... function(...)
[in the _hsc.c file:] inline ... function(...)
while it should really be translated into
[in the _hsc.h file:] extern inline ... function(...)
[in the _hsc.c file:] ... function(...)
(without the "inline" in the _hsc.c file). Quoting the gcc documentation
for "inline":
> If you specify both `inline' and `extern' in the function
> definition, then the definition is used only for inlining. In no case
> is the function compiled on its own, not even if you refer to its
> address explicitly. Such an address becomes an external reference, as
> if you had only declared the function, and had not defined it.
>
> This combination of `inline' and `extern' has almost the effect of a
> macro. The way to use it is to put a function definition in a header
> file with these keywords, and put another copy of the definition
> (lacking `inline' and `extern') in a library file. The definition in
> the header file will cause most calls to the function to be inlined.
> If any uses of the function remain, they will refer to the single copy
> in the library.