Re: [racket-dev] dependencies for `racket-test` package
I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) I'm not sure about compiling tests for the purposes of dependency checking. It sounds ok, but I have a feeling that I'm forgetting some reason that we disabled compilation for tests. At Tue, 2 Jul 2013 12:20:57 -0400, Sam Tobin-Hochstadt wrote: Currently, the `racket-test` package has very few declared dependencies, but this is wrong. The checking in 'raco setup' doesn't catch this because the files aren't compiled, but at a minimum it depends on `unstable/debug` (currently a hidden part of `typed-racket-lib`) and some portions of htdp that aren't declared. This brings up (at least) 3 questions - What is it ok for `racket-test` to depend on? I'd like this set to be small, so we can test the core without needing to build everything. - Should we compile the contents of `racket-test` so that we get dependency checking? - Should parts of `racket-test` be split up? I'd like to figure this out, but I don't have answers yet. Sam _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] dependencies for `racket-test` package
I believe the reason we disabled compilation was that tests weren't constrained to depend only on the core. Some tests may use planet packages, etc. Originally, this was mostly for rackunit, which was a planet package. This suggests to me that we should (a) remove the test packages from the default distribution, and (b) re-enable compilation for them. That way the dependencies will be computed properly. It also suggests that if they aren't already included, perhaps we should add planet packages to the list of things we consider among dependencies? Carl Eastlund On Tue, Jul 2, 2013 at 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) I'm not sure about compiling tests for the purposes of dependency checking. It sounds ok, but I have a feeling that I'm forgetting some reason that we disabled compilation for tests. At Tue, 2 Jul 2013 12:20:57 -0400, Sam Tobin-Hochstadt wrote: Currently, the `racket-test` package has very few declared dependencies, but this is wrong. The checking in 'raco setup' doesn't catch this because the files aren't compiled, but at a minimum it depends on `unstable/debug` (currently a hidden part of `typed-racket-lib`) and some portions of htdp that aren't declared. This brings up (at least) 3 questions - What is it ok for `racket-test` to depend on? I'd like this set to be small, so we can test the core without needing to build everything. - Should we compile the contents of `racket-test` so that we get dependency checking? - Should parts of `racket-test` be split up? I'd like to figure this out, but I don't have answers yet. Sam _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] dependencies for `racket-test` package
On Jul 2, 2013 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) Sorry, I should have been more specific; 'tests/racket/stx.rktl' depends on htdp. I expect that the tests in that directory depend on other packages as well, such as sandbox and compiler. I'm not sure about compiling tests for the purposes of dependency checking. It sounds ok, but I have a feeling that I'm forgetting some reason that we disabled compilation for tests. At Tue, 2 Jul 2013 12:20:57 -0400, Sam Tobin-Hochstadt wrote: Currently, the `racket-test` package has very few declared dependencies, but this is wrong. The checking in 'raco setup' doesn't catch this because the files aren't compiled, but at a minimum it depends on `unstable/debug` (currently a hidden part of `typed-racket-lib`) and some portions of htdp that aren't declared. This brings up (at least) 3 questions - What is it ok for `racket-test` to depend on? I'd like this set to be small, so we can test the core without needing to build everything. - Should we compile the contents of `racket-test` so that we get dependency checking? - Should parts of `racket-test` be split up? I'd like to figure this out, but I don't have answers yet. Sam _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] dependencies for `racket-test` package
At Tue, 2 Jul 2013 12:53:02 -0400, Sam Tobin-Hochstadt wrote: On Jul 2, 2013 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) Sorry, I should have been more specific; 'tests/racket/stx.rktl' depends on htdp. I expect that the tests in that directory depend on other packages as well, such as sandbox and compiler. Depending on sandbox and compiler seems ok, while the tests that depend on htdp can be changed to use different modules. _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] snapshot builds
Here's a rough cut at a snapshot build with the new package organization: http://www.cs.utah.edu/plt/snapshots/20130702-c90365e/ While there are plenty of rough edges, enough is in place to show how I see distributions and packages working with the new organization. The snapshot page has * Racket installers with the usual stuff: DrRacket, HtDP support, etc. * Minimal Racket installers for just the core build. Each Minimal installer is configured to refer back to the snapshot site for package installations; each package that is included in the distribution is available from the snapshot site in pre-built form. (If a package is not available from the snapshot site, then a package search will continue with pkg.racket-lang.org, etc.) For example, starting with with a Minimal installation and running `raco pkg install -i --deps search-auto gui' gets you `racket/gui' in compiled form (in about 1 minute on my machine), along with the necessary native libraries, the `gracket' launcher, documentation, and so on. [Using `-u' or `-s' doesn't yet work, because the installation-wide catalog configuration is not used as the default for `-u' or `-s'. I'll fix that.] After installing `gui', then `raco pkg install -i --deps search-auto drracket' gets you DrRacket (in about 30 seconds). [Unfortunately, the `drraccket' step also deletes some documentation that was installed by the `gui' step, so I have more work to do there, too.] I image that releases will ultimately work the same way: installers will be configured to start with a catalog server that provides pre-built packages compatible with the release --- and those packages will be the responsibility of the distribution server, not pkg.racket-lang.org. The set of packages available in pre-built form need not be just the ones in a distribution. The choice of available pre-built packages is separate from the choice of packages into include in a distribution, so pre-built packages can be available and useful for a Racket installer as well as a Minimal Racket installer. I expect that our release and snapshot sites will provide pre-built versions of all ring-0 packages. [A piece that's missing: online documentation as a fall-back for installed documentation. For example, suppose you install gui, search installed documentation for WXME, go to the WXME Decoding section, find htdp on that page, and click `htdp/image'. Then, you get a link that goes back to the snapshot site (because you don't have the relevant package installed), which is as intended. But the link doesn't yet give you documentation.] I expect to make http://www.cs.utah.edu/plt/snapshots/ updated daily or so with a new snapshot (and a front page that points to the latest snapshot). Each snapshot will be available for some amount of time (a week?) to serve packages before it is removed. That's not to say that www.cs.utah.edu will be home to the main PLT-provided snapshots, but I imagine that it will be around as an option. The process is designed to make it as easy as possible set up extra snapshot sites. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] dependencies for `racket-test` package
On Tue, Jul 2, 2013 at 12:01 PM, Matthew Flatt mfl...@cs.utah.edu wrote: At Tue, 2 Jul 2013 12:53:02 -0400, Sam Tobin-Hochstadt wrote: On Jul 2, 2013 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) Sorry, I should have been more specific; 'tests/racket/stx.rktl' depends on htdp. I expect that the tests in that directory depend on other packages as well, such as sandbox and compiler. Depending on sandbox and compiler seems ok, while the tests that depend on htdp can be changed to use different modules. Or maybe, if they are actually testing htdp, move into the htdp pkg. But another issue we're forgetting here is that many of the tests are not in #lang but are load-based. Robby _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] dependencies for `racket-test` package
On Tue, Jul 2, 2013 at 6:15 PM, Robby Findler ro...@eecs.northwestern.edu wrote: On Tue, Jul 2, 2013 at 12:01 PM, Matthew Flatt mfl...@cs.utah.edu wrote: At Tue, 2 Jul 2013 12:53:02 -0400, Sam Tobin-Hochstadt wrote: On Jul 2, 2013 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote: I'm pretty sure that racket-test needs to be split up. (For the initial cut, I just put the whole tests collection there.) Sorry, I should have been more specific; 'tests/racket/stx.rktl' depends on htdp. I expect that the tests in that directory depend on other packages as well, such as sandbox and compiler. Depending on sandbox and compiler seems ok, while the tests that depend on htdp can be changed to use different modules. Or maybe, if they are actually testing htdp, move into the htdp pkg. The tests I was looking were testing the syntax system, so I've modified them. But another issue we're forgetting here is that many of the tests are not in #lang but are load-based. Right, those tests can't be compiled. There are lots of tests in `racket-test` (for, eg, json and pkg and xml) that are thankfully not load-based, so we should decide what to do with them. Sam _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [racket] [ANN] RacketCon 2013: 29 September
Since ICFP early reg has opened, I wanted to reconfirm these dates. Plus, since there are some Saturday sessions, it might be good to know more if possible about the Hacketathon on Saturday, in case anyone isn't sure what to choose? On Wed, May 8, 2013 at 3:00 PM, Doug Williams m.douglas.willi...@gmail.com wrote: Sorry I missed last year's RacketCon. It was held on the same weekend we had all the kids (and now grandkids) here in Denver for a long weekend. It also coincided with the American Beer Festival held in Denver, which is probably why the kids - especially our son and son-in-laws - wanted the reunion that weekend. I look forward to seeing everyone again. On Wed, May 8, 2013 at 9:49 AM, Asumu Takikawa as...@ccs.neu.edu wrote: RacketCon 2013 -- We are pleased to announce that (third RacketCon) will take place on September 29, 2013 at Northeastern University in Boston. This year, we plan to bring in several speakers from industry, as well as host talks from Racket developers and users. Lunch will be provided. On the Saturday (28th) before RacketCon, we plan to hold a hackathon to work on various Racket projects. Registration will open during the summer, and we will post a detailed schedule of events around the same time. The conference website is at http://con.racket-lang.org/ Asumu Takikawa and PLT _ Racket Developers list: http://lists.racket-lang.org/dev Racket Users list: http://lists.racket-lang.org/users _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #27069: master branch updated
Are there other parameters that can mess this up? case-sensitivity, numbers, etc.? Robby On Tue, Jul 2, 2013 at 3:26 PM, sa...@racket-lang.org wrote: samth has updated `master' from 4dcfe9b8b9 to 45c276b5db. http://git.racket-lang.org/plt/4dcfe9b8b9..45c276b5db =[ One Commit ]= Directory summary: 100.0% racket/lib/collects/setup/ ~~ 45c276b Sam Tobin-Hochstadt sa...@racket-lang.org 2013-07-02 16:14 : | Fix reading of config.rktd file when in strange readtable. : M racket/lib/collects/setup/dirs.rkt | 4 +++- =[ Overall Diff ]=== racket/lib/collects/setup/dirs.rkt ~~ --- OLD/racket/lib/collects/setup/dirs.rkt +++ NEW/racket/lib/collects/setup/dirs.rkt @@ -26,7 +26,9 @@ (if (file-exists? p) (call-with-input-file* p - (lambda (in) (read in))) + (lambda (in) +(parameterize ([current-readtable (make-readtable #f)]) + (read in #hash())) #hash() _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [racket] [ANN] RacketCon 2013: 29 September
I checked again and there's a page for this: https://github.com/plt/racket/wiki/RacketCon-Hackathon-2013 So I suppose I'm suggesting fleshing it out more if possible, including for example the suggested projects. On Tue, Jul 2, 2013 at 6:30 PM, Greg Hendershott greghendersh...@gmail.com wrote: Since ICFP early reg has opened, I wanted to reconfirm these dates. Plus, since there are some Saturday sessions, it might be good to know more if possible about the Hacketathon on Saturday, in case anyone isn't sure what to choose? On Wed, May 8, 2013 at 3:00 PM, Doug Williams m.douglas.willi...@gmail.com wrote: Sorry I missed last year's RacketCon. It was held on the same weekend we had all the kids (and now grandkids) here in Denver for a long weekend. It also coincided with the American Beer Festival held in Denver, which is probably why the kids - especially our son and son-in-laws - wanted the reunion that weekend. I look forward to seeing everyone again. On Wed, May 8, 2013 at 9:49 AM, Asumu Takikawa as...@ccs.neu.edu wrote: RacketCon 2013 -- We are pleased to announce that (third RacketCon) will take place on September 29, 2013 at Northeastern University in Boston. This year, we plan to bring in several speakers from industry, as well as host talks from Racket developers and users. Lunch will be provided. On the Saturday (28th) before RacketCon, we plan to hold a hackathon to work on various Racket projects. Registration will open during the summer, and we will post a detailed schedule of events around the same time. The conference website is at http://con.racket-lang.org/ Asumu Takikawa and PLT _ Racket Developers list: http://lists.racket-lang.org/dev Racket Users list: http://lists.racket-lang.org/users _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #27069: master branch updated
I'm sure there are lots of others. Furthermore, there are a bunch of other calls to `read` just in the core, let alone the rest of the distribution, that call `read` without setting parameters. Roughly all of them are bugs, and maybe security bugs. This one bit me because it's causing a test failure. Sam On Tue, Jul 2, 2013 at 6:35 PM, Robby Findler ro...@eecs.northwestern.edu wrote: Are there other parameters that can mess this up? case-sensitivity, numbers, etc.? Robby On Tue, Jul 2, 2013 at 3:26 PM, sa...@racket-lang.org wrote: samth has updated `master' from 4dcfe9b8b9 to 45c276b5db. http://git.racket-lang.org/plt/4dcfe9b8b9..45c276b5db =[ One Commit ]= Directory summary: 100.0% racket/lib/collects/setup/ ~~ 45c276b Sam Tobin-Hochstadt sa...@racket-lang.org 2013-07-02 16:14 : | Fix reading of config.rktd file when in strange readtable. : M racket/lib/collects/setup/dirs.rkt | 4 +++- =[ Overall Diff ]=== racket/lib/collects/setup/dirs.rkt ~~ --- OLD/racket/lib/collects/setup/dirs.rkt +++ NEW/racket/lib/collects/setup/dirs.rkt @@ -26,7 +26,9 @@ (if (file-exists? p) (call-with-input-file* p - (lambda (in) (read in))) + (lambda (in) +(parameterize ([current-readtable (make-readtable #f)]) + (read in #hash())) #hash() _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #27069: master branch updated
I think various `read's should probably be wrapped with `with-module-reading-parameterization', but I haven't yet looked closely. At Tue, 2 Jul 2013 18:42:57 -0400, Sam Tobin-Hochstadt wrote: I'm sure there are lots of others. Furthermore, there are a bunch of other calls to `read` just in the core, let alone the rest of the distribution, that call `read` without setting parameters. Roughly all of them are bugs, and maybe security bugs. This one bit me because it's causing a test failure. Sam On Tue, Jul 2, 2013 at 6:35 PM, Robby Findler ro...@eecs.northwestern.edu wrote: Are there other parameters that can mess this up? case-sensitivity, numbers, etc.? Robby On Tue, Jul 2, 2013 at 3:26 PM, sa...@racket-lang.org wrote: samth has updated `master' from 4dcfe9b8b9 to 45c276b5db. http://git.racket-lang.org/plt/4dcfe9b8b9..45c276b5db =[ One Commit ]= Directory summary: 100.0% racket/lib/collects/setup/ ~~ 45c276b Sam Tobin-Hochstadt sa...@racket-lang.org 2013-07-02 16:14 : | Fix reading of config.rktd file when in strange readtable. : M racket/lib/collects/setup/dirs.rkt | 4 +++- =[ Overall Diff ]=== racket/lib/collects/setup/dirs.rkt ~~ --- OLD/racket/lib/collects/setup/dirs.rkt +++ NEW/racket/lib/collects/setup/dirs.rkt @@ -26,7 +26,9 @@ (if (file-exists? p) (call-with-input-file* p - (lambda (in) (read in))) + (lambda (in) +(parameterize ([current-readtable (make-readtable #f)]) + (read in #hash())) #hash() _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] A broken contract test feature
Currently, there's one test in 'contract-test.rktl' that fails. The problem is that the test expects 'contract-test.rktl' to be in the main collects directory, but it isn't -- it's in the `racket-test` package. What we want is to have it detect that it's in a package, but doing that has two problems. First, the relevant function is in `setup/private/setup-relative`, but should probably be exported publicly. Second, it can't be used, because it uses the package system (of course) but the package system uses contracts in its implementation. For this reason, I've disabled the test for the moment, so that the core racket tests complete successfully [1]. Unfortunately, this is a really nice, if small, feature of the contract system. Any suggestions for how we can fix this? Sam [1] Why I care in will be clear in a subsequent email. _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Using Travis CI for Racket
I've just committed support for building Racket automatically on the Travis continuous integration service. See https://travis-ci.org/samth/racket/ for the current build state. This doesn't track the actual `plt/racket` repository yet [1], but once it does, it will do the following: - Build the core of Racket on every push (comparable to the Minimal Racket snapshot) - Run the tests relevant to that core. That's it -- this is a free service, and you can't take too much of their time. This isn't a replacement for DrDr, which runs _very_ comprehensive tests. But it provides very fast turnaround, multiple compilers, and eventually OS X and Windows builds. Initially, no one will get email -- let me know if you want to be emailed about build results. Currently, it runs tests for the following: - everything in `tests/racket/` - `json` - `xml` Unfortunately, that `pkg` tests seem to break right now. Let me know if there's something else that should be run to test that Minimal Racket is working. Sam [1] That should happen once Eli is back to flip the relevant configuration switch. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] A broken contract test feature
I looked into this too and didn't come up with a good solution. It would be nice if there were a way to write the here's a path, please tell me which part to replace with pkg/something without too many dependencies, but I didn't try to see if that would be feasible. Meanwhile, I agree that just disabling that test is probably the way to go. Robby On Tue, Jul 2, 2013 at 5:57 PM, Sam Tobin-Hochstadt sa...@ccs.neu.eduwrote: Currently, there's one test in 'contract-test.rktl' that fails. The problem is that the test expects 'contract-test.rktl' to be in the main collects directory, but it isn't -- it's in the `racket-test` package. What we want is to have it detect that it's in a package, but doing that has two problems. First, the relevant function is in `setup/private/setup-relative`, but should probably be exported publicly. Second, it can't be used, because it uses the package system (of course) but the package system uses contracts in its implementation. For this reason, I've disabled the test for the moment, so that the core racket tests complete successfully [1]. Unfortunately, this is a really nice, if small, feature of the contract system. Any suggestions for how we can fix this? Sam [1] Why I care in will be clear in a subsequent email. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] A broken contract test feature
Could you simply forge the source location on the syntax object to make it look like it's from a collection? Carl Eastlund On Tue, Jul 2, 2013 at 7:10 PM, Robby Findler ro...@eecs.northwestern.eduwrote: I looked into this too and didn't come up with a good solution. It would be nice if there were a way to write the here's a path, please tell me which part to replace with pkg/something without too many dependencies, but I didn't try to see if that would be feasible. Meanwhile, I agree that just disabling that test is probably the way to go. Robby On Tue, Jul 2, 2013 at 5:57 PM, Sam Tobin-Hochstadt sa...@ccs.neu.eduwrote: Currently, there's one test in 'contract-test.rktl' that fails. The problem is that the test expects 'contract-test.rktl' to be in the main collects directory, but it isn't -- it's in the `racket-test` package. What we want is to have it detect that it's in a package, but doing that has two problems. First, the relevant function is in `setup/private/setup-relative`, but should probably be exported publicly. Second, it can't be used, because it uses the package system (of course) but the package system uses contracts in its implementation. For this reason, I've disabled the test for the moment, so that the core racket tests complete successfully [1]. Unfortunately, this is a really nice, if small, feature of the contract system. Any suggestions for how we can fix this? Sam [1] Why I care in will be clear in a subsequent email. _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] A broken contract test feature
Oh, that's a good idea! I'll do that (later). Stupid me for not seeing that. It would be great to get pkg/x into error messages at some point, but I shouldn't have confused these two. Thanks, Robby On Tue, Jul 2, 2013 at 6:53 PM, Carl Eastlund c...@ccs.neu.edu wrote: Could you simply forge the source location on the syntax object to make it look like it's from a collection? Carl Eastlund On Tue, Jul 2, 2013 at 7:10 PM, Robby Findler ro...@eecs.northwestern.edu wrote: I looked into this too and didn't come up with a good solution. It would be nice if there were a way to write the here's a path, please tell me which part to replace with pkg/something without too many dependencies, but I didn't try to see if that would be feasible. Meanwhile, I agree that just disabling that test is probably the way to go. Robby On Tue, Jul 2, 2013 at 5:57 PM, Sam Tobin-Hochstadt sa...@ccs.neu.eduwrote: Currently, there's one test in 'contract-test.rktl' that fails. The problem is that the test expects 'contract-test.rktl' to be in the main collects directory, but it isn't -- it's in the `racket-test` package. What we want is to have it detect that it's in a package, but doing that has two problems. First, the relevant function is in `setup/private/setup-relative`, but should probably be exported publicly. Second, it can't be used, because it uses the package system (of course) but the package system uses contracts in its implementation. For this reason, I've disabled the test for the moment, so that the core racket tests complete successfully [1]. Unfortunately, this is a really nice, if small, feature of the contract system. Any suggestions for how we can fix this? Sam [1] Why I care in will be clear in a subsequent email. _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev