Opened 9 years ago
Closed 9 years ago
#1197 closed defect (fixed)
Egg: Schelog Error: unbound variable: %set-of
Reported by: | bstrecker | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | someday |
Component: | extensions | Version: | 4.9.x |
Keywords: | Schelog | Cc: | |
Estimated difficulty: |
Description
Details:
After installing the Schelog egg, I began working through the documentation on the Schelog documentation site (http://ds26gte.github.io/schelog/index-Z-H-9.html). When I got to the %set-of descriptions, I found that my code choked on %set-of, though it works with %bag-of.
Code (loaded via emacs c-c, c-l, Chicken 4):
(require-extension schelog)
(define %knows
(%rel ()
[('Odysseus 'TeX)]
[('Odysseus 'Scheme)]
[('Odysseus 'Prolog)]
[('Odysseus 'Penelope)]
[('Penelope 'TeX)]
[('Penelope 'Prolog)]
[('Penelope 'Odysseus)]
[('Telemachus 'TeX)]
[('Telemachus 'calculus)]))
(define %computer-literate
(%rel (person)
[(person)
(%knows person 'TeX)
(%knows person 'Scheme)]
[(person)
(%knows person 'TeX)
(%knows person 'Prolog)]))
Program run (copied from REPL):
#;4> (%which (list) (%let (x) (%bag-of x (%computer-literate x) list)))
((list (Odysseus Odysseus Penelope)))
#;5> (%which (list) (%let (x) (%set-of x (%computer-literate x) list)))
Error: unbound variable: %set-of
Call history:
<syntax> (map370 (lambda363 (nam371 val372) (list373 nam371 (schelog:deref*368 val372))) (quote374 (list)) (l......
<syntax> (lambda363 (nam371 val372) (list373 nam371 (schelog:deref*368 val372)))
<syntax> (##core#lambda (nam371 val372) (list373 nam371 (schelog:deref*368 val372)))
<syntax> (##core#begin (list373 nam371 (schelog:deref*368 val372)))
<syntax> (list373 nam371 (schelog:deref*368 val372))
<syntax> (schelog:deref*368 val372)
<syntax> (quote374 (list))
<syntax> (##core#quote (list))
<syntax> (list373 list)
<syntax> (_376)
<eval> (_376)
<eval> (call-with-current-continuation362 (lambda363 (qk364) (set!365 schelog:*more-k*366 qk364) (set!3......
<eval> ((schelog:deref*368 (%let (x) (%set-of x (%computer-literate x) list))) (lambda363 (d369) (set!365 s......
<eval> (schelog:deref*368 (%let (x) (%set-of x (%computer-literate x) list)))
<eval> (_380)
<eval> (%set-of x (%computer-literate x) list) <--
#;5>
However, when I looked at the source code for the egg (on the web at http://code.call-cc.org/svn/chicken-eggs/release/4/schelog/trunk/schelog.scm) there was a %set-of define next to the %bag-of define.
<snip code above>
(define %bag-of (schelog:make-bag-of cons))
(define %set-of (schelog:make-bag-of schelog:set-cons))
<snip code below>
I have not examined the local copy of the egg's source code on my system.
Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
bootstrapped 2014-06-07
Schelog installed via chicken-install on 7/3/15. Thought to be 3.4
Attachments (1)
Change History (4)
comment:1 Changed 9 years ago by
Changed 9 years ago by
Attachment: | schelog-1197.patch added |
---|
Add %set-of to exported identifiers in module declaration
comment:2 Changed 9 years ago by
I don't know anything about Schelog, but the definition of %more
looks a bit iffy in that it sets schelog:*more-fk*
at various points to a procedure, #f
or one of the symbols forward
or more
. In any case, that's not why %set-of
isn't working; it is simply omitted from the module declaration in schelog-module.scm
. This is probably just an oversight. The attached patch fixes it.
comment:3 Changed 9 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thanks, Peter. Patch is applied and tagged 3.5
THe use of schelog:*more-fk
certainly looks strange, but I never really understood the code - I just ported it.
During install of Schelog egg, a probably unrelated warning is generated regarding the (%more) function. (%more) operates as expected, however.
Transcript:
brian@linuxDev:~$ sudo chicken-install schelog
[sudo] password for brian:
retrieving ...
connecting to host "chicken.kitten-technologies.co.uk", port 80 ...
requesting "/henrietta.cgi?name=schelog&mode=default" ...
reading response ...
HTTP/1.1 200 OK
Date: Sat, 04 Jul 2015 13:45:54 GMT
Server: Apache/2.2.29 (Unix) DAV/2 SVN/1.8.10 PHP/5.4.32 mod_fastcgi/2.4.6
Connection: close
Transfer-Encoding: chunked
Content-Type: text/plain
reading chunks ..
reading files ...
checking platform for `schelog' ...
checking dependencies for `schelog' ...
install order:
("schelog")
installing schelog:3.4 ...
changing current directory to /tmp/tempee06.26177/schelog
Warning: in local unknown procedure,
brian@linuxDev:~$