Subject: Cross module inlining causes unbound make-struct/no-tail ref

From: Rob Browning <[email-masked]>
Date: Sun, 04 Jul 2021 13:31:15 -0500

This commit casuses lokke's compilation to fail:

  commit fd5cb457fb3a450b4b14eb89c8dbd764ba8df52e
  Date:   Mon Apr 5 20:58:03 2021 +0200

      Implement cross-module inlining

      * module/language/tree-il/optimize.scm (make-optimizer): Pass
      cross-module-inlining? to peval.
      * module/language/tree-il/peval.scm (peval): Add cross-module-inlining?
      kwarg.  Try to inline public module-ref.

The failure looks like this (after applying the patch mentioned in
https://debbugs.gnu.org/49305 so we can get past the #nil issue):

  GUILE=/home/rlb/src/lokke/main/guile \
  GUILE_AUTO_COMPILE=0 \
  /home/rlb/opt/guile-3.0-main/bin/guild-3.0 compile \
    -Wunbound-variable -Wmacro-use-before-definition \
    -Warity-mismatch -Wformat \
  --from=lokke -o mod/lokke/ns/lokke/deps.go mod/lokke/ns/lokke/deps.clj
  Backtrace:
  In language/tree-il/peval.scm:
     853:11 19 (loop _ _ #<<counter> effort: #<variable 7fe52f017730 ?> ?)
     338:20 18 (visit-operand #<<operand> var: #<<var> name: recur ge?> ?)
      799:6 17 (loop #<tree-il (lambda ((name . recur)) (lambda-case ?> ?)
    1690:20 16 (loop _ #<vhash 7fe52ca56ba0 34 pairs> #<<counter> eff?> ?)
     981:20 15 (loop _ #<vhash 7fe52ca56ac0 36 pairs> #<<counter> eff?> ?)
     981:20 14 (loop _ #<vhash 7fe52ca569c0 38 pairs> #<<counter> eff?> ?)
      799:6 13 (loop _ #<vhash 7fe52ca56900 40 pairs> #<<counter> eff?> ?)
      799:6 12 (loop _ #<vhash 7fe52ca56900 40 pairs> #<<counter> eff?> ?)
      799:6 11 (loop _ #<vhash 7fe52ca56900 40 pairs> #<<counter> eff?> ?)
    1659:48 10 (loop _ _ _ test)
  In srfi/srfi-1.scm:
     586:29  9 (map1 (#<tree-il (primitive not)> #<tree-il (call (@ ?>))
     586:17  8 (map1 (#<tree-il (call (@ (lokke base invoke) invoke) ?>))
  In language/tree-il/peval.scm:
    1659:48  7 (loop _ _ _ value)
  In srfi/srfi-1.scm:
     586:17  6 (map1 (#<tree-il (@ (lokke ns clojure string) starts?> ?))
  In language/tree-il/peval.scm:
    1075:14  5 (loop #<tree-il (@ (lokke ns clojure string) starts-wi?> ?)
  In lokke/ns/clojure/string.scm:
      108:0  4 (lp)
      108:0  3 (lp)
      108:0  2 (lp)
      108:0  1 (lp)
  In ice-9/boot-9.scm:
    1685:16  0 (raise-exception _ #:continuable? _)

  ice-9/boot-9.scm:1685:16: In procedure raise-exception:
  Unbound variable: make-struct/no-tail

Please let me know if I can help with further diagnosis.

Thanks
-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4