This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Hobbit and high-level GUILE interface (interning)


>>>>> "Aleksandar" == Aleksandar Bakic <bakicale@cps.msu.edu> writes:

    Aleksandar> Hi, There seems to be some incompatibility between how
    Aleksandar> gh_new_procedure registers SCM objects and the way
    Aleksandar> Hobbit accesses these objects. Namely, Hobbit uses
    Aleksandar> scm_intern, while I think gh_new_procedure does not
    Aleksandar> use scm_intern. The result: Hobbit cannot find any of

gh_new_procedure uses scm_sysintern, which in most cases is
equal to scm_intern. When you define a lambda, 
you use make_subr in hobbit compiled code, which is a
call to scm_make_gsubr, so it is the same as gh_new_procedure. But for
defining non-lambda objects, scm_intern is used. 
This is perhaps a bug, I will verify this. The answer is not immediate, as
in eval.c, the code for define does not call these functions.

    Aleksandar> the procedures registered using
    Aleksandar> gh_new_procedure. Since I call gh_new_procedure from a
    Aleksandar> dynamically loaded C code (when `use-module' is
    Aleksandar> called, via scm_register_module_xxx, etc.), I tried
    Aleksandar> using `define-public' and `intern-symbol' but it
    Aleksandar> didn't help. I will how try calling scm_intern along
    Aleksandar> with gh_new_procedure, but I would like to find some
    Aleksandar> documentation about this.

Here I believe the code is the documentation...

B. Urban