guile and slib, old guile versions, missing warnings with compilation
Greg Troxel <[email protected]>
| Newsgroups | gmane.lisp.guile.devel |
|---|---|
| Message-ID | <[email protected]> |
I've been mostly lurking, but by way of re-introduction I learned scheme in the mid 80s (SICP), and started using guile in the 90s. I used it as an extension language in a research project, allowing users to write behaviors for packet delay/loss in an emulator that could interact with real implementations of network protocols, and a few other work usages. I'm the maintainer for some guile things in pkgsrc (slib and guile glue, some of ttn's packages), and semi-maintainer for guile itself. I'm not really using guile; this is more of keeping after it for old times sake, combined with a delusion thought that I'll use guile more heavily at some point. There's a new slib release 3c2, and it seems to work fine. But, I see a bunch of warnings building the catalog. The bulk of the glue code lives in slib, but it feels like a guile thing to maintain. The warnings (with guile 3.0.11): cd /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib && GUILE_LOAD_PATH=/tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0 GUILE_IMPLEMENTATION_PATH=/tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0 /usr/pkg/guile/3.0/bin/guile -c "(begin (use-modules (ice-9 slib)) (require 'new-catalog))" ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile.init WARNING: Use of `load' in declarative module (ice-9 slib). Add #:declarative? #f to your define-module invocation. ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:238:12: warning: possibly unbound variable `vicinity:suffix?' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:624:14: warning: possibly unbound variable `make-typed-wrapper' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:640:19: warning: possibly unbound variable `ac64' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:642:18: warning: possibly unbound variable `ac32' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:644:19: warning: possibly unbound variable `ar64' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:646:18: warning: possibly unbound variable `ar32' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:653:18: warning: possibly unbound variable `as64' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:654:18: warning: possibly unbound variable `as32' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:655:18: warning: possibly unbound variable `as16' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:656:18: warning: possibly unbound variable `as8' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:657:18: warning: possibly unbound variable `au64' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:658:18: warning: possibly unbound variable `au32' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:659:18: warning: possibly unbound variable `au16' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:660:18: warning: possibly unbound variable `au8' ;;; /tmp/work/devel/guile30-slib/work/.destdir/usr/pkg/guile/3.0/share/guile/site/3.0/slib/guile-2.init:661:18: warning: possibly unbound variable `at1' ;;; compiled /home/gdt/.cache/guile/ccache/3.0-LE-8-4.7/usr/pkg/share/slib/guile.init.go ;;; compiling /usr/pkg/share/slib/require.scm ;;; /usr/pkg/share/slib/require.scm:179:44: warning: possibly unbound variable `synclo:load' ;;; /usr/pkg/share/slib/require.scm:180:37: warning: possibly unbound variable `syncase:load' ;;; /usr/pkg/share/slib/require.scm:181:42: warning: possibly unbound variable `macwork:load' ;;; /usr/pkg/share/slib/require.scm:188:53: warning: possibly unbound variable `load-ciexyz' ;;; /usr/pkg/share/slib/require.scm:191:26: warning: possibly unbound variable `load-color-dictionary' ;;; /usr/pkg/share/slib/require.scm:261:10: warning: possibly unbound variable `transcript-on' ;;; /usr/pkg/share/slib/require.scm:263:10: warning: possibly unbound variable `transcript-off' ;;; compiled /home/gdt/.cache/guile/ccache/3.0-LE-8-4.7/usr/pkg/share/slib/require.scm.go ;;; compiling /usr/pkg/share/slib/mklibcat.scm ;;; compiled /home/gdt/.cache/guile/ccache/3.0-LE-8-4.7/usr/pkg/share/slib/mklibcat.scm.go I'm guessing these are mostly slib issues, but if anyone is a guile/slib interface expert, I'd like to hear what you think. The larger issue is that slib has guile.scm and guile-2.scm, with guile.scm switching on "guile-2" to use guile-2.scm. It's unclear to me if "guile-2" vs "not guile-2" is about the <=1.8 and >=2.0 sets, or if there really should be a load file for every major version. That makes me wonder how far back people think we should be going. In pkgsrc, we have packages for 18, 20, 22, 30. Things that need 18 at this point I see as woefully unmaintained, and in pkgsrc at least lilypond is still using 20. I would therefore guess that for slib and things like that, dropping support for <= 1.8 is fine, and it should continue to support >= 2.0 at least as long as that isn't painful. A further related issue: when building the package again, the warnings are omitted, I think because the compiled version of the file is used. This feels like a bug; ccache when translating .c to .o not only produces the output but prints out the stored warnings. I think guile's compiler should do that too.