[racket-dev] [plt] Push #28781: master branch updated
On Sat, May 24, 2014 at 8:02 AM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
>
>> On May 23, 2014, at 3:59 PM, Greg Hendershott <greghendershott at gmail.com> wrote:
>>
>> Feedback from a relatively naive Racket user:
>>
>> 1.
>>
>>> +External effects are exemplified by input/output (or I/O). I/O is the
>>> +action of a function such as @racket[tcp-connect], which communicates
>>> +with the operating system to send network packets outside of the
>>> +machine running Racket via the electromagnetic spectrum.
>>
>> It might be OK to omit "via the electromagnetic spectrum". Yes I'm
>> aware of RFC 1149. But still. :)
>>
>
> Yes, maybe it's too cute. I really wanted to emphasize its irreversibility.
I think emphasizing the irreversibility is a good idea, but the
document should just say that directly, instead of being cute like
this.
>> 2.
>>
>>> +In particular, if module A is shared by the phase 1 portion of modules
>>> +X and Y, then any internal effects while X is compiled are not visible
>>> +during the compilation of Y, regardless of whether X and Y are
>>> +compiled during the same Racket runtime system.
>>
>> Was "system" supposed to be "session"?
>>
>
> No. Each time you start Racket you get a NEW rts.
I think this terminology is going to confuse people. What about
"during the same execution of Racket's runtime system"?
>> 3. The practical example goes some way toward explaining why this
>> matters. But only part way (for me). Probably some real-life situation
>> motivated this. Knowing that backstory might help. (If you think that
>> tale doesn't fit and/or belong in the reference docs, maybe it would
>> make a great blog post?)
>
> Yes. One of Matthew's papers has some good examples.
In particular, "Composable and Compilable Macros", ICFP 2002, and
"Advanced Macrology and the implementation of Typed Scheme", Scheme
Workshop 2007.
Sam