bug#50059: (ice-9 format) undesirably loaded when compiling

2021-08-14 Thread Jean Abou Samra

Hello,

Please have a look at the following session:

$ cat bug.scm
(format #t "~f\n" 42)
$ guile --no-auto-compile bug.scm
Backtrace:
   1 (primitive-load "/home/jean/repos/guile/bug.scm")
   0 (simple-format #t "~f\n" 42)

ERROR: In procedure simple-format:
In procedure simple-format: FORMAT: Unsupported format option ~f - use 
(ice-9 format) instead

$ guile bug.scm
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;   or pass the --no-auto-compile argument to disable.
;;; compiling /home/jean/repos/guile/bug.scm
;;; compiled 
/home/jean/.cache/guile/ccache/3.0-LE-8-4.4/home/jean/repos/guile/bug.scm.go

42.0
$ guile bug.scm
Backtrace:
In ice-9/boot-9.scm:
  1752:10  6 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
   5 (apply-smob/0 #)
In ice-9/boot-9.scm:
    724:2  4 (call-with-prompt ("prompt") # …)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#)))
In ice-9/boot-9.scm:
   2835:4  2 (save-module-excursion #)
  4380:12  1 (_)
In unknown file:
   0 (simple-format #t "~f\n" 42)

ERROR: In procedure simple-format:
In procedure simple-format: FORMAT: Unsupported format option ~f - use 
(ice-9 format) instead



As you can see, during the run where compilation
is performed, (ice-9 format) is loaded in the
main environment without being asked for, making
the program execution different, which is somewhat
confusing and error-prone as a program that has been
tested once will no longer work the next time
(thus possibly escaping an automated testing
system).

This is with Guile 3.0.5.130-5a1e7.

Thanks for your attention,
Jean Abou Samra





bug#49686: Confusing presence of #f in error message

2021-08-14 Thread Jean Abou Samra

Note that this does not happens with Guile 2.2





bug#50060: The REPL does not honor --no-auto-compile

2021-08-14 Thread Jean Abou Samra

Even when guile is run with --no-auto-compile, the
REPL still seems to be compiling the source.

$ guile --no-auto-compile
GNU Guile 3.0.5.130-5a1e7
[Legalese…]
scheme@(guile-user)> unbound-variable
;;; :1:0: warning: possibly unbound variable `unbound-variable'
[Backtrace…]

This "possibly unbound variable" warning comes from
compilation (which can be seen by putting the same
code in a script and running with or without auto-compilation).

This is annoying, because in the REPL the code
is run immediately and we don't need the warning
about a "possibly unbound variable" just before
the actual error. In fact, it would seem desirable
to make "no auto-compilation" the default for the
REPL. Code run there is typically not
performance-sensitive.

(Originally reported at 
https://lists.gnu.org/archive/html/guile-user/2021-06/msg00065.html.)