[racket-dev] Release Announcement for v5.1.2
The hopefully-final release announcement sketch is below. -- * The download page includes 64-bit installers for Mac OS X, Windows, and two Debian flavors. * Racket now includes a new `racket/place' library to support parallelism, complementing `racket/future'. Racket's parallel build process is now based on places instead of multiple OS processes. Places support share-nothing parallelism and message-passing communication. Compared to futures, places are heavyweight, but they have a simpler performance model. * The syntax-certificate system has been replaced by a syntax-taint system. Both certificates and taints were designed to protect otherwise inaccessible bindings from abuse when they appear in macro expansions. Taints are simpler and lighter, and the switch closes known holes in the certificate system. Macros that are not implemented with `syntax-rules' or `define-syntax-rule', however, must explicitly use `syntax-protect' to protect their expansions from abuse. * The `net/url' library supports HTTPS connections, but beware that by default all sites are accepted (equivalent to ignoring a browser's warnings about untrusted certificates). * The `for' forms now support an `#:unless' clause, and a nonnegative integer can be used as a sequence. The new `compose1' function creates single-valued composition functions. The `racket/function' library now provides `identity', `thunk', and `thunk*'. * Error messages in the student languages use a simplified vocabulary and consistent phrasings. If you maintain curriculum material or teachpacks then please consider updating. See the Error Message Composition Guidelines section in the documentation for details. * Typed Racket: almost all core Racket data structures and operations are now accessible in Typed Racket (most of this work is due to prolific contributor Eric Dobson). The performance of the typechecker has been significantly improved. * The `scriblib/bibtex' library supports BibTeX-formatted citation databases in Scribble documents. BibTeX can be tricky to parse, so please report failed entries as bug reports. * The license has been clarified: we now use LGPLv2.1 uniformly. (The license file used to specify LGPLv2, contrary to the download pages.) -- -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Tue, Aug 2, 2011 at 6:14 AM, Eli Barzilay e...@barzilay.org wrote: -- * The download page includes 64-bit installers for Mac OS X, Windows, and two Debian flavors. We should emphasize OS X Lion support here. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
Yes I agree. On Tuesday, August 2, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Tue, Aug 2, 2011 at 6:14 AM, Eli Barzilay e...@barzilay.org wrote: -- * The download page includes 64-bit installers for Mac OS X, Windows, and two Debian flavors. We should emphasize OS X Lion support here. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
An hour ago, Sam Tobin-Hochstadt wrote: On Tue, Aug 2, 2011 at 6:14 AM, Eli Barzilay e...@barzilay.org wrote: -- * The download page includes 64-bit installers for Mac OS X, Windows, and two Debian flavors. We should emphasize OS X Lion support here. I'm not sure that it makes any difference that the *installer* was built on Lion. How does this look (added Win7 for the same reason): * The download page includes 64-bit installers for Mac OS X (built on Lion), Windows (built on Windows7), and two Debian flavors. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
No, the issue is that 5.1.1 doesn't work at all on Lion, and we should emphasize that the new release does work. On Aug 2, 2011 10:01 AM, Eli Barzilay e...@barzilay.org wrote: An hour ago, Sam Tobin-Hochstadt wrote: On Tue, Aug 2, 2011 at 6:14 AM, Eli Barzilay e...@barzilay.org wrote: -- * The download page includes 64-bit installers for Mac OS X, Windows, and two Debian flavors. We should emphasize OS X Lion support here. I'm not sure that it makes any difference that the *installer* was built on Lion. How does this look (added Win7 for the same reason): * The download page includes 64-bit installers for Mac OS X (built on Lion), Windows (built on Windows7), and two Debian flavors. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
6 minutes ago, Sam Tobin-Hochstadt wrote: No, the issue is that 5.1.1 doesn't work at all on Lion, and we should emphasize that the new release does work. Suggestions? -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
At Tue, 2 Aug 2011 11:11:55 -0400, Eli Barzilay wrote: 6 minutes ago, Sam Tobin-Hochstadt wrote: No, the issue is that 5.1.1 doesn't work at all on Lion, and we should emphasize that the new release does work. Suggestions? - Racket now supports Mac OS X Lion. I don't think there's much more to say than that. Vincent _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] Release Announcement for v5.1.2
Suggested release announcement follows, with crappy descriptions that I added as an initial skeleton. Please tell me which ones need to be removed, send suggested edits including order changes, and tell me about things that are not included. * Racket now comes with places -- a different approach for parallelism. (Now used for parallel compilation of the Racket tree.) * New x86_64 builds for Windows, OS X, and two Debian flavors. * Most body contexts (function body, `cond', etc) accept a mix of definitions and expressions. * `for' and related loops have a new `#:unless' keyword as a synonym for `#:when' and a negated condition; positive integers can now be used as sequences. * `assoc' accepts an optional argument for the comparison function to be used. * A new `multi-in' require form makes it easy to require several modules that come from a single directory (or same-named files from multiple directories). * `procedure-arity-includes?' reports #f for keyword-requiring procs by default. * New `compose1' -- composes functions where the pipeline carries only single values. This is useful to avoid inadvertent bugs when I/O arities of composed functions changes. * New in `racket/function': `identity' `thunk' `thunk*' * New `ffi/winapi' module for use with Windows functions that use the Windows API (same as `stdcall' on 32 bits). * Syntax certificates are gone, instead, there is now a new syntax taints system. (Notes about migrating?) * The license has been clarified: we now use LGPLv2.1 uniformly. (The license file used to specify LGPLv2, contrary to the download pages.) * `net/url' can now be used with `https'. (Warning: by default it accepts any site, equivalent to ignoring your browser's warnings.) * New racket/contract/combinator library and some contract module reorganization (this is in 21cbd9ad) * Simplified error messages in student languages, and use colors to add visual information (see the teachpack manual for guidelines on writing teachpacks). (Is this the right place? IIRC it moved.) * New `scriblib/bibtex' that can read bibliographic databases in bibtex format. * Sam, Vincent: TR news? (Many new types from Eric Dobson? Optimizer logs?) * Matthias: 2/HtDP news? -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Mon, Aug 1, 2011 at 11:48 AM, Eli Barzilay e...@barzilay.org wrote: * Simplified error messages in student languages, and use colors to add visual information (see the teachpack manual for guidelines on writing teachpacks). (Is this the right place? IIRC it moved.) I don't believe the colors are implemented in the tree yet. * Sam, Vincent: TR news? (Many new types from Eric Dobson? Optimizer logs?) Almost all core Racket data structures and operations now work with Typed Racket (most of this work is due to prolific contributor Eric Dobson). -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Mon, Aug 1, 2011 at 11:48 AM, Eli Barzilay e...@barzilay.org wrote: * Simplified error messages in student languages, and use colors to add visual information (see the teachpack manual for guidelines on writing teachpacks). (Is this the right place? IIRC it moved.) * The error messages in the student languages now use a smaller vocabulary base, and use a more consistent phrasing across messages. Please update the error messages of your teachpacks and curriculum material to match. See the 'Error Message Composition Guidelines' in the help desk. use colors to add visual information This is not implemented yet. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
At Mon, 1 Aug 2011 11:57:06 -0400, Sam Tobin-Hochstadt wrote: * Sam, Vincent: TR news? (Many new types from Eric Dobson? Optimizer logs?) Almost all core Racket data structures and operations now work with Typed Racket (most of this work is due to prolific contributor Eric Dobson). I'd add: - The performance of the Typed Racket typechecker has been significantly improved. - Typed Racket now optimizes at the REPL and inside typed regions. - Typed Racket now provides a command-line static performance debugging tool. A DrRacket-based graphical version will be available in the next release. Unrelated to TR: - A high-level interface to Racket's logging facilities is now available in `unstable/logging'. Vincent _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Mon, Aug 1, 2011 at 1:10 PM, Eli Barzilay e...@barzilay.org wrote: About a minute ago, Vincent St-Amour wrote: - Typed Racket now optimizes at the REPL and inside typed regions. This sounds too uninteresting for most users. Have we run out of space for release notes? This certainly isn't as important as places, but I think we should err on the side of more rather than less in the release notes. - Typed Racket now provides a command-line static performance debugging tool. It is? In any case, I'd prefer announcing it when the whole thing is ready, ... Typed Racket does, in the release, provide exactly that. Should it not be announced because it will get better in the future? A DrRacket-based graphical version will be available in the next release. ... and avoid pre-announcements for future features. The reason that we wanted to include this is that Vincent demo'd this feature at RacketCon; the sentence clarifies for anyone who saw or heard about this when it will be available, and that it isn't the version of the feature provided in 5.1.2. Unrelated to TR: - A high-level interface to Racket's logging facilities is now available in `unstable/logging'. So far there were no announcements about anything in `unstable', and I like to keep it out of the very public announcements. (Unrelated to posting about it privately as a process to consider moving things out.) This is something that lots of people have asked for, and feedback from them on the interface would be useful while it's still in development. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
Correct, no colors. On Mon, Aug 1, 2011 at 11:57 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 11:48 AM, Eli Barzilay e...@barzilay.org wrote: * Simplified error messages in student languages, and use colors to add visual information (see the teachpack manual for guidelines on writing teachpacks). (Is this the right place? IIRC it moved.) I don't believe the colors are implemented in the tree yet. * Sam, Vincent: TR news? (Many new types from Eric Dobson? Optimizer logs?) Almost all core Racket data structures and operations now work with Typed Racket (most of this work is due to prolific contributor Eric Dobson). -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Mon, Aug 1, 2011 at 1:52 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Monday, August 1, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 1:10 PM, Eli Barzilay e...@barzilay.org wrote: About a minute ago, Vincent St-Amour wrote: - Typed Racket now optimizes at the REPL and inside typed regions. This sounds too uninteresting for most users. Have we run out of space for release notes? This certainly isn't as important as places, but I think we should err on the side of more rather than less in the release notes. This doesn't make any sense to me so I expect people who read release notes will be even more confused. Then we should clarify. Does the following help? The Typed Racket optimizer now applies to typed programs entered at the REPL and inside of typed regions created by `with-type', not just to modules written in the `typed/*' family of languages. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
Ah. That does help. And seems Borderline for the release notes. Robby On Monday, August 1, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 1:52 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Monday, August 1, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 1:10 PM, Eli Barzilay e...@barzilay.org wrote: About a minute ago, Vincent St-Amour wrote: - Typed Racket now optimizes at the REPL and inside typed regions. This sounds too uninteresting for most users. Have we run out of space for release notes? This certainly isn't as important as places, but I think we should err on the side of more rather than less in the release notes. This doesn't make any sense to me so I expect people who read release notes will be even more confused. Then we should clarify. Does the following help? The Typed Racket optimizer now applies to typed programs entered at the REPL and inside of typed regions created by `with-type', not just to modules written in the `typed/*' family of languages. -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
15 minutes ago, Robby Findler wrote: Ah. That does help. And seems Borderline for the release notes. Actually, I thought that this was always part of the optimizer. In any case, I think that it's borderline because REPL optimizations are probably not something that people would be aware of and `with-type' sounds too specific to be broadly applicable. (And BTW, there *is* limited space for release notes -- otherwise these discussions would never happen.) On Monday, August 1, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 1:52 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Monday, August 1, 2011, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Mon, Aug 1, 2011 at 1:10 PM, Eli Barzilay e...@barzilay.org wrote: About a minute ago, Vincent St-Amour wrote: - Typed Racket now optimizes at the REPL and inside typed regions. This sounds too uninteresting for most users. Have we run out of space for release notes? This certainly isn't as important as places, but I think we should err on the side of more rather than less in the release notes. This doesn't make any sense to me so I expect people who read release notes will be even more confused. Then we should clarify. Does the following help? The Typed Racket optimizer now applies to typed programs entered at the REPL and inside of typed regions created by `with-type', not just to modules written in the `typed/*' family of languages. -- sam th sa...@ccs.neu.edu -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
On Mon, Aug 1, 2011 at 2:50 PM, Eli Barzilay e...@barzilay.org wrote: `with-type' sounds too specific to be broadly applicable. `with-type' allows embedding typed regions inside arbitrary other blocks of untyped code -- it's certainly generally applicable. (And BTW, there *is* limited space for release notes -- otherwise these discussions would never happen.) There's certainly limited space for the most prominent elements of the release notes. But I think the right solution there is to pick some small number of items (say, 5) that are most significant, and highlight them. Then much more can be included below that, and finally some information about minor changes (fixed bugs, for example). The git release notes are an example of this style: http://kernel.org/pub/software/scm/git/docs/RelNotes-1.7.0.txt -- sam th sa...@ccs.neu.edu _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
Some initial drafts, maybe too long: * The download page includes distributions for 64-bit Windows, Mac OS X, and two Debian flavors. * Racket now includes a new `racket/place' library to support parallelism as a complement the existing `racket/future' library. Racket's parallel build process is now based on places instead of multiple OS processes. To a first approximation, places support share-nothing parallelism and message-passing communication. Places are heavyweight compared to futures, but they have a simpler performance model compared to the best-effort parallelism of futures. * The syntax-certificate system has been replaced by a syntax-taint system. Both certificates and taints were designed to protect otherwise inaccessible bindings from abuse when they appear in macro expansions. Taints are simpler and impose less overhead on expansion and bytecode marshaling. The switch to taints also closes the certificate system's known holes. Macros that are not implemented with `syntax-rules' or `define-syntax-rule', however, must explicitly use `syntax-protect' to protect their expansions from abuse. * The `net/url' supports HTTPS connections, but beware that HTTPS handling accepts any site by default (which is equivalent to ignoring a browser's warnings about untrusted certificates). * Most body contexts (function body, `cond', etc) accept a mix of definitions and expressions. Wasn't that in v5.0.1? Or did you have in mind the recent changes that are not in v5.1.2? Or something else? The others that might be mine seem too minor to include in an announcement. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
At Mon, 1 Aug 2011 15:03:21 -0400, Sam Tobin-Hochstadt wrote: There's certainly limited space for the most prominent elements of the release notes. But I think the right solution there is to pick some small number of items (say, 5) that are most significant, and highlight them. Then much more can be included below that, and finally some information about minor changes (fixed bugs, for example). The git release notes are an example of this style: http://kernel.org/pub/software/scm/git/docs/RelNotes-1.7.0.txt My preference is that *release notes* in the docs/distribution have no limit, but a *release announcement* includes highlights only. Few parts of our distribution currently have release notes: http://docs.racket-lang.org/release/index.html In some past cases, such as web server changes, I wished that we had more release notes. Maybe we need more sections on that page, or maybe the notes should be reorganized into one big set of notes. _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
15 minutes ago, Matthew Flatt wrote: Some initial drafts, maybe too long: [...] * Most body contexts (function body, `cond', etc) accept a mix of definitions and expressions. Wasn't that in v5.0.1? Or did you have in mind the recent changes that are not in v5.1.2? Or something else? [Ugh... Those changes confused me. It was in 5.0.2, and I only looked at 5.1.1 for the past item...] The others that might be mine seem too minor to include in an announcement. So items that are dropped: * `assoc' accepts an optional argument for the comparison function to be used. * `procedure-arity-includes?' reports #f for keyword-requiring procs by default. * New `ffi/winapi' module for use with Windows functions that use the Windows API (same as `stdcall' on 32 bits). Anything else? I'll also see if I can get things into more coherent shape. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2
15 minutes ago, Matthew Flatt wrote: My preference is that *release notes* in the docs/distribution have no limit, but a *release announcement* includes highlights only. Few parts of our distribution currently have release notes: http://docs.racket-lang.org/release/index.html In some past cases, such as web server changes, I wished that we had more release notes. Maybe we need more sections on that page, or maybe the notes should be reorganized into one big set of notes. Actually I forgot to mention this, but TR is big enough that it's looking odd that it doesn't have those notes. It was especially relevant when things changed around the meaning of Number. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
[racket-dev] Release Announcement for v5.1.2, second round
The release announcement sketch that I have so far is below. Please mail me new items and/or edits. Robby and Jay -- two pending items: ? New racket/contract/combinator library and some contract module reorganization (this is in 21cbd9ad) ? New `scriblib/bibtex' that can read bibliographic databases in bibtex format. -- * The download page includes 64-bit installers for Windows, Mac OS X, and two Debian flavors. * Racket now includes a new `racket/place' library to support parallelism, complementing `racket/future'. Racket's parallel build process is now based on places instead of multiple OS processes. Places support share-nothing parallelism and message-passing communication. Compared to futures, places are heavyweight, but they have a simpler performance model. * The syntax-certificate system has been replaced by a syntax-taint system. Both certificates and taints were designed to protect otherwise inaccessible bindings from abuse when they appear in macro expansions. Taints are simpler and lighter, and the switch closes known holes in the certificate system. Macros that are not implemented with `syntax-rules' or `define-syntax-rule', however, must explicitly use `syntax-protect' to protect their expansions from abuse. * The `net/url' library supports HTTPS connections, but beware that by default all sites are accepted (equivalent to ignoring a browser's warnings about untrusted certificates). * The `for' forms now support an `#:unless' clause, and a nonnegative integer can be used as a sequence. The new `compose1' function creates single-valued composition functions. The `racket/function' library now provides `identity', `thunk', and `thunk*'. * Error messages in the student languages use a smaller vocabulary and consistent phrasings. If you maintain curriculum material or teachpacks then please consider updating. See the Error Message Composition Guidelines section in the documentation for details. * Typed Racket: almost all core Racket data structures and operations are now accessible in Typed Racket (most of this work is due to prolific contributor Eric Dobson). The performance of the typechecker has been significantly improved. * The license has been clarified: we now use LGPLv2.1 uniformly. (The license file used to specify LGPLv2, contrary to the download pages.) -- -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev
Re: [racket-dev] Release Announcement for v5.1.2, second round
No, not mine. (the bibtex lib sounds worth including to me) On Monday, August 1, 2011, Eli Barzilay e...@barzilay.org wrote: The release announcement sketch that I have so far is below. Please mail me new items and/or edits. Robby and Jay -- two pending items: ? New racket/contract/combinator library and some contract module reorganization (this is in 21cbd9ad) ? New `scriblib/bibtex' that can read bibliographic databases in bibtex format. -- * The download page includes 64-bit installers for Windows, Mac OS X, and two Debian flavors. * Racket now includes a new `racket/place' library to support parallelism, complementing `racket/future'. Racket's parallel build process is now based on places instead of multiple OS processes. Places support share-nothing parallelism and message-passing communication. Compared to futures, places are heavyweight, but they have a simpler performance model. * The syntax-certificate system has been replaced by a syntax-taint system. Both certificates and taints were designed to protect otherwise inaccessible bindings from abuse when they appear in macro expansions. Taints are simpler and lighter, and the switch closes known holes in the certificate system. Macros that are not implemented with `syntax-rules' or `define-syntax-rule', however, must explicitly use `syntax-protect' to protect their expansions from abuse. * The `net/url' library supports HTTPS connections, but beware that by default all sites are accepted (equivalent to ignoring a browser's warnings about untrusted certificates). * The `for' forms now support an `#:unless' clause, and a nonnegative integer can be used as a sequence. The new `compose1' function creates single-valued composition functions. The `racket/function' library now provides `identity', `thunk', and `thunk*'. * Error messages in the student languages use a smaller vocabulary and consistent phrasings. If you maintain curriculum material or teachpacks then please consider updating. See the Error Message Composition Guidelines section in the documentation for details. * Typed Racket: almost all core Racket data structures and operations are now accessible in Typed Racket (most of this work is due to prolific contributor Eric Dobson). The performance of the typechecker has been significantly improved. * The license has been clarified: we now use LGPLv2.1 uniformly. (The license file used to specify LGPLv2, contrary to the download pages.) -- -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev _ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev