[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #909: strange behaviour with define-record and mo
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #909: strange behaviour with define-record and modules |
Date: |
Mon, 27 Aug 2012 18:41:02 -0000 |
#909: strange behaviour with define-record and modules
-----------------------------+----------------------------------------------
Reporter: megane | Owner:
Type: defect | Status: closed
Priority: major | Milestone: 4.8.0
Component: core libraries | Version: 4.8.x
Resolution: worksforme | Keywords: modules
-----------------------------+----------------------------------------------
Changes (by sjamaan):
* status: new => closed
* resolution: => worksforme
Comment:
I think this is normal, expected behavior. It's functionally equivalent
to:
{{{
#!scm
(module m1 (blabla)
(import chicken scheme)
(define blabla 1))
(module m2 (blabla)
(import chicken scheme m1)
(define blabla 2))
;;; This will show you: Warning: redefinition of imported value binding:
blabla
(import m1)
(print blabla)
;; 2 is printed
}}}
Your test example can be "fixed" by either omitting or renaming {{{make-
foo}}} from the import specifier for {{{m1}}}. But note that this isn't
currently going to work, because record type names must be globally unique
(this is arguably a bug which we've tried to fix but the initial fix broke
more than it fixed, so we had to revert it)
If you disagree this is normal, please re-open this ticket.
--
Ticket URL: <http://bugs.call-cc.org/ticket/909#comment:1>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.