>>>>> "Dirk" == Dirk Herrmann <[EMAIL PROTECTED]> writes:
Dirk> On 6 Jun 2000, bernard URBAN wrote:
>> Hum... ALL *.x files contain only a newline !!! ALL *.doc are
>> void !!!
And now, the awful truth will been revealed: guile depends absolutely
on gcc...
Here is the problem: the C preprocessor of Sun, used by
guile-doc-snarf, generates $ $ $ instead of $$$ (as do gcc), and this
for all the triples used by the snarfing mechanism.
This breaks guile-snarf.awk, and hence *.x and *.doc are void.
Dirk> But, there's more to it: I just discovered a similar problem
Dirk> when trying to use the threads stuff.
Dirk> Here's what I found: In scm_make_gsubr, for a couple of
Dirk> parameter numbers there exist special cases. But, if none
Dirk> of these special cases is used, the following code is
Dirk> executed: scm_set_procedure_property_x (cclo, scm_sym_name,
Dirk> SCM_CAR (symcell)); But, scm_sym_name has to be initialized!
Dirk> If it is not initialized, it is 0, and thus equal to all
Dirk> other uninitialized globals.
Dirk> Thus, scm_init_gsubr has to be called _before_ the first
Dirk> snarfed header file is executed. Up to now this problem has
Dirk> not appeared yet, but in the new threads.c, there is a
Dirk> function with 4 mandatory parameters, and this is not one of
Dirk> the special cases.
Dirk> Here is what I did:
Dirk> scm_weaks_prehistory (); /* Must come after
Dirk> scm_init_storage */ scm_init_subr_table (); scm_init_root
Dirk> (); + scm_init_gsubr (); #ifdef USE_THREADS -
Dirk> scm_init_threads (base); + scm_init_threads (base); /*
Dirk> Requires gsubr */ #endif - start_stack (base); -
Dirk> scm_init_gsubr (); + start_stack (base); /* Requires threads
Dirk> */ scm_init_feature (); scm_init_alist (); scm_init_arbiters
Dirk> ();
Dirk> The dependencies between the different packages can become
Dirk> quite messy.
This is a real and decent bug !
Coming back to the C preprocessor, I do not know if it is the only one
in this case, as the behaviour is ok for the semantics of C.
Perhaps putting the characters between "" will help ?
This will also avoid a compiler choking on $ or @, I am not sure these
2 are legal outsite "".
Other solution is to have cccp in guile...
Sincerely.
--
B. Urban