chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #1294: define-record-printer messes with internal


From: Chicken Trac
Subject: Re: [Chicken-janitors] #1294: define-record-printer messes with internal defines
Date: Fri, 07 Apr 2017 17:57:42 -0000

#1294: define-record-printer messes with internal defines
---------------------------------+--------------------
            Reporter:  sjamaan   |      Owner:
                Type:  defect    |     Status:  new
            Priority:  major     |  Milestone:  5.1
           Component:  expander  |    Version:  4.11.0
          Resolution:            |   Keywords:
Estimated difficulty:  hard      |
---------------------------------+--------------------
Changes (by sjamaan):

 * milestone:  5.0 => 5.1


Comment:

 The reason this does not work is that each statement after a define
 ensures a following set of defines will start a new "letrec" block. Of
 course, that means forward references in earlier letrec blocks can't "see"
 definitions of inner letrec blocks.  I'm not sure it's worthwhile or even
 desirable to make this work differently.

 On the other hand, I can imagine a system that works more like the
 toplevel, where each define simply causes the definition to be made, so
 that any later define can refer back to it (but, that means you could get
 undefined variable errors at runtime, I think)

 The code that deals with this stuff is extremely hairy, though, and the
 benefit is marginal (and could break other code, too!). Maybe a
 documentation change is warranted instead of trying to fix this.

--
Ticket URL: <https://bugs.call-cc.org/ticket/1294#comment:6>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]