[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Chicken-janitors] #1294: define-record-printer messes with internal defines,
Chicken Trac <=