On Sat, May 24, 2014 at 8:02 AM, Jay McCarthy <jay.mccar...@gmail.com> wrote: > >> On May 23, 2014, at 3:59 PM, Greg Hendershott <greghendersh...@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 _________________________ Racket Developers list: http://lists.racket-lang.org/dev