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