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  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: /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] for loops with interleaved escape continuations

2014-07-01 Thread John Clements

On Jul 1, 2014, at 3:46 PM, Sam Tobin-Hochstadt  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  wrote:
>> If adding break&continue 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] Pre-Release Checklist for v6.1

2014-07-21 Thread John Clements

On Jul 17, 2014, at 5:03 PM, Ryan Culpepper  wrote:
> 
> * John Clements 
>  - 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] [racket] Performance. Higher-order function

2014-08-26 Thread John Clements

On Aug 10, 2014, at 10:06 AM, Matthias Felleisen  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 . 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] 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  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] Pre-Release Checklist for v6.1.1

2014-10-21 Thread John Clements
On Thu, Oct 16, 2014 at 6:13 AM, Ryan Culpepper  wrote:

> Checklist items for the v6.1.1 release
>   (using the v6.1.0.900 release candidate build)
>
> * John Clements 
>   - 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


[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


[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


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: /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 
wrote:

>
>
> On Thu Dec 04 2014 at 11:27:45 AM Matthias Felleisen 
> 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` .
>
> 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


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

[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


[racket-dev] Switching to Google groups: many thanks, keep it coming

2015-01-30 Thread John Clements
I want to thank 60 of you for signing up for the new google group manually;
limitations on bulk adds and bulk invites mean that transferring people by
hand will be time-consuming. (On the other hand, I'll probably get really
good at google's CAPTCHAs...)

Anyhow, if you have a moment and haven't yet done so, visit this link

https://groups.google.com/forum/#!forum/racket-dev/join

to sign up for the new group. At the urging of several list participants,
I'm going to wait a few more days for people to add themselves.

Thanks again!

John Clements
_
  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] 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] Ask TIOBE to lump Racket with Lisp/Scheme/Clojure?

2010-06-03 Thread John Clements
I happened across the old TIOBE PL monthly popularity contest today, and saw 
that "Lisp/Scheme/Clojure" has taken a huge jump and is now in the top 20. From 
an advertising standpoint, it would seem to make sense to me to ask them to 
lump Racket in with this category, unless we think we're immediately going to 
leap into the rankings as a solo entry.

So, does anyone mind if I write to TIOBE and ask them?

Um, *after* the release?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt-dev] Racket web page

2010-06-04 Thread John Clements

On May 20, 2010, at 1:31 PM, Matthew Flatt wrote:

> A few of us (Robby, Jay, Matthias, Eli, and I) have been working on the
> Racket web page. Here's what we've come up with, so far:
> 
>  http://www.cs.utah.edu/~mflatt/tmp/r/www/
> 
> Besides a different look, the main goal is to explain better what
> Racket is and why Racket is different.
> 
> We'd like to have more 7-line programs for the middle slideshow, so
> please contribute.
> 
> Otherwise, let's have feedback on the content first, please. Then we
> can discuss which shade of black to use for title bar. :)

There's a bug in the behavior of the popup.  To see it:

1) reload the URL
2) click on the "?" link that's part of the code sample, see this text:

Form and function names in the code are hyperlinked to documentation, so click 
on them for more information.

To run the example, install Racket, start DrRacket, paste the example program 
into the top area in DrRacket, and click the Run button. Alternatively, save 
the program to a file and run racket on the file.

To run the example, install Racket, start DrRacket, and paste the example 
program into the top area in DrRacket. When a program in a Scribble language is 
opened in DrRacket, a Scribble HTML button appears for rendering the document 
to HTML. Click it.

... note the presence of *both* flavors of the last paragraph.

3) Click the ">" link repeatedly, until you get to the scribble example.  Once 
you're there, notice that the redundant paragraph vanishes.
4) Now, click the "<" link.  The redundant paragraph is gone!

This looks like an uninitialized Javascript variable to me.

John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Final v5.0 build is ready

2010-06-05 Thread John Clements

On Jun 5, 2010, at 8:39 PM, Eli Barzilay wrote:

> The final v5.0 build is now ready at:
> 
>   http://pre.racket-lang.org/5.0/installers
> 
> It is a good idea to run quick tests with it to make sure that
> version related functionality is working fine.  (Specifically,
> PLaneT tests by Robby, and Dracula tests by Carl.)

The current README makes no mention of the DrScheme or MrEd executables that it 
contains, or of the transition.  After trying write a quick blurb, I started to 
question the need for including DrScheme in there at all.  I'm afraid it's just 
going to confuse things, especially since the DrScheme executable is a bit of a 
confusing mix: the menu bar says DrScheme, but the Interactions window says 
DrRacket. Why not just take it out?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] svn->git on plt web pages

2010-06-05 Thread John Clements
The web pages refer extensively to svn, including an 'svn.plt-scheme.org' page. 
 I'm guessing that updating this is on the to-do list, but waiting for the 
Racket release?

John




smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Final v5.0 build is ready

2010-06-05 Thread John Clements

On Jun 5, 2010, at 11:09 PM, Eli Barzilay wrote:

> On Jun  5, John Clements wrote:
>> 
>> The current README makes no mention of the DrScheme or MrEd
>> executables that it contains, or of the transition.  After trying
>> write a quick blurb, I started to question the need for including
>> DrScheme in there at all.  I'm afraid it's just going to confuse
>> things, especially since the DrScheme executable is a bit of a
>> confusing mix: the menu bar says DrScheme, but the Interactions
>> window says DrRacket. Why not just take it out?
> 
> The intention behind the current README is to have it be generic
> enough to fit all cases.  (Almost, there is very minor tweaking done
> in the distributions.)  The previous version of this would generate a
> custom readme for every distribution, which would potentially be more
> effective, but in practice it wasn't well maintained and some of the
> results went from odd to bad.

Re-reading my comment makes it clear that my suggestion didn't come across: I'm 
suggesting removing the DrScheme executable. I think that its continued 
presence is confusing, and that taking it out signals more clearly that 
DrRacket is the new DrScheme.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Wikipedia page

2010-06-08 Thread John Clements
I've taken a first crack at creating a 

Racket (programming language)

page in wikipedia, simply by copying the first few chunks of the PLT Scheme 
page.

This is a bit experimental, because it may be that Wikipedia has an existing 
mechanism for renaming, so I figured I'd just spend five minutes on it and wait 
for Wikipedia admins to tell me if I'm doing something redundant.

FWIW, there's also a DrScheme page to update and presumably a whole pile of 
references to PLT scheme, membership in various categories, etc.

John
 

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Wikipedia page

2010-06-08 Thread John Clements

On Jun 8, 2010, at 11:35 AM, Eli Barzilay wrote:

> On Jun  8, John Clements wrote:
>> I've taken a first crack at creating a 
>> 
>> Racket (programming language)
>> 
>> page in wikipedia, simply by copying the first few chunks of the PLT
>> Scheme page.
> 
> Thanks!
> 
> To explain what looks like an overexcited bang -- it was one of the
> items in my todo list.  One thing that I've seen is that you dropped
> .ss and .scm from the file suffixes, but I think that they should be
> left in?  Maybe there's a way to say that they're not common suffixes
> but related ones?
> 
> 
>> FWIW, there's also a DrScheme page to update and presumably a whole
>> pile of references to PLT scheme, membership in various categories,
>> etc.
> 
> Right -- I think that the right way to do that is once the Racket page
> has enough meat (= covers everything that the PLT Scheme page does),
> then the PLT Scheme page should turn into a redirection to Racket, and
> the Racket page would obviously have an entry about it being called
> PLT Scheme until now.
> 
> Similarly, the DrScheme page should be renamed to DrRacket with a
> forwarding thing and a note about the earlier name.
> 
> You've probably seen http://en.wikipedia.org/wiki/How_to_rename_a_page
> right?

I took a look at that page, and our situation (the underlying project was 
renamed) doesn't seem to fit their criteria, which all have to do with errors 
in encyclopedization.  My guess is therefore that it's better to create a new 
page, though I don't honestly know what the semantic differences between 
creating a page and moving it are; the history will be lost[*], obviously, but 
there may be other effects that make one preferable to the other.  It looked to 
me like creating a new page was the "conservative" choice.

 I just took a look at this page

http://en.wikipedia.org/wiki/Wikipedia:Requested_moves

though, and one relevant example jumps out at me, which is the change from 
"iPhone OS" to "iOS".  That was handled as a rename.

Okay, maybe a rename is the right way to go.

John



[*]Not completely lost, of course, because it still lives on the old PLT Scheme 
page.

> 
> -- 
>  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
>http://barzilay.org/   Maze is Life!



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Wikipedia page

2010-06-08 Thread John Clements

On Jun 8, 2010, at 11:44 AM, John Clements wrote:

> 
> On Jun 8, 2010, at 11:35 AM, Eli Barzilay wrote:
> 
>> On Jun  8, John Clements wrote:
>>> I've taken a first crack at creating a 
>>> 
>>> Racket (programming language)
>>> 
>>> page in wikipedia, simply by copying the first few chunks of the PLT
>>> Scheme page.
>> 
>> Thanks!
>> 
>> To explain what looks like an overexcited bang -- it was one of the
>> items in my todo list.  One thing that I've seen is that you dropped
>> .ss and .scm from the file suffixes, but I think that they should be
>> left in?  Maybe there's a way to say that they're not common suffixes
>> but related ones?
>> 
>> 
>>> FWIW, there's also a DrScheme page to update and presumably a whole
>>> pile of references to PLT scheme, membership in various categories,
>>> etc.
>> 
>> Right -- I think that the right way to do that is once the Racket page
>> has enough meat (= covers everything that the PLT Scheme page does),
>> then the PLT Scheme page should turn into a redirection to Racket, and
>> the Racket page would obviously have an entry about it being called
>> PLT Scheme until now.
>> 
>> Similarly, the DrScheme page should be renamed to DrRacket with a
>> forwarding thing and a note about the earlier name.
>> 
>> You've probably seen http://en.wikipedia.org/wiki/How_to_rename_a_page
>> right?
> 
> I took a look at that page, and our situation (the underlying project was 
> renamed) doesn't seem to fit their criteria, which all have to do with errors 
> in encyclopedization.  My guess is therefore that it's better to create a new 
> page, though I don't honestly know what the semantic differences between 
> creating a page and moving it are; the history will be lost[*], obviously, 
> but there may be other effects that make one preferable to the other.  It 
> looked to me like creating a new page was the "conservative" choice.
> 
>  I just took a look at this page
> 
> http://en.wikipedia.org/wiki/Wikipedia:Requested_moves
> 
> though, and one relevant example jumps out at me, which is the change from 
> "iPhone OS" to "iOS".  That was handled as a rename.
> 
> Okay, maybe a rename is the right way to go.

Followup: I renamed DrScheme to DrRacket without incident.  Deleting Racket 
(programming language) is harder, so I put in an admin request on this, and 
carried on editing the PLT Scheme content to refer to Racket.

A couple of questions:

1) In sentences such as "DrScheme is a part of PLT Scheme", I'm guessing this 
should turn into "DrRacket is a part of the Racket project", or something 
similar.

2) More generally, it appears that "PLT Scheme" should be replaced with 
"Racket", meaning that the PLT disappears. Yes?

3) The examples on the wikipedia page are utterly loathsome, leaving the reader 
with the impression that "hello world" requires ten lines of GUI garbage.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [racket] [scribble] rendering syntax

2010-06-09 Thread John Clements

On Jun 9, 2010, at 5:05 AM, Sam Tobin-Hochstadt wrote:

> On Tue, Jun 8, 2010 at 11:27 PM, Eric Tanter  wrote:
>> Yes, Carl got my point right. And yes, that's like showing square brackets 
>> in the stepper ;)
> 
> Right now, the two cases are slightly asymmetric, since there's a
> syntax property indicating the use of [] or {}, but none indicating
> the use of ', #', #`, etc.  Similarly there's no syntax property
> indicating the difference between (a b) and (a . (b)) (something I
> once tried to fix, but gave up on).

Wait... what!?

I had no idea. Well, that's *great* news!

Next question: is there a way to push this through pretty-print?  I looked for 
a mechanism in the docs, but didn't find one.

Perhaps the stepper should just forget about using pretty-print. Is the 
editor's indentation machinery exposed in a way that could be used by the 
stepper?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] TeachScheme! wikipedia page update

2010-06-16 Thread John Clements
I beat on the TeachScheme! wikipedia page, with reasonable but not stellar 
results.  In particular, sentences like "TeachScheme doesn't depend on Scheme" 
become a bit more opaque after the Scheme->Racket substitution.  

Anyone else who feels like doing 5 minutes of outreach is welcome to edit it.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] FYI (Fwd: racket should probably be tracked as a LISP/Scheme/Clojure)

2010-06-16 Thread John Clements


Begin forwarded message:

> From: Paul Jansen 
> Date: June 16, 2010 3:27:23 PM PDT
> To: John Clements 
> Subject: Re: racket should probably be tracked as a LISP/Scheme/Clojure
> Reply-To: paul.jan...@tiobe.com
> 
> Hi John,
> 
> Thanks for your feedback on our TIOBE index. I will add Racket to the 
> Lisp/Scheme/Closure grouping. I will thank you for your suggestion in the 
> next publication.
> 
> Regards,
> 
> Paul
> 
> -- 
> Paul Jansen - TIOBE Software, http://www.tiobe.com
> De Zaale 11 Postbus 80 5600 AB Eindhoven, the Netherlands
> Phone: +31 40 239 0870 Mobile: +31 617 400 620
> *** TIOBE Software - The Coding Standards Company ***
> 
> 
> 
> John Clements wrote:
>> PLT Scheme, one of the largest (the largest?) players in the Scheme world, 
>> has been renamed as "Racket".  Perhaps you would consider aggregating 
>> "Racket" references with the LISP/Scheme/Clojure camp?
>> 
>> I'd be happy to answer any questions you have about this change; you can 
>> also read about it at 
>> http://blog.plt-scheme.org/
>> 
>> Thanks!
>> 
>> John Clements
>> 
>>  



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Fwd: [The Racket Blog] New comment on Racket.

2010-06-17 Thread John Clements
extracted from this blog post, this gets my vote for official magnificently 
awesome Racket slogan:

"Racket: an organized Scheme"

John

Begin forwarded message:

> From: Kyle Smith 
> Date: June 17, 2010 7:43:22 PM PDT
> To: blog-po...@racket-lang.org
> Subject: [The Racket Blog] New comment on Racket.
> 
> Kyle Smith has left a new comment on your post "Racket": 
> 
> Racket is just an organized scheme. The name still brings up connotations of 
> something nefarious. What is in a name? I'm good with it if it continues to 
> run on a proper OpenBSD platform. Will Apple let something, so expressive as 
> ‘Racket’, the honor of being available from their apps store, for use with 
> the iPad? Now that would be the app to write, however, unless Apple has 
> changed their minds, no interpretive languages, that I'm aware of, have made 
> it to iTunes. I wonder if they would allow a syntax informed code editor to 
> be offered for the iPad. If they actually could keep folks from hacking their 
> product, then they might have my support; but they can't put enough 
> restraints on their SDK, to adequatelty maintain system security, so why 
> bother with the silly attempts at maintaining control. I believe the answer 
> can be seen with clarity if one looks at a five year chart of Apple stock. If 
> you wish to call it Racket, then let's make some noise with it. You really do 
> need to offer for sale Racket logo'd posters, cups, t-shirts, baseball hats, 
> and stickers for my four year old son.
> 
> --kyle 
> 
> 
> 
> Posted by Kyle Smith to The Racket Blog at June 17, 2010 10:43 PM



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] make xml structs transparent?

2010-06-18 Thread John Clements
Is there some good reason why the 'document' and 'prolog' structures in the xml 
library are not transparent? In the "just trying to see what's there" stage of 
programming, it would be a lot simpler not to have to dig through them with 
explicit accessors.

John 



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] xml/eliminate-whitespace : make "choose" a keyword argument?

2010-06-18 Thread John Clements
The xml function 'eliminate-whitespace' is nifty, but I claim that the 'choose' 
argument should really be an optional argument with the identity function as a 
default value. Are changes like this just too painful w.r.t. backward 
compatibility?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] python docstrings

2010-07-19 Thread John Clements
In the being-aware-of-your-competitors category:

I was sitting in the first TSRJ lecture this morning, and Kathi was introducing 
the notion of the purpose statement. One teacher in the audience raised her 
hand, and asked whether DrRacket had a python-like feature where users could 
query the system for the purpose statement associated with a given user-defined 
function.  

I wasn't familiar with Python's docstrings, so I checked them out.  In their 
current form, they're largely irrelevant, but I could definitely see it being 
useful to be able to fold purpose statements into the right-click menu in 
DrRacket.  Specifically, I see that there's a "jump to definition" entry in 
that right-click menu; perhaps it would make sense to add the purpose statement 
associated with a function directly to that menu on its instantiation.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Windows test bundle 29M vs. 47M for other platforms?

2010-07-19 Thread John Clements
On this page

http://pre.racket-lang.org/release/installers/

the reported size of the Windows installer is 29M, vs. about 47 or 48 M for 
other platforms.  I see that this was true of the 5.0 release as well, so this 
is probably expected, but I'm curious: why is this? Is it just that the other 
platforms are distributed uncompressed and rely upon dynamic compression?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Pre-Release Checklist for v5.0.1

2010-07-20 Thread John Clements

On Jul 19, 2010, at 10:47 AM, Ryan Culpepper wrote:
> * John Clements 
>  - Stepper Tests

done.

>  Updates:
>  - Stepper Updates: update HISTORY
>  (updates should show v5.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.)

Done, merge commits

eeecd40bd707d3260b2e12b0aa82cbdba6f1f7da

and

e0fd59dfa639b7061376fb6c27a4cc06cded8e5b

to 5.0.1 release.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] P4P: A Syntax Proposal

2010-07-30 Thread John Clements

On Jul 30, 2010, at 6:47 AM, Robby Findler wrote:

> On Fri, Jul 30, 2010 at 4:05 AM, Eli Barzilay  wrote:
>> IMO, this thing is missing the point (the usual "parens, ewww!" one),
>> as long as it ignores infix.
> 
> Seems to me that this point directly contradicts one of Shriram's
> design goals, namely showing that + is no more special than append or
> one of your own functions.

That may be true, but it doesn't counter Eli's point, which I think is entirely 
valid.  I had precisely the same reaction when I saw that code.

John 



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] x86_64 libs not available to 32-bit ffi, right?

2010-08-03 Thread John Clements
Reality check: I can't use the Racket ffi libraries to load 64-bit x86_64 
shared libs, can I?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] results of dlopen (hence ffi) persistent across evaluations?

2010-08-06 Thread John Clements
It appears that the results of ffi-lib are persistent across evaluations. 
Specifically, if I use ffi-lib to load a library, then go to the filesystem and 
replace this library with garbage, subsequent evaluations still cheerfully use 
the version that I just destroyed.

I'm guessing that this behavior is unavoidably inherited from the OS (this is 
mac OS X).  If so, may I add a warning to the ffi-lib docs that states this? If 
this is not something unavoidable, of course, I'd much rather just change it.

John
  

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] results of dlopen (hence ffi) persistent across evaluations?

2010-08-06 Thread John Clements

On Aug 6, 2010, at 3:28 PM, Eli Barzilay wrote:

> BTW, IIRC, there is a way to load a new copy of a library, but that
> could be pretty bad.  Alternatively, there's probably a way to unload
> a library, so perhaps this could be hacked -- somehow voiding all
> references to code from it.  But I'm not sure if there's a sane way to
> do that so other things don't break.  (Where breaking could also be
> reloading a library over and over.)

Sounds reasonable.  May I add this text to the docs for ffi-lib? :


Note! On UNIX-based platforms, loaded libraries are associated with Racket or 
DrRacket for the duration of the process; re-evaluating ffi-lib will not force 
a re-load of the corresponding library.



John

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Added Sierpinski example to wikipedia page

2010-08-16 Thread John Clements
I happened upon the Racket wikipedia page again, and yet again the "Hello 
World" section made me want to cry.  So I deleted it, and replaced it with the 
straightforward version of racket's "Hello, World!" program, viz.:

#lang racket
"Hello, World!"

...then I added the sierpinski example from the racket-lang front page.  I'm 
hoping that whoever wrote this code will either not object, or change it.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread John Clements

On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:

> We're attempting to write down coding guidelines for the project.
> 
> Here is a first attempt:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html

" and that you and your readers will so in the future"

Will so? Should that have been "will also"? Or "do so"?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-17 Thread John Clements

On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:

> We're attempting to write down coding guidelines for the project.
> 
> Here is a first attempt:
> 
> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
> 
> Please comment.

You write 

"As long as your code fulfills its promises and meets each of these criteria, 
you can push incrementally.

For example, I may be working on adding an exhaustive queue library to Racket. 
I imagine supporting 30 different functions across 5 different queue 
implementations. I don't have to wait to push until all 150 function 
implementations are documented, tested, and stressed. I can push whenever I 
make progress on each of the required points."

Either this is contradictory, or I'm misunderstanding it.  The first paragraph 
suggests that the code must meet each of the criteria; the second suggests that 
as long as it's *closer* to meeting the required criteria, it's fine.



John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] RFC: Coding Guidelines

2010-08-19 Thread John Clements

On Aug 17, 2010, at 4:27 PM, Jay McCarthy wrote:

> On Tue, Aug 17, 2010 at 2:24 PM, John Clements
>  wrote:
>> 
>> On Aug 17, 2010, at 3:57 PM, Jay McCarthy wrote:
>> 
>>> We're attempting to write down coding guidelines for the project.
>>> 
>>> Here is a first attempt:
>>> 
>>> http://faculty.cs.byu.edu/~jay/tmp/201008161509-guidelines.html
>>> 
>>> Please comment.
>> 
>> You write
>> 
>> "As long as your code fulfills its promises and meets each of these 
>> criteria, you can push incrementally.
>> 
>> For example, I may be working on adding an exhaustive queue library to 
>> Racket. I imagine supporting 30 different functions across 5 different queue 
>> implementations. I don't have to wait to push until all 150 function 
>> implementations are documented, tested, and stressed. I can push whenever I 
>> make progress on each of the required points."
>> 
>> Either this is contradictory, or I'm misunderstanding it.  The first 
>> paragraph suggests that the code must meet each of the criteria; the second 
>> suggests that as long as it's *closer* to meeting the required criteria, 
>> it's fine.
> 
> Maybe you can help me say it better. What I'm trying to get at is that
> 150 functions is perfect to me, but if I only promise 30 functions and
> meet the criteria for each of them, then I can commit even though it
> is not "perfect". Progress here is meeting the 4 points for each new
> function I push.

Okay, so every individual piece that's committed should meet the criteria.  I 
think that's the most sensible reading of what you wrote, but it also frightens 
me. I don't think that very much of our current code meets these criteria, and 
I'm worried that trying to enforce them is going to pull us into a sinkhole of 
no-new-functionality. I suppose that we should write down what we want before 
we figure out how to get there, though. 

As far as this piece text is concerned, I think I would replace that last 
sentence with essentially what you wrote in response:

>> For example, I may be working on adding an exhaustive queue library to 
>> Racket. I imagine supporting 30 different functions across 5 different queue 
>> implementations, for a total of 150 functions.  If I have just 30 of these 
>> documented, tested, and stressed, then it's fine for me to push.

 
John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] proposed doc change on memset docs

2010-08-24 Thread John Clements
The ffi's "memset" operation takes an optional "type" argument, but it's not 
clear what happens if the type isn't _byte.  Here are the docs:

(memset cptr byte count [type]) → void?
  cptr : cpointer?
  byte : byte?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
(memset cptr offset byte count [type]) → void?
  cptr : cpointer?
  offset : exact-integer?
  byte : byte?
  count : exact-nonnegative-integer?
  type : ctype? = _byte

Similar to memmove, but the destination is uniformly filled with byte (i.e., an 
exact integer between 0 and 255 inclusive).


So, if I run this code:

#lang racket

(require ffi/unsafe
 ffi/cvector)

(define buf (cvector _float 0.0 0.0 0.0 0.0))

(memset (cvector-ptr buf) #x13 4 _float)

(cvector->list buf)

... it's not obvious from the docs whether I'm going to get memory containing

#x13131313131313131313131313131313

or

#x1300130013001300

(or some other endian-ness).

Based on my experiments, the answer is the former; that is, a type is simply 
used to multiply the number of bytes that need to be set.

Okay then to modify the docs as follows?

"Similar to memmove, but the destination is uniformly filled with byte (i.e., 
an exact integer between 0 and 255 inclusive). If a "type" argument is present, 
the result is the same as calling memmove with no type argument where the count 
multiplied by the size in bytes of the given type."

Klunky, but gets the job done.

John






smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Racket stuffs

2010-08-26 Thread John Clements

On Aug 26, 2010, at 2:51 PM, Eli Barzilay wrote:

> On Aug 17, Eli Barzilay wrote:
>> So now I have these counts:
>> 
>>  http://tmp.barzilay.org/r1.png   4
>>  http://tmp.barzilay.org/r3.png   1
>>  http://tmp.barzilay.org/r4.png   2
> 
> Update on this: the first version (r1 above) was by far the most
> popular one, and it's the one on the zazzle store now.  I just got a
> batch of round stickers (with and without urls) and bumper stickers,
> and they look very nice (and they're from before the minor adjustment
> to the url line).
> 
> This is all at:
> 
>  http://www.zazzle.com/elibarzilay

Wait... seven dollars to ship a single bumper sticker!?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] stepper UI question

2010-08-26 Thread John Clements

On Aug 26, 2010, at 10:59 AM, Shriram Krishnamurthi wrote:

> Got it.  Thanks for all the inputs and for the great suggestion!


A couple of comments:

1) I could very well be mis-stating his position, but I think that Guillaume 
felt quite strongly that the reductions should occur in the definitions window. 
 Guillaume?

2) you describe showing steps only for "non-definitions"; that seems like a 
needless restriction.  Most definitions won't have steps, but those that do 
should probably be step-able. This will require at least some change to Robby's 
"click on a result" suggestion, since definitions don't currently produce 
output text. Perhaps this is why you (Robby?) suggested excluding these.

3) It's not clear how you want to handle test cases; they don't currently 
generate anything in the interactions window, and yet this sounds like the 
thing that you're *most* likely to want to be able to step.  For the sake of 
argument, let me propose something:

the result of "generate-report" (the hidden summary-generation call that 
check-expect inserts) should be a snip that shows up in the interactions 
window, called (e.g.) "Test Report".  Clicking on this (right-clicking on 
this?) should open a window showing the test cases in some tabular format, 
indicating which ones succeeded and which ones failed.  Selecting one of these, 
the user could choose to see its steps. 

Additional hidden benefit of this structure: because of the syntactic 
fol-de-rol that surrounds test cases, it should be fairly easy in such a 
tabular window to also show those test cases that didn't get run at all, 
because an earlier one caused a runtime error.

Finally, we probably want to think a bit about what happens on a runaway 
computation.  The current stepper handles this reasonably; it would be nice if 
the user could step through these computations to see what went wrong.  Most of 
my initial thoughts on how to handle this require unpleasantly significant 
changes to the way that the interactions window works.


John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] stepper UI question

2010-08-26 Thread John Clements

On Aug 26, 2010, at 5:23 PM, Shriram Krishnamurthi wrote:

> I know Guillaume proposed to do it in the context of the editor.  I'm
> unconvinced that that's the right way to go.  At any rate, integrating
> into an existing bit of infrastructure (def'ns or inter's) is going to
> be much more complex than an "off-line" prototype that people can
> critique.  So we should do that regardless.
> 
> You and Kathy raise good and interesting points.  This tells me that
> there is not yet a good answer to *where* the stepper should run.  I
> believe this is quite separable from *how* the stepper runs, ie, how
> it displays the sequence of expressions.  Since I feel that is
> currently the biggest problem with it, it seems wise that we focus on
> the latter for now.  Once we make some real progress on that
> high-order bit, we can see what percolates up.
> 
> Do others agree that this is the high-order bit?  If not (and perhaps
> even if so), can you articulate why?

I do agree.  Your original message seemed to be entirely focused on the *where* 
question, which I think is why it's what we've all been discussing.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] stepper UI question

2010-08-27 Thread John Clements

On Aug 26, 2010, at 11:09 PM, Ryan Culpepper wrote:
> 
> Another, less invasive, way of making the stepper-definition connection might 
> be on every step to scroll the definitions window and highlight the term from 
> which the redex is derived. For function application the function definition 
> could be highlighted too in a different color. The highlighting would require 
> some creativity for forms like cond (maybe de-highlight clauses as they're 
> eliminated?), but it would be a more incremental approach than forcing the 
> stepper UI into the definitions window.

This might be awesome, or it might be confusing; I can imagine students seeing 
the definitions window jumping around and at a minimum being distracted, or 
even think that the definitions were changing. I guess I'd want to see it, 
first.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] stepper UI question

2010-08-27 Thread John Clements

On Aug 27, 2010, at 3:14 PM, Neil Van Dyke wrote:

> John Clements wrote at 08/27/2010 05:38 PM:
>> On Aug 26, 2010, at 11:09 PM, Ryan Culpepper wrote:
>>   
>> 
>>> Another, less invasive, way of making the stepper-definition connection 
>>> might be on every step to scroll the definitions window and highlight the 
>>> term from which the redex is derived. For function application the function 
>>> definition could be highlighted too in a different color. The highlighting 
>>> would require some creativity for forms like cond (maybe de-highlight 
>>> clauses as they're eliminated?), but it would be a more incremental 
>>> approach than forcing the stepper UI into the definitions window.
>>> 
>>> 
>> 
>> This might be awesome, or it might be confusing; I can imagine students 
>> seeing the definitions window jumping around and at a minimum being 
>> distracted, or even think that the definitions were changing. I guess I'd 
>> want to see it, first.
>> 
> 
> If anyone wants to try out a simple stepper for Lisp-ish code that scrolls 
> your window to highlight the current expression in your actual source files, 
> your Emacs has EDebug:
> 
> http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/edebug.html
> 
> It actually only highlights if you have some kind of matching-paren 
> highlighting enabled; otherwise it just puts the cursor on the first 
> character of the expression.  My favorite for matching paren highlighting in 
> Emacs is to have this in my "~/.emacs", and to elsewhere configure my cursor 
> to be a full-size solid unblinking red background:
> 
> (setq show-paren-style 'parenthesis)
> (require 'paren)
> (show-paren-mode t)
> 
> In Emacs, experienced users are already accustomed to the current window 
> switching which file/buffer it's showing, so EDebug just does that when 
> moving between files.  I don't know whether that's appropriate for DrRacket.

I tried this out, and it did pretty much what I expected; thanks!

My earlier comment isn't suggesting that this isn't useful; it's asking whether 
doing this *simultaneously* with a separate display that's using substitution 
to evaluate an expression would cause cognitive overload.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] drdrdown?

2010-08-28 Thread John Clements
Is DrDr down?  The latest build I see on drdr.racket-lang.org is from 
2010-08-25.

Apologies if I missed an announcement.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] parallel raco setup failing on Linux machine?

2010-09-01 Thread John Clements
I'm trying to run 'make install' on a Linux VPS, and it's halting -- at 
different points -- with errors that look like this:

...
raco setup: made: framework
raco setup: made: browser/private
raco setup: made: framework/private
raco setup: made: games
raco setup: made: graphics
raco setup: made: graphics/scribblings
raco setup: made: frtime (FrTime)
raco setup: made: gui-debugger
match: no matching clause for (list (list (cc '(#) 
# "frtime (FrTime)" # 
# 
# '((lib 
"frtime") 1 0)) "scribblings...

 === context ===
/home/clements/plt/collects/racket/match/runtime.rkt:19:0: match:error
/home/clements/plt/collects/setup/parallel-do.rkt:102:69
/home/clements/plt/collects/setup/setup-unit.rkt:601:17: thunk

make[1]: *** [install-3m] Error 1
make[1]: Leaving directory `/home/clements/plt/src/build'
make: *** [install] Error 2
ESC]0;cleme...@li21-127: ~/plt/src/build^gcleme...@li21-127:~/plt/src/build$ 

FWIW, this is today's commit 

4c35af2eef7fe95efe89a465e221443b1b653702

.

I haven't taken a look at the source code, for setup, yet.

Any suggestions?

John

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] parallel raco setup failing on Linux machine?

2010-09-01 Thread John Clements

On Sep 1, 2010, at 1:55 PM, John Clements wrote:

> I'm trying to run 'make install' on a Linux VPS, and it's halting -- at 
> different points -- with errors that look like this:
> 
> ...
> raco setup: made: framework
> raco setup: made: browser/private
> raco setup: made: framework/private
> raco setup: made: games
> raco setup: made: graphics
> raco setup: made: graphics/scribblings
> raco setup: made: frtime (FrTime)
> raco setup: made: gui-debugger
> match: no matching clause for (list (list (cc '(#) 
> # "frtime (FrTime)" 
> # # 
> # '((lib 
> "frtime") 1 0)) "scribblings...
> 
> === context ===
> /home/clements/plt/collects/racket/match/runtime.rkt:19:0: match:error
> /home/clements/plt/collects/setup/parallel-do.rkt:102:69
> /home/clements/plt/collects/setup/setup-unit.rkt:601:17: thunk
> 
> make[1]: *** [install-3m] Error 1
> make[1]: Leaving directory `/home/clements/plt/src/build'
> make: *** [install] Error 2
> ESC]0;cleme...@li21-127: ~/plt/src/build^gcleme...@li21-127:~/plt/src/build$ 
> 
> FWIW, this is today's commit 
> 
> 4c35af2eef7fe95efe89a465e221443b1b653702
> 
> .

More info: the system log suggests that this is what happens when a process is 
killed for running out of memory (thanks, logcheck!). I'm guessing that the 
parallel build could observe and report this more transparently.

John

Here's the log, FWIW:

This email is sent by logcheck. If you no longer wish to receive
such mails, you can either deinstall the logcheck package or modify
its configuration file (/etc/logcheck/logcheck.conf).

System Events
=-=-=-=-=-=-=
Sep  1 16:41:58 li21-127 kernel: oom-killer: gfp_mask=0x201d2, order=0
Sep  1 16:41:58 li21-127 kernel:  [] out_of_memory+0x1c9/0x200
Sep  1 16:41:58 li21-127 kernel:  [] __alloc_pages+0x28f/0x310
Sep  1 16:41:58 li21-127 kernel:  [] 
__do_page_cache_readahead+0x139/0x2f0
Sep  1 16:41:58 li21-127 kernel:  [] __delayacct_blkio_end+0x2d/0x60
Sep  1 16:41:58 li21-127 kernel:  [] __wait_on_bit_lock+0x5b/0x70
Sep  1 16:41:58 li21-127 kernel:  [] sync_page+0x0/0x60
Sep  1 16:41:58 li21-127 kernel:  [] __lock_page+0x7e/0x90
Sep  1 16:41:58 li21-127 kernel:  [] filemap_nopage+0x2f2/0x3f0
Sep  1 16:41:58 li21-127 kernel:  [] __handle_mm_fault+0x1d4/0x18a0
Sep  1 16:41:58 li21-127 kernel:  [] mempool_free+0x77/0x90
Sep  1 16:41:58 li21-127 kernel:  [] elv_next_request+0x12a/0x210
Sep  1 16:41:58 li21-127 kernel:  [] bio_endio+0x40/0x80
Sep  1 16:41:58 li21-127 kernel:  [] do_blkif_request+0x29/0x3c0
Sep  1 16:41:58 li21-127 kernel:  [] mempool_free+0x77/0x90
Sep  1 16:41:58 li21-127 kernel:  [] blk_start_queue+0x6d/0xb0
Sep  1 16:41:58 li21-127 kernel:  [] blkif_int+0x198/0x230
Sep  1 16:41:58 li21-127 kernel:  [] do_page_fault+0x797/0xbb8
Sep  1 16:41:58 li21-127 kernel:  [] do_page_fault+0x0/0xbb8
Sep  1 16:41:58 li21-127 kernel:  [] error_code+0x2b/0x30
Sep  1 16:41:58 li21-127 kernel: Mem-info:
Sep  1 16:41:58 li21-127 kernel: DMA per-cpu:
Sep  1 16:41:58 li21-127 kernel: cpu 0 hot: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 0 cold: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 1 hot: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 1 cold: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 2 hot: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 2 cold: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 3 hot: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: cpu 3 cold: high 0, batch 1 used:0
Sep  1 16:41:58 li21-127 kernel: DMA32 per-cpu: empty
Sep  1 16:41:58 li21-127 kernel: Normal per-cpu:
Sep  1 16:41:58 li21-127 kernel: cpu 0 hot: high 186, batch 31 used:28
Sep  1 16:41:58 li21-127 kernel: cpu 0 cold: high 62, batch 15 used:51
Sep  1 16:41:58 li21-127 kernel: cpu 1 hot: high 186, batch 31 used:109
Sep  1 16:41:58 li21-127 kernel: cpu 1 cold: high 62, batch 15 used:60
Sep  1 16:41:58 li21-127 kernel: cpu 2 hot: high 186, batch 31 used:16
Sep  1 16:41:58 li21-127 kernel: cpu 2 cold: high 62, batch 15 used:45
Sep  1 16:41:58 li21-127 kernel: cpu 3 hot: high 186, batch 31 used:178
Sep  1 16:41:58 li21-127 kernel: cpu 3 cold: high 62, batch 15 used:34
Sep  1 16:41:58 li21-127 kernel: HighMem per-cpu: empty
Sep  1 16:41:58 li21-127 kernel: Free pages:4908kB (0kB HighMem)
Sep  1 16:41:58 li21-127 kernel: Active:60124 inactive:60041 dirty:0 
writeback:0 unstable:0 free:1227 slab:3459 mapped:17 pagetables:902
Sep  1 16:41:58 li21-127 kernel: DMA free:2104kB min:88kB low:108kB high:132kB 
active:3612kB inactive:3500kB present:16384kB pages_scanned:11649 
all_unreclaimable? yes
Sep  1 16:41:58 li21-127 kernel: lowmem_reserve[]: 0 0 504 504
Sep  1 16:41:58 li21-127 kernel: DMA32 free:0kB min:0kB low:0kB high:0kB 
active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
Sep  1 16:41:58 li21-127 k

[racket-dev] match/fail*: re-inventing the wheel for better error messages with match?

2010-09-02 Thread John Clements
Match is fantastic, and sometimes you want finer control over the error 
messages. This morning I whipped up a "match/fail*" macro, which successively 
matches against a sequence of patterns, and allows you to specify a separate 
fail message for each "layer".

It's a simple macro, and I give a use of it  (my use of it) below, followed by 
its simple definition.

FWIW, I *love* how check syntax shows the binding arrows from the pattern 
variables to the uses, outside of the defining clause.  

Is there something like this already in an existing library? If not, would this 
be useful to anyone?

John

p.s.: the use of syntax-parse in the definition of the macro was awesome, and 
produced at least one really nice error message for me.


;; first-line-checker : string -> (or/c string symbol)
;; returns a string, indicating an error message, or 'success,
;; indicating success.
(provide first-line-checker)
(define (first-line-checker first-line)
  (match/fail* 'success
[(tokenize-string first-line) `("public" ,rest ...) "This function 
signature must begin with the word \"public\"."]
[rest `(,(? type-name? ty) ,rest ...) (format "After the word public, you 
need a type name.")]
[ty "int" "This function's return type must be \"int\"."]
[rest `(,pre ... "(" ,args ... ")" ,leftover ...) "A function header must 
contain a pair of parentheses around the argument list."]
[leftover `() "There shouldn't be anything after the right-paren (\")\")."]
[pre `(,name) (if (empty? pre)
  "There must be a function name between the type of the 
function and the argument list."
  "The function name (a single word) is the only thing that 
comes between the type of the function and the argument list.")]
[name "getApproxAge" "The name of the function should be \"getApproxAge\"."]
[args `(,arg1 ... "," ,arg2 ...) "You need a comma in the argument list to 
separate the two arguments."]
[arg1 `(,arg1ty ,arg1name) "The first argument should consist of a type and 
a name (exactly two words)."]
[arg1ty (? type-name? _) "The first part of the first argument must be a 
type."]
[arg1ty "int" "The first argument should be of type \"int\"."]
[arg1name "birthYear" "The name of the first argument should be 
\"birthYear\"."]
[arg2 `(,arg2ty ,arg2name) "The second argument should consist of a type 
and a name."]
[arg2ty (? type-name? _) "The first part of the second argument must be a 
type."]
[arg2ty "int" "The second argument should be of type \"int\"."]
[arg2name "birthYear" "The name of the second argument should be 
\"birthYear\"."]))

;; the match/fail macro.  
;; A use of match/fail contains a single 'success' value
;; followed by a bunch of fail clauses.  Each fail clause
;; matches a value against a pattern and signals the given
;; error if it fails.  If it succeeds, it goes on to the 
;; next clause.  Note that pattern variables bound in each
;; pattern may be used in the remaining clauses.
(define-syntax (match/fail* stx)
  (define-syntax-class match/fail-clause
#:description "match/fail clause"
;; pat:expr *can't* be right here...
(pattern (val:expr pat:expr fail:expr)))
  
  (syntax-parse stx
[(_ retval) #'retval]
[(_ retval:expr clause:match/fail-clause more-clauses ...)
 #`(match clause.val 
 [clause.pat (match/fail* retval more-clauses ...)]
 [fail clause.fail])]))

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] typed/scheme n00b question

2010-09-04 Thread John Clements
I'd like to write a typed/racket or typed/racket/base program that uses 
"file-or-directory-modify-seconds". I get this error:

Type Checker: untyped identifier file-or-directory-modify-seconds imported from 
module  in: file-or-directory-modify-seconds

If this function were acquired using a 'require', I see that I could use 
'require/typed' to associate a type with it.  I don't see how to apply this to 
functions that come in as part of the language.

I tried various decorations to wrap the use of the function in checks, but then 
realized that the type checker wasn't complaining that the value had the 'Any' 
type, but instead that the value was untyped, which suggests that type-futzing 
(checking that it's a procedure, etc.) was unlikely to help.

What's the (presumably obvious?) solution to this?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [racket-bug] all/11166: stepper index off by one

2010-09-07 Thread John Clements

On Sep 7, 2010, at 6:56 AM, mlsm...@cs.vassar.edu wrote:

> A new problem report is waiting at
>  http://bugs.racket-lang.org/query/?cmd=view&pr=11166
> 
> Reported by Marc Smith for release: 5.0.1
> 
> *** Description:
> When stepping through a program in BSL, the stepper shows current progress, 
> e.g., 
> 0/3, 1/3, 2/3
> But since the step numbers start at 0, the progress only goes to (n-1)/n, and 
> not n/n when the user has stepped through the entire program.
> I didn't notice this situation, but my students did during class, which 
> became their first lesson in 0-based indexing (for better or worse).
> Thanks! Marc

That was a deliberate choice, though I could be convinced that it was the wrong 
one; I think I was trying to mirror the behavior of the current "search" 
command.

Any other opinions?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Q. about "live" snips

2010-09-07 Thread John Clements
I'm writing code for beginners that produces "sound" values.  I'd like to 
render these values as snips that have a start and a stop button.  

My first experiment looked like this:

#lang racket

(require racket/gui)

(define f (make-object image-snip% 
"/Users/clements/plt/collects/icons/mini-plt.xpm"))

(define (g)
  (send f load-file "/Users/clements/plt/collects/icons/j.gif"))


This "worked" in the sense that the value was rendered graphically, but "didn't 
work" in the sense that calling (g) didn't change an already-displayed image. 
Viz:

<> 

This suggests to me that it would be hard to implement a "sound-player-snip" 
that updated itself to display its status.

My hope is that I'm wrong, and there's some easy way to make snips "live" in 
this sense.

Any help greatly appreciated.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Shared-instantiation modules

2010-09-10 Thread John Clements
Seems like a FAQ, but:

I want to associate a single "sound player" with a drscheme process.  When 
student code runs, it needs to send messages to that sound player.  I want to 
make sure there's only one running at a time.

The first thing that pops into my head is some kind of "shared-require" form, 
but I don't see such a thing.

The second thing that pops into my head is a tool; I understand how I can set 
up a tool so that it gets run only once at startup, and creates a value that 
gets associated with every DrRacket frame.  Unfortunately, I can't figure out 
the second part of the equation: how does a user program then connect to the 
DrRacket frame to get the value? I don't want to make the user click some extra 
button every time they run their program, and I *really* don't want to mess 
around with language levels and manipulating the user's source code.

Basically, I just want a process-level global value.  I must be missing 
something really obvious, here.

Thanks,

John





smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Shared-instantiation modules

2010-09-10 Thread John Clements

On Sep 10, 2010, at 1:48 PM, Ryan Culpepper wrote:

> The way the rackunit tool does it (to make the rackunit gui DrRacket-aware) 
> is to attach a module into the user namespace on every execution by 
> overriding the 'reset-console' method of drracket:rep:text%. See 
> rackunit/tool.rkt for the code.
> 
> Then you can have a module/teachpack that just requires the attached module.

Good Gravy!  It would have taken me *weeks* to figure that out. Especially the 
bit about making the shared link module written in the #%kernel language. Yikes!

It works like a charm.

Many thanks,

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Shared-instantiation modules

2010-09-10 Thread John Clements

On Sep 10, 2010, at 3:16 PM, Robby Findler wrote:

> FWIW, this is one path that tools can use to circumvent DrRacket's
> property (well, the property we work towards anyways) that no program
> can cause DrRacket itself to crash or freeze. So if you do provide
> things to the user's program in this manner, please try to keep that
> invariant in mind.

Would it help to create a fresh eventspace for the gui object to run on? 

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Shared-instantiation modules

2010-09-10 Thread John Clements

On Sep 10, 2010, at 8:17 PM, Eli Barzilay wrote:

> On Sep 10, Robby Findler wrote:
>> FWIW, this is one path that tools can use to circumvent DrRacket's
>> property (well, the property we work towards anyways) that no program
>> can cause DrRacket itself to crash or freeze. So if you do provide
>> things to the user's program in this manner, please try to keep that
>> invariant in mind.
> 
> Actually, for John's case I think that what he really needs is to be
> able to break more than just drracket...  There was a plan at some
> point to have a single process-global hash table which he'd be able to
> use for cases where some external resource is concerned -- and this
> sounds like what is really needed here.  For example, he'll need it if
> he wants to make sounds at syntax time.  [This is also related to some
> huge and bloody flamewar on c.l.s a few years ago, re the ability to
> implement IO buffering in racket.]

Sounds at syntax time

:)

I certainly hadn't thought about that, and it seems unlikely that my 
first-quarter students will be clamoring for it, either.

Nevertheless, it's true that a process-global hash table for external resources 
is more or less what I was thinking about.

The question is (for the moment) moot, though, because it looks like the tool 
interface does everything I need.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] threads starve when file dialog opened. Places or GRacket2 solves?

2010-09-15 Thread John Clements
As the program below illustrates on OS X, threads (and eventspaces and ...) 
stop when a file dialog is open.  I'm guessing that places can fix this, by 
actually putting something in another thread. Is there any chance that GRacket2 
will fix this magically?

John



#lang racket

(require racket/gui)

(parameterize ([current-eventspace (make-eventspace)])
  (queue-callback
   (lambda ()
 (let loop ()
   (printf "abc\n")
   (sleep 1)
   (loop)

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] rename + changes => bad? (was: Fwd: [plt] Push #21110: master branch updated)

2010-09-17 Thread John Clements
Oof... it looks like doing a rename plus a few changes pretty effectively hides 
those changes, though I can dig them out with 'git annotate'.  Do we have a 
policy (or should we have) a policy stating that you shouldn't put a rename and 
modifications to that file in the same commit?

John

Begin forwarded message:

> From: cleme...@racket-lang.org
> Date: September 17, 2010 10:19:37 AM PDT
> To: dev@racket-lang.org
> Subject: [plt] Push #21110: master branch updated
> 
> clements has updated `master' from 04defa4937 to a095ebc326.
>  http://git.racket-lang.org/plt/04defa4937..a095ebc326
> 
> =[ 1 Commits ]==
> 
> Directory summary:
> 100.0% collects/test-engine/
> 
> ~~
> 
> a095ebc John Clements  2010-09-17 10:18
> :
> | added format arg to printf to avoid corner-case printf bugs, rackety changes
> :
>  M collects/test-engine/racket-tests.rkt |2 +-
>  M collects/test-engine/test-display.scm |2 +-
>  R collects/test-engine/{test-engine.scm => test-engine.rkt} (99%)
> 
> =[ Overall Diff ]===
> 
> collects/test-engine/racket-tests.rkt
> ~
> --- OLD/collects/test-engine/racket-tests.rkt
> +++ NEW/collects/test-engine/racket-tests.rkt
> @@ -5,7 +5,7 @@
>  scheme/match
>lang/private/continuation-mark-key
>  (only scheme/base for memf findf)
> - "test-engine.scm"
> + "test-engine.rkt"
>"test-info.scm"
>  )
> 
> 
> collects/test-engine/test-display.scm
> ~
> --- OLD/collects/test-engine/test-display.scm
> +++ NEW/collects/test-engine/test-display.scm
> @@ -6,7 +6,7 @@
>  framework
>  string-constants
>  "test-info.scm"
> - "test-engine.scm"
> + "test-engine.rkt"
>"print.ss"
>(except-in deinprogramm/signature/signature signature-violation) ; 
> clashes with test-engine
>deinprogramm/quickcheck/quickcheck)
> 
> *** See above for renames and copies ***



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] rename + changes => bad? (was: Fwd: [plt] Push #21110: master branch updated)

2010-09-17 Thread John Clements

On Sep 17, 2010, at 11:03 AM, Sam Tobin-Hochstadt wrote:

> On Fri, Sep 17, 2010 at 1:36 PM, John Clements
>  wrote:
>> Oof... it looks like doing a rename plus a few changes pretty effectively 
>> hides those changes, though I can dig them out with 'git annotate'.  Do we 
>> have a policy (or should we have) a policy stating that you shouldn't put a 
>> rename and modifications to that file in the same commit?
> 
> I believe that this is an issue with Eli's email formatting script,
> and not with git itself (the github diff is fine:
> http://github.com/plt/racket/commit/a095ebc326aa35b5b19f314080855db5d55ed49b

Github seems to do a better job than 'git diff' or 'git show' with these; both 
of these simply showed me an entire file of lines added and an entire file of 
lines deleted.

John




smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] speeding up 16-bit integer adds

2010-09-23 Thread John Clements
I'm trying to add together big buffers. The following code creates two big fat 
buffers of 16-bit integers, and adds them together destructively. It looks to 
me like this code *could* run really fast, but it doesn't; this takes about 8.5 
seconds. Changing + to unsafe-fx+ has no detectable effect.  Is there 
allocation going on in the inner loop? I'd hoped that since an _sint16 fits 
safely in 31 bits, that no memory would be allocated in the inner loop. Grr! 
Any suggestions? (I ran a similar test on floats, and C ran about 64x faster, 
about a tenth of a second).

Doc pointers appreciated as always,

John

#lang racket 

(require ffi/unsafe)

(define (make-buffer-of-small-random-ints len)
  (let ([buf (malloc _sint16 len)])
(for ([i (in-range len)])
  (ptr-set! buf _sint16 i 73))
buf))

(define buf-len (* 44100 2 200))

(define b1 (make-buffer-of-small-random-ints buf-len))
(define b2 (make-buffer-of-small-random-ints buf-len))

(time
 (for ([i (in-range buf-len)])
   (ptr-set! b1 _sint16 i 
 (+ (ptr-ref b1 _sint16 i)
(ptr-ref b2 _sint16 i)

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] speeding up 16-bit integer adds

2010-09-23 Thread John Clements

On Sep 23, 2010, at 7:55 PM, Matthew Flatt wrote:

> I think the problem is that the `ptr-ref' and `ptr-set!' operations are
> slow. They are slow because they not yet inlined by the JIT, and
> they're not yet inlined because they have complicated APIs (including a
> "pointer" datatype with many variants).
> 
> I haven't worked out a way to make them faster or a way to provide
> faster variants, but it's on my list.

Okay, thanks.  FWIW, my attempt to use the s16vector variants performs 
similarly; perhaps these primitives call the same code.

John Clements
 

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] speeding up 16-bit integer adds

2010-09-23 Thread John Clements

On Sep 23, 2010, at 8:16 PM, Matthew Flatt wrote:

> One more thought: Do you get to pick whether you use 16-bit integers or
> 64-bit floating-point numbers? The `flvector-' and `f64vector-'
> operations are inlined by the JIT and recognized for unboxing, so using
> flonum vectors and operations could be much faster than using raw
> pointers and 16-bit integers.

Well, that's an option, albeit a somewhat unappetizing one; as the 44100 in my 
code no doubt signaled, I'm reading and writing sound data here, and both 
16-bit ints and 32-bit floats are fairly common. 64-bit floats will be another 
factor of 2 in memory, for a total of 42 megabytes per minute.

I ran some tests, using flvectors and unsafe operations everywhere. (Code 
below.)

My tests called for 400 seconds of audio, or 282 Megabytes, and this made 
DrRacket flustered.  Restarting and running with half that size yielded (quite 
variable) times between 1 and 3 seconds, so that appears about twice as fast as 
the fixed-point one.

I'm tempted to write a little C code, but then of course I have to compile it 
separately for every darn platform.

Thanks again for your help,

John


#lang racket

(require ffi/unsafe
 racket/flonum
 racket/unsafe/ops)

(define (make-buffer-of-small-randoms len)
  (let ([buf (make-flvector len)])
(for ([i (in-range len)])
  (unsafe-flvector-set! buf i 0.73))
buf))

(define buf-len (* 44100 2 100))

(define b1 (make-buffer-of-small-randoms buf-len))
(define b2 (make-buffer-of-small-randoms buf-len))

(time
 (for ([i (in-range buf-len)])
   (unsafe-flvector-set! b1 i
 (unsafe-fl+ (unsafe-flvector-ref b1 i)
 (unsafe-flvector-ref b2 i)

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] speeding up 16-bit integer adds

2010-09-23 Thread John Clements

On Sep 23, 2010, at 9:46 PM, John Clements wrote:

> 
> On Sep 23, 2010, at 8:16 PM, Matthew Flatt wrote:
> 
>> One more thought: Do you get to pick whether you use 16-bit integers or
>> 64-bit floating-point numbers? The `flvector-' and `f64vector-'
>> operations are inlined by the JIT and recognized for unboxing, so using
>> flonum vectors and operations could be much faster than using raw
>> pointers and 16-bit integers.
> 
> Well, that's an option, albeit a somewhat unappetizing one; as the 44100 in 
> my code no doubt signaled, I'm reading and writing sound data here, and both 
> 16-bit ints and 32-bit floats are fairly common. 64-bit floats will be 
> another factor of 2 in memory, for a total of 42 megabytes per minute.
> 
> I ran some tests, using flvectors and unsafe operations everywhere. (Code 
> below.)

Update before going to bed; re-running the C tests with doubles everywhere and 
the same setup (simply adding together two big buffers) took about half a 
second, so in fact in this instance Racket is less that 10x slower, which is as 
fast as I would expect it to be.  So basically, it sounds like the flvectors 
are the way to go, if I can stomach the memory usage.

Thanks again,

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] doc update to ffi/cvector; hopefully factual

2010-09-25 Thread John Clements
Based on my experiments, I added this to the docs (not pushed until I'm ready 
to stop work). Let me know if it's not true:

uccello:~/plt/collects/scribblings/foreign clements$ git diff cvector.scrbl
diff --git a/collects/scribblings/foreign/cvector.scrbl 
b/collects/scribblings/foreign/cvector.scrbl
index 750989d..6c4f2a6 100644
--- a/collects/scribblings/foreign/cvector.scrbl
+++ b/collects/scribblings/foreign/cvector.scrbl
@@ -25,7 +25,8 @@ needed.}
 @defproc[(make-cvector [type ctype?] [length exact-nonnegative-integer?]) 
cvector?]{
 
 Allocates a C vector using the given @scheme[type] and
-...@scheme[length].}
+...@scheme[length]. The resulting vector is not guaranteed to 
+contain any particular values.}
 
 
 @defproc[(cvector [type ctype?] [val any/c] ...) cvector?]{



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] File is really large (> 5 MB), really open?

2010-09-26 Thread John Clements
I accidentally opened a sound file in DrRacket today; cue six minutes of 
thrashing and computer unhappiness.  Would it be okay if I added a second-check 
dialog to DrRacket that checked the size of a file before opening it, and asked 
for confirmation before opening files larger than, say, 5MB? 

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] u8vector->cpointer documented but unimplemented

2010-09-26 Thread John Clements
The function u8vector->cpointer is documented, but doesn't exist; this is 
presumably because the u8vector functions are actually byte-string functions, 
but it's not clear to me whether the absence of u8vector->cpointer is an 
oversight or whether it would violate abstractions in bad ways and hence simply 
shouldn't exist.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] File is really large (> 5 MB), really open?

2010-09-26 Thread John Clements

On Sep 26, 2010, at 9:58 PM, Jake Eakle wrote:

> I would humbly suggest that this dialog should, in order of ease-to-implement
> 
> a) display the size of the file,
> b) let the user know why they might not wish to proceed, and
> c) give some indication of how much memory they should probably have in order 
> to expect reasonable performance.

Sounds good to me: go for it!

John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] safe version of racket/unsafe/ops?

2010-09-27 Thread John Clements
I'm sure I'm just missing something obvious here, but is there a library that 
provides things like "unsafe-vector-length" that are actually references to the 
safe versions? I have a core dump occurring in (someone else's) unsafe code, 
and I'd much rather just import a different library than go through and take 
out the "unsafe" everywhere.  I know that TR has such a library (mutatis 
mutandis).  If it doesn't already exist, could I create 

racket/unsafe/safe-ops

?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] safe version of racket/unsafe/ops?

2010-09-27 Thread John Clements

On Sep 27, 2010, at 3:45 PM, Robby Findler wrote:

> How about prefix-in with "unsafe-" as the prefix?

You still have to specify the right set of functions, right? But yes, that's 
all I'm thinking of.

John

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] safe version of racket/unsafe/ops?

2010-09-27 Thread John Clements

On Sep 27, 2010, at 8:14 PM, Robby Findler wrote:

> I was thinking of something like this:
> 
>> (require (prefix-in unsafe- racket/fixnum))
>> (unsafe-fx+ #f #f)
> fx+: expects type  as 1st argument, given: #f; other arguments were: 
> #f

Right, but there are lots of unsafe-ops (e.g.: unsafe-vector-length); if I'm 
working on a large file that uses racket/unsafe/ops, I'd like to just toggle it 
to racket/unsafe/actuallynotunsafeops to get better error messages.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt] Push #21156: master branch updated

2010-09-28 Thread John Clements

On Sep 28, 2010, at 8:23 AM, Eli Barzilay wrote:

> Can we please not have this??  The whole point of having uniform names
> is that you can use require/provide things easily so there's no need
> for a library.

Sure, I don't feel strongly about it.  Done.

To be clear, my use case is this: I'm trying to debug a seg fault in a large 
library, with >500 uses of 'unsafe-' operators.  I want to see whether using 
the corresponding safe variants eliminates the crash.  The global search and 
replace is a bit of a pain; replacing racket/unsafe/ops with 
racket/unsafe/safe-ops is much easier.

Naturally, though, you can always roll your own as needed.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] [plt] Push #21156: master branch updated

2010-09-28 Thread John Clements

On Sep 28, 2010, at 10:09 AM, Eli Barzilay wrote:

> An hour ago, John Clements wrote:
>> 
>> On Sep 28, 2010, at 8:23 AM, Eli Barzilay wrote:
>> 
>>> Can we please not have this??  The whole point of having uniform names
>>> is that you can use require/provide things easily so there's no need
>>> for a library.
>> 
>> Sure, I don't feel strongly about it.  Done.
> 
> Thanks(!)
> 
> I should have clarified further -- what we have at the momemt is a
> consisten use of an "unsafe" part in the path for potentially
> segfaulting functionality.  So having some unsafe/safe thing doesn't
> make much sense (and begs the question about undebugging some things
> with unsafe/safe/unsafe).
> 
> In any case, I think that something that would have made you happier
> is for the `unsafe/foo' libraries to provide the same name as the safe
> ones.  This way you'd only need to toggle the `unsafe/' prefix on or
> off.  (I'd like that change too, but we're probably deep enough in the
> current setup to change that...)

I thought about this, but I really like the current setup, where the 
unsafe-ness must be indicated at the use of the function.  I think this is 
especially true of common primitives like "vector-length".  If I were debugging 
a piece of code, it would never occur to me that an ordinary-looking call to 
'vector-length' might actually be unsafe.

> 
> 
>> To be clear, my use case is this: I'm trying to debug a seg fault in
>> a large library, with >500 uses of 'unsafe-' operators.  I want to
>> see whether using the corresponding safe variants eliminates the
>> crash.  The global search and replace is a bit of a pain; replacing
>> racket/unsafe/ops with racket/unsafe/safe-ops is much easier.
>> 
>> Naturally, though, you can always roll your own as needed.
> 
> First, I think that what was suggested earlier should work -- changing
> this:
> 
>  (require unsafe/foo)
>  ->
>  (require (prefix-in unsafe- foo))

This doesn't work for (require racket/unsafe/ops); that's why I wanted to add 
it.

> 
> But the more common use case (which I've done in a number of places)
> is to use `foo' first, make sure the code runs and write a ton of
> tests, then turn the require into one that *drops* the `unsafe-'
> prefix.

This frightens me, for the reasons I describe above.

> 
> A slightly different approach is in `racket/private/sort' -- define
> names that are used throughout, and switch the definition from a safe
> one to an unsafe one.

That sounds like what you described before, though perhaps I'm not 
understanding you.


John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] random-access file reading

2010-09-28 Thread John Clements
I want to read a chunk from the middle of a 50-megabyte file.  As far as I can 
see, there are no random-access file primitives currently in DrRacket.  Also, I 
don't see a "skip-bytes", so it looks like I should be allocating a junk buffer 
and then repeatedly calling read-bytes to read the skipped portion into the 
junk buffer.  

Tell me if there's a simpler way to do this; doc pointers always appreciated.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Racket runs on 64-bit ubuntu, right?

2010-10-05 Thread John Clements
I have a student who hasn't succeeded in running compiled-from-source DrRacket 
on 64-bit ubuntu.  Specifically, he claims it dumps core with


SIGSEGV MAPERR si_code 1 fault on addr 0x4
Aborted


on startup.  I have *not* tried to verify this myself, so he's almost certainly 
made a minor mistake.  I'm writing this just in case one of you has a knee-jerk 
"oh yeah, that doesn't work"  to give me.  Otherwise, please ignore this e-mail.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] moving collection, broken check syntax

2010-10-05 Thread John Clements
I just moved a collection out of my collects directory, and clicking the "check 
syntax" button produces this internal error:

procedure application: expected procedure, given: #f; arguments were: 
'scribblings

 === context ===
/Users/clements/plt/collects/setup/xref.rkt:14:2: for-loop
/Users/clements/plt/collects/setup/xref.rkt:13:0: get-dests
/Users/clements/plt/collects/setup/xref.rkt:43:0: load-collections-xref
/Users/clements/plt/collects/racket/promise.rkt:154:7
/Users/clements/plt/collects/racket/private/more-scheme.rkt:274:2: 
call-with-exception-handler


... I'm not going to bother submitting this as a bug report because I think I 
can probably work around it by deleting 'compiled' subdirectories. Ignore this 
unless it's an easy fix, and tell me if you'd like me to try to reproduce it.

John

smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] single-instantiation trick: kludgy workaround for planet packages?

2010-10-05 Thread John Clements
A couple of weeks ago, you showed me the trick that rackunit uses to allow 
single-instantiation of a modules.  I'm now trying to do this
for a planet package, and it looks like I have to change the required module 
from being a relative to being an absolute path.  That is:

(require (prefix-in drlink: private/drracket-link))

must become

(require (prefix-in drlink: (planet "drracket-link.rkt" ("clements" 
"rsound.plt") "private")))

This works, but seems extremely fragile.  Does it make sense to you that this 
would be required?  Without it, I get the error below:


namespace-attach-module: unknown module (in the source namespace): 
#

 === context ===
/Users/clements/plt/collects/drracket/private/rep.rkt:1660:6: 
initialize-console method in ...cket/private/rep.rkt:508:4
/Users/clements/plt/collects/drracket/private/unit.rkt:4755:4: 
create-new-drscheme-frame
/Users/clements/plt/collects/drracket/private/main.rkt:663:0: make-basic
/Users/clements/plt/collects/drracket/tool-lib.rkt: [running body]
/Users/clements/plt/collects/drracket/private/drracket-normal.rkt: [running 
body]
/Users/clements/plt/collects/drracket/drracket.rkt: [running body]


semi-happy,

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] single-instantiation trick: kludgy workaround for planet packages?

2010-10-05 Thread John Clements

On Oct 5, 2010, at 3:25 PM, Ryan Culpepper wrote:

> I seem to have mangled my response right before sending it. Here it is again, 
> hopefully straightened out.
> 
> On 10/05/2010 03:59 PM, John Clements wrote:
>> A couple of weeks ago, you showed me the trick that rackunit uses to allow 
>> single-instantiation of a modules.  I'm now trying to do this
>> for a planet package, and it looks like I have to change the required module 
>> from being a relative to being an absolute path.  That is:
>> 
>> (require (prefix-in drlink: private/drracket-link))
> 
> I assume (hope) you meant
>  (require (prefix-in drlink: "private/drracket-link.rkt"))
> 
> for the relative require.

yes, of course. My mistake.

>> must become
>> 
>> (require (prefix-in drlink: (planet "drracket-link.rkt" ("clements" 
>> "rsound.plt") "private")))
>> 
>> This works, but seems extremely fragile.  Does it make sense to you that 
>> this would be required?  Without it, I get the error below:
> 
> From what I recall, the call to namespace-module-attach must use the correct 
> absolute module path, but the require can be relative. I confirmed that 
> that's how the last PLaneT version of schemeunit that included the tool 
> (version (2 12)) did it.
> 
> It looks like you're using a PLaneT development link. Perhaps that's the 
> source of the problem?
> 
> How about dropping the following code into drracket-link.rkt so it prints out 
> its (absolute) resolved module path when it gets required from the tool.
> 
>  (eprintf "drracket-link.rkt = ~s\n"
>   (resolved-module-path-name
>(variable-reference->resolved-module-path
> (#%variable-reference

wait... isn't that part of the error message I attached earlier?  Viz:


namespace-attach-module: unknown module (in the source namespace): 
#

=== context ===
/Users/clements/plt/collects/drracket/private/rep.rkt:1660:6: 
initialize-console method in ...cket/private/rep.rkt:508:4
/Users/clements/plt/collects/drracket/private/unit.rkt:4755:4: 
create-new-drscheme-frame
/Users/clements/plt/collects/drracket/private/main.rkt:663:0: make-basic
/Users/clements/plt/collects/drracket/tool-lib.rkt: [running body]
/Users/clements/plt/collects/drracket/private/drracket-normal.rkt: [running 
body]
/Users/clements/plt/collects/drracket/drracket.rkt: [running body]



John 
> ;; --
> 
> Another thing to consider, if you're going to be distributing this code via 
> PLaneT, is that users will have to restart DrRacket after installing the 
> package so the tool can take effect.
> 
> Ryan



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] no symlinks in planet links (was: Re: single-instantiation trick: kludgy workaround for planet packages?)

2010-10-06 Thread John Clements

On Oct 5, 2010, at 7:37 PM, Ryan Culpepper wrote:

> John Clements wrote:
>> On Oct 5, 2010, at 3:25 PM, Ryan Culpepper wrote:
>>> 
>>> It looks like you're using a PLaneT development link. Perhaps that's the 
>>> source of the problem?
>>> 
>>> How about dropping the following code into drracket-link.rkt so it prints 
>>> out its (absolute) resolved module path when it gets required from the tool.
>>> 
>>> (eprintf "drracket-link.rkt = ~s\n"
>>>  (resolved-module-path-name
>>>   (variable-reference->resolved-module-path
>>>(#%variable-reference
>> wait... isn't that part of the error message I attached earlier?  Viz:
>> namespace-attach-module: unknown module (in the source namespace): 
>> #
> 
> No, that's based on the absolute module path you passed to namespace-attach 
> module.
> 
> What I'm wondering about is, when you use the relative require, what does the 
> module think its resolved module path is. That's what the expression above is 
> designed to show.

Fooey.  Okay, here's what I get:

pcp062719pcs:~/git-clements clements$ drracket-link.rkt = 
#
namespace-attach-module: unknown module (in the source namespace): 
#

...

The difference between these is a symbolic link from ~/clements/planet-collects 
to ~/git-clements/clements/planet-collects.

 aaand, sure enough, re-creating the link using a fully-expanded path 
solves this problem.

So, it looks like planet is broken wrt planet-links containing symbolic links.  
Maybe you could solve this by just putting a fully-expand-path-mumble somewhere 
very early in the signal chain? ... Hmm, actually that might not be such a 
great idea; you break the abstraction of the symbolic link from the standpoint 
of the user.

Thanks!

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Racket runs on 64-bit ubuntu, right?

2010-10-07 Thread John Clements

On Oct 5, 2010, at 10:37 AM, Kevin Tew wrote:

> I build on 64bit ubuntu every day.
> a gdb backtrace would be helpful.
> 
> gdb> handle SIGSEGV nostop noprint
> gdb> run
> 
> Kevin

I finally got a reply from the student. Here's what he said:

> Ok, sorry this took so long, but I had to do the ritual restoring of grub 
> after installing windoze.
> 
> The contents of the terminal: I highlighted my input, and also the error I 
> get when I try just running drracket.
> 
> 
> Note; I did not run a backtrace on drracket, but gracket, which drracket 
> links to. When I tried to run a backtrace on drracket it said it was not an 
> executable, so I read the contents of drracket and it just links to gracket. 
> 
> tm...@brutus:~$ gdb /home/tmill/racket/plt-5.0.1.7/bin/gracket
> GNU gdb (GDB) 7.2-ubuntu
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later 
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> ...
> Reading symbols from /home/tmill/racket/plt-5.0.1.7/bin/gracket...done.
> (gdb) handle SIGSEGV nostop noprint
> SignalStopPrintPass to programDescription
> SIGSEGV   NoNoYesSegmentation fault
> (gdb) run
> Starting program: /home/tmill/racket/plt-5.0.1.7/bin/gracket 
> [Thread debugging using libthread_db enabled]
> [New Thread 0x746d7710 (LWP 8906)]
> SIGSEGV MAPERR si_code 1 fault on addr 0x4
> 
> Program received signal SIGABRT, Aborted.
> 0x75e72ba5 in raise (sig=)
> at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> 64../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> in ../nptl/sysdeps/unix/sysv/linux/raise.c
> 
> From Tony

This sure doesn't *look* like the font issue that Matthew mentioned

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Racket runs on 64-bit ubuntu, right?

2010-10-07 Thread John Clements

On Oct 7, 2010, at 3:25 PM, Kevin Tew wrote:

> I should have added that the student also needs to type
> gdb> backtrace
> to get a full backtrace.
> 
> a full backtrace will be more informative.

Duh, yes.  

Here's the student's backtrace.  And yes, I now see that it *does* look like 
the font issue that Matthew mentioned.  Are there any known workarounds? Add 
fonts? Remove fonts? Move to a different font manager?

John

cc: Tony Miller

(gdb) bt
#0  0x75e72ba5 in raise (sig=)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x75e766b0 in abort () at abort.c:92
#2  0x0074b84b in fault_handler (sn=2201, si=0xaf26f0, ctx=0x6)
at ../../../racket/gc2/sighand.c:93
#3  
#4  0x77e5838e in XF86DRIQueryVersion () from /usr/lib/fglrx/libGL.so.1
#5  0x77e58529 in XF86DRIQueryExtension ()
   from /usr/lib/fglrx/libGL.so.1
#6  0x77e57e3c in ?? () from /usr/lib/fglrx/libGL.so.1
#7  0x77e3751f in ?? () from /usr/lib/fglrx/libGL.so.1
#8  0x77e338d1 in ?? () from /usr/lib/fglrx/libGL.so.1
#9  0x77e33aae in glXChooseVisual () from /usr/lib/fglrx/libGL.so.1
#10 0x004adbce in GetWindowVisual (cfg=0x72dfb850,
offscreen=0 '\000')
at ../../../gracket/gc2/../../wxxt/src/DeviceContexts/WindowDC.cc:3459
#11 0x004ae725 in wxGetGLCanvasVisual (cfg=0x0)
at ../../../gracket/gc2/../../wxxt/src/DeviceContexts/WindowDC.cc:3576
#12 0x004a3963 in wxCanvas::Create (this=, panel=
0x731ea9c0, x=, y=,
width=30, height=30, style=67240064, name=0x72dfb178 "", gl_cfg=0x0)
at ../../../gracket/gc2/../../wxxt/src/Windows/Canvas.cc:146
#13 0x004a3e75 in wxCanvas::gcInit_wxCanvas (
---Type  to continue, or q  to quit---
this=, parent=0x731ea9c0, x=-1, y=-1,
width=, height=, style=67240064,
name=0x72dfb178 "", gl_cfg=0x0)
at ../../../gracket/gc2/../../wxxt/src/Windows/Canvas.cc:61
#14 0x004cd2dc in os_wxCanvas_ConstructScheme (n=9, p=0x73b94d18)
at ../../../gracket/gc2/../wxs/wxs_cnvs.cxx:1396
#15 0x005675db in scheme_do_eval (obj=0x73b26d68, num_rands=9,
rands=0x73b94d18, get_value=1)
at ../../../racket/gc2/../src/eval.c:9225
#16 0x77ff5c19 in ?? ()
#17 0x7fffbd60 in ?? ()
#18 0x752f4778 in ?? ()
#19 0x7fffb338 in ?? ()
#20 0x0009 in ?? ()
#21 0x0007 in ?? ()
#22 0x73b94de8 in ?? ()
#23 0x71bb2bb0 in ?? ()
#24 0x73b94d30 in ?? ()
#25 0x7fffb3b0 in ?? ()
#26 0x731335fa in ?? ()
#27 0x00620370 in ?? () at ../../../racket/gc2/../src/list.c:1219
#28 0x73ea5b2d in ?? ()
#29 0x7fffbd60 in ?? ()
---Type  to continue, or q  to quit---
#30 0x752f4778 in ?? ()
#31 0x7fffb398 in ?? ()
#32 0x7fffb368 in ?? ()
#33 0x0007 in ?? ()
#34 0x73b95018 in ?? ()
#35 0x72abf488 in ?? ()
#36 0x73b94db8 in ?? ()
#37 0x7fffb410 in ?? ()
#38 0x731335fa in ?? ()
#39 0x7fffb410 in ?? ()
#40 0x70ae05b0 in ?? ()
#41 0x7fffbd60 in ?? ()
#42 0x752f4778 in ?? ()
#43 0x in ?? ()




smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Racket runs on 64-bit ubuntu, right?

2010-10-13 Thread John Clements

On Oct 7, 2010, at 4:45 PM, Matthew Flatt wrote:

> At Thu, 7 Oct 2010 16:23:33 -0700, John Clements wrote:
>> Here's the student's backtrace.  And yes, I now see that it *does* look like 
>> the font issue that Matthew mentioned.
> 
> Actually, this looks more like an OpenGL issue. I don't have any
> immediate ideas, but that's a new lead.
> 
> 
>> #4  0x77e5838e in XF86DRIQueryVersion () from 
>> /usr/lib/fglrx/libGL.so.1
>> #5  0x77e58529 in XF86DRIQueryExtension ()
>>   from /usr/lib/fglrx/libGL.so.1
>> #6  0x77e57e3c in ?? () from /usr/lib/fglrx/libGL.so.1
>> #7  0x77e3751f in ?? () from /usr/lib/fglrx/libGL.so.1
>> #8  0x77e338d1 in ?? () from /usr/lib/fglrx/libGL.so.1
>> #9  0x77e33aae in glXChooseVisual () from /usr/lib/fglrx/libGL.so.1
>> #10 0x004adbce in GetWindowVisual (cfg=0x72dfb850,
>>offscreen=0 '\000')
>>at ../../../gracket/gc2/../../wxxt/src/DeviceContexts/WindowDC.cc:3459

Thanks for your help. Tony now reports:

On Oct 13, 2010, at 10:00 PM, amille49 wrote:

> DrRacket runs fine now for me on 64 Bit Ubuntu. I just did a clean
> install. I had been getting seg faults and the culprit seems to be my
> graphics driver which was all messed up.


John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] question about your change to run-teaching-languages.rkt

2010-10-14 Thread John Clements
Back on October 11, you made a change to run-teaching-languages.rkt that works 
absolutely fine with the stepper.

...but it breaks the stepper's testing harness. Ugh.  The problem, IIUC, is 
that the expansion of the teaching-language programs refer to a module, 
test-engine/racket-tests, that doesn't actually exist at 
plt/collects/test-engine, and is instead dynamically associated with the 
namespace by DrRacket before running the student program.  That is, IIUC. So, 
in order for the command-line racket tests to run correctly, they must also 
attach that module to the evaluation namespace.  Unfortunately, my ham-fisted 
attempt to add this to the test harness:

(namespace-attach-module outer-namespace 'test-engine/racket-tests 
(current-namespace))

... didn't work.  Actually, I was intrigued by the change.  It changed failures 
like this:

test-sequence: steps do not match
   given: #(struct:error-result "require: namespace mismatch; reference (phase 
0) to a module \"/Users/clements/plt/collects/test-engine/racket-tests.rkt\" 
that is not available (phase level 0)")
expected: (before-after ((hilite (cond (true 3) (else (and true true) 
((hilite 3)))

... into errors like this:

test-sequence: steps do not match
   given: #(struct:error-result "link: module mismatch, probably from old 
bytecode whose dependencies have changed: variable not provided (directly or 
indirectly) from module: 
\"/Users/clements/plt/collects/test-engine/racket-tests.rkt\" accessed from 
module: 'stepper-module-name-18307 at source phase level: 0")
expected: (before-after ((if (hilite (if true false true)) false true)) ((if 
(hilite false) false true)))

I tried some light deleting of .zo files, but I strongly suspect that the real 
problem here is that somehow the version of test-engine/racket-tests attached 
to racket's default namespace--apparently it exists? or namespace-attach-module 
would give an error, right?--is different from the one attached to the teaching 
languages evaluation namespace.

I think the next step for me(after maybe a clean setup) is to start grepping 
through the drracket code for instances of test-engine/racket-tests, but if you 
can shed any light on the situation, I'm all ears.

Thanks!

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] expected timing difference between fft-complex-forward and fft-complex-radix2-forward?

2010-10-14 Thread John Clements
On a vector of length 8192 (a power of 2, natch), fft-complex-radix2-forward 
takes about 1/8 of a second (lost in the noise, essentially), but 
fft-complex-forward takes more than 24 seconds, a difference of about 200x.  
They do produce the same answers, up to differences of 1e-4 in the magnitude 
(didn't check the phase).

1) Is this expected? I thought the non-radix2 one was still fairly clever about 
subdividing when the number of points is divisible by 2.
2) If so, would it make sense to test for powers of 2?

John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] adding equal? testing to s16vectors?

2010-10-17 Thread John Clements
I want to allow equal? testing on a sound structure containing two numbers and 
an s16vector.  It's pretty clear to me how to do this with prop:equal+hash, but 
I'm wondering whether there's some obvious way to get equal? to work in an 
extensional way on the
various memory blocks that the ffi library can represent.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] doc bug; which way to fix?

2010-10-17 Thread John Clements
The docs state:

(equal-hash-code v) → exact-integer?
  v : any/c
Returns a fixnum; for any two calls with equal? values, the returned number is 
the same. A hash code is computed even when v contains a cycle through pairs, 
vectors, boxes, and/or inspectable structure fields. See also prop:equal+hash.

Based on the text and the surrounding docs, it looks like the result predicate 
should be "fixnum?", and not "exact-integer?".  May I change this?

John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] expected timing difference between fft-complex-forward and fft-complex-radix2-forward?

2010-10-18 Thread John Clements

On Oct 18, 2010, at 9:25 AM, Doug Williams wrote:

> When I first ran with vectors of 8192, I got exactly the opposite - the 
> radix-2 version was much slower (although still < 500ms). But, when I looked, 
> the longer time was almost exclusively GC - it just happen to hit that 
> particular call. When I put a (collect-garbage) before each call, they were 
> all < 50ms on my machine. So, the GC penalty is likely what you're seeing.
> 
> The other thing is to make sure you aren't calling one of the dft routines 
> instead of the fft routines. Those are the only ones that get anywhere near 
> 24s on my machine - they are about 20s on my machine. The dft routines are 
> the 'straight' mathematical discrete Fourier transform and do not use the FFT 
> algorithms at all. [They're really only useful for a sanity check on results.]

Right, got it. No, the times I'm seeing are not GC.  I bumped it up to an 
8192-point fft, and now the radix-2 version is about 400x faster.

Here's my code:

#lang racket

(require (planet clements/rsound/fft))

(define v (build-vector 16384 (lambda (i) (random

(define v1 (vector-copy v))

(collect-garbage)
(collect-garbage)
(collect-garbage)
(time (fft-complex-radix2-forward v1))
  
(define v2 (vector-copy v))

(collect-garbage)
(collect-garbage)
(collect-garbage)
(time (fft-complex-forward v2))

(for/and ([i (in-range (vector-length v))])
  (< (magnitude (- (vector-ref v1 i) (vector-ref v2 i))) 1e-4))

=>

cpu time: 208 real time: 211 gc time: 0
cpu time: 81357 real time: 82502 gc time: 8337
#t

John Clements

> On Thu, Oct 14, 2010 at 4:34 PM, John Clements  
> wrote:
> On a vector of length 8192 (a power of 2, natch), fft-complex-radix2-forward 
> takes about 1/8 of a second (lost in the noise, essentially), but 
> fft-complex-forward takes more than 24 seconds, a difference of about 200x.  
> They do produce the same answers, up to differences of 1e-4 in the magnitude 
> (didn't check the phase).
> 
> 1) Is this expected? I thought the non-radix2 one was still fairly clever 
> about subdividing when the number of points is divisible by 2.
> 2) If so, would it make sense to test for powers of 2?
> 
> John Clements
> 
> 



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] expected timing difference between fft-complex-forward and fft-complex-radix2-forward?

2010-10-19 Thread John Clements

On Oct 19, 2010, at 5:17 AM, Doug Williams wrote:

> On my laptop:
> 
> #lang racket
> 
> (require "fft.rkt")
> 
> (define v (build-vector 16384 (lambda (i) (random
> 
> (define v1 (vector-copy v))
> 
> (collect-garbage)
> (collect-garbage)
> (collect-garbage)
> (time (fft-complex-radix2-forward v1))
> 
> (define v2 (vector-copy v))
> 
> (collect-garbage)
> (collect-garbage)
> (collect-garbage)
> (time (fft-complex-forward v2))
> 
> (for/and ([i (in-range (vector-length v))])
>  (< (magnitude (- (vector-ref v1 i) (vector-ref v2 i))) 1e-4))
> 
> ==>
> 
> cpu time: 94 real time: 94 gc time: 0
> cpu time: 79 real time: 78 gc time: 0
> #t
> 
> I'll look at the rsound/fft implementation and see if I see the problem.

It certainly sounds as though I broke it, or it changed after I got it.  Has 
the source changed since you sent it to me last year?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] internal definitions & stepper

2010-10-19 Thread John Clements

On Oct 19, 2010, at 5:33 AM, Michael Sperber wrote:

> 
> Robby Findler  writes:
> 
>> How recently did the change come in that allows internal definitions
>> all over the place? And how broken did this make the stepper?
> 
> Pretty broken: There are now (let () ...)s all over the place.
> 
> (I've sent separate e-mail to John and Matthew.)

? I don't see that e-mail.  That may not be important.

Re: fixing stepper failures: I'm guessing that these failures have been hidden 
by the test-only bug that's prevented the drdr tests from running on the 
stepper for the last week.  I'm hoping that the build that's currently 
preventing me from typing rapidly will also allow me to run the main test suite 
manually and see what's broken.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] internal definitions & stepper

2010-10-19 Thread John Clements

On Oct 19, 2010, at 8:56 AM, John Clements wrote:

> 
> On Oct 19, 2010, at 5:33 AM, Michael Sperber wrote:
> 
>> 
>> Robby Findler  writes:
>> 
>>> How recently did the change come in that allows internal definitions
>>> all over the place? And how broken did this make the stepper?
>> 
>> Pretty broken: There are now (let () ...)s all over the place.
>> 
>> (I've sent separate e-mail to John and Matthew.)
> 
> ? I don't see that e-mail.  That may not be important.
> 
> Re: fixing stepper failures: I'm guessing that these failures have been 
> hidden by the test-only bug that's prevented the drdr tests from running on 
> the stepper for the last week.  I'm hoping that the build that's currently 
> preventing me from typing rapidly will also allow me to run the main test 
> suite manually and see what's broken.

Pflug. The two flavors of test suite (command-line and interactive) are broken 
in *different* ways as a result of recent changes to the testing engine.  

In the interest of getting this fixed quickly, I'm going to describe these, 
just in case anyone has suggestions.

1) The command-line tests fail like this:

   given: #(struct:error-result "require: namespace mismatch; reference (phase 
0) to a module \"/Users/clements/plt/collects/test-engine/racket-tests.rkt\" 
that is not available (phase level 0) in: test")

When I attach the test-engine/racket-tests module to the user's namespace, 
these failures turn into:

   given: #(struct:error-result "link: module mismatch, probably from old 
bytecode whose dependencies have changed: variable not provided (directly or 
indirectly) from module: 
\"/Users/clements/plt/collects/test-engine/racket-tests.rkt\" accessed from 
module: 'stepper-module-name-762 at source phase level: 0 in: test")

This module does appear to provide a macro called 'test', so ... I'm not sure 
how to interpret this message. It doesn't look like something I can solve by 
re-running raco setup.

(FWIW, for those of you with deja vu, yes: this is the same question I cc:'ed 
to plt-dev before.)

2) The interactive tests fail like this:

   given: #(struct:error-result "namespace-variable-value: test~object is not 
defined")

I haven't worked on this one yet... but it looks like this is also something 
that was added this month.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] internal definitions & stepper

2010-10-19 Thread John Clements

On Oct 19, 2010, at 10:02 AM, John Clements wrote:

> 
> 2) The interactive tests fail like this:
> 
>   given: #(struct:error-result "namespace-variable-value: test~object is not 
> defined")
> 
> I haven't worked on this one yet... but it looks like this is also something 
> that was added this month.

Per a discussion with Robby, it turns out to be *apparently* sufficient to 
define a binding in the 
testing namespace that associates test~object with #f. 

Kathy, can you confirm that the test-engine code is always happy with a value 
of #f for test~object?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] Grr... why can't I pull?

2010-10-19 Thread John Clements
Okay, this just sounds stupid: my 'git fetch' is failing on the PLT tree.  I 
can ssh to the pltgit machine just fine:

john-clementss-macbook-pro:~/git-clements clements$ ssh git
PTY allocation request failed on channel 0
hello clements, the gitolite version here is v1.4-14-g36317c4
the gitolite config gives you the following access:
 C  CREATER/.*
   R W  iplt
   R W  play
   R W  plt
   @ @  testing
Connection to git.racket-lang.org closed.

... but git pull just hangs. I get no useful info, even with a git fetch -v.

Actually, I just tried it from a remote linode (li21-127.members.linode.com), 
and it seems to be hanging there, as well.

Am I doing something stupid, here?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Grr... why can't I pull?

2010-10-19 Thread John Clements

On Oct 19, 2010, at 2:34 PM, Sam Tobin-Hochstadt wrote:

> On Tue, Oct 19, 2010 at 2:28 PM, John Clements
>  wrote:
>> Am I doing something stupid, here?
> 
> I'm having the same problem, and I'm at the same conference as John,
> so I suspect that's the issue.  I can pull fine from my machine at
> Northeastern.

Hey! It got fixed.  

Thanks to... whoever...

John




smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] internal definitions & stepper

2010-10-19 Thread John Clements
Okay, here's what seems to be broken:

1) cond, as Mike observed. This is related to the different expansion of cond.
2) make-foo, where foo is a user-defined structure.  There's a mysterious extra 
"false" that's showing up.
3) reduction of (cons 1 (cons 2 empty)) in beginner only.
4) local structures.

Apparently, all of this (except for #4) changed in the last week :).

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Release for v5.0.2 has begun

2010-10-20 Thread John Clements

On Oct 20, 2010, at 7:39 AM, Doug Williams wrote:

> I downloaded the pre-release version this morning - 10/20 (I believe it was a 
> build from 10/16). The plot package and plot extensions in the science 
> collection all work as expected. But, I am getting different numeric answers 
> for some of my science collection routines (for example, the gamma function) 
> and some of my newer code (for example, FFT) either fails with an error 
> message or DrRacket just dies. All of this code uses unsafe operations and 
> the problem may lie there somewhere. I'll try digging more deeply this 
> evening.

Focus first on uses of unsafe-vector-ref and unsafe-vector-set!. (Not the fx 
and fl variants, just the plain ones).  I wound up removing these from the FFT 
code in order to get it to work.  

Check out bug PR 11264. 

Also, very late flash of insight: my response (getting rid of unsafe-vector-ref 
and unsafe-vector-set!) might explain my performance issues with the FFT 
library.

John



> Doug
> 
> On Sat, Oct 16, 2010 at 6:53 PM, Ryan Culpepper  wrote:
> The release process for v5.0.2 has begun: the `release' branch was
> created for any work that is left and is now bumped to v5.0.1.900.  You
> can go on using the `master' branch as usual, it is now bumped to
> v5.0.2.1 (to avoid having two different trees with the same version).
> 
> If you have any bug-fixes and changes that need to go in the release
> then make sure to specify that in the commit message or mail me the
> commit SHA1s.  You can `git checkout release' to try it out directly if
> needed -- but do not try to push commits on it (the server will forbid
> it).
> 
> Note that nightly builds will go on as usual (as v5.0.2.1), and
> pre-release builds will be available shortly at
> 
>  http://pre.racket-lang.org/release/
> 
> Please tell me if you think that this should be announced on the
> users list for wider testing.
> --
> Ryan Culpepper
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
> 
> _
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Release for v5.0.2 has begun

2010-10-20 Thread John Clements

On Oct 20, 2010, at 10:31 AM, Doug Williams wrote:

> John, was that to get them to work with a nightly (or pre-release) build or 
> with the released version of Racket? I've not had any problems running them 
> on the released version. But, I haven't exercised them to the extent that you 
> have.

Pre-release.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Pre-Release Checklist for v5.0.2

2010-10-23 Thread John Clements

On Oct 21, 2010, at 4:07 PM, Ryan Culpepper wrote:

> Checklist items for the v5.0.2 release
>  (using the v5.0.1.900 release candidate build)
> 
> * John Clements 
>  - Stepper Tests
>  Updates:
>  - Stepper Updates: update HISTORY
>  (updates should show v5.0.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.



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] highlighting function position with an underline.

2010-10-25 Thread John Clements
I'm in the pit of despair... er, grading first-year exams, and I'm looking at 
code that has terrible paren-placement issues.  I don't take points off for 
this on exams, but I can only imagine how long it takes these poor kids to get 
their code to run.

After thinking about it for a while, I'm currently of the opinion that one 
serious shortcoming of our syntax is that we fail to distinguish the function 
position from that of the arguments, something that the traditional f(x) 
notation does pretty clearly.

... No, I'm not going to propose changing the syntax. We've got lots of other 
folks doing that.

Who thinks it would be helpful, though, if Check Syntax were to, say, underline 
the function position? In language levels other than beginner this could mean 
overlapping/nested underlines, but that could itself be a warning sign.  If 
there's any interest at all, I could at least do a mock-up to see whether the 
idea grabs people.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] highlighting function position with an underline.

2010-10-26 Thread John Clements

On Oct 26, 2010, at 5:07 AM, Shriram Krishnamurthi wrote:

>> I'm in the pit of despair... er, grading first-year exams, and I'm
>> looking at code that has terrible paren-placement issues.   I don't
>> take points off for this on exams, but I can only imagine how long
>> it takes these poor kids to get their code to run.
> 
> Don't imagine.  Record transcripts of them editing.  Make popcorn,
> invite the neighbors over for the horror flick.

I'll do it.  Where's the download? I don't see it on PLaneT.

John



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] planet remove triggers re-installation?

2010-10-26 Thread John Clements
Let me preface this by saying that I'm sure this is somehow my fault.  
Nevertheless, it seems broken.  Trying to *remove* a planet package triggers 
its re-download and installation. See the transcript below.

I'm guessing this has something to do with my use of development links, though 
I don't currently have any development links for this package.  I'm going to 
take a big hammer and start deleting stuff, and I'm guessing this will fix the 
problem, but it's certainly confusing.

John 


pcp062721pcs:~/plt/src/build clements$ raco planet remove clements rsound.plt 1 
7

= Removing (clements rsound.plt 1 7) =
setup-plt: version: 5.0.2.1 [3m]
setup-plt: variants: 3m
setup-plt: main collects: /Users/clements/plt/collects
setup-plt: collects paths: 
setup-plt:   /Users/clements/git-clements/clements/collects
setup-plt:   /Users/clements/clements/matthias/collects
setup-plt:   /Users/clements/Library/Racket/5.0.2.1/collects
setup-plt:   /Users/clements/plt/collects
setup-plt: --- cleaning collections ---
setup-plt: deleting: in /clements/rsound.plt/1/7
setup-plt: deleting: in /clements/rsound.plt/1/7/private
setup-plt: deleting: in /clements/rsound.plt/1/7/test
setup-plt: --- updating info-domain tables ---
setup-plt: updating: 
/Users/clements/Library/Racket/planet/300/5.0.2.1/cache.rktd
setup-plt: --- post-installing collections ---
setup-plt: done
Erasing metadata
Deleting files in 
/Users/clements/Library/Racket/planet/300/5.0.2.1/cache/clements/rsound.plt/1/7
Trimming empty directories
Rebuilding documentation index
setup-plt: version: 5.0.2.1 [3m]
setup-plt: variants: 3m
setup-plt: main collects: /Users/clements/plt/collects
setup-plt: collects paths: 
setup-plt:   /Users/clements/git-clements/clements/collects
setup-plt:   /Users/clements/clements/matthias/collects
setup-plt:   /Users/clements/Library/Racket/5.0.2.1/collects
setup-plt:   /Users/clements/plt/collects
setup-plt: --- pre-installing collections ---
setup-plt: --- compiling collections ---
setup-plt: making: scribblings/main/user
setup-plt: --- updating info-domain tables ---
setup-plt: --- creating launchers ---
setup-plt: --- building documentation ---
setup-plt: skipping: /cce/scheme.plt/4/1/scribblings/main.scrbl
setup-plt: skipping: /untyped/unlib.plt/3/23/scribblings/unlib.scrbl
setup-plt: skipping: /cce/scheme.plt/6/3/reference/manual.scrbl
setup-plt: rendering: scribblings/main/user/start.scrbl
downloading clements/rsound:1 from planet.racket-lang.org via HTTP

= Installing rsound.plt on Tue, 26 Oct 2010 11:51:31 =
setup-plt: Unpacking archive from 
/Users/clements/Library/Racket/planet/300/packages/clements/rsound.plt/1/7/rsound.plt
setup-plt:   unpacking README in 
/Users/clements/Library/Racket/planet/300/5.0.2.1/cache/clements/rsound.plt/1/7/./
setup-plt:   unpacking draw.rkt in 
/Users/clements/Library/Racket/planet/300/5.0.2.1/cache/clements/rsound.plt/1/7/./
...



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] corrected sxml.plt 2 1

2010-10-26 Thread John Clements
The existing version of sxml.plt has a compile-omit-paths that refers to 
"test.ss".  Unfortunately, the actual filename is "tests.ss".  This turns a 
one-minute installation into a terrifying fifteen-minute install-fest, covering 
a total of 21 additional planet packages.

Is there any chance I can upload a new version of this package?

On a separate note, to dev: is there any way that schemeunit could be made 
slightly less of a very large install? Especially since rackunit is now part of 
the collects tree. ... If this opens a terrible can of worms, just forget about 
it.

John Clements



smime.p7s
Description: S/MIME cryptographic signature
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

  1   2   3   4   5   >