Package: guile-2.0 Version: 2.0.9+1-1 Severity: normal guile-2.0's compiler can't handle code that directly references procedures, GOOPS objects, or various other object types. The interpreter, and for comparison guile-1.8, accept such references just fine, allowing read-eval to be used to incorporate direct object references into code. Test case:
$ cat t8 (cond-expand (guile-2 (defmacro compile-time f `(eval-when (compile eval) ,@f))) (else (defmacro compile-time f `(begin ,@f)))) (compile-time (fluid-set! read-eval? #t)) (write (#.+ 2 3)) (newline) $ guile-1.8 t8 5 $ guile-2.0 --no-auto-compile t8 5 $ guile-2.0 t8 ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/zefram/usr/guile/t8 ;;; WARNING: compilation of /home/zefram/usr/guile/t8 failed: ;;; ERROR: build-constant-store: unrecognized object #<procedure + (#:optional _ _ . _)> 5 This breaks most of the interesting uses for read-eval, albeit only when attempting to compile the code. That it produces an actual error, and can fall back to interpretation, limits the seriousness. However, there are several related problems that exacerbate it, which I've recently reported: auto-compilation is difficult to portably disable and the failure is noisy (Bug#734009), silent failure when the object is a mutable pair rather than a procedure (Bug#734157), and the limitation applies in the REPL which doesn't fall back to the interpreter (Bug#734108). This problem is described upstream at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11198>. I'm reporting it in the Debian system so that it is properly tracked from a Debian point of view. -zefram -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org