bug-dico


Search for: Advanced

Dico 2.0 fails to build with Guile 1.9


Hello,

As you may know, Guile 1.9 has been under active development for about a
year and will become 2.0 around March 2010.

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:

  libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -I/nix/store/bnlgka5n7m1i95kp7wfkw62q3pvzpzic-libunistring-0.9.1.1/include -I/nix/store/1r9xmm1fa8h3h7zbfkpmm93ln1iqg5rd-guile-1.9.6/include -I/nix/store/4bzbbzav7hjygx3kvqy53h15frb1vx97-boehm-gc-7.1/include -g -O2 -c guile.c  -fPIC -DPIC -o .libs/guile.o
  guile.c: In function '_guile_selector':
  guile.c:322: error: 'SCM_IM_QUOTE' undeclared (first use in this function)

Such symbols were used by the evaluator’s memoizer and will no longer be
available (the new Guile has a compiler, which produces bytecode
interpreted by a VM.)

Instead, you can either use ‘scm_primitive_eval ()’ and pass it a
“regular” S-exp, or compile the Scheme code to bytecode and then run it
(though there’s not any C API to compile code currently.)

  guile.c: In function '_make_dico_port':
  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 ()’ (this part of the API is still
undocumented, though...).

  guile.c: In function '_guile_init_dico_port':
  guile.c:500: warning: passing argument 2 of 'scm_set_port_seek' from incompatible pointer type

The second argument should have type ‘scm_t_off’ now, not ‘off_t’.

  guile.c: In function 'mod_init':
  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. ;-))

Thanks,
Ludo’.

[0] http://hydra.nixos.org/job/nixpkgs/guile2test/dico