bug-dico


Search for: Advanced

Re: Dico 2.0 fails to build with Guile 1.9


Hi Ludo,

> Currently Dico 2.0 fails to build with Guile 1.9 [0] because it uses
> features that were specific to the evaluator as found in 1.8 and earlier
> versions:

Thanks for reporting. I have not tried 1.9 yet, but plan to do it ASAP.

>   guile.c:322: error: 'SCM_IM_QUOTE' undeclared (first use in this function)
> 
> Instead, you can either use scm_primitive_eval()

I should try to find a backward-compatible way of doing that, to avoid
disturbing compilation with Guile 1.8, which (as I suppose) will still
be around for quite some time. Any hints?

> or compile the Scheme code to bytecode and then run it
> (though there's not any C API to compile code currently.)

Pity, but I hope it is planned, isn't it?

>   guile.c:417: warning: 'scm_add_to_port_table' is deprecated (declared at /nix/store/1r9xmm1fa8h3h7zbfkpmm93ln1iqg5rd-guile-1.9.6/include/libguile/ports.h:312)
> 
> Use scm_new_port_table_entry()

Thanks, I will.

>   guile.c:724: error: 'SCM_DEVAL_P' undeclared (first use in this function)
>   guile.c:725: error: 'SCM_BACKTRACE_P' undeclared (first use in this function)
>   guile.c:726: error: 'SCM_RECORD_POSITIONS_P' undeclared (first use in this function)
>   guile.c:727: error: 'SCM_RESET_DEBUG_MODE' undeclared (first use in this function)
> 
> In 1.9 none of these macros make sense (but we should probably add them
> for backward compatibility and deprecate them.)  The VM will always
> produce a backtrace with appropriate source location information when an
> error occurs.  (I remember seeing the same thing in Mailutils, while
> you're at it. ;-))

The same thing is present also in Radius, and in Anubis, and perhaps in other
projects I maintain... Looks like I've got quite some work to do :^)
Unfortunately, Guile's API changes dramatically almost with each new version,
which makes it quite hard to write portable interfaces with it. Are
there any chances for a more-or-less stable API?

Regards,
Sergey