Re: Unable to use SRFI-253 definitions in Guile.
Retropikzel 03 Sep 2024 19:32 UTC
On 03/09/2024 22:09, Arthur A. Gleckler wrote:
> On Tue, Sep 3, 2024, 12:07 PM Yuval Langer
> <xxxxxx@gmail.com <mailto:xxxxxx@gmail.com>>
> wrote:
>
> Guile complains that the `define-checked` name is undefined when
> running `make test_guile` using the Makefile defined in this
> repository:
>
> <https://git.sr.ht/~retropikzel/test-srfi-253/
> <https://git.sr.ht/~retropikzel/test-srfi-253/>>
>
>
> Would you please try the official repository?
>
> https://github.com/scheme-requests-for-implementation/srfi-253
> <https://github.com/scheme-requests-for-implementation/srfi-253>
>
The test-srfi-253 repository clones the official repository before
running the tests. It mangles the filenames and the library name so that
implementations load it, but does not touch the code any other way.
Running:
git clone https://github.com/scheme-requests-for-implementation/srfi-253.git
cd srfi-253
guile -L . -L ./srfi test.scm
Gives as output:
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/retropikzel/Projects/tmp/srfi-253/test.scm
;;; WARNING: compilation of
/home/retropikzel/Projects/tmp/srfi-253/test.scm failed:
;;; no code for module (srfi srfi-253)
Backtrace:
6 (primitive-load "/home/retropikzel/Projects/tmp/srfi-25…")
In ice-9/eval.scm:
721:20 5 (primitive-eval (import (srfi 253)))
In ice-9/psyntax.scm:
1243:36 4 (expand-top-sequence (#<syntax:test.scm:26:0 (import …>) …)
1235:19 3 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
259:10 2 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/eval.scm:
293:34 1 (_ #<directory (guile-user) 7fceeb8f5c80>)
In ice-9/boot-9.scm:
3352:6 0 (resolve-interface (srfi srfi-253) #:select _ #:hide _ # …)
ice-9/boot-9.scm:3352:6: In procedure resolve-interface:
no code for module (srfi srfi-253)
How do you run it with guile?
I think the (srfi 253) as it's reserved is special in Guile and tries to
look for the SRFI in different way than normal library.
Here is how I mangle the files and library names in my test repository:
git clone
https://github.com/scheme-requests-for-implementation/srfi-253.git
cp -r srfi-253/srfi .
sed -i 's/(srfi 253)/(test-srfi srfi-253)/' srfi/253.sld
cp srfi/253.sld srfi/srfi-253.scm
cp srfi/253.sld srfi/srfi-253.sld
rm -rf test-srfi
mv srfi test-srfi
And then guile loads the library. Running the test.scm (with "guile -L .
srfi-test.scm) then from the SRFI repository gives me this output:
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/retropikzel/Projects/test-srfi-253/srfi-test.scm
;;; WARNING: compilation of
/home/retropikzel/Projects/test-srfi-253/srfi-test.scm failed:
;;; Syntax error:
;;; unknown location: unexpected syntax in form ()
%%%% Starting test check-arg (Writing full log to "check-arg.log")
srfi-test.scm:30: FAIL
srfi-test.scm:31: FAIL
srfi-test.scm:32: FAIL
srfi-test.scm:33: FAIL
srfi-test.scm:34: FAIL
srfi-test.scm:35: FAIL
srfi-test.scm:36: FAIL
srfi-test.scm:37: FAIL
srfi-test.scm:38: FAIL
srfi-test.scm:39: FAIL
srfi-test.scm:40: FAIL
srfi-test.scm:41: FAIL
srfi-test.scm:42: FAIL
srfi-test.scm:43: FAIL
srfi-test.scm:44: FAIL
srfi-test.scm:45: FAIL
srfi-test.scm:46: FAIL
srfi-test.scm:47: FAIL
srfi-test.scm:48: FAIL
srfi-test.scm:49: FAIL
srfi-test.scm:50: FAIL
srfi-test.scm:51: FAIL
srfi-test.scm:52: FAIL
srfi-test.scm:53: FAIL
srfi-test.scm:56: FAIL
srfi-test.scm:58: FAIL
srfi-test.scm:60: FAIL
srfi-test.scm:61: FAIL
srfi-test.scm:62: FAIL
srfi-test.scm:65: FAIL
srfi-test.scm:78: FAIL
# of expected passes 5
# of unexpected failures 31
%%%% Starting test values-checked (Writing full log to
"values-checked.log")
srfi-test.scm:83: FAIL
srfi-test.scm:84: FAIL
Backtrace:
4 (primitive-load "/home/retropikzel/Projects/test-srfi-2…")
In ice-9/eval.scm:
619:8 3 (_ #(#<directory (guile-user) 7eff29e32c80> #<test-ru…>))
159:9 2 (_ #(#(#(#<directory (guile-user) 7eff29e32c80> #) #) #))
In srfi/srfi-64/testing.scm:
677:16 1 (_ _ #f)
In unknown file:
0 (real-part #f)
ERROR: In procedure real-part:
In procedure real-part: Wrong type argument in position 1: #f