Subject: bug#49404: closed (Re: bug#49404: Cross module inlining causes unbound make-struct/no-tail ref)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 12 Jan 2025 18:31:02 +0000

Your bug report

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

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
49404: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49404
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#49404: Cross module inlining causes unbound make-struct/no-tail ref
From: Rob Browning <[email-masked]>
To: [email-masked]
Date: Sun, 12 Jan 2025 12:30:52 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

Rob Browning <[email-masked]> writes:

> 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):

[...]

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

I suspect this has been fixedq and I can no longer reproduce it --
though I'm not certain lokke didn't also change in some relevant way.

In any case, I'll close it for now and we can re-open it if necessary.
I also suspect this may have been related:

  commit d01ab7bf5cb97264b48bec96469360f1901d1a35
  Author: Andy Wingo <[email-masked]>
  Date:   Mon Jan 17 21:07:22 2022 +0100

      Fix inlinable-exports bug for pure modules

      * module/language/tree-il/inlinable-exports.scm (compute-decoder): Fix
      bug in which inlinable exports in a pure module would have a missing
      make-struct/no-tail binding.

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

Subject: Cross module inlining causes unbound make-struct/no-tail ref
From: Rob Browning <[email-masked]>
To: [email-masked]
Date: Sun, 04 Jul 2021 13:31:15 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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