[racket-dev] should saving to a new location retrigger automatic compilation?
A student of mine just had a spurious automatic compilation error that occurred when he a) wrote a program in an unsaved buffer with a relative ‘require’. (automatic compilation shows error) b) saved it to a new location (no keystroke in buffer, so automatic compilation still shows error) c) raised his hand and told me about the problem. I told him to hit the space bar, and the problem went away. I conjecture, though, that it would be appropriate to trigger automatic compilation when a buffer is saved to a new location. Does this make sense? John -- You received this message because you are subscribed to the Google Groups Racket Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+unsubscr...@googlegroups.com. To post to this group, send email to racket-...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/21A7CC76-54F9-48A5-8205-9310EDC02DA7%40brinckerhoff.org. For more options, visit https://groups.google.com/d/optout.
[racket-dev] Testing, please ignore
Wait, you didn't ignore it! Okay, this should be the last message that goes through on old dev. We'll see if I'm so cheerful in five minutes. _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Switching groups tomorrow
The plan is to throw the switch tomorrow, to switch from our existing mailing list to the new google group. If you haven't yet subscribed to the new one, you can do it now at https://groups.google.com/forum/#!forum/racket-dev/join (thanks to Vincent for the refined URL). If all goes well, those that have already switched should not notice any outage; thanks to advice from Eli, it appears that the dev@racket-lang.org front door can continue to work. Thanks, Eli! Those that have not switched will ... well, you'll stop getting the developers list. I'll add batches from the existing list over time, but there's a cap on the number of adds per day, so you'll be missing parts of the stream. Cross your fingers, and thanks for your patience! John Clements _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Switching to Google Groups
Dear developers, PLT would like to get out of the mailing-list administration game. Accordingly, we’re planning to switch to Google Groups. Rather than starting with our largest list, the Racket Users list, we’ve chosen to begin with the dev list, because … well, you’re probably more tolerant, if^H^H when something goes wrong. We would like the transition to be as smooth as possible, and we can use your help with this. Specifically, Google has a daily cap on the number of e-mail addresses that can be bulk-added to a mailing list. For this reason, it would speed the transition greatly if you could take a moment to sign up for the new group yourself, using this URL: https://groups.google.com/forum/#!forum/racket-dev We plan to disable signup for the old group now, and to halt delivery of mail to the existing group address tomorrow. You can post to the new group (after signing up) by sending mail to racket-...@googlegroups.com We plan to manually add or invite the members who do not add themselves, but the daily cap will mean that these users are likely to miss one or more days of postings to this list. Naturally, those posts will be archived, as part of the group. The archive of the existing list will continue to exist, though new messages will not be added to it. Let us know if you run into problems! Many thanks, John Clements PLT _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] The repository is now split
Urg... more interesting problems. I pulled and tried to rebuild, and things went pear-shaped. 1) compilation failed because it couldn't find the 'racket' collection, but I noticed that it was referring to a nonexistent path, presumably because I had moved the root of the installation. Has that always been a bad idea? Dunno. 2) I removed the racket/src/build directory, and built again. This time it failed because it detected anomalies in my racket/etc/config.rktd: cp ../COPYING-libscheme.txt ../COPYING_LESSER.txt ../COPYING.txt /Users/clements/plt/racket/share/ /Applications/Xcode.app/Contents/Developer/usr/bin/make pkgs-catalog racket/bin/racket -U -G build/config racket/src/pkgs-catalog.rkt --link racket/share/pkgs-catalog pkgs Finding packages Cataloging package at-exp-lib Cataloging package racket-doc Cataloging package racket-lib Cataloging package plt-services Cataloging package base Cataloging package racket-test Cataloging package racket-benchmarks Cataloging package racket-index racket/bin/racket -U -G build/config racket/src/pkgs-config.rkt pkgs-catalog: config file exists, but does not have a definition of `catalogs' that starts as expected config file: racket/etc/config.rktd expected initial element: ../share/pkgs-catalog possible solution: delete the config file context...: /Users/clements/plt/racket/src/pkgs-config.rkt: [running body] make[2]: *** [pkgs-catalog] Error 1 make[1]: *** [plain-in-place] Error 2 make: *** [in-place] Error 2 3) I deleted the file, and ran again. This time, compilation finished almost instantly, and nothing was compiled (Log appears at bottom). 4) Then, I tried running make again, and it stopped even faster. 5) Then, I tried running raco setup, and I got a build with literally thousands of errors of the form standard-module-name-resolver: collection not found for module path: (submod at-exp reader) collection: at-exp in collection directories: /Users/clements/Library/Racket/development/collects /Users/clements/plt/racket/collects ... [189 additional linked and package directories] context...: show-collection-err standard-module-name-resolver /Users/clements/plt/racket/collects/compiler/cm.rkt:353:23 /Users/clements/plt/racket/collects/syntax/modcode.rkt:62:2: reader /Users/clements/plt/racket/collects/syntax/modcode.rkt:264:5: compile-one /Users/clements/plt/racket/collects/compiler/cm.rkt:315:0: compile-zo* /Users/clements/plt/racket/collects/compiler/cm.rkt:519:26 /Users/clements/plt/racket/collects/compiler/cm.rkt:511:42 /Users/clements/plt/racket/collects/compiler/cm.rkt:476:0: maybe-compile-zo /Users/clements/plt/racket/collects/compiler/cm.rkt:591:2: do-check /Users/clements/plt/racket/collects/compiler/cm.rkt:630:15 /Users/clements/plt/racket/collects/compiler/../racket/private/map.rkt:113:23: loop /Users/clements/plt/racket/collects/compiler/cm.rkt:591:2: do-check /Users/clements/plt/racket/collects/compiler/cm.rkt:630:15 /Users/clements/plt/racket/collects/compiler/../racket/private/map.rkt:113:23: loop /Users/clements/plt/racket/collects/compiler/cm.rkt:591:2: do-check... 6) at this point, I gave up and checked out a fresh copy. John pcp067879pcs:~/plt (git)-[master]- clements make if [ = ] ; \ then /Applications/Xcode.app/Contents/Developer/usr/bin/make plain-in-place PKGS=main-distribution main-distribution-test ; \ else /Applications/Xcode.app/Contents/Developer/usr/bin/make cpus-in-place CPUS= PKGS=main-distribution main-distribution-test ; fi /Applications/Xcode.app/Contents/Developer/usr/bin/make base mkdir -p build/config echo '#hash((links-search-files . ()))' build/config/config.rktd mkdir -p racket/src/build /Applications/Xcode.app/Contents/Developer/usr/bin/make racket/src/build/Makefile make[3]: `racket/src/build/Makefile' is up to date. cd racket/src/build; /Applications/Xcode.app/Contents/Developer/usr/bin/make reconfigure /Applications/Xcode.app/Contents/Developer/usr/bin/make Makefile make[4]: `Makefile' is up to date. cd racket/src/build; /Applications/Xcode.app/Contents/Developer/usr/bin/make SELF_RACKET_FLAGS=-G `cd ../../../build/config; pwd` /Applications/Xcode.app/Contents/Developer/usr/bin/make 3m cd racket; /Applications/Xcode.app/Contents/Developer/usr/bin/make 3m /Applications/Xcode.app/Contents/Developer/usr/bin/make cgc /Applications/Xcode.app/Contents/Developer/usr/bin/make common /Applications/Xcode.app/Contents/Developer/usr/bin/make g-c cd sgc; /Applications/Xcode.app/Contents/Developer/usr/bin/make ../libmzgc.a make[9]: `../libmzgc.a' is up to date. /Applications/Xcode.app/Contents/Developer/usr/bin/make foreign-stuff cd ../foreign; /Applications/Xcode.app/Contents/Developer/usr/bin/make all /Applications/Xcode.app/Contents/Developer/usr/bin/make foreign.o make[10]: `foreign.o' is up to date. /Applications/Xcode.app/Contents/Developer/usr/bin/make libffi_ON /Applications/Xcode.app/Contents/Developer/usr/bin/make
Re: [racket-dev] The repository is now split
Okay, some teething problems. First time around, it finished way too fast. The problem seemed to be that it had an error in compiling a planet package... ah, I see, there was no 'at-exp-lib' installed? Presumably this is because planet packages don't declare pkg dependencies? Anyhow, this aborted the whole compilation. I went back to my main installation, removed all planet packages, and re-ran. It was running great, and about 30% done, when I decided that hyperthreading was not getting me anything, and that I wanted to run with 4 cpus rather than 8. So I hit Ctrl-C, and re-ran 'make'. er... big mistake. The next time through, hundreds of packages failed to compile. In general, the most popular error was one about not having the at-exp collection: standard-module-name-resolver: collection not found for module path: (submod at-exp reader) collection: at-exp in collection directories: /Users/clements/Library/Racket/development/collects /Users/clements/plt2/racket/collects ... [177 additional linked and package directories] context...: show-collection-err standard-module-name-resolver /Users/clements/plt2/racket/collects/compiler/cm.rkt:353:23 /Users/clements/plt2/racket/collects/syntax/modcode.rkt:62:2: reader /Users/clements/plt2/racket/collects/syntax/modcode.rkt:264:5: compile-one /Users/clements/plt2/racket/collects/compiler/cm.rkt:315:0: compile-zo* /Users/clements/plt2/racket/collects/compiler/cm.rkt:519:26 /Users/clements/plt2/racket/collects/compiler/cm.rkt:511:42 /Users/clements/plt2/racket/collects/compiler/cm.rkt:476:0: maybe-compile-zo /Users/clements/plt2/racket/collects/compiler/cm.rkt:591:2: do-check /Users/clements/plt2/racket/collects/compiler/cm.rkt:706:4: compilation-manager-load-handler standard-module-name-resolver /Users/clements/plt2/racket/collects/compiler/cm.rkt:315:0: compile-zo* /Users/clements/plt2/racket/collects/compiler/cm.rkt:519:26 /Users/clements/plt2/racket/collects/compiler/cm.rkt:511:42 /Users/clements/plt2/racket/collects/compiler/cm.rkt:476:0: maybe-compile-zo... ... but there were some other problems, too. Like this one: raco setup: 3 making: pkgs/plot-gui-lib/plot/typed/private ffi-lib: couldn't open libintl.8.dylib (dlopen(libintl.8.dylib, 6): image not found) context...: /Users/clements/plt2/racket/share/pkgs/draw-lib/racket/draw/unsafe/glib.rkt: [running body] /Users/clements/plt2/racket/share/pkgs/draw-lib/racket/draw/unsafe/pango.rkt: [traversing imports] /Users/clements/plt2/racket/share/pkgs/draw-lib/racket/draw/private/font.rkt: [traversing imports] /Users/clements/plt2/racket/share/pkgs/draw-lib/racket/draw/private/contract.rkt: [traversing imports] /Users/clements/plt2/racket/share/pkgs/draw-lib/racket/draw.rkt: [traversing imports] /Users/clements/plt2/racket/share/pkgs/plot-lib/plot/private/common/contract.rkt: [traversing imports] /Users/clements/plt2/racket/share/pkgs/typed-racket-lib/typed-racket/tc-setup.rkt:39:0: tc-setup /Users/clements/plt2/racket/share/pkgs/typed-racket-lib/typed-racket/typed-racket.rkt:18:4 /Users/clements/plt2/racket/collects/compiler/cm.rkt:315:0: compile-zo* /Users/clements/plt2/racket/collects/compiler/cm.rkt:519:26 /Users/clements/plt2/racket/collects/compiler/cm.rkt:511:42 /Users/clements/plt2/racket/collects/compiler/cm.rkt:476:0: maybe-compile-zo /Users/clements/plt2/racket/collects/compiler/cm.rkt:591:2: do-check /Users/clements/plt2/racket/collects/compiler/cm.rkt:706:4: compilation-manager-load-handler standard-module-name-resolver /Users/clements/plt2/racket/collects/racket/require-transform.rkt:266:2: expand-import... I think I may just try a fresh checkout, sigh. All of this is probably JFYI ... I know, you shouldn't abort a make. In the past, though, we've been pretty robust in this department. John On Thu, Dec 4, 2014 at 8:32 AM, Sam Tobin-Hochstadt sa...@cs.indiana.edu wrote: On Thu Dec 04 2014 at 11:27:45 AM Matthias Felleisen matth...@ccs.neu.edu wrote: For those of you who have my level of experience with such things, here is what Sam's phrase I *highly* recommend creating a new clone of the repository, and re-running `make`. means, for your value of the name 'plt2': $ git clone git:plt plt2 $ cd plt2/ $ git submodule init $ git submodule update $ make Exactly. Note that the `git:plt` repository that Matthias uses here is an alias for `git.racket-lang.org:plt`. If you're not a committer, you'll want to use `git://git.racket-lang.org/plt.git` http://git.racket-lang.org/plt.git. Also, the submodule steps are needed on Windows and OS X, but not on Linux (which is why I forgot to mention them). Sam _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] fix for serve/servlet docs?
The serve/servlet docs state: The server files are rooted at server-root-path (which is the distribution root by default.) File paths, in addition to the htdocs directory under server-root-path may be provided with extra-files-paths. These paths are checked first, in the order they appear in the list. It wasn't clear to me what the distribution root meant in this case. I eventually would up just searching for not-found.html, and I now conjecture that distribution root is short for (collection-path web-server default-web-root) would it make sense to add this to the docs? Did I miss something? John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Nervous about all of this merging to 6.1.1 release?
Is anyone else nervous about the number of not-obviously-trivial changes we're merging to the 6.1.1 release after the test bundles are out? I for one wouldn't mind re-running my tests before the release. John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.1.1
On Thu, Oct 16, 2014 at 6:13 AM, Ryan Culpepper ry...@ccs.neu.edu wrote: Checklist items for the v6.1.1 release (using the v6.1.0.900 release candidate build) * John Clements cleme...@brinckerhoff.org - Stepper Tests done. Updates: - Stepper Updates: update HISTORY (updates should show v6.1.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) done. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] RtMidi library for Racket?
This looks really interesting… but I’m frightened by the fact that it’s C++, and worse-yet object-oriented. It looks like it might require some serious low-level chops to integrate this with our (standard) C-style ffi. Do you know of a cross-platform MIDI library that has a more standard / C-like API? John Clements On Thu, Sep 25, 2014 at 12:32 PM, Antti Karttunen antti.karttu...@gmail.com wrote: A question: Has there been any attempts or even discussion of including Gary P. Scavone's RtMidi-library ( http://www.music.mcgill.ca/~gary/rtmidi/ ) into the standard distribution of Racket? This is the furthest I could follow this trail: https://github.com/mlozanov/fluxus/blob/master/modules/fluxus-midi/SConscript but there doesn't seem to be a Windows-port, which I would need. Or does anybody have ideas for any shortcut kludge with which I could pipe MIDI-data from Racket to Windows Software Synthesizer / MIDIMapper device? I guess it's not available as a named system file in Windows, which I could just open and start writing to? I don't need this to have real-time accuracy required by professional musicians, but just enough for demoing how to produce sounds with a moderate tempo, in general educational setting. Best, Antti _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [racket] Performance. Higher-order function
On Aug 10, 2014, at 10:06 AM, Matthias Felleisen matth...@ccs.neu.edu wrote: [[ Switched mailing list ]] Being in the main repo is different from being in the distribution (and thus automatically installed). I think that OC should be there when you download the full bundle. +1, and bump. I think putting it back in the main repo is preferable to the current situation. John -- Matthias On Aug 9, 2014, at 3:36 PM, Vincent St-Amour wrote: It used to be. When we introduced the package system, it sounded like we were going to split the distribution into multiple repositories (and have the main distribution pulled from those multiple repositories). Optimization Coach is one of the few packages that did the switch. The rest never followed. It doesn't make sense to merge OC back to the main repo, assuming we still plan to split it up. In the meantime, that does mean that installing the coach has an additional barrier to entry, which is unfortunate. Vincent At Sat, 9 Aug 2014 12:50:46 -0400, Greg Hendershott wrote: Why isn't Optimization Coach one of the automatically-installed packages? Racket Users list: http://lists.racket-lang.org/users Racket Users list: http://lists.racket-lang.org/users _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.1
On Jul 17, 2014, at 5:03 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v6.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done. John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] for loops with interleaved escape continuations
On Jul 1, 2014, at 3:46 PM, Sam Tobin-Hochstadt sa...@cs.indiana.edu wrote: I disagree strongly that this is un-rackety. Consider the following loop: (define v ) (let loop ([i 100]) (define e (vector-ref v i)) (cond [(zero? i) null] [(= 999 e) null] [(even? e) (loop (add1 i))] [else (cons e (loop add1 i))])) I don't think that's un-Rackety. Here's that loop with break/continue: (for/list ([i (in-range 100 0 -1)]) (define e (vector-ref v i)) (cond [(= 999 e) (break)] [(even? e) (continue)] [else e])) You don’t like the non-capturing alternative (for/list ([i (in-range 100 0 -1)] #:continue continue #:break break) (define e (vector-ref v i)) (cond [(= 999 e) (break)] [(even? e) (continue)] [else e])) ? Sorry, I’m working on implementing hygiene for Rust right now, and I’m kind of knee-jerk in favor of non-capturing…. John I don't think that's un-Rackety either. Sam On Tue, Jul 1, 2014 at 10:59 PM, Neil Van Dyke n...@neilvandyke.org wrote: If adding breakcontinue features to your fancy iteration syntax, I propose that any uses of these features in source code be somehow very prominent. For example, perhaps there is a keyword that must be at the top of the fancy iteration form, something like #:enable-continue-here-because-programmer-cannot-be-bothered-to-write-this-in-idiomatic-racket. This prominence warns readers of the code to be on the lookout for surprise control flow (like they would on the rare occasion that they saw a call/ec around a loop). It also hints to newbie programmers that they are discouraged from simply transliterating syntax from other languages (rather than learning better control flow and structuring techniques). Neil V. _ 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] Racket 6.0.1 make install-both fails: Racket virtual machine has run out of memory; aborting
On May 15, 2014, at 3:34 PM, Neil Van Dyke n...@neilvandyke.org wrote: FYI, a 6.0.1 install from source failed. I can't spend any time on it right now. System: 32-bit x86 dual-core, Debian Squeeze, no virtualization, no swap, 3 GB RAM total, almost 2 GB RAM free. $ ./configure --prefix=/usr/local/racket-6.0.1 --enable-both [[...]] $ make both [[...]] $ sudo make install-both [[...]] raco setup: 0 making: pkgs/htdp-lib/stepper Racket virtual machine has run out of memory; aborting Aborted make: *** [install-both] Error 134 You said “stepper.” Are you likely to get to try this again in the next day or two? John Clements _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0.1
On Apr 17, 2014, at 3:44 PM, Ryan Culpepper ry...@ccs.neu.edu wrote: Checklist items for the v6.0.1 release (using the v6.0.0.900 release candidate build) Search for your name to find relevant items, reply when you finish an item (please indicate which item/s is/are done). Also, if you have any commits that should have been picked, make sure that the changes are in. Important: new builds are created without announcement, usually whenever I pick a few commits. If you need to commit changes, please make sure you tell me to pick it into the release branch. -- Release candidates are at -- http://pre-release.racket-lang.org/ Please use these installers (or source bundles) -- don't test from your own git clone (don't test the `master' branch by mistake!). To get the tests, you can do this: cd ...racket-root... ./bin/raco pkg install -i main-distribution-test * John Clements cleme...@brinckerhoff.org - Stepper Tests Updates: - Stepper Updates: update HISTORY (updates should show v6.0.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Both done, history updated with note to merge to 6.0.1. John Clements _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] updating public key on git.racket-lang.org
I hope this isn’t a self-service question too… Who manages the public keys accepted by git.racket-lang.org, now that it’s not Eli’s job? I’m attaching my new public key. Ooh, I guess I should also ask; has that machine been patched? Looks like it has, but I just used some random online tool. John id_rsa-git.pub Description: Binary data _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Thank you DrDr, thank you!
This is a short thank-you note; thanks to DrDr, I caught a bug in the interaction of the test-engine and the stepper two weeks ago, rather than at release time. Thanks! CI is awesome. John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] new github key
I’m probably being paranoid and/or avoiding real work, but I’ve made up a new ssh key for github. Who’s the boss of our github account, and can they add my new ssh key and revoke my old one? Many thanks, John id_rsa-git.pub Description: Binary data _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #28505: master branch updated
On Apr 9, 2014, at 12:41 AM, matth...@racket-lang.org wrote: matthias has updated `master' from 8c1206c063 to fb34d4e76e. http://git.racket-lang.org/plt/8c1206c063..fb34d4e76e =[ 4 Commits ]== Directory summary: 48.5% pkgs/htdp-pkgs/htdp-doc/scribblings/htdp-langs/ 6.7% pkgs/htdp-pkgs/htdp-doc/test-engine/ 39.5% pkgs/htdp-pkgs/htdp-lib/test-engine/ 4.8% pkgs/htdp-pkgs/htdp-test/tests/test-engine/ It looks like this push broke the stepper automatic tests. I haven’t yet checked to see whether the stepper itself is broken. John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] new github key
On Apr 10, 2014, at 2:46 PM, Sam Tobin-Hochstadt sa...@cs.indiana.edu wrote: You do that yourself, in your github settings. The admin for `racket` doesn't know anything about anyones keys. Well, I already did that. I should have realized that the tree links to users, rather than linking directly to ssh keys. My bad. Thanks! John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] make clean target for top-level makefile?
I just had a problem compiling Racket which was successfully resolved by axing the racket/build subdirectory. Would in make sense to have a “clean” target for the top-level makefile that does this automatically? John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] okay to call init-auto-scrollbars multiple times on a canvas%?
I’m implementing (not-horribly-clunky) zooming for sound waves in rsound, and I like the auto-scrollbars mechanism. One question is what should happen when the user zooms in. I’d like to change the virtual-size. The obvious solution is to call “init-auto-scrollbars” again. This seems to work, but the name “init-auto-scrollbars” gives me pause. Is it okay to call init-auto-scrollbars again on a canvas? If so, I’ll add a note to the docs. Many thanks! John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Nope. (was: Re: release blocker?)
On Dec 31, 2013, at 4:27 PM, Robby Findler wrote: Glad to hear it isn't in the release branch, but do tell us: what was it? Sorry, gone for the last five days. I had an interesting problem where the colors pane of the preferences was inaccessible in the following way: Clicking on the tab labeled colors would not change to the appropriate content. However, clicking on another tab after that one would flash the colors tab content momentarily before going to the second-requested one. I suspected an interaction with drracket-solarized, which I had installed. I'm not yet back at school, and I didn't manage to narrow it down to the point where I felt comfortable submitting a report. John Robby On Tue, Dec 31, 2013 at 5:39 PM, John Clements cleme...@brinckerhoff.org wrote: disregard; it seems to be the combination of my development branch and asumu’s solarized colors. Can’t make it occur on the release branch. John On Dec 31, 2013, at 2:50 PM, John Clements cleme...@brinckerhoff.org wrote: I don’t know how close we are to release… I just saw a big bug and I want to test it against the current release candidate. It has to do with the “Colors” tab of the preferences. John _ 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
[racket-dev] release blocker?
I don’t know how close we are to release… I just saw a big bug and I want to test it against the current release candidate. It has to do with the “Colors” tab of the preferences. John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Nope. (was: Re: release blocker?)
disregard; it seems to be the combination of my development branch and asumu’s solarized colors. Can’t make it occur on the release branch. John On Dec 31, 2013, at 2:50 PM, John Clements cleme...@brinckerhoff.org wrote: I don’t know how close we are to release… I just saw a big bug and I want to test it against the current release candidate. It has to do with the “Colors” tab of the preferences. John _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #27982: master branch updated
On Dec 28, 2013, at 6:50 PM, ro...@racket-lang.org wrote: robby has updated `master' from 92872addf2 to 5059db47d3. http://git.racket-lang.org/plt/92872addf2..5059db47d3 =[ One Commit ]= Directory summary: 88.2% pkgs/gui-pkg-manager-pkgs/gui-pkg-manager-lib/pkg/gui/ 11.7% pkgs/string-constants-pkgs/string-constants-lib/string-constants/private/ ~~ 5059db4 Robby Findler ro...@racket-lang.org 2013-12-28 20:48 : | adjust the installation package GUI so it doesn't install during | and installation (ditto update) | | closes PR 14263 | | this may be a release branch candidate. I'm not sure myself, but the PR | sounds worrying. +1 ...and thanks for the quick fix! John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0, corrected url
On Dec 16, 2013, at 8:38 AM, Ryan Culpepper wrote: (Re-sending with corrected URL for release candidates. Thanks to Sam for the quick catch!) * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v6.0 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done, commits tagged with Please merge to 6.0 John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] TR performance (was: Re: [plt] Push #27909: master branch updated)
On Dec 11, 2013, at 4:18 PM, Neil Toronto wrote: On 12/11/2013 02:49 PM, Neil Toronto wrote: On 12/11/2013 01:55 PM, Stephen Bloch wrote: On Dec 11, 2013, at 2:36 PM, Neil Toronto wrote: numeric primitives implemented in Typed Racket are faster than the same primitives implemented in C. Whoa! How did that happen? Whoa! That's not what I meant! O_o I said we might be getting close to that. I haven't tried porting a numeric C primitive to TR yet, but I have a hunch that it'll still be slower. I'll try one now and report what I find. Neil ⊥ ... For comparison, here are the timings for running the benchmarks in TR with #:no-optimize: Function Flonum Rational Fixnum Integer Float-Complex --- magnitude* 45 70* 37 102* 318 magnitude 61 45 39 91* 394 * = unexpectedly high Here's what I understand from comparing the numbers: * Except for non-fixnum integers, calling `magnitude' in TR is just as fast as in untyped Racket. I have no idea why it would be slower on big integers. That's just weird. * Calling `abs' in Racket is faster than calling `scheme_abs' in C, except on rationals and big integers. * Operating on flonums in Typed Racket, using generic numeric functions, is faster than doing the same in C. Overall, it looks like the TR code is within the same order of magnitude (pun not intended) as the C code. I would love to try this benchmark with either 1) a `magnitude*' with an `AnyValues' return type; or 2) a contract boundary that doesn't check TR's return types for first-order functions. Wow! I had no idea TR was that fast. Related question: how hard is it to reason about the GC behavior of TR code? These numbers suggest to me that it might be possible to write TR code that could be pretty much guaranteed not to collect, and therefore potentially appropriate for use in audio callback functions, where the #1 rule is: NO GC PAUSES. John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] plausible hash function for s16vectors
I want to equip my rsounds with a gen:equal+hash implementation, so that I can compare them using equal? and thereby use them in check-expect test cases. I have to roll this myself, since s16vectors don't do non-eq? equal?. My question: is there an accepted hash function for an s16vector, or more generally, for a big block of memory? These vectors are relatively unlikely to be sparse--that is, have lots of zeros--so it seems like it would be reasonable just to take three or four values (in this case s16s) and just XOR them together. Taking a look at the behavior of vectors, though, it looks like *every* element is considered in computing the hash. This code: #lang racket (equal-hash-code (make-vector 10 0)) (define v (make-vector 10 0)) (vector-set! v 7982 1) (equal-hash-code v) (vector-set! v 7182 1) (equal-hash-code v) (vector-set! v 17982 1) (equal-hash-code v) (vector-set! v 55089 1) (equal-hash-code v) produces this output: -1113903107084523788 369193263530696121 555229980507179346 2232258794360948312 -1281429753928160859 Which suggests that every change to the vector changes the result of the hash function. This seems... really expensive! My current guess is that Racket uses a highly optimized (a.k.a. no safety checks) hash function that works over arbitrary blocks of data, but that the hash computation is still linear in the size of the data. I haven't tried it, but I would guess that if I wrote my own looks-at-every-value hash function, it would be a lot slower. Questions: 1) Am I guessing right? 2) Is this documented somewhere? 3) Is there a generic memory-hash function in the unsafe interface somewhere? 4) Does the hash function affect the time taken by 'equal?' -- i.e., the hash value is cached for faster equal? checking ? Thanks! John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] unable to git fetch, or ssh -v to git.racket-lang.org ?
On Nov 22, 2013, at 5:19 AM, Eli Barzilay wrote: 10 hours ago, John Clements wrote: This... doesn't look like something on my end? [...] Did you check if you were blacklisted? Wow... I see that thread now, from 2011. I'll check it out. Many thanks. For those of you in the future that chance upon this thread, I'm going to paste the apparently relevant text from Dec 9, 2011: In Dec. 2011, Eli wrote: As many of you know, there's a common problem where you make a mistake in connecting to the git server and get blacklisted which means that you have to ask me to remove the entry. As a solution for such cases, I've hacked a tool that allows you to remove an IP address from the denyhosts ban -- you can access it at http://internal.racket-lang.org/ -- the Release an ssh-blocked IP entry. (This is safe since it requires that you have password access to the internal server, and you can only name the IP you want to remove which is harmless if you can't get the list of denied hosts.) Thanks! John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] unable to git fetch, or ssh -v to git.racket-lang.org ?
This... doesn't look like something on my end? oiseau:~/git-clements clements ssh -v pltgit OpenSSH_5.6p1, OpenSSL 0.9.8y 5 Feb 2013 debug1: Reading configuration data /Users/clements/.ssh/config debug1: Applying options for pltgit debug1: Reading configuration data /etc/ssh_config debug1: Applying options for * debug1: Connecting to git.racket-lang.org [129.10.115.117] port 22. debug1: Connection established. debug1: identity file /Users/clements/.ssh/id_rsa type 1 debug1: identity file /Users/clements/.ssh/id_rsa-cert type -1 debug1: identity file /Users/clements/.ssh/id_rsa_plt-git type -1 debug1: identity file /Users/clements/.ssh/id_rsa_plt-git-cert type -1 debug1: identity file /Users/clements/.ssh/id_rsa_plt-git type -1 debug1: identity file /Users/clements/.ssh/id_rsa_plt-git-cert type -1 ssh_exchange_identification: Connection closed by remote host oiseau:~/git-clements clements git fetch ssh_exchange_identification: Connection closed by remote host fatal: The remote end hung up unexpectedly _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] DrRacket's `Install Package' dies with long names/urls
On Sep 9, 2013, at 5:34 PM, William J. Bowman wrote: Hello devs, This week, at least 2 students destroyed the File - Install Package feature of DrRacket on their machines. The students copied a URL into the Package Source field several times, resulting in this error. Appearently, the only way to solve this problem is to delete racket-prefs.rktd. It looks like this is fixed now. In particular, pasting a string with a newline signals an error right away. Apologies if you already knew that; I don't see a response to this e-mail in particular. Best, John Clements _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] get-x method on key event always returns zero?
On Oct 9, 2013, at 7:40 PM, Matthias Felleisen wrote: world uses get-x like this: (define/public (deal-with-mouse %) (if (not on-mouse) ;; No mouse handler = discard mouse events (so snip are not selected ;; in the pasteboard, for example (class % (super-new) (define/override (on-event e) (void))) ;; Mouse handler = handle mouse events (class % (super-new) (define/override (on-event e) (define-values (x y me) (mouse-event-parts e)) (when live (cond [(and (= 0 x width) (= 0 y height)) (pmouse x y me)] [(member me '(leave enter)) (pmouse x y me)] [else (void)])) [[ Yes, this is a method-based mixin ]] but note that I override on-event not on-key. The mouse-event-parts method uses get-x on e. -- Matthias Right... I was hoping to use get-x on a key event. The docs suggest that it should work. Obviously, the workaround is just to capture the x value whenever the mouse moves. Maybe get-x should just be removed from the key event? John On Oct 9, 2013, at 5:17 PM, John Clements wrote: It appears to me that the 'get-x' method on a key event always returns zero, counter to what the docs say. Is this a doc bug, a software bug, or just me being dumb? FWIW, here's a simple program that illustrates this; press a key while the window has focus, and you will always see 0 in the x value field: #lang racket/base (require racket/gui racket/class) (define sound-canvas% (class canvas% (init-field frame-num-text) (init-field y-value-text) (define/override (on-char evt) (send y-value-text begin-edit-sequence #f) (send y-value-text erase) (send y-value-text insert (format x value: ~v (send evt get-x))) (send y-value-text end-edit-sequence) (send frame-num-text begin-edit-sequence #f) (send frame-num-text erase) (send frame-num-text insert (format key : ~a (send evt get-key-code))) (send frame-num-text end-edit-sequence)) (super-new))) (let* ([f (new frame% [label abc] [width 400] [height 100])] [tx (new text%)] [ty (new text%)] [c (new sound-canvas% [parent f] #;[paint-callback (make-sound-drawing-callback left-getter right-getter len data-left data-right)] [frame-num-text tx] [y-value-text ty])] [ecx (new editor-canvas% [parent f] [editor tx] [style '(no-border no-hscroll no-vscroll)] [stretchable-width #t] [stretchable-height #f] [horizontal-inset 1] [vertical-inset 1] [min-width 50] [min-height 20])] [ecy (new editor-canvas% [parent f] [editor ty] [style '(no-border no-hscroll no-vscroll)] [stretchable-width #t] [stretchable-height #f] [horizontal-inset 1] [vertical-inset 1] [min-width 50] [min-height 20])]) (send f show #t)) _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] get-x method on key event always returns zero?
It appears to me that the 'get-x' method on a key event always returns zero, counter to what the docs say. Is this a doc bug, a software bug, or just me being dumb? FWIW, here's a simple program that illustrates this; press a key while the window has focus, and you will always see 0 in the x value field: #lang racket/base (require racket/gui racket/class) (define sound-canvas% (class canvas% (init-field frame-num-text) (init-field y-value-text) (define/override (on-char evt) (send y-value-text begin-edit-sequence #f) (send y-value-text erase) (send y-value-text insert (format x value: ~v (send evt get-x))) (send y-value-text end-edit-sequence) (send frame-num-text begin-edit-sequence #f) (send frame-num-text erase) (send frame-num-text insert (format key : ~a (send evt get-key-code))) (send frame-num-text end-edit-sequence)) (super-new))) (let* ([f (new frame% [label abc] [width 400] [height 100])] [tx (new text%)] [ty (new text%)] [c (new sound-canvas% [parent f] #;[paint-callback (make-sound-drawing-callback left-getter right-getter len data-left data-right)] [frame-num-text tx] [y-value-text ty])] [ecx (new editor-canvas% [parent f] [editor tx] [style '(no-border no-hscroll no-vscroll)] [stretchable-width #t] [stretchable-height #f] [horizontal-inset 1] [vertical-inset 1] [min-width 50] [min-height 20])] [ecy (new editor-canvas% [parent f] [editor ty] [style '(no-border no-hscroll no-vscroll)] [stretchable-width #t] [stretchable-height #f] [horizontal-inset 1] [vertical-inset 1] [min-width 50] [min-height 20])]) (send f show #t)) _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Racket Guide chapter on concurrency
On Oct 6, 2013, at 1:30 PM, David T. Pierson wrote: Hi all, At the hackathon Asumu helped me work on a Guide chapter on concurrency. Thanks Asumu! Since then I've fleshed it out some more and pushed a commit to github. https://github.com/davidtpierson/racket/commit/d2fb857efec8ce508ac6f76afa845d788edab4c1 Isn't this early example: +@racketblock[ +(define worker (thread (lambda () + (let loop () + (displayln Working...) + (loop) +(sleep 2.5) +(kill-thread worker) +] ... going to generate a *heck of a lot* of output in 2.5 seconds? How about something like (sleep 0.1) in the display loop? John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] looks like pkg.racket-lang.org is hanging after making the connection again.
I'm once again seeing pkg.racket-lang.org hanging after making the connection. Here's the transcript: curl -v --insecure 'https://pkg.racket-lang.org/' * About to connect() to pkg.racket-lang.org port 443 (#0) * Trying 128.187.105.226... * connected * Connected to pkg.racket-lang.org (128.187.105.226) port 443 (#0) * successfully set certificate verify locations: * CAfile: /opt/local/share/curl/curl-ca-bundle.crt CApath: none * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, CERT (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using DHE-RSA-AES256-SHA * Server certificate: *subject: description=OgMQW8ooep0z88Ml; C=US; CN=pkg.racket-lang.org; emailAddress=hostmas...@racket-lang.org *start date: 2013-01-22 05:29:13 GMT *expire date: 2014-01-23 10:12:52 GMT *subjectAltName: pkg.racket-lang.org matched *issuer: C=IL; O=StartCom Ltd.; OU=Secure Digital Certificate Signing; CN=StartCom Class 1 Primary Intermediate Server CA *SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. GET / HTTP/1.1 User-Agent: curl/7.25.0 (x86_64-apple-darwin11.3.0) libcurl/7.25.0 OpenSSL/1.0.1e zlib/1.2.8 libidn/1.22 Host: pkg.racket-lang.org Accept: */* ... and then it just waits at this point, until I give up. John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] workaround for 5.3.6 require for-label problem?
I'm noticing that with version 5.3.6 of DrRacket, a package install of rsound hangs during the evaluation of rsound.scrbl. My guess is that this could be related to the syntax-check error that I get when opening rsound.scrbl in version 5.3.6. After some work, I discovered that the problem seems to be the use of require (for-syntax ...), and that in fact this setup: f.rkt: #lang racket (require (for-label g.rkt)) g.rkt: #lang racket ... causes the problem. Specifically, I get the error +: contract violation expected: number? given: #f argument position: 1st other arguments...: 0 in the check-syntax message area when f.rkt is open. I'm guessing this is a bug that's been fixed. In the meantime, though, I'm trying to allow my students to see the package docs for rsound. Questions: 1) Is this in fact a bug that's been fixed? 2) Could this actually related to the doc build hang? 3) Is there a simple workaround? Many thanks in advance for any help! Best, John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Building HEAD today
On Jul 17, 2013, at 2:23 PM, Matthew Flatt wrote: At Wed, 17 Jul 2013 16:48:06 -0400, Greg Hendershott wrote: I did my first fetch and build of HEAD today, using the new layout. A few surprises; I wanted to ask if they're as-expected (at least at this point in the change to the new approach). ... 5. At the end, I got many, many lines about dependency checking for packages with dev links: raco setup: found undeclared dependency: raco setup: mode: run raco setup: for package: frog raco setup: on package: core raco setup: dependent source: config_rkt.zo raco setup: used module: (lib racket/syntax.rkt) [...] Is this normal (or normal for the time being, and OK to ignore)? Now that the Racket distribution is composed of many packages, your package depends on many packages. Ideally, you'd add in all those dependencies. Unfortunately, if you add in the dependencies, then your package won't work with v5.3.6 and earlier, because the packages don't exist for that distribution. We need to sort this out, and I'll bump it to the top of the list. (Probably, we need to add main-distribution as a package for v5.3.6 and earlier, or something like that.) Meanwhile, you can ignore the errors. I don't see any related follow-ups, based on my 5-minute search. What's the current best-practice for dependencies for packages that are to be compatible with 5.3.5/6 ? I'm guessing that just leaving the dependency line off and tolerating the undeclared dependency warnings is best for now? Thanks, John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] going to Strange Loop?
Anyone going to strange loop? Want to share a hotel room? Best, John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Revising Racket's home page
On Aug 19, 2013, at 9:17 PM, Robby Findler wrote: This looks fantastic! Thanks! +1 I really like the programmable programming language slogan. John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3.6
On Jul 22, 2013, at 3:13 PM, Ryan Culpepper wrote: * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v5.3.6 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done. Yikes, everything is in a different place! Yes, yes, time to read that 40-email thread. John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3.6
On Jul 23, 2013, at 1:47 PM, Robby Findler wrote: Are you sure you tested the release bundles and not git head? Yep, pretty sure. The only place where I ran into the reorg is when I was *pushing* the updated HISTORY.txt. The bundle I was testing was still in the old shape. John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] white bar in lhs of comment box: bug or feature?
In the attached screenshot (hopefully small enough to get through the size filter), I see that the background of the "comment semicolon" is rendered in white, regardless of the background color. Based on the lack of space between that bar and the enclosed text, I'm imagining this is a bug. On the other hand, it's kind of nice to be able to see the extent of the box clearly. I'll submit a PR if this is actually a bug; it seems like it could be a one-line fix.John_ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Continuing to work on GitHub bug migration
On May 30, 2013, at 1:47 PM, Sam Tobin-Hochstadt wrote: After a long hiatus, I'm again working on migrating our bug database to GitHub issues. My plan is to convert a large portion of the old bugs (more than 5 years old, up to 9433) in the near future, and in particular all of the bugs filed before the bug DB moved to Northeastern (up to ~2100) very soon. To do this, I need GitHub authorization keys from people who used the bug DB then, so that I can post bugs and comments as you to GitHub. To provide them, please visit this page: http://samth2.ccs.neu.edu:8080/github-auth/ and follow the instructions. It looks like this server is not currently accepting connections on port 8080…. clements@li21-127:~$ curl -v http://samth2.ccs.neu.edu:8080/github-auth/ * About to connect() to samth2.ccs.neu.edu port 8080 (#0) * Trying 129.10.115.151... Connection refused * couldn't connect to host * Closing connection #0 curl: (7) couldn't connect to host clements@li21-127:~$ This applies for anyone who's used the bug DB ever, although I won't be migrating the newer bugs immediately. The people who are most needed for my immediate plans have been explicitly cc'ed on this message. If you're one of them and for whatever reason, you don't want to do this, please just let me know off-list. Thanks! Sam _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [racket] Parens/string quotes automatic behavior
On May 23, 2013, at 8:13 AM, Robby Findler wrote: On Thursday, May 23, 2013, Nadeem Abdul Hamid wrote: Hello Racket devs, I'm working on tweaking how typing a double quote is handled in strings when DrRacket's auto parens mode is on, per recent post on the users list. If any of you use the mode and can offer feedback on the following, it'd be appreciated: In addition to handling Laurent's initial feature request (see message at bottom), I'm setting it up so that if the following string is in the DrRacket window: abcdefghi and you select the _def_ and press (double quote), then it places double-quotes around the def with additional quotes to ensure that the other two portions of the string are still validly delimited, i.e. abcdefghi One question is where to put the cursor following this operation? Should it be right inside the beginning of the lifted string, or in front of its double quotes, i.e.: abc|defghi or abc|defghi ? Oh: another possibility: keep the selection where it is (or, perhaps better, select the open quote, the def, and the close quote). +1 John _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3.4, Second Call
On Apr 22, 2013, at 8:29 PM, Ryan Culpepper wrote: Checklist items for the v5.3.4 release (using the v5.3.3.900 release candidate build) * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v5.3.4 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done. relevant commit is flagged as merge to 5.3.4 John _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] IRC compliment for Eli, after a fashion...
From IRC, hope the copypaste is okay: GoNZooo:I installed 5.3.3 now [11:01am]GoNZooo:From the site instead [11:01am]jbclements:good choice! [11:01am]GoNZooo:With the extremely well-behaved .sh file [11:01am]GoNZooo:God damn, that is user friendly [11:01am] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3.2
On Jan 17, 2013, at 10:46 AM, Ryan Culpepper wrote: Checklist items for the v5.3.2 release (using the v5.3.1.900 release candidate build) Search for your name to find relevant items, reply when you finish an item (please indicate which item/s is/are done). Also, if you have any commits that should have been picked, make sure that the changes are in. Important: new builds are created without announcement, usually whenever I pick a few commits. If you need to commit changes, please make sure you tell me to pick it into the release branch. -- Release candidates are at -- http://pre.racket-lang.org/release/installers Please use these installers (or source bundles) -- don't test from your own git clone (don't test the `master' branch by mistake!). To get the tests directory in such a directory, you can do this: cd ...racket-root... git archive --remote=git://git.racket-lang.org/plt.git release \ -- collects/tests | tar x * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v5.3.2 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done, in commit e7528f2bb254574779e13652 John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] racket/date, SRFI-19, date construction
Thanks for taking this on! Ditto! I'm very happy to have this long, long-term annoyance resolved. Thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Attempted clarification for planet2 docs
As I was trying to assembly my first planet2 package, I found myself wondering how exactly to 'require' modules associated with planet2 packages. My initial assumption (require them like any other collection containing modules) turned out to be correct, but there was a period when I doubted this, and I think it should be documented. Below is a proposed doc change; I'll commit it if you like it, or abandon it if not. I'm including the (git format-patch) text and also attaching it as a file. John From d3f72c47820effb240532c518378dc9709d69600 Mon Sep 17 00:00:00 2001 From: John Clements cleme...@racket-lang.org Date: Tue, 1 Jan 2013 10:40:40 -0800 Subject: [PATCH] added docs on requiring planet2 modules --- collects/planet2/scribblings/planet2.scrbl | 14 ++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/collects/planet2/scribblings/planet2.scrbl b/collects/planet2/scribblings/planet2.scrbl index e9e565a..81d6e58 100644 --- a/collects/planet2/scribblings/planet2.scrbl +++ b/collects/planet2/scribblings/planet2.scrbl @@ -200,6 +200,20 @@ imply a change in the @tech{checksum}. @section{Using Packages} +Modules installed using planet2 may be @tech{require}d like any other +modules. For instance, if the package @pkgname{recipes} contains +the module file @filepath{vegan/fruitsalad.rkt}, then package users +who have this package installed may evaluate + +@racketblock[(require vegan/fruitsalad)] + +...to require this module. + +@; + +@section{Managing Packages} + + The Racket package manager has two user interfaces: a command line @exec{raco} sub-command and a library. They have the exact same capabilities, as the command line interface invokes the library functions and -- 1.7.7.5 (Apple Git-26) 0001-added-docs-on-requiring-planet2-modules.patch Description: Binary data smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Attempted clarification for planet2 docs
On Jan 2, 2013, at 1:03 PM, Jay McCarthy wrote: Sounds fine. John's original language seems like that and is good to me. Pushed, thanks. John On Wed, Jan 2, 2013 at 1:59 PM, Carl Eastlund c...@ccs.neu.edu wrote: It doesn't need to be phrased as a comparison to Planet1, but it can be given as a reassurance that this package system thingy does not add any baggage to require lines. Carl Eastlund On Wed, Jan 2, 2013 at 3:49 PM, Jay McCarthy jay.mccar...@gmail.com wrote: I agree in that context that it is useful as a part of the What's different about Planet 2? And it's there (question 6). But, in the context of a new Racket user learning about packages, I don't see a reason to add the baggage of how it's different than some system they've never used. Jay On Wed, Jan 2, 2013 at 1:40 PM, Carl Eastlund c...@ccs.neu.edu wrote: There _is_ reason to think these modules are different, because they were different in Planet1. I've had to remind myself several times that Planet2 packages don't have special require forms, and that's just during discussions -- I haven't even been writing code with them yet. Clarifying that Planet2 simplifies the require lines, and makes user packages on a peer level with built-in collections, is a useful thing to put early on in the Planet2 docs. Carl Eastlund On Wed, Jan 2, 2013 at 3:27 PM, Jay McCarthy jay.mccar...@gmail.com wrote: The documentation already says A package is a set of modules for some number of collections. And there's no reason to think that these modules are different from other modules, so I don't see why we need to point out that they are required like all other modules are. If you think it's very confusing, then feel free to push the commit with two small changes: 1. The docs don't use the term planet2, so just say the Racket package manager 2. Consider using the same examples from the rest of the docs (such as data/matrix from tic-tac-toe) Jay On Wed, Jan 2, 2013 at 12:30 PM, John Clements cleme...@brinckerhoff.org wrote: As I was trying to assembly my first planet2 package, I found myself wondering how exactly to 'require' modules associated with planet2 packages. My initial assumption (require them like any other collection containing modules) turned out to be correct, but there was a period when I doubted this, and I think it should be documented. Below is a proposed doc change; I'll commit it if you like it, or abandon it if not. I'm including the (git format-patch) text and also attaching it as a file. John From d3f72c47820effb240532c518378dc9709d69600 Mon Sep 17 00:00:00 2001 From: John Clements cleme...@racket-lang.org Date: Tue, 1 Jan 2013 10:40:40 -0800 Subject: [PATCH] added docs on requiring planet2 modules --- collects/planet2/scribblings/planet2.scrbl | 14 ++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/collects/planet2/scribblings/planet2.scrbl b/collects/planet2/scribblings/planet2.scrbl index e9e565a..81d6e58 100644 --- a/collects/planet2/scribblings/planet2.scrbl +++ b/collects/planet2/scribblings/planet2.scrbl @@ -200,6 +200,20 @@ imply a change in the @tech{checksum}. @section{Using Packages} +Modules installed using planet2 may be @tech{require}d like any other +modules. For instance, if the package @pkgname{recipes} contains +the module file @filepath{vegan/fruitsalad.rkt}, then package users +who have this package installed may evaluate + +@racketblock[(require vegan/fruitsalad)] + +...to require this module. + +@; + +@section{Managing Packages} + + The Racket package manager has two user interfaces: a command line @exec{raco} sub-command and a library. They have the exact same capabilities, as the command line interface invokes the library functions and -- 1.7.7.5 (Apple Git-26) -- Jay McCarthy j...@cs.byu.edu Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay The glory of God is Intelligence - DC 93 _ Racket Developers list: http://lists.racket-lang.org/dev -- Jay McCarthy j...@cs.byu.edu Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay The glory of God is Intelligence - DC 93 -- Jay McCarthy j...@cs.byu.edu Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay The glory of God is Intelligence - DC 93 smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Date Chooser
On Dec 26, 2012, at 5:26 PM, Chen Xiao wrote: Hi, eveyone, racket does not have a date chooser yet, so I use gui and draw tools to make one. A simple datechooser. It use a up and down triangle button to change year, month, day. It has a width and height and custom font. Attachment is the snapshot. add this to the core codebase or planet, which is appropriate? I think that it might be a good fit for planet2, if you don't mind living on the bleeding edge. John Clements smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] How to avoid to modify .gitignore when pull request
On Dec 13, 2012, at 6:37 AM, David Van Horn wrote: On 12/13/12 9:22 AM, Chen Xiao wrote: I fork the codebase on my local computer. Then I .configure make make install, as a result, there are many compiled things like bin or *.o files. To avoid add them to my commit, I modify .gitignore to ignore them all. But I can't avoid add .gitignore at all, isn't it? So how do you solve this problem? I suggest building in a build/ directory as described in src/README. There's already a .gitignore directive to ignore that directory. +1. I build racket all the darn time, with local changes, and I never have to fiddle with .gitignore. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] behavior of check-expect on errors during evaluation of expected values
I think the current behavior of check-expect is unfortunate w.r.t. errors that occur during the evaluation of the expected values. Consider this program: (check-expect (+ 3 4) 7) (check-expect (* 4 5) 20) (check-expect (+ 4 9) (/ 1 0)) (check-expect (+ 2 3) 5) It produces this output in intermediate: /: division by zero Both tests passed! In the example given, it's pretty clear that something major went wrong. If you have thirty or forty test cases, though, this can look a lot like success. I propose one of the following two solutions; I think the first is less work than the second. 1) keep a flag around during evaluation that records whether an exception has occurred during the evaluation of an 'expected' value, and update the report accordingly, e.g.: 2 tests passed. Some tests failed to run! (could be better, I know.) 2) Record this as a test failure, and continue running the tests. This would mean adding a new kind of test failure message. Actually, this might not be too much work, either. Thoughts? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3.1
On Oct 15, 2012, at 9:58 PM, Ryan Culpepper wrote: * John Clements cleme...@brinckerhoff.org - Stepper Tests Updates: - Stepper Updates: update HISTORY (updates should show v5.3.1 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done, history update in 54c5538fd61ca90b4410faaea6c5799d3ab80c72 John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] gc much slower in DrR?
On Oct 15, 2012, at 5:47 PM, Matthew Flatt wrote: Any difference with 9dd83008a6 (just pushed)? I just built from source. Short version: yes, much better. Longer version: DrR still has somewhat longer pauses, but they're now in the 6-10ms range: GC: 0:min @ 242,118K(+159,225K)[+31,728K]; free 24,751K(-24,751K) 31ms @ 57771 GC: 0:min @ 250,704K(+150,639K)[+31,728K]; free 33,064K(-33,064K) 11ms @ 58198 GC: 0:min @ 250,407K(+150,936K)[+31,728K]; free 32,724K(-32,724K) 5ms @ 58611 GC: 0:min @ 250,466K(+150,877K)[+31,728K]; free 32,738K(-32,738K) 6ms @ 59057 GC: 0:min @ 250,496K(+150,847K)[+31,728K]; free 32,723K(-32,723K) 10ms @ 59452 GC: 0:min @ 250,540K(+150,803K)[+31,728K]; free 32,729K(-32,729K) 5ms @ 59865 GC: 0:min @ 250,610K(+150,733K)[+31,728K]; free 32,754K(-32,754K) 5ms @ 60290 GC: 0:min @ 250,639K(+150,704K)[+31,728K]; free 32,734K(-32,734K) 5ms @ 60758 GC: 0:min @ 250,704K(+150,639K)[+31,728K]; free 32,752K(-32,752K) 6ms @ 61176 GC: 0:min @ 250,720K(+150,623K)[+31,728K]; free 32,720K(-32,720K) 6ms @ 61595 GC: 0:min @ 250,767K(+150,576K)[+31,728K]; free 32,722K(-32,722K) 8ms @ 62003 GC: 0:min @ 250,812K(+150,531K)[+31,728K]; free 32,720K(-32,720K) 6ms @ 62429 GC: 0:min @ 250,860K(+150,483K)[+31,728K]; free 32,725K(-32,725K) 9ms @ 62871 GC: 0:min @ 250,902K(+150,441K)[+31,728K]; free 32,727K(-32,727K) 5ms @ 63270 GC: 0:min @ 250,943K(+150,400K)[+31,728K]; free 32,725K(-32,725K) 5ms @ 63687 GC: 0:min @ 250,985K(+150,358K)[+31,728K]; free 32,718K(-32,718K) 10ms @ 64103 Here's command-line racket: GC: 0:min @ 121,746K(+43,341K)[+9,788K]; free 32,712K(-32,712K) 5ms @ 7033 GC: 0:min @ 121,801K(+43,286K)[+9,788K]; free 32,736K(-32,736K) 5ms @ 7467 GC: 0:min @ 121,832K(+43,255K)[+9,788K]; free 32,734K(-32,734K) 3ms @ 7906 GC: 0:min @ 121,866K(+43,221K)[+9,788K]; free 32,733K(-32,733K) 3ms @ 8342 GC: 0:min @ 121,900K(+43,187K)[+9,788K]; free 32,734K(-32,734K) 3ms @ 8791 GC: 0:min @ 121,966K(+43,121K)[+9,788K]; free 32,732K(-32,732K) 4ms @ 9221 GC: 0:min @ 122,002K(+43,085K)[+9,788K]; free 32,741K(-32,741K) 5ms @ 9649 GC: 0:min @ 122,029K(+43,058K)[+9,788K]; free 32,732K(-32,732K) 5ms @ 10092 GC: 0:min @ 122,064K(+43,023K)[+9,788K]; free 32,732K(-32,732K) 3ms @ 10533 GC: 0:min @ 122,100K(+42,987K)[+9,788K]; free 32,741K(-32,741K) 2ms @ 10980 GC: 0:min @ 122,127K(+42,960K)[+9,788K]; free 32,732K(-32,732K) 3ms @ 11424 GC: 0:min @ 122,162K(+42,925K)[+9,788K]; free 32,732K(-32,732K) 4ms @ 11847 GC: 0:min @ 122,197K(+42,890K)[+9,788K]; free 32,734K(-32,734K) 4ms @ 12296 GC: 0:min @ 122,231K(+42,856K)[+9,788K]; free 32,736K(-32,736K) 2ms @ 12734 GC: 0:min @ 122,262K(+42,825K)[+9,788K]; free 32,730K(-32,730K) 2ms @ 13171 GC: 0:min @ 122,300K(+42,787K)[+9,788K]; free 32,739K(-32,739K) 3ms @ 13616 GC: 0:min @ 122,393K(+42,694K)[+9,788K]; free 32,732K(-32,732K) 4ms @ 14067 GC: 0:min @ 122,428K(+42,659K)[+9,788K]; free 32,725K(-32,725K) 3ms @ 14504 GC: 0:min @ 122,470K(+42,617K)[+9,788K]; free 32,726K(-32,726K) 2ms @ 14951 GC: 0:min @ 122,512K(+42,575K)[+9,788K]; free 32,734K(-32,734K) 5ms @ 15427 GC: 0:min @ 122,545K(+42,542K)[+9,788K]; free 32,732K(-32,732K) 2ms @ 15881 GC: 0:min @ 122,580K(+42,507K)[+9,788K]; free 32,729K(-32,729K) 4ms @ 16330 GC: 0:min @ 122,618K(+42,469K)[+9,792K]; free 32,731K(-32,731K) 3ms @ 16771 So, it appears that things have improved a lot… maybe for *both* of them. I also see that DrR's memory use is much lower, which may simply be because I haven't been running the process as long. Also, I was a bit more careful this time, and counted the number of GCs; in the case of DrR, I saw 17 pauses in 30 seconds or about 34 pauses per minute, whereas command-line racket has only 23. Either way, I'm a happy camper. Thanks! … will this go into the upcoming release? John At Thu, 11 Oct 2012 15:43:49 -0700, John Clements wrote: I'm trying to run signal-based audio programs, and I'm finding that DrR is using well over 10x the time to perform the same GC's as command-line racket. Let me be more specific: I'm running a program that does a little filtering to combine a couple of oscillators, using big-bang. Running this program in DrR, I see GC logs that look like this: GC: 0:min @ 711,798K(+89,158K)[+46,912K]; free 32,654K(-32,654K) 66ms @ 2058318 GC: 0:min @ 712,070K(+88,886K)[+46,912K]; free 32,667K(-32,667K) 69ms @ 2059160 GC: 0:min @ 712,421K(+88,534K)[+46,916K]; free 32,724K(-32,724K) 71ms @ 2059963 GC: 0:min @ 712,621K(+88,334K)[+46,916K]; free 32,698K(-32,698K) 68ms @ 2060857 GC: 0:min @ 713,411K(+87,545K)[+46,916K]; free 33,103K(-33,103K) 80ms @ 2061605 GC: 0:min @ 713,424K(+87,532K)[+46,916K]; free 32,815K(-32,815K) 78ms @ 2062341 GC: 0:min @ 714,273K(+86,683K)[+46,916K]; free 33,363K(-33,363K) 75ms @ 2062872 GC: 0:min @ 715,799K(+85,157K)[+46,916K]; free 30,988K(-30,988K) 104ms @ 2063857 … These GCs are happening about 17 times in every 30 seconds; given the amount freed, this suggests that I'm generating about 18 Megabytes
Re: [racket-dev] [plt] Push #25466: master branch updated
On Oct 16, 2012, at 12:58 PM, Sam Tobin-Hochstadt wrote: On Tue, Oct 16, 2012 at 3:54 PM, Eli Barzilay e...@barzilay.org wrote: A few minutes ago, Sam Tobin-Hochstadt wrote: On Tue, Oct 16, 2012 at 3:39 PM, Eli Barzilay e...@barzilay.org wrote: A few minutes ago, Sam Tobin-Hochstadt wrote: Unfortunately, we have only one thing we can vary here -- the name. So while I'd be happy to hear better names for `define/match`, it would be wrong to call it `match-define`, and it's a valuable form and I plan to keep it. Yes, the name is what should vary here, I had nothing to say about what it does. Please¹⁷ change it. Even a `match-define*' would be better than `define/match'. `match-define*` would be much worse -- it isn't a variant on `match-define`, nor does it resemble any of the other `match-X` forms. Data point: I have no idea what define/match does, and the name by itself does nothing to enlighten me. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] API naming conventions (Push #25466)
On Oct 16, 2012, at 3:34 PM, Matthias Felleisen wrote: Eli, can you explain again -- perhaps in different words -- why define/match is a bad name? I understand that we have match-define and define/match now. While I agree that having two of these forms with remotely related functionality is possibly confusing, I don't see why match-define is really a better kind of name than define/match. If you are saying, that define/match is bad because it is too distinct from match-define I understand the name argument. [I might be guilty of having inspired the keyword match-define. Even if so, I find it dead-ugly now. define/match tells me define with match, and I can guess the rest.] If this were about changing the name of match-define to define/match, I'd have no objection, but the problem is that we now have two forms with names that are identical, modulo a stylistic choice. It's as though we had a let/values and a values-let; what kind of difference in meaning would a user expect to see between these two? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] API naming conventions (Push #25466)
On Oct 16, 2012, at 3:41 PM, Eli Barzilay wrote: Just now, John Clements wrote: If this were about changing the name of match-define to define/match, I'd have no objection, but the problem is that we now have two forms with names that are identical, modulo a stylistic choice. It's not -- they have two different meanings. Violent agreement; I'm saying that the *names* are the same (modulo a stylistic choice), not that the meanings are the same. John It's as though we had a let/values and a values-let; what kind of difference in meaning would a user expect to see between these two? Exactly. (I'll reply more to Matthias's question.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] jfyi, seg fault during build
While building, today (definitely not a fresh build): ... ./.. -I../../../racket/gc2/../include -DOS_X -D_DARWIN_UNLIMITED_SELECT -pthread -fno-common --keep-lines -o xsrc/jitinline.c ../../../racket/gc2/../src/jitinline.c gcc -I./.. -I../../../racket/gc2/../include -g -O2 -DOS_X -D_DARWIN_UNLIMITED_SELECT -pthread -fno-common -Wall -c xsrc/jitinline.c -o jitinline.o env XFORM_USE_PRECOMP=xsrc/precomp.h ../racketcgc -cqu ../../../racket/gc2/xform.rkt --setup . --cpp gcc -E -I./.. -I../../../racket/gc2/../include -DOS_X -D_DARWIN_UNLIMITED_SELECT -pthread -fno-common --keep-lines -o xsrc/jitprep.c ../../../racket/gc2/../src/jitprep.c make[4]: *** [xsrc/jitprep.c] Segmentation fault: 11 make[3]: *** [all] Error 2 make[2]: *** [3m] Error 2 make[1]: *** [3m] Error 2 make: *** [all] Error 2 Running 'make' again cheerfully succeeded in compiling jitprep. I suppose this could be gcc's fault or ours…. jfyi, smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] gc much slower in DrR?
I'm trying to run signal-based audio programs, and I'm finding that DrR is using well over 10x the time to perform the same GC's as command-line racket. Let me be more specific: I'm running a program that does a little filtering to combine a couple of oscillators, using big-bang. Running this program in DrR, I see GC logs that look like this: GC: 0:min @ 711,798K(+89,158K)[+46,912K]; free 32,654K(-32,654K) 66ms @ 2058318 GC: 0:min @ 712,070K(+88,886K)[+46,912K]; free 32,667K(-32,667K) 69ms @ 2059160 GC: 0:min @ 712,421K(+88,534K)[+46,916K]; free 32,724K(-32,724K) 71ms @ 2059963 GC: 0:min @ 712,621K(+88,334K)[+46,916K]; free 32,698K(-32,698K) 68ms @ 2060857 GC: 0:min @ 713,411K(+87,545K)[+46,916K]; free 33,103K(-33,103K) 80ms @ 2061605 GC: 0:min @ 713,424K(+87,532K)[+46,916K]; free 32,815K(-32,815K) 78ms @ 2062341 GC: 0:min @ 714,273K(+86,683K)[+46,916K]; free 33,363K(-33,363K) 75ms @ 2062872 GC: 0:min @ 715,799K(+85,157K)[+46,916K]; free 30,988K(-30,988K) 104ms @ 2063857 … These GCs are happening about 17 times in every 30 seconds; given the amount freed, this suggests that I'm generating about 18 Megabytes of trash per second, which seems like a lot until you divide by the sample rate of 44.1KHz, when it comes out to be 419 bytes of trash per sample generated, which seems like it's in the right ballpark. I tried running the same program on the command-line, with racket -W debug ./interesting-tones.rkt, and the GC traces looked like this: GC: 0:min @ 124,249K(+26,774K)[+11,396K]; free 32,735K(-32,735K) 5ms @ 14101 GC: 0:min @ 124,282K(+26,741K)[+11,396K]; free 32,737K(-32,737K) 5ms @ 14563 GC: 0:min @ 124,341K(+26,682K)[+11,396K]; free 32,762K(-32,762K) 5ms @ 15032 GC: 0:min @ 124,340K(+26,683K)[+11,396K]; free 32,724K(-49,108K) 7ms @ 15506 GC: 0:min @ 124,383K(+43,024K)[+11,396K]; free 32,733K(-32,733K) 6ms @ 15967 GC: 0:min @ 124,402K(+43,005K)[+11,396K]; free 32,708K(-32,708K) 6ms @ 16419 GC: 0:min @ 124,461K(+42,946K)[+11,396K]; free 32,736K(-32,736K) 5ms @ 16864 GC: 0:min @ 124,513K(+42,894K)[+11,396K]; free 32,743K(-32,743K) 10ms @ 17312 GC: 0:min @ 124,563K(+42,844K)[+11,396K]; free 32,764K(-32,764K) 5ms @ 17767 GC: 0:min @ 124,566K(+42,841K)[+11,396K]; free 32,739K(-32,739K) 6ms @ 18227 GC: 0:min @ 124,595K(+42,812K)[+11,396K]; free 32,733K(-32,733K) 5ms @ 18681 GC: 0:min @ 124,628K(+42,779K)[+11,440K]; free 32,673K(-32,673K) 9ms @ 19161 …. Note that it's collecting about the same amount of trash each time (about 32Meg), but the gc pauses are only 5-10 ms, rather than 60-100. This means no audible pauses, and it sounds quite nice, rather than extremely hiccupy. I see that DrR's heap is much bigger: 713Meg vs 125Meg. Would this account for the much longer GC times? I'm imagining that these are minor collections, that don't affect much outside of the nursery (and I guess I'm assuming we have a generational collector), so it seems like the bulky background shouldn't affect the GC times, at least not by a factor of 10. Is there something else going on? John P.S.: I should admit that I think I could address this problem in DrR by turning the buffer size up to, say, 200ms, but that's a really slow response rate; if you're trying to play a keyboard, for instance, 200ms feels quite sluggish. P.P.S.: this version of DrR hasn't been updated in a month… I suppose I should update, and perhaps something magical will happen :). smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Hi to Matthias and the rest of the team.
I've just had a very brief round of e-mail with M. Fatih Köksal, who sends his best to Matthias and the rest of the team. Cheers, John (Mehmet) smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] syntax parsing: must be a nice pattern-y way to do this
On Sep 16, 2012, at 5:48 PM, Ryan Culpepper wrote: See 'define-template-metafunction' in syntax/parse/experimental/template. Remember to change the relevant occurrences of 'syntax' to 'template'. Neat! I'm guessing, though, that I probably shouldn't release planet packages that depend on experimental-mumble… John Ryan On 09/16/2012 08:31 PM, John Clements wrote: I want to apply a transformation to a nested pattern element. To start with, suppose I have a (kind of useless) with-handlers that looks like this: (with-syntax ([((arg ...) ...) #`((clause.input ...) ...)]) et-cetera) That is, I've basically just renamed clause.input to arg. But now, I want to perform some transformation on the elements. I'd like to write this: (with-syntax ([((arg ...) ...) #`((#,(transform #'clause.input) ...) ...)]) et-cetera) .. but this fails, with the error new-style-signals.rkt:42:30: syntax: missing ellipsis with pattern variable in template in: clause.input I can certainly work around this, by abandoning the pattern-matching slickness and just using a bunch of syntax-lists, but it seems like there must be a nicer way. Am I missing some nifty trick? John _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] syntax parsing: must be a nice pattern-y way to do this
On Sep 17, 2012, at 11:27 AM, Ryan Culpepper wrote: On 09/17/2012 02:20 PM, John Clements wrote: On Sep 16, 2012, at 5:48 PM, Ryan Culpepper wrote: See 'define-template-metafunction' in syntax/parse/experimental/template. Remember to change the relevant occurrences of 'syntax' to 'template'. Neat! I'm guessing, though, that I probably shouldn't release planet packages that depend on experimental-mumble… I think it's fine if you're prepared to update the package when it changes. If I do remove syntax/parse/experimental/template, I'll mark it as deprecated for a release cycle or two first. I'm still not quite sold. In particular, I have students writing code against this planet package, and I've just recently had a situation where a student wanted to run his old code, and I was happy to be able to tell him to qualify his planet reference so as to avoid having to update his code; relying on a feature that later disappears reduces the chance that students will be able to run their code as-is three years from now. I really don't mean to be persnickety, here: another motivation is that I've already bitten the bullet and written the code that doesn't require define-template-metafunction :). John Ryan On 09/16/2012 08:31 PM, John Clements wrote: I want to apply a transformation to a nested pattern element. To start with, suppose I have a (kind of useless) with-handlers that looks like this: (with-syntax ([((arg ...) ...) #`((clause.input ...) ...)]) et-cetera) That is, I've basically just renamed clause.input to arg. But now, I want to perform some transformation on the elements. I'd like to write this: (with-syntax ([((arg ...) ...) #`((#,(transform #'clause.input) ...) ...)]) et-cetera) .. but this fails, with the error new-style-signals.rkt:42:30: syntax: missing ellipsis with pattern variable in template in: clause.input I can certainly work around this, by abandoning the pattern-matching slickness and just using a bunch of syntax-lists, but it seems like there must be a nicer way. Am I missing some nifty trick? John _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] What are single flonums good for?
On Sep 12, 2012, at 1:03 PM, Jay McCarthy wrote: On Wed, Sep 12, 2012 at 8:31 AM, Neil Toronto neil.toro...@gmail.com wrote: Compatibility with C code? Why not have the FFI convert them? Save space? I can see that. It won't help much if they're sent to math library functions, though. Those will convert them to flonums and usually box the converted values. I think these are big deals with respect to libraries that you deliver large float matrices to where you want to efficiently store a big f32vector rather than an f64vector. Examples of this include OpenGL where vector coordinates, colors, etc are typically floats and not doubles. Jay's concern is the same as mine; there are situations (getting rarer) where a huge c-style array of f32s is the only way to interact with a library. For instance, in the extremely popular JACK library (Golly, I wish it worked on windows…), all audio data is represented as 32-bit floating point values (from their web page). I haven't followed the conversation closely enough to understand the ramifications of the proposed change, though; my guess is that the ffi can still address such arrays, it's just that computing with these values will require coercion. I could be okay with that; based on my understanding of the IEEE floating-point spec, such a translation could be pretty fast; 32bit - 64bit looks like it would just be adding zeros, and 32bit to 64bit would require checking for exponent overflow; either way, this sounds like something that might be done on-chip by modern processors, and in fact might *already* be taking place in floating point 32-bit operations. (Anyone know whether Intel chips internally represent 32-bit floats as 64-bit ones?) John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Short-circuiting comprehensions
On Sep 14, 2012, at 1:14 PM, Robby Findler wrote: My $0.02: I find #:while and #:when to be too close, and #:until and #:unless even closer. More bike-shedding: I agree. In response to eli: I find the difficulty of reading break-when to be an adequate cost to pay to highlight the difference between just skip this one and stop the loop completely. Just to add my own tint to the can of paint, I would personally drop #:break-unless completely, and just make do with #:break-when, which I find quite a bit more readable. (To be fair, I'd also be very happy getting rid of unless altogether; I nearly always find (when (not …) …) more readable. John Robby On Fri, Sep 14, 2012 at 2:30 PM, Eli Barzilay e...@barzilay.org wrote: 5 hours ago, Carl Eastlund wrote: Has this been brought up before? I can't recall. Does anyone else run into the same issue? (I think that I brought this up when the comprehensions were first discussed, pointing at the similar tool I have in Swindle which makes implementing them very easy.) Four hours ago, Matthew Flatt wrote: Also, I think the names `#:while' and `#:until' are too close to `#:when' and `#:unless'. I suggest `#:break-when' and `#:break-unless'. Compare: (for*/list ([j 2] [i 10] #:when (i . . 5)) i) '(0 1 2 3 4 0 1 2 3 4) (for*/list ([j 2] [i 10] #:break-unless (i . . 5)) i) '(0 1 2 3 4) I imagine that `#:break-when' and `#:break-unless' are allowed among the clauses much like `#:when' and `#:unless', but also allowed at the end of the body. Is that what you had in mind? Sorry for the bike-shedding, but to me that `#:break-unless' is even harder to read than `#:until'. Possible explanation: break unless makes me parse two words and figure out how they combine, and while is something that I know without doing so. Another point to consider in favor of `#:while' and `#:until' is that they're extremely common names, so they're unlikely to be *that* problematic. (I intentionally left the typo in the first sentence as a demonstration of how it's confusing to read...) A different point is that maybe there should also be a `while' and `until' looping constructs in the language? (Whatever they're called.) Every once in a while (ahem) I want that when I write: (let loop () (when (more-work-to-do) (work!))) And it looks like this: (for (#:while (more-work-to-do)) (work!)) would not work in the same way that (for () (work!)) doesn't loop forever(?). -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Optimization Coach suggestion / question
I used the optimization coach for the first time today. First, a suggestion. I wrestled with it for about five minutes before I realized that it applied only to programs written in TR. An error message here would be *really* useful; I kept mousing over and clicking and unclicking things to get the results of the coach to show up. Second, I'm trying to see what difference inlining makes, using this program that basically just fills a vector with a sine wave. Turning on the coach for the program below suggests to me that either a) no inlining is occurring for the call to supply in the body of the loop, or b) the coach isn't displaying that information in a way I understand. Any hints? John #lang typed/racket (require racket/flonum) (define f (make-flvector (* 10 44100))) (define srinv (/ 1.0 44100.0)) (define k (* srinv 440.0 1/44100 2 pi)) (: supply (Integer Flonum - Void)) (define (supply i t) (flvector-set! f i (sin (* k t (time (for ([i (* 10 44100)]) (define i#i (exact-inexact i)) (supply i i#i))) smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Optimization Coach suggestion / question
On Sep 14, 2012, at 4:50 PM, Vincent St-Amour wrote: At Fri, 14 Sep 2012 15:39:22 -0700, John Clements wrote: I used the optimization coach for the first time today. First, a suggestion. I wrestled with it for about five minutes before I realized that it applied only to programs written in TR. OC works on programs in any language, but in untyped languages it only reports inlining information. An error message here would be *really* useful; I kept mousing over and clicking and unclicking things to get the results of the coach to show up. The issue here is that, if OC doesn't have anything to say, it displays its control panel, but nothing else. It should really at least show a message explaining that it has nothing to report. I'm adding this to my to-do list. Second, I'm trying to see what difference inlining makes, using this program that basically just fills a vector with a sine wave. Turning on the coach for the program below suggests to me that either a) no inlining is occurring for the call to supply in the body of the loop, or b) the coach isn't displaying that information in a way I understand. On git HEAD, OC reports that `supply' is inlined 4 out of 4 times. Inlining reporting was broken earlier this week as a result of changes to the logging system. I pushed a fix on Tuesday. Nice! Thanks. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] typed racket non-monotonic in scary way?
I was trying to write a function on natural numbers today, and came up with an example that scares me all to bits. This program: #lang typed/racket (: int-nat (Natural - Natural)) (define (int-nat n) (cond [(= n 0) 13] [else (- n 1)])) Does not type-check, because (- n 1) has type Integer rather than Natural. Well, too bad, but sort of okay. But then: #lang typed/racket (: int-nat (Integer - Natural)) (define (int-nat n) (cond [(= n 0) 13] [else (- n 1)])) *does* typecheck. AIIEE! As far as I can tell, Integer is a supertype of Natural, so I would expect that things that typecheck with Integer inputs should also typecheck with Natural inputs. Please please tell me this is a bug? I can imagine a world where it's not a bug, but the difficulty of using the type system would skyrocket if you have to consider *widening* types as well as narrowing them to get things to work. No? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] desired behavior of (in-directory …) when lacking permissions?
Currently, using the (in-directory …) sequence in a directory where there are unreadable directories causes a funny internal contract failure. Suppose I have directory /tmp/f, containing directory sekrit which I cannot read. Then this program: #lang racket (sequence-list (in-directory /tmp/f)) … produces this pair of errors: . . plt/collects/racket/private/for.rkt:1857:28: directory-list: could not open directory path: /tmp/f/sekrit system error: Permission denied; errno=13 . . car: contract violation expected: pair? given: #void The first one looks reasonable, but why wouldn't that error just abort the whole computation? It looks like there's a handler somewhere that eats this error but then tries to continue by passing #void rather than a list. The docs don't seem to have anything to say about this. Is this a bug? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #25302: master branch updated
On Aug 31, 2012, at 3:07 PM, mfl...@racket-lang.org wrote: mflatt has updated `master' from eed93825ab to 7b2e18afc5. http://git.racket-lang.org/plt/eed93825ab..7b2e18afc5 =[ 2 Commits ]== Directory summary: 11.6% collects/racket/private/ 49.7% collects/scribble/ 24.5% collects/scribblings/scribble/ 14.0% collects/tests/racket/ ~~ 9cfcf89 Matthew Flatt mfl...@racket-lang.org 2012-08-31 11:12 : | fix `in-directory' to properly propagate filesystem errors : M collects/racket/private/for.rkt | 10 +++--- M collects/tests/racket/file.rktl | 15 +++ Thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Racket backend for my Python visualizer
On Aug 25, 2012, at 4:28 PM, Philip Guo wrote: [Cc'ed Frank (Lingfeng), who is the student doing the actual implementation. Frank, please chime in with thoughts too …] Okay, I just pushed a version of Racket (f107c4d2658) that includes an external interface for the stepper, in plt/collects/stepper/external-interface.rkt. There's also an example of how you might use it, at plt/collects/stepper/examples/external-interface-exampler.rkt. The basic idea is that you give it a file path or a string, and a handler procedure that will be called on each breakpoint, and it annotates and runs it, calling your function on each breakpoint. The information passed to the handler is not terribly well-documented; let me give you a bit of background. The first argument is a mark list; these correspond to continuation frames, which are a lot like stack frames except that they're at expression-level granularity. Each frame contains a source expression, a label, and a list of local bindings. There are functions in plt/collects/stepper/private/marks that can extract the information from these marks. This value can be #f, for an 'expr-finished-break (see descriptions below). The second argument tells what kind of breakpoint it is. KINDS OF BREAKPOINTS: 'normal-break : occurs before an expression's evaluation. The before steps. 'result-exp-break : occurs before an expression's evaluation that is the after of some other step. E.G., the rhs of a cond, the body of a procedure, etc. 'result-value-break : occurs when a value is returned. Also corresponds to an after step. 'normal-break/values : occurs before an expression's evaluation, when that expression has intermediate values. For instance, an if's reduction occurs after its test value has been evaluated, so the before step for the if must already know about the test value. 'expr-finished-break : occurs when a top-level expression is complete. 'double-break : occurs as part of the evaluation of a let or local, after the evaluation of all the binding rhses. Called a double-break because it must generate two steps. The third argument is either false or a list of values; the result-value-break, normal-break/values, and expr-finished-break have lists of values here. When you try running this on a program bigger than (+ 3 4), you're going to notice several things: 1) There are going to be a LOT of breakpoints. Thousands and thousands of them, for fairly small programs. I'm guessing that you're going to want to cut down the number of these quite substantially. The first and easiest thing to do would be to filter out the 'result-exp and 'result-value breaks. 2) There are also lots and lots of breakpoints that occur during the evaluation of code that was inserted as part of macro expansion. The most obvious clue here is that these frames have line and column values of #f, but you can also test this directly by applying 'syntax-source' to the source expression referred to by the mark. 3) You're going to be interested in the bindings in the breakpoints, because those are what will allow you to extract the bindings and heap values that you need to build your heap representation. 4) In the presence of mutation, you're going to want to construct that representation before the handler returns, because subsequent program evaluation will mess up that heap. Actually, that kind of goes without saying, doesn't it? :) 5) Some programs are going to break. In particular, the stepper's annotation is well-tested only for programs written in the student languages, and I'm assuming that your visualization tool will operate on top-level programs starting with #lang racket. Let me know when you find programs that don't work. Also, in writing the last paragraph, I realize that I may have made an unwarranted assumption when I assumed that you'd be operating on top-level, #lang programs. It may well be that you're actually interested in student language programs, which would be good in the sense that the stepper's annotation is more robust for these programs, and a bit of extra work in the sense that I'd have to doctor the annotation to take this into account. I sincerely hope that you're able to make progress on this: I've seen that python visualizer output, and I would *love* to have something like that running for Racket programs. All the best, John Clements (cc: racket-dev) See below ... On Sat, Aug 25, 2012 at 4:10 PM, John Clements cleme...@brinckerhoff.org wrote: On Aug 25, 2012, at 2:22 PM, Philip Guo wrote: Great timing :) We're pretty stuck googling around for the right way to implement what we need. Basically we want something like this, except for Racket: http://docs.python.org/library/bdb.html The Online Python Tutor backend runs a Python script under bdb, which enables it to single-step through execution one line at a time and dump out the complete stack and heap contents
[racket-dev] number-of-bindings tooltip: thanks!
I see that you've added a tooltip on check-syntax hover that shows how many uses a variable has. Thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] DrDr - previous/next change buttons
On Jul 31, 2012, at 3:57 PM, Jay McCarthy wrote: Done :) Thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] DrDr - previous/next change buttons
On Jul 30, 2012, at 5:42 PM, Jay McCarthy wrote: DrDr now has green buttons to go between times the file's output has changed. Hopefully this will help you find problematic commits easier. Here's what I think is a super-minor request. When I view the diff of two DrDr outputs; say: http://drdr.racket-lang.org/diff/25068/25067/collects/tests/stepper/automatic-tests.rkt I see the new one on the left, and the old one on the right, which is a bit confusing to me. Perhaps what I'm really asking is that the link on the page http://drdr.racket-lang.org/25068/collects/tests/stepper/automatic-tests.rkt link to http://drdr.racket-lang.org/diff/25067/25068/collects/tests/stepper/automatic-tests.rkt instead (that is, with the old one appearing first in the URL). John Jay -- Jay McCarthy j...@cs.byu.edu Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay The glory of God is Intelligence - DC 93 _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Minor inconsistency in stepper interface: which way would be right?
Right now, the stepper and the ordinary interactions window disagree in one minor detail (well, one that I know about…): In the stepper, test cases (e.g. (check-expect (+ 3 4) 7)) reduce to a boolean, and leave a printed boolean value in the list of results. In the interactions window, though, nothing is printed for a completed test case. This seems like a minor point, but is the Interactions window behavior the right one? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3, second call
On Jul 25, 2012, at 4:28 PM, Ryan Culpepper wrote: * John Clements cleme...@brinckerhoff.org - Stepper Tests Done. Updates: - Stepper Updates: update HISTORY (updates should show v5.3 as the most current version; email me to pick the changes when they're done, or tell me if there are no such changes.) Done. Pull request included in commit message for 8ba976c0351701db0f45a John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #25088: master branch updated
On Jul 26, 2012, at 8:09 PM, Robby Findler wrote: How about Misc. minor bug fixes or something like that instead? Sure… done. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #24901: master branch updated
On Jun 25, 2012, at 4:34 PM, Matthias Felleisen wrote: The largest part of my commit today concerns a re-organization of the documentation for lang/htdp* functions. In the past we lived with lists of strings that were eventually turned into a quasi-defproc. I have scribblized the docs BUT this means having one set of defprocs kind of abstracted over where they should appear. Sadly defproc isn't made for this -- yet. Matthew said he'd repair it sometime soon so I went ahead and pushed. You should see Warnings (about multiple keys) but nothing else. I'm getting lots of failures from the stepper's automatic tests along the lines of, e.g., + being rendered as beginner-+ rather than +. I haven't taken a look at it yet, but I'm guessing this is related to the changes to object-name that appear to be mentioned in your commit messages. John -- Matthias On Jun 25, 2012, at 7:15 PM, matth...@racket-lang.org wrote: matthias has updated `master' from 94f1cb2127 to 4aefb18cab. http://git.racket-lang.org/plt/94f1cb2127..4aefb18cab =[ 12 Commits ]= Directory summary: 78.6% collects/lang/private/ 16.4% collects/lang/ 4.8% collects/ 5fbb660 Matthias Felleisen matth...@racket-lang.org 2012-06-24 17:40 : | first stage in documentation reorg ~~ 8d02bc8 Matthias Felleisen matth...@racket-lang.org 2012-06-24 17:41 : | first stage in documentation reorg (step 2) ~~ ee82103 Matthias Felleisen matth...@racket-lang.org 2012-06-24 17:42 : | first stage in documentation reorg (final step) ~~ 68f16f7 Matthias Felleisen matth...@racket-lang.org 2012-06-24 21:10 : | fixed bug in render-sections ~~ 5437708 Matthias Felleisen matth...@racket-lang.org 2012-06-24 21:12 : | switched documentation style to mine (stage 1) ~~ b5b918c Matthias Felleisen matth...@racket-lang.org 2012-06-25 13:06 : | restored object-name tests for the new doc system ~~ 5ea11fc Matthias Felleisen matth...@racket-lang.org 2012-06-25 19:11 : | fixed up docs to use new system; retested ~~ 4aefb18 Matthias Felleisen matth...@racket-lang.org 2012-06-25 19:12 : | fixed bug in provide and scribble (end of stage 1) _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] sequence syntax for (mlist #t #f …) ?
Reality check before I do something dumb and re-invent the wheel: I often want to write a for loop where the first element is treated specially. In such cases, it would be nice to have a sequence that had a #t and then an infinite number of #f's, so I could write (for ([s my-sequence] [first? true-then-always-falses]) …) Hey, no problem! Mutable lists can be used as sequences. But--and here I feel as though my brains have suddenly vanished--I can't think of the nice short way to write (mlist #t #f …) I'd be sort of okay with writing (mcons #t #0=(mcons #f #0#)) … but that's not allowed, either. Yes, of course I can do it the ugly way: (define p1 (mcons #f 'bogus)) (set-mcdr! p1 p1) (define true-then-falses (mcons #t p1)) Of course, it would be unbelievably easy to write an mlist syntactic form, but there *must* be a form that's been around for 150 years that already does this. Sorry to have forgotten Scheme, John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] sequence syntax for (mlist #t #f …) ?
On Jun 21, 2012, at 1:24 AM, Eli Barzilay wrote: An hour and a half ago, John Clements wrote: Yes, of course I can do it the ugly way: [...] (define p1 (mcons #f 'bogus)) (set-mcdr! p1 p1) (define true-then-falses (mcons #t p1)) What about (shared ([fs (cons #f fs)]) (cons #t fs)) (cons #t (shared ([fs (cons #f fs)]) fs)) Right! Shared is what I was thinking of. Many thanks. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] check-syntax hack: patch to show how many uses an identifier has
On Jun 21, 2012, at 8:58 AM, Matthias Felleisen wrote: +a lot; I'd like that Robby, what's the nastiness threshold for getting something like this into the distribution? - is it okay to have a menu item with no action? - is it okay to just say how many arrows--lines, really--radiate from this point, or would I need to go to the binding identifier and figure out how many uses the thing has? John On Jun 20, 2012, at 10:48 PM, John Clements wrote: When I'm using online check syntax, I often look at the lines leaving an identifier and wonder: is that just one line, or are there two or three? When lines overlap, there's no easy way to tell. This can be important in refactoring decisions, or in debugging (how many uses of this thing are there to check?). Let me show you what I mean: Screen Shot 2012-06-20 at 7.44.52 PM.png How many uses of 'x' are there? I decided to spend a few minutes digging through the source, and came up with this *EXTREMELY ROUGH* hack which helps me. : oiseau:...plt/collects/drracket/private/syncheck clements git diff gui.rkt diff --git a/collects/drracket/private/syncheck/gui.rkt b/collects/drracket/private/syncheck/gui.rkt index 5f691bd..e69b9c7 100644 --- a/collects/drracket/private/syncheck/gui.rkt +++ b/collects/drracket/private/syncheck/gui.rkt @@ -1069,6 +1069,11 @@ If the namespace does not, they are colored the unbound color. [var-arrows (filter var-arrow? arrows)] [add-menus (append (map cdr (filter pair? vec-ents)) (filter procedure? vec-ents))]) + (make-object menu-item% + (string-append (number-string (length arrows)) + arrows from this identifier) + menu + (λ (item evt) (void))) (unless (null? arrows) (make-object menu-item% (string-constant cs-tack/untack-arrow) Let me just emphasize how rough this hack is: when I use it on a use of an identifier rather than a definition, it just shows the number 1, because that's the number of arrows--that is, the one that goes back to the definition. Keeping its limitations in mind, though, it's really nice to be able to see: Screen Shot 2012-06-20 at 7.46.24 PM.png Would others find this useful? John _ Racket Developers list: http://lists.racket-lang.org/dev smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] [plt] Push #24868: master branch updated
On Jun 20, 2012, at 9:10 AM, Eli Barzilay wrote: Just now, Jon Rafkind wrote: This push resulted in the following failure (drdr will tell you the same thing in a few minutes probably). raco setup: error: during making for stepper/private raco setup: expand: unbound identifier in module raco setup: in: stepper-syntax-property raco setup: source: raco setup: xml-box.rkt:20:11 It killed the nightly build too. Re drdr: it's not too useful at the moment, due to a change I did to the props file (not the properties, just the code). Fortunately, the failure bugged only the current list of nobodies (Sam, Jay, and me). My recent push should get it to working state again. Yep, fixed this in #24872. I shouldn't admit this, but I'm happy that's the extent of the damage (seen thus far); I removed a bunch of references to the stepper collection entirely (from things like lang, deinprogramm, 2htdp) and I'm surprised there was as much apparently dead code as I found. Thanks again, John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] doc fix for with-contract?
It looks to me like the free-var-list is optional in uses of with-contract and define/contract. The documentation, though, suggests that this is not the case. Specifically, free-var-list is defined as: free-var-list = #:freevars ([id contract-expr] ...) | #:freevar id contract-expr It looks to me like this could easily be fixed by adding another (empty) option to this definition. Let me know if I should go ahead and add this. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] building WeScheme using Eclipse
I'm trying to build WeScheme locally, and wrestling with Eclipse. Specifically, I've completed all of the steps given in the README, and I'm now trying to figure out how to deploy it. It appears to me that I'll need to use Eclipse, in order to make use of the GWT resources that we installed as part of an earlier step. 1) Do I need to use eclipse to deploy it locally, or can I just do it using something else… tomcat? 2) If so, is there a reasonable way to import the whole project, instead of manually going through, deleting resources from a sample project and importing them directory-by-directory from my git repo? Many thanks, John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Fwd: Introducing Developer ID and Gatekeeper.
For what it's worth, I still have the info for our Apple Developer ID (it's 'plt'), and the password. Anyone want this info in order to sign forthcoming releases? John Begin forwarded message: From: Apple Developer develo...@insideapple.apple.com Subject: Introducing Developer ID and Gatekeeper. Date: April 30, 2012 12:00:36 PM PDT To: ap...@brinckerhoff.org The Mac App Store is the safest place for users to get software for their Mac, but we also want to protect users when they get applications from other places. Gatekeeper is a new feature in OS X Mountain Lion that helps protect users from downloading and installing malicious software. Signing your applications, plug-ins, and installer packages with a Developer ID certificate lets Gatekeeper verify that they are not known malware and have not been tampered with. Mac Developer Program members can sign applications with their Developer ID now to get ready for Gatekeeper. If you’re not already a member, join the Mac Developer Program today. Pre-release software, including information about pre-release software, is Apple Confidential Information and is subject to the terms of your Registered Apple Developer License Agreement. Unauthorized distribution or disclosure of Apple Confidential Information is prohibited. TM and copyright © 2012 Apple Inc. 1 Infinite Loop, MS 96-DM, Cupertino, CA 95014. All Rights Reserved / Keep Informed / Privacy Policy / My Apple ID You are receiving this email because you are a Registered Apple Developer who is opted-in to receive marketing or technical information. If you would prefer not to receive future communications from Apple Developer you may unsubscribe. smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] race setup tests gives wrong error message, best way to fix?
Apologies in advance if this is a known or fixed issue. Running raco setup tests gives the following error message: raco setup: given collection path: tests is not in canonical form (e.g., wrong case on a case-insensitive filesystem) === context === /Users/clements/plt/collects/setup/setup-unit.rkt:493:9 /Users/clements/plt/collects/setup/setup-go.rkt: [running body] /Users/clements/plt/collects/setup/main.rkt: [running body] /Users/clements/plt/collects/raco/main.rkt: [running body] This seemed crazy, so I grepped for the error message, and sure enough, I got this : (define top-level-plt-collects (if no-specific-collections? all-collections (check-against-all (apply append (map (lambda (c) (define elems (append-map (lambda (s) (map string-path (regexp-split #rx/ s))) c)) (define ccs (collection-ccs elems)) (when (null? ccs) ;; let `collection-path' complain about the name, if that's the problem: (apply collection-path elems) ;; otherwise, it must be an issue with different ways to ;; spell the name (error name-sym (error name-sym given collection path: \~a\ is not in canonical form (e.g., wrong case on a case-insensitive filesystem) (string-join c / ccs) x-specific-collections) … Note that the error message I saw is a fall-through case, when the given names don't appear in the hash table. I'm guessing that tests is explicitly excluded from this table some where (though it doesn't seem to be in this file). I see a couple of possible fixes. 1) Add a new table representing collections that aren't normally compiled but can be explicitly chosen, 2) provide a better error message by special-casing it here, 3) go back to automatically compiling tests :) John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] emscripten? (was: Re: Using clang to Build Racket on Mac OS X)
On Sep 10, 2011, at 6:33 PM, Will M. Farr wrote: Thanks, Matthew! It seems to build OK now. I missed the implication of this, the first time around. If I'm reading this correctly, it means that clang can compile racket, which is awfully close to being able to run Racket using an LLVM model such as emscripten, and making it run in the browser. In particular, I would expect the JIT to be totally broken, and that there would be a lot of painful parts related to linking to standard libraries, but the resulting program could actually do client-side compilation in a web browser, right? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Doc fix for make-argb?
The docs for make-argb read: Constructs a new argb value. The vector has four entries for each pixel, an alpha, red, green, and blue value. The int specifies the width of the image; the height is the size of the vector, divided by 4, divided by the width. This documentation doesn't specify whether the mapping from vector to coordinate is in row-major or column-major order. t propose adding a sentence to clarify: Constructs a new argb value. The vector has four entries for each pixel, an alpha, red, green, and blue value. The int specifies the width of the image; the height is the size of the vector, divided by 4, divided by the width. The values for pixel (x,y) are taken starting at position (y*width+x)*4 in the vector. Maybe you can do better? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] change abs to magnitude in rackunit^W everywhere?
I see that rackunit's check-= handles real numbers only, since it uses abs on the difference between the two. I want to use it on complex numbers, and it would seem that changing 'abs' into 'magnitude' would not change the non-error-signalling behavior, and would allow its use on complex numbers as well. Am I missing anything? If I don't hear back, I'll push the change in 24 hours or so. Thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Thanks for faster builds!
I recently completed a full build from source in 15-20 minutes; I think that's about *half* of what it used to take. Many thanks! John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v5.3
On Apr 18, 2012, at 8:00 AM, Ryan Culpepper wrote: Checklist items for the v5.3 release (using the v5.2.901.1 release candidate build) I'm confused by the OS X download options on the pre-release download page (http://pre.racket-lang.org/release/installers/). Specifically, one of the entries is labelled Mac OS X (32-bit 64-bit) I'm guessing this was supposed to be Mac OS X (Intel 64-bit) ? Apologies if I've missed discussion of this elsewhere. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] FYI only: core dump during file open
DrRacket just seg-faulted while trying to open a file after my choice in the dialog box. The stack trace blames an ffi call … objc_send ? Anyhow, JFYI. smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Oversight in type for path-string?
It looks like 'path-string?' is not labeled as a discriminator type. path-string? - : (Any - Boolean) #procedure:path-string? Is this just an oversight? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Oversight in type for path-string?
On Mar 21, 2012, at 3:20 PM, Sam Tobin-Hochstadt wrote: On Wed, Mar 21, 2012 at 5:36 PM, John Clements cleme...@brinckerhoff.org wrote: It looks like 'path-string?' is not labeled as a discriminator type. path-string? - : (Any - Boolean) #procedure:path-string? Is this just an oversight? Yes, that's just an oversight, although it's slightly more complicated than you'd think (because `(path-string? (string #\null))' is #f). Well, I just made do with (define-predicate ps? Path-String?), so this certainly isn't a major problem. John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Migrating the bug database to GitHub
On Mar 17, 2012, at 7:55 AM, Eli Barzilay wrote: The real issue is whether it's really alright with you... Currently, something that I do and I'm sure others do it to, is keep the bug in my mailbox with any followup discussions. In some cases the followups contain enough information so I'll keep only that and not the original. With the github thing, if you get to deal with a bug several days after it was posted, it will be a good idea to check the bug since there could have been clarifications that you're unaware of. And since attachments were mentioned: a possible situation is that someone posts a bug, the bug czar asks for some clarification, and the email reply has a screenshot which GH ignores. In that case you will need to get that attachment directly from one of the people. The outcome of this is that it's better to leave stepper bugs for you to deal with instead, and the bug czar role is minimized to just assigning bugs or maybe not even that and it gets eliminated. To clarify: I'm not arguing against a move because of this -- I think that it is a good thing overall, including not needed a czar. I just want the implications to be clear ahead of time. Okay, many thanks; this makes sense. John On Friday, March 16, 2012, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote: On Fri, Mar 16, 2012 at 7:19 PM, John Clements cleme...@brinckerhoff.org wrote: On Mar 16, 2012, at 3:56 PM, Sam Tobin-Hochstadt wrote: * The bug notification-turned-mailing-list interaction aspect of Gnats is mostly lost. GitHub sends out notifications when a bug is created, but it will *not* send out further comments unless you're participating in the discussion (i.e., you sent a comment on the issue). - This makes for the most major workflow change: instead of relying on your mailbox for all bug-related activity, you *will* need to use the GitHub (web) interface. Can you elaborate on this? I see that I won't automatically receive all e-mails on all bugs, but if that's all right with me, then when will I have to use the web-interface that I don't currently? Basically never. All of the things you can currently do without using the web interface (close bugs, reply to emails about bugs) will still be available. The only change is that you'll no longer be included in the discussions for bugs that aren't assigned to you and that you haven't said anything about. -- sam th sa...@ccs.neu.edu _ Racket Developers list: http://lists.racket-lang.org/dev -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://www.barzilay.org/ Maze is Life! smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Migrating the bug database to GitHub
On Mar 16, 2012, at 3:56 PM, Sam Tobin-Hochstadt wrote: * The bug notification-turned-mailing-list interaction aspect of Gnats is mostly lost. GitHub sends out notifications when a bug is created, but it will *not* send out further comments unless you're participating in the discussion (i.e., you sent a comment on the issue). - This makes for the most major workflow change: instead of relying on your mailbox for all bug-related activity, you *will* need to use the GitHub (web) interface. Can you elaborate on this? I see that I won't automatically receive all e-mails on all bugs, but if that's all right with me, then when will I have to use the web-interface that I don't currently? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] style guide on blank lines
The style guide has this to say about blank lines: 5.8 Spaces Don’t pollute your code with spaces at the end of lines and extraneous blank lines. This comes out pretty strongly against extraneous blank lines. In writing the code below, though, it seems to me that the blank lines aid readability, and that the version without them (below) just looks scary. Opinions? (To be fair, you really have to view the following in DrR, not in your e-mail program.) First, with extraneous blank lines: ;; flag-teachpack-requires : syntax nat - syntax ;; apply the 'stepper-skip-completely hint to all ;; teachpack requires. ;; -- it would be great to do this directly when the ;; requires are added, but they're not yet syntax there, ;; and this seems like the easiest way to fix it. (define (flag-teachpack-requires stx num-teachpacks) (syntax-case stx () [(mod name lang bodies-stx ...) (begin (define bodies (syntax-list #'(bodies-stx ...))) (when ( (length bodies) num-teachpacks) (error 'flag-teachpack-requires internal error: expected bodies to include teachpack requires, got: ~e bodies)) ;; these should be the teachpack requires: (define-values (teachpack-requires remaining-bodies) (split-at bodies num-requires)) (unless (andmap require-form? teachpack-requires) (error 'flag-teachpack-requires internal error: expected these to be teachpack requires: ~e teachpack-requires)) (define flagged-teachpack-requires (for/list ([tp-rq (in-list teachpack-requires)]) (stepper-syntax-property stx 'stepper-ignore-completely #t))) #'(mod name lang #,@flagged-teachpack-requires #,@remaining-bodies))])) Then, without them: ;; flag-teachpack-requires : syntax nat - syntax ;; apply the 'stepper-skip-completely hint to all ;; teachpack requires. ;; -- it would be great to do this directly when the ;; requires are added, but they're not yet syntax there, ;; and this seems like the easiest way to fix it. (define (flag-teachpack-requires stx num-teachpacks) (syntax-case stx () [(mod name lang bodies-stx ...) (begin (define bodies (syntax-list #'(bodies-stx ...))) (when ( (length bodies) num-teachpacks) (error 'flag-teachpack-requires internal error: expected bodies to include teachpack requires, got: ~e bodies)) ;; these should be the teachpack requires: (define-values (teachpack-requires remaining-bodies) (split-at bodies num-requires)) (unless (andmap require-form? teachpack-requires) (error 'flag-teachpack-requires internal error: expected these to be teachpack requires: ~e teachpack-requires)) (define flagged-teachpack-requires (for/list ([tp-rq (in-list teachpack-requires)]) (stepper-syntax-property stx 'stepper-ignore-completely #t))) #'(mod name lang #,@flagged-teachpack-requires #,@remaining-bodies))])) smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] style guide on blank lines
On Mar 13, 2012, at 11:10 AM, Matthias Felleisen wrote: Okay. I am adding Don't pollute your code with spaces at the end of lines. If you find yourself breaking long blocks of code with blank lines to aid readability, consider refactoring your program to introduce auxiliary functions so that you can shorten these long blocks of code. If nothing else helps, consider using (potentially) empty comment lines. ;; --- As soon as I have my racket back, I'll type set and release. I hate to suggest the obvious, but isn't it worth keeping a copy of the latest release--just downloaded from racket-lang.org---around for things like this? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Racket web server doesn't handle POST requests with 'Transfer-Encoding: chunked' ?
On Mar 9, 2012, at 12:18 PM, Jay McCarthy wrote: There is nothing going wrong with the supported features of the Web server. It's just that the Web server doesn't support any Transfer-Encoding other than the default of no encoding. From RFC2616: A server which receives an entity-body with a transfer-coding it does not understand SHOULD return 501 (Unimplemented), and close the connection. A server MUST NOT send transfer-codings to an HTTP/1.0 client. Am I right in thinking that we're falling afoul of this should, making us a conditionally compliant implementation of HTTP/1.1? John smime.p7s Description: S/MIME cryptographic signature _ Racket Developers list: http://lists.racket-lang.org/dev