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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.