GNU bug report logs -
#47232
GOOPS cannot use generic as accessor in 3.0.x
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi!
Trying to upgrade 8sync to latest Guile, I found the problem that a
generic function cannot be used as as accessor, and then be
exported/imported. Or something. At least, the problem is triggered
when compiling (or using) a module that does that.
See the attached foo.scm, bar.scm and `doit', when running it in the
Guile source tree I get
--8<---------------cut here---------------start------------->8---
$ ./doit
++ export GUILE_LOAD_COMPILED_PATH=/home/janneke/src/8sync/wip
++ GUILE_LOAD_COMPILED_PATH=/home/janneke/src/8sync/wip
++ ./pre-inst-env guild compile -L . -o foo.go foo.scm
wrote `foo.go'
++ ./pre-inst-env guild compile -L . -o bar.go bar.scm
Backtrace:
In ice-9/eval.scm:
293:34 19 (_ #<module (#{ g79}#) 7ff689b8dd20>)
In ice-9/boot-9.scm:
3380:4 18 (define-module* _ #:filename _ #:pure _ #:version _ #:imports _ #:exports _ #:replacements _ # _ # …)
2565:24 17 (call-with-deferred-observers #<procedure 7ff689b948c0 at ice-9/boot-9.scm:3381:5 ()>)
3393:24 16 (_)
222:17 15 (map1 (((foo))))
3297:17 14 (resolve-interface (foo) #:select _ #:hide _ #:prefix _ #:renamer _ #:version _)
In ice-9/threads.scm:
390:8 13 (_ _)
In ice-9/boot-9.scm:
3223:13 12 (_)
In ice-9/threads.scm:
390:8 11 (_ _)
In ice-9/boot-9.scm:
3507:20 10 (_)
2806:4 9 (save-module-excursion #<procedure 7ff68aeece10 at ice-9/boot-9.scm:3508:21 ()>)
3527:26 8 (_)
In unknown file:
7 (primitive-load-path "foo" #<procedure 7ff689bb6140 at ice-9/boot-9.scm:3514:37 ()>)
In foo.scm:
12:0 6 (_)
In oop/goops.scm:
2852:4 5 (_ _ . _)
2782:2 4 (_ #<<class> <foo> 7ff688c64f80> _)
In srfi/srfi-1.scm:
634:9 3 (for-each #<procedure 7ff688c5c0c0 at oop/goops.scm:2579:3 (slot)> (#<<slot> foo 7ff688c64e80>))
In oop/goops.scm:
2590:22 2 (_ #<<slot> foo 7ff688c64e80>)
In unknown file:
1 (setter #<<generic> .foo (1)>)
In ice-9/boot-9.scm:
1669:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure setter: Wrong type argument in position 1: #<<generic> .foo (1)>
--8<---------------cut here---------------end--------------->8---
I found similar behaviour in guile-3.0.2, guile-2.2.7 is fine.
Greetings,
Janneke
[doit (application/octet-stream, attachment)]
[foo.scm (application/octet-stream, attachment)]
[bar.scm (application/octet-stream, attachment)]
[Message part 5 (text/plain, inline)]
--
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
This bug report was last modified 4 years and 88 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.