[racket-dev] should saving to a new location retrigger automatic compilation?

2015-02-18 Thread 'John Clements' via dev-redirect
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

2015-02-04 Thread John Clements
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

2015-02-03 Thread John Clements
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

2015-01-28 Thread John Clements
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

2014-12-05 Thread John Clements
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

2014-12-04 Thread John Clements
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?

2014-11-14 Thread John Clements
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?

2014-10-22 Thread John Clements
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

2014-10-21 Thread John Clements
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?

2014-09-25 Thread John Clements
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

2014-08-26 Thread John Clements

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

2014-07-21 Thread John Clements

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

2014-07-01 Thread John Clements

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

2014-05-15 Thread John Clements

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

2014-04-18 Thread John Clements

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

2014-04-16 Thread John Clements
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!

2014-04-15 Thread John Clements
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

2014-04-10 Thread John Clements
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

2014-04-10 Thread John Clements

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

2014-04-10 Thread John Clements

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?

2014-03-11 Thread John Clements
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%?

2014-01-14 Thread John Clements
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?)

2014-01-04 Thread John Clements

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?

2013-12-31 Thread John Clements
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?)

2013-12-31 Thread John Clements
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

2013-12-29 Thread John Clements

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

2013-12-18 Thread John Clements

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)

2013-12-11 Thread John Clements

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

2013-11-26 Thread John Clements
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 ?

2013-11-22 Thread John Clements

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 ?

2013-11-21 Thread John Clements
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

2013-10-22 Thread John Clements

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?

2013-10-12 Thread John Clements

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?

2013-10-09 Thread John Clements
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

2013-10-07 Thread John Clements

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.

2013-09-30 Thread John Clements
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?

2013-09-27 Thread John Clements
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

2013-09-26 Thread John Clements

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?

2013-08-21 Thread John Clements
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

2013-08-20 Thread John Clements

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

2013-07-23 Thread John Clements

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

2013-07-23 Thread John Clements

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?

2013-05-30 Thread John Clements
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

2013-05-30 Thread John Clements

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

2013-05-23 Thread John Clements

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

2013-04-23 Thread John Clements

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...

2013-04-03 Thread John Clements
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

2013-01-21 Thread John Clements

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

2013-01-12 Thread John Clements
 
 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

2013-01-02 Thread John Clements
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

2013-01-02 Thread John Clements

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

2012-12-26 Thread John Clements

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

2012-12-13 Thread John Clements

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

2012-10-24 Thread John Clements
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

2012-10-22 Thread John Clements

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?

2012-10-16 Thread John Clements

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

2012-10-16 Thread John Clements

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)

2012-10-16 Thread John Clements

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)

2012-10-16 Thread John Clements

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

2012-10-12 Thread John Clements
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?

2012-10-11 Thread John Clements
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.

2012-10-10 Thread John Clements
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

2012-09-17 Thread John Clements

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

2012-09-17 Thread John Clements

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?

2012-09-14 Thread John Clements

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

2012-09-14 Thread John Clements

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

2012-09-14 Thread John Clements
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

2012-09-14 Thread John Clements

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?

2012-09-07 Thread John Clements
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?

2012-08-31 Thread John Clements
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

2012-08-31 Thread John Clements

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

2012-08-28 Thread John Clements

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!

2012-08-27 Thread John Clements
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

2012-07-31 Thread John Clements

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

2012-07-30 Thread John Clements

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?

2012-07-26 Thread John Clements
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

2012-07-26 Thread John Clements

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

2012-07-26 Thread John Clements

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

2012-06-26 Thread John Clements

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 …) ?

2012-06-21 Thread John Clements
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 …) ?

2012-06-21 Thread John Clements

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

2012-06-21 Thread John Clements

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

2012-06-20 Thread John Clements

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?

2012-06-19 Thread John Clements
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

2012-06-16 Thread John Clements
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.

2012-06-13 Thread John Clements
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?

2012-05-10 Thread John Clements
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)

2012-05-09 Thread John Clements

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?

2012-05-04 Thread John Clements
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?

2012-04-26 Thread John Clements
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!

2012-04-25 Thread John Clements
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

2012-04-19 Thread John Clements

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

2012-04-13 Thread John Clements
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?

2012-03-21 Thread John Clements
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?

2012-03-21 Thread John Clements

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

2012-03-17 Thread John Clements

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

2012-03-16 Thread John Clements

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

2012-03-13 Thread John Clements
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

2012-03-13 Thread John Clements

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' ?

2012-03-09 Thread John Clements

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


  1   2   3   4   >