chicken-janitors
[Top][All Lists]
Advanced

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

Re: [Chicken-janitors] #1635: Include multiple times in a row 'interrupt


From: Chicken Trac
Subject: Re: [Chicken-janitors] #1635: Include multiple times in a row 'interrupts' definitions
Date: Wed, 24 Jul 2019 07:23:19 -0000

#1635: Include multiple times in a row 'interrupts' definitions
---------------------------------+---------------------
            Reporter:  dieggsy   |      Owner:
                Type:  defect    |     Status:  new
            Priority:  minor     |  Milestone:  someday
           Component:  expander  |    Version:  5.1.0
          Resolution:            |   Keywords:
Estimated difficulty:  hard      |
---------------------------------+---------------------
Changes (by sjamaan):

 * difficulty:   => hard
 * component:  unknown => expander


Comment:

 This won't be easy. The issue is that when `##sys#canonicalize-body`
 encounters a `##core#include`, it will hand back to the compiler and
 passes the remaining body along with it. The compiler then calls
 `canonicalize-body/ln` (which is basically `##sys#canonicalize-body`) with
 the forms from the file and the remaining ones appended.  This extra call
 is unaware of what came before and starts a new `letrec`.

 See 0be9d247a57da082bb2126b2e91958ea191c5513, which made this work at all
 (before, the include would be processed at toplevel, which is strictly
 much worse than what we have now).

 Changing this probably requires restructuring how the canonicalization
 works (again). Maybe we'd have to introduce a new compiler form that
 allows canonicalize-body to be run in two steps, or something like it.

--
Ticket URL: <https://bugs.call-cc.org/ticket/1635#comment:2>
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]