GNU bug report logs -
#78831
[PATCH 1/2] language/bf: rewire compiling to scheme
Previous Next
To reply to this bug, email your comments to 78831 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guile <at> gnu.org
:
bug#78831
; Package
guile
.
(Wed, 18 Jun 2025 21:42:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Paul Bolle <pebolle <at> tiscali.nl>
:
New bug report received and forwarded. Copy sent to
bug-guile <at> gnu.org
.
(Wed, 18 Jun 2025 21:42:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Trying to compile bf to scheme fails with an impressive backtrace:
"In ice-9/boot-9.scm:
1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
In unknown file:
12 (apply-smob/0 #<thunk 7f2594f5d000>)
In ice-9/boot-9.scm:
724:2 11 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
619:8 10 (_ #(#(#<directory (guile-user) 7f2594f12c80>)))
In ice-9/boot-9.scm:
2836:4 9 (save-module-excursion _)
4388:12 8 (_)
In /home/[...]/bf2scheme.scm:
2:15 7 (_)
In system/base/compile.scm:
307:16 6 (read-and-compile #<input: string 7f25a2ef57e0> #:from _ …)
278:13 5 (lp _)
278:13 4 (lp _)
278:13 3 (lp _)
278:13 2 (lp _)
275:6 1 (lp _)
244:17 0 (next-pass _ _ _ _ _)
system/base/compile.scm:244:17: In procedure next-pass:
no way to compile #<<language> name: brainfuck title: "Brainfuck" reader: #<procedure 7f2592825650 at language/brainfuck/spec.scm:42:16 (port env)> printer: #<procedure write (_ #:optional _)> parser: #f compilers: ((tree-il . #<procedure compile-tree-il (exp env opts)>) (scheme . #<procedure compile-scheme (exp env opts)>)) decompilers: () evaluator: #f joiner: #f for-humans?: #t make-default-environment: #<procedure make-fresh-user-module ()> lowerer: #f analyzer: #f compiler-chooser: #<procedure choose-compiler (compilers optimization-level opts)>> "to" #<<language> name: scheme title: "Scheme" reader: #<procedure 7f2592780650 at language/scheme/spec.scm:34:16 (port env)> printer: #<procedure write (_ #:optional _)> parser: #f compilers: ((tree-il . #<procedure compile-tree-il (x e opts)>)) decompilers: ((tree-il . #<procedure decompile-tree-il (e env opts)>)) evaluator: #<procedure 7f2592780660 at language/scheme/spec.scm:45:16 (x module)> joiner: #f for-humans?: #t make-default-environment: #<procedure 7f2592780670 at language/scheme/spec.scm:48:16 ()> lowerer: #f analyzer: #f compiler-chooser: #f>"
It turns out the compiler for bf is hardwired to compile-tree-il. Make
it possible to choose compile-scheme too.
---
module/language/brainfuck/spec.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/module/language/brainfuck/spec.scm b/module/language/brainfuck/spec.scm
index ca488b916..5827c95f4 100644
--- a/module/language/brainfuck/spec.scm
+++ b/module/language/brainfuck/spec.scm
@@ -35,7 +35,9 @@
; language.
(define (choose-compiler compilers optimization-level opts)
- (cons 'tree-il compile-tree-il))
+ (if (eq? (language-name compilers) 'scheme)
+ (cons 'scheme compile-scheme)
+ (cons 'tree-il compile-tree-il)))
(define-language brainfuck
#:title "Brainfuck"
--
2.49.0
This bug report was last modified 6 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.