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

2014-04-17 Thread Jon Rafkind

> * Jon Rafkind 
>   Release tests for (one of the) linux releases:
>   - Test that the `racket' and `racket-textual' source releases
> compile fine (note that they're still called `plt' and `mz' at
> this stage).
>   - Test that the binary installers for both work, try each one in
> both normal and unix-style installation modes. (just ubuntu)
>   [Note: get the release candidates from the URL in this email. Use
>the 'static table' link to see a list of all tar files available]
>

Done. For the binaries I only tested on 64-bit precise-pangolin.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-17 Thread Robby Findler
On Thu, Apr 17, 2014 at 5:44 PM, Ryan Culpepper  wrote:
> * Robby Findler 
>   - DrRacket Tests

All but populate-compiled.rkt, which uncovered the need for commit
fe2c796c41154. Can you please include it in the release branch?

>   - Framework Tests
>   - Contracts Tests
>   - Games Tests
>   - Teachpacks Tests: image tests
>   - PLaneT Tests
>   - Redex Tests
>   Updates:
>   - DrRacket Updates: update HISTORY
>   - Redex Updates: update HISTORY
>   (updates should show v6.0.1 as the most current version)
>   - Ensure that previous version of DrRacket's preference files still
> starts up with new DrRacket
>   - Update man pages in racket/man/man1: drracket.1
>   Email me to pick the changes when they're done, or tell me if there
>   are no such changes.

One commit marked for the release notes update.

With the exception of the populate-compiled.rkt test (as above), done.

Robby
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`

2014-04-17 Thread Greg Hendershott
Yes. FWIW I do:

function parse_git_dirty() {
  [[ $(git status 2> /dev/null | tail -n1) != *"working directory
clean"* ]] && echo "*"
}

function parse_git_branch() {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/*
\(.*\)/\1$(parse_git_dirty)/"
}

Which goes into the the end of:

greg@mbp in ~/src/plt/racket on master*
$

And now that you mention it, I _did_ see the "*" in my prompt. I
should have paid attention to it, but
`git status` showed nothing. I should have done `git diff`.

Sorry for the noise here. (My total experience with git submodule
updates consists of the 2 or 3 times I've had to do this with Racket
-- and at intervals of enough months that I manage to forget in
between.)


On Thu, Apr 17, 2014 at 9:37 PM, Spencer Florence  wrote:
> stale git submodules show up on a status. What I've found helpful is to add
> a bit in my prompt that tells me if the current git repository has a non "up
> to date" status (And the current branch). If you're running Zsh this is a
> good place to start for that:
>
> git_prompt_info() {
>   ref=$(git symbolic-ref HEAD 2> /dev/null)
>   if [[ -n $ref ]]; then
> echo -n "[%F{red}${ref#refs/heads/}%f"
> st=$(git status -s 2> /dev/null)
> if [[ -n $st ]]; then
>   echo -n "%f*%f"
> fi
> echo -n "]"
>   fi
> }
> export PS1='$(git_prompt_info)[%F{green}%m%F{white}:%F{blue}%2c%f] '
>
>
> Or on Bash:
>
>
> function git_prompt_info() {
>   ref=$(git symbolic-ref HEAD 2> /dev/null | cut -d'/' -f3)
>   if [[ -n $ref ]]; then
> # Zsh prompt this was based on
> # echo "[%{$fg_bold[green]%}${ref#refs/heads/}%{$reset_color%}]"
> echo "[$(tput setaf 2)$ref$(tput sgr0)]"
>   fi
> }
> export PS1="\$(git_prompt_info)$PS1"
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2014-04-17 Thread Matthew Flatt
At Thu, 17 Apr 2014 18:44:20 -0400, Ryan Culpepper wrote:
> * Matthew Flatt 
>- Racket Tests
>- Languages Tests
>- GRacket Tests (Also check that `gracket -z' and `gracket-text' still
>  works in Windows and Mac OS X)
>- mzc --exe tests
>- .plt-packing Tests
>- Games Tests
>- Unit Tests
>- Syntax Color Tests
>- R6RS Tests
>- JPR's test suite
>- Create an executable from a BSL program
>- Run COM tests
>- Try compiling with -funsigned-char
>- Try compiling with TEST_ALTERNATE_TARGET_REGISTER

Done.

>Updates:
>- Racket Updates: update HISTORY
>(updates should show v6.0.1 as the most current version)

Patch sent.

>- Update man pages in racket/man/man1: racket.1, gracket.1, raco.1
>Email me to pick the changes when they're done, or tell me if there
>are no such changes.

No changes.

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`

2014-04-17 Thread Spencer Florence
stale git submodules show up on a status. What I've found helpful is to add
a bit in my prompt that tells me if the current git repository has a non
"up to date" status (And the current branch). If you're running Zsh this is
a good place to start for that:

git_prompt_info() {
  ref=$(git symbolic-ref HEAD 2> /dev/null)
  if [[ -n $ref ]]; then
echo -n "[%F{red}${ref#refs/heads/}%f"
st=$(git status -s 2> /dev/null)
if [[ -n $st ]]; then
  echo -n "%f*%f"
fi
echo -n "]"
  fi
}
export PS1='$(git_prompt_info)[%F{green}%m%F{white}:%F{blue}%2c%f] '


Or on Bash:


function git_prompt_info() {
  ref=$(git symbolic-ref HEAD 2> /dev/null | cut -d'/' -f3)
  if [[ -n $ref ]]; then
# Zsh prompt this was based on
# echo "[%{$fg_bold[green]%}${ref#refs/heads/}%{$reset_color%}]"
echo "[$(tput setaf 2)$ref$(tput sgr0)]"
  fi
}
export PS1="\$(git_prompt_info)$PS1"


On Thu, Apr 17, 2014 at 9:25 PM, Greg Hendershott  wrote:

> For whoever else might find this useful building on OS X.
>
> Building HEAD today I got this new error:
>
> raco setup: --- creating launchers ---
> raco setup: launcher: /raco
> raco setup: --- installing man pages ---
> raco setup: --- installing collections ---
> raco setup: --- post-installing collections ---
> raco setup: --- checking package dependencies ---
> make install-common-last
> make fix-paths
> if [ "" != "" ]; then \
>   racket/racketcgc -G /Users/greg/src/plt/racket/build/config -u \
> "../../collects/setup/unixstyle-install.rkt" \
> make-install-destdir-fix "../.." \
> "/Users/greg/src/plt/racket/racket/bin"
> "/Users/greg/src/plt/racket/racket/collects"
> "/Users/greg/src/plt/racket/racket/doc"
> "/Users/greg/src/plt/racket/racket/lib"
> "/Users/greg/src/plt/racket/racket/include"
> "/Users/greg/src/plt/racket/racket/lib"
> "/Users/greg/src/plt/racket/racket/share"
> "/Users/greg/src/plt/racket/racket/etc"
> "/Users/greg/src/plt/racket/racket/share/applications"
> "/Users/greg/src/plt/racket/racket/man" "yes"; \
> fi
> make preserve-raco-pkg-default-scope
> :
> cp "../COPYING-libscheme.txt" "../COPYING_LESSER.txt" "../COPYING.txt"
> "/Users/greg/src/plt/racket/racket/share"/
> if racket/bin/racket -G build/config -I racket/base -e '(case
> (system-type) [(macosx) (exit 0)] [else (exit 1)])' ; then make
> native-from-git ; fi
> if [ ! -d native-pkgs/racket-win32-i386 ]; then make complain-no-submodule
> ; fi
> make pkg-links PKGS="main-distribution plt-services" LINK_MODE="--save"
> racket/bin/racket -U -G build/config racket/src/link-all.rkt ++dir
> pkgs ++dir native-pkgs --save main-distribution plt-services
> racket-lib
> Linking packages:
>   plt-services
>   racket-lib
>   main-distribution
> Recording packages choice in racket/etc/link-pkgs.rktd
> link-all: requested package not available: "draw-x86_64-macosx-2"
>   context...:
>/Users/greg/src/plt/racket/racket/src/link-all.rkt:150:6: for-loop
>/Users/greg/src/plt/racket/racket/src/link-all.rkt:148:2: loop
>/Users/greg/src/plt/racket/racket/src/link-all.rkt: [running body]
> make[2]: *** [pkg-links] Error 1
> make[1]: *** [plain-in-place] Error 2
> make: *** [in-place] Error 2
>
>
> Although this is unlike the previous symptoms of stale submodules,
> "draw-x86_64-macosx-2" sounds like something that might be related to
> native-pkgs. So on a hunch I tried this:
>
> $ git submodule update
> remote: Counting objects: 214, done.
> remote: Compressing objects: 100% (157/157), done.
> remote: Total 214 (delta 59), reused 183 (delta 44)
> Receiving objects: 100% (214/214), 19.84 MiB | 54 KiB/s, done.
> Resolving deltas: 100% (59/59), done.
> From https://github.com/plt/libs
>b698e73..3d8856e  master -> origin/master
> Submodule path 'native-pkgs': checked out
> '3d8856eb987af16ab27cc99d4d24d5f9e7efc33b'
>
>
> Although it was an unusually slow/big fetch, it succeeded.
>
> And now the build now. (Well as I type this, my laptop fans are
> blazing away, as it is still running the raco setup stage. But it
> proceeded OK past the point it was failing before.)
>
> Maybe this is obvious to everyone else, but I wanted to mention it in
> case it helped anyone else building on OS X.
>
> On Tue, Dec 17, 2013 at 4:48 PM, Greg Hendershott
>  wrote:
> > To answer my own question, back in July Matthew had posted here:
> >
> > On Sat, Jul 27, 2013 at 9:10 AM, Matthew Flatt 
> wrote:
> >> Nothing has been split out of the current git repository, but there is
> >> now a "native-pkgs" git submodule for the native-library packages.
> >>
> >> If you build on Mac OS X or Windows or if you run a snapshot build,
> >> then you'll need to use
> >>
> >>   git pull
> >>   git submodule init
> >>   git submodule update
> >>
> >> once on each repository checkout from now on, and
> >>
> >>   git pull
> >>   git submodule update
> >>
> >> for updates after the first checkout.
> >>
> >> If you just `git pull' without the submodule commands, then you'll have
>

Re: [racket-dev] Using `git submodule` vs. `git pull --ff-only upstream master`

2014-04-17 Thread Greg Hendershott
For whoever else might find this useful building on OS X.

Building HEAD today I got this new error:

raco setup: --- creating launchers ---
raco setup: launcher: /raco
raco setup: --- installing man pages ---
raco setup: --- installing collections ---
raco setup: --- post-installing collections ---
raco setup: --- checking package dependencies ---
make install-common-last
make fix-paths
if [ "" != "" ]; then \
  racket/racketcgc -G /Users/greg/src/plt/racket/build/config -u \
"../../collects/setup/unixstyle-install.rkt" \
make-install-destdir-fix "../.." \
"/Users/greg/src/plt/racket/racket/bin"
"/Users/greg/src/plt/racket/racket/collects"
"/Users/greg/src/plt/racket/racket/doc"
"/Users/greg/src/plt/racket/racket/lib"
"/Users/greg/src/plt/racket/racket/include"
"/Users/greg/src/plt/racket/racket/lib"
"/Users/greg/src/plt/racket/racket/share"
"/Users/greg/src/plt/racket/racket/etc"
"/Users/greg/src/plt/racket/racket/share/applications"
"/Users/greg/src/plt/racket/racket/man" "yes"; \
fi
make preserve-raco-pkg-default-scope
:
cp "../COPYING-libscheme.txt" "../COPYING_LESSER.txt" "../COPYING.txt"
"/Users/greg/src/plt/racket/racket/share"/
if racket/bin/racket -G build/config -I racket/base -e '(case
(system-type) [(macosx) (exit 0)] [else (exit 1)])' ; then make
native-from-git ; fi
if [ ! -d native-pkgs/racket-win32-i386 ]; then make complain-no-submodule ; fi
make pkg-links PKGS="main-distribution plt-services" LINK_MODE="--save"
racket/bin/racket -U -G build/config racket/src/link-all.rkt ++dir
pkgs ++dir native-pkgs --save main-distribution plt-services
racket-lib
Linking packages:
  plt-services
  racket-lib
  main-distribution
Recording packages choice in racket/etc/link-pkgs.rktd
link-all: requested package not available: "draw-x86_64-macosx-2"
  context...:
   /Users/greg/src/plt/racket/racket/src/link-all.rkt:150:6: for-loop
   /Users/greg/src/plt/racket/racket/src/link-all.rkt:148:2: loop
   /Users/greg/src/plt/racket/racket/src/link-all.rkt: [running body]
make[2]: *** [pkg-links] Error 1
make[1]: *** [plain-in-place] Error 2
make: *** [in-place] Error 2


Although this is unlike the previous symptoms of stale submodules,
"draw-x86_64-macosx-2" sounds like something that might be related to
native-pkgs. So on a hunch I tried this:

$ git submodule update
remote: Counting objects: 214, done.
remote: Compressing objects: 100% (157/157), done.
remote: Total 214 (delta 59), reused 183 (delta 44)
Receiving objects: 100% (214/214), 19.84 MiB | 54 KiB/s, done.
Resolving deltas: 100% (59/59), done.
>From https://github.com/plt/libs
   b698e73..3d8856e  master -> origin/master
Submodule path 'native-pkgs': checked out
'3d8856eb987af16ab27cc99d4d24d5f9e7efc33b'


Although it was an unusually slow/big fetch, it succeeded.

And now the build now. (Well as I type this, my laptop fans are
blazing away, as it is still running the raco setup stage. But it
proceeded OK past the point it was failing before.)

Maybe this is obvious to everyone else, but I wanted to mention it in
case it helped anyone else building on OS X.

On Tue, Dec 17, 2013 at 4:48 PM, Greg Hendershott
 wrote:
> To answer my own question, back in July Matthew had posted here:
>
> On Sat, Jul 27, 2013 at 9:10 AM, Matthew Flatt  wrote:
>> Nothing has been split out of the current git repository, but there is
>> now a "native-pkgs" git submodule for the native-library packages.
>>
>> If you build on Mac OS X or Windows or if you run a snapshot build,
>> then you'll need to use
>>
>>   git pull
>>   git submodule init
>>   git submodule update
>>
>> once on each repository checkout from now on, and
>>
>>   git pull
>>   git submodule update
>>
>> for updates after the first checkout.
>>
>> If you just `git pull' without the submodule commands, then you'll have
>> an empty "native-pkgs" directory. That's fine if you're building on,
>> say, Linux. If you're on Mac OS X or Windows, then the makefile should
>> give you a good error message and suggest using `git submodule init'
>> and `git submodule update'.
>>
>> If you use `git submodule update' today and forget to use it in the
>> future, probably things will be fine for a long time, because
>> "native-pkgs" doesn't change often. If "native-pkgs" does change and
>> you forget `git submodule update', then (as I understand things) `git
>> status' will tell you that there's a mismatch. The mismatch report
>> might take a form that's not entirely clear, but it should be enough to
>> remind you to run `git submodule update'.
>
> It turned out that it wasn't enough to remind _me_. :)  Running `git
> submodule update` resolved this for me.
>
>
> On Fri, Sep 20, 2013 at 2:30 PM, Greg Hendershott
>  wrote:
>> I build Racket while keeping my forked repo's `master` branch an
>> exact, fast-forwardable copy of PLT's remote upstream `master`. [1]
>>
>> This has worked fine building Racket on Linux, and continues to do so.
>>
>> But on OS X, I need to follow 

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

2014-04-17 Thread David Van Horn
On 4/17/14, 6:44 PM, Ryan Culpepper wrote:
> * David Van Horn 
>   - EoPL Tests

Done.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Adding flvector to match

2014-04-17 Thread Neil Toronto

Great idea!

Neil ⊥

On 04/17/2014 05:00 PM, Sam Tobin-Hochstadt wrote:

I think you should do 2': Change racket/match to recognize patterns
with #'flvector heads -- ie, use the binding for flvector from
`racket/flonum` to determine if something matches.

The use of symbolic names in match, rather than bindings, is a
leftover rather than something we should keep adding to.

Sam

On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto  wrote:

It would be really handy for me right now to be able to match on flvectors,
and I think it's useful enough for minimal Racket. I've already tried this
option:

  1. Export flvector as a match expander from racket/flonum

but racket/match depends on racket/flonum somehow. So I looked through the
match code and determined that this one would be pretty easy:

  2. Change racket/match to recognize patterns with 'flvector head

(The code is very clean; kudos to whoever last rewrote it. :D)

I think #2 would at worst hijack someone's custom flvector match expander,
but probably do the same thing or better (e.g. also handle ellipses). But in
case it's worse than I think, I can always go with this:

  3. Export flvector as a match expander from math/flonum

Question for the match and syntax gurus: would doing #2 be safe enough, or
should I do #3? Or have I got it backwards; i.e. is #2 actually safer than
#3?

Neil ⊥
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] Adding flvector to match

2014-04-17 Thread Sam Tobin-Hochstadt
I think you should do 2': Change racket/match to recognize patterns
with #'flvector heads -- ie, use the binding for flvector from
`racket/flonum` to determine if something matches.

The use of symbolic names in match, rather than bindings, is a
leftover rather than something we should keep adding to.

Sam

On Thu, Apr 17, 2014 at 6:48 PM, Neil Toronto  wrote:
> It would be really handy for me right now to be able to match on flvectors,
> and I think it's useful enough for minimal Racket. I've already tried this
> option:
>
>  1. Export flvector as a match expander from racket/flonum
>
> but racket/match depends on racket/flonum somehow. So I looked through the
> match code and determined that this one would be pretty easy:
>
>  2. Change racket/match to recognize patterns with 'flvector head
>
> (The code is very clean; kudos to whoever last rewrote it. :D)
>
> I think #2 would at worst hijack someone's custom flvector match expander,
> but probably do the same thing or better (e.g. also handle ellipses). But in
> case it's worse than I think, I can always go with this:
>
>  3. Export flvector as a match expander from math/flonum
>
> Question for the match and syntax gurus: would doing #2 be safe enough, or
> should I do #3? Or have I got it backwards; i.e. is #2 actually safer than
> #3?
>
> Neil ⊥
> _
>  Racket Developers list:
>  http://lists.racket-lang.org/dev

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] Adding flvector to match

2014-04-17 Thread Neil Toronto
It would be really handy for me right now to be able to match on 
flvectors, and I think it's useful enough for minimal Racket. I've 
already tried this option:


 1. Export flvector as a match expander from racket/flonum

but racket/match depends on racket/flonum somehow. So I looked through 
the match code and determined that this one would be pretty easy:


 2. Change racket/match to recognize patterns with 'flvector head

(The code is very clean; kudos to whoever last rewrote it. :D)

I think #2 would at worst hijack someone's custom flvector match 
expander, but probably do the same thing or better (e.g. also handle 
ellipses). But in case it's worse than I think, I can always go with this:


 3. Export flvector as a match expander from math/flonum

Question for the match and syntax gurus: would doing #2 be safe enough, 
or should I do #3? Or have I got it backwards; i.e. is #2 actually safer 
than #3?


Neil ⊥
_
 Racket Developers list:
 http://lists.racket-lang.org/dev


[racket-dev] Pre-Release Checklist for v6.0.1

2014-04-17 Thread Ryan Culpepper

Checklist items for the v6.0.1 release
  (using the v6.0.0.900 release candidate build)

Search for your name to find relevant items, reply when you finish an
item (please indicate which item/s is/are done).  Also, if you have any
commits that should have been picked, make sure that the changes are in.

Important: new builds are created without announcement, usually whenever
I pick a few commits.  If you need to commit changes, please make sure
you tell me to pick it into the release branch.

--> Release candidates are at
-->   http://pre-release.racket-lang.org/

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).  To
get the tests, you can do this:

  cd ...racket-root...
  ./bin/raco pkg install -i main-distribution-test

--

* Matthew Flatt 
  - Racket Tests
  - Languages Tests
  - GRacket Tests (Also check that `gracket -z' and `gracket-text' still
works in Windows and Mac OS X)
  - mzc --exe tests
  - .plt-packing Tests
  - Games Tests
  - Unit Tests
  - Syntax Color Tests
  - R6RS Tests
  - JPR's test suite
  - Create an executable from a BSL program
  - Run COM tests
  - Try compiling with -funsigned-char
  - Try compiling with TEST_ALTERNATE_TARGET_REGISTER
  Updates:
  - Racket Updates: update HISTORY
  (updates should show v6.0.1 as the most current version)
  - Update man pages in racket/man/man1: racket.1, gracket.1, raco.1
  Email me to pick the changes when they're done, or tell me if there
  are no such changes.

* Robby Findler 
  - DrRacket Tests
  - Framework Tests
  - Contracts Tests
  - Games Tests
  - Teachpacks Tests: image tests
  - PLaneT Tests
  - Redex Tests
  Updates:
  - DrRacket Updates: update HISTORY
  - Redex Updates: update HISTORY
  (updates should show v6.0.1 as the most current version)
  - Ensure that previous version of DrRacket's preference files still
starts up with new DrRacket
  - Update man pages in racket/man/man1: drracket.1
  Email me to pick the changes when they're done, or tell me if there
  are no such changes.

* John Clements 
  - Stepper Tests
  Updates:
  - Stepper Updates: update HISTORY
  (updates should show v6.0.1 as the most current version; email me
  to pick the changes when they're done, or tell me if there are no such
  changes.)

* Sam Tobin-Hochstadt ,
   Vincent St-Amour 
  - Match Tests
  - Typed Racket Tests
  - Typed Racket Updates: update HISTORY
  (updates should show v6.0.1 as the most current version; email me
  to pick the changes when they're done, or tell me if there are no such
  changes.)

* Matthias Felleisen 
  - Teachpacks Tests: check that new teachpacks are addable
  - Teachpack Docs: check teachpack docs in the bundles
  Updates:
  - Teachpack Updates: update HISTORY
  (updates should show v6.0.1 as the most current version; email me
  to pick the changes when they're done, or tell me if there are no such
  changes.)

* Ryan Culpepper 
  - Macro Debugger Tests
  - Syntax Classifier Tests
  - RackUnit GUI Tests
  - Data Tests
  - DB Tests

* Jay McCarthy 
  - Web Server Tests
  - XML Tests
  - HTML Tests
  - PLAI Tests
  - Racklog tests
  - Datalog tests

* Kathy Gray 
  - Test Engine Tests

* Noel Welsh 
  - Rackunit Tests
  - SRFI Tests
  - Ensure that all claimed srfi's are in the installer and they all
load into racket or drracket (as appropriate)

* Stevie Strickland 
  - Unit Contract Tests
  - Contract Region Tests
  - Class Contract Tests

* Stephen Chang 
  - Lazy Racket Tests
  - Lazy stepper tests

* Eli Barzilay 
  - Swindle Tests
  - XREPL Tests
  - Verify PL language
  - Racket Tree: compare new distribution tree to previous one
  - Run the unix installer tests
  - Run zsh completions tests
(". .../racket-completion.zsh; _racket --self-test")
  Version Updates: if a major change has happened, update the version
  number in:
  - racket/collects/mzscheme/info.rkt
  - racket/collects/mred/info.rkt

* Stephen Bloch 
  - Picturing Programs Tests

* Greg Cooper 
  - FrTime Tests

* Carl Eastlund 
  - Dracula Tests (confirm that Dracula runs from PLaneT)

* Jon Rafkind 
  Release tests for (one of the) linux releases:
  - Test that the `racket' and `racket-textual' source releases
compile fine (note that they're still called `plt' and `mz' at
this stage).
  - Test that the binary installers for both work, try each one in
both normal and unix-style installation modes. (just ubuntu)
  [Note: get the release candidates from the URL in this email. Use
   the 'static table' link to see a list of all tar files available]

* Mike Sperber 
  - DMdA Tests
  - Stepper Tests
  - Signature Tests

* David Van Horn 
  - EoPL Tests

* Neil Toronto 
  - Plot Tests
  - Images Tests
  - Inspect icons
  - Math tests

* Doug Williams 
  - Additional Plot Tests

* Shriram Krishnamurthi 
  Tour: check the tour and generate a new one if needed.
  [Note: Since this i

Re: [racket-dev] class implementation and make-primitive-class

2014-04-17 Thread Daniel Feltey
That wouldn't work for this project because I need to be able to generate an 
object that satisfies a given Racket contract and can be passed to user 
functions that expect such an object so I need to use Racket's class system. I 
have a working prototype that builds class syntax then calls eval-syntax on it, 
I was just trying to figure out if there was an easy way to avoid using eval. 

Thanks again
Dan

- Original Message -
From: "Neil Van Dyke" 
To: dfel...@ccs.neu.edu
Cc: dev@racket-lang.org
Sent: Thursday, April 17, 2014 4:17:54 PM GMT -05:00 US/Canada Eastern
Subject: Re: [racket-dev] class implementation and make-primitive-class

For purposes of your course project, couldn't you make your own 
class-instance object system, atop structs or hashes, that gives you 
whatever dynamic programming features you want?  It's very-very easy to 
do a basic one (with single inheritance and single dispatch), until you 
get into speed optimizations.

Or, if Swindle has a MOP, you could use that.

Neil V.

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] class implementation and make-primitive-class

2014-04-17 Thread Neil Van Dyke
For purposes of your course project, couldn't you make your own 
class-instance object system, atop structs or hashes, that gives you 
whatever dynamic programming features you want?  It's very-very easy to 
do a basic one (with single inheritance and single dispatch), until you 
get into speed optimizations.


Or, if Swindle has a MOP, you could use that.

Neil V.

_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] class implementation and make-primitive-class

2014-04-17 Thread Matthew Flatt
The `make-primitive-class` function is a leftover from pre-v5.1 days,
where the problem was to turn a C++ object into a Racket object. I'm
not surprised that it has rotted away, it should be removed entirely,
and I doubt that it's what you would want even if it worked.

At Thu, 17 Apr 2014 14:49:40 -0400 (EDT), dfel...@ccs.neu.edu wrote:
> For a course project I've been working on adding generators to contracts for 
> use with contract-random-generate, and I've been trying to construct classes 
> and objects from simple object/c contracts. When trying to find a way to 
> functionally create a class at runtime, I came across the 
> `make-primitive-class` function in class-internal.rkt. 
> 
> This function is exported, and available at a plain racket repl, but has no 
> documentation that I have been able to find and the comments about it in 
> class-internal.rkt seem to be incorrect. 
> 
> Trying to call it from the repl has problems also, for example (ignoring for 
> a 
> moment that the arguments aren't of the expected types)
> 
> -> (make-primitive-class #f #f 'foo object% null #f null null null null)
> ; compose-class: arity mismatch;
> ;  the expected number of arguments does not match the given number
> ;   expected: 28
> ;   given: 27
> 
> The definition is in terms of compose-class and is just missing a `null` 
> argument for the abstract-names, but even after fixing that in my local 
> branch 
> there is a discrepancy with the comments regarding it's first argument 
> `make-struct:prim`. 
> 
> ; The `make-struct:prim' function takes prop:object, a class,
>   ;  a preparer, a dispatcher function, an unwrap property,
>   ;  an unwrapper, and a property assoc list, and produces:
>   ;* a struct constructor (must have prop:object)
>   ;* a struct predicate
>   ;* a struct type for derived classes (mustn't have prop:object)
>   ;
>   ; The supplied preparer takes a symbol and returns a num.
>   ; 
>   ; The supplied dispatcher takes an object and a num and returns a method.
>   ;
>   ; The supplied unwrap property is used for adding the unwrapper
>   ;  as a property value on new objects.
>   ;
>   ; The supplied unwrapper takes an object and returns the unwrapped
>   ;  version (or the original object).
>   ;
>   ; When a primitive class has a superclass, the struct:prim maker
>   ;  is responsible for ensuring that the returned struct items match
>   ;  the supertype predicate.
> 
> This suggests that make-struct:prim should take 7 arguments, but passing a 
> function of 7 arguments to it from the repl produces:
> 
> -> (make-primitive-class (lambda (a b c d e f g) (values #f #f #f)) #f 'foo 
> object% null #f null null null null)
> ; #: arity mismatch;
> ;  the expected number of arguments does not match the given number
> ;   expected: 7
> ;   given: 5
> 
> Also as far as I can tell `make-primitive-class` is never used in the code 
> base, it is defined in class-internal.rkt, but can be commented out without 
> seeming to break anything else. Does anyone know if there is a purpose for 
> this 
> function, or if there is documentation somewhere on the functions I need to 
> pass it in order to construct a class. I think I'm starting to get a better 
> idea of how it might work from reading more of class-internal.rkt and how the 
> class* macro expands, but any guidance would be appreciated.
> 
> Thanks
> Dan
> 
> _
>   Racket Developers list:
>   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] class implementation and make-primitive-class

2014-04-17 Thread dfeltey
For a course project I've been working on adding generators to contracts for 
use with contract-random-generate, and I've been trying to construct classes 
and objects from simple object/c contracts. When trying to find a way to 
functionally create a class at runtime, I came across the 
`make-primitive-class` function in class-internal.rkt. 

This function is exported, and available at a plain racket repl, but has no 
documentation that I have been able to find and the comments about it in 
class-internal.rkt seem to be incorrect. 

Trying to call it from the repl has problems also, for example (ignoring for a 
moment that the arguments aren't of the expected types)

-> (make-primitive-class #f #f 'foo object% null #f null null null null)
; compose-class: arity mismatch;
;  the expected number of arguments does not match the given number
;   expected: 28
;   given: 27

The definition is in terms of compose-class and is just missing a `null` 
argument for the abstract-names, but even after fixing that in my local branch 
there is a discrepancy with the comments regarding it's first argument 
`make-struct:prim`. 

; The `make-struct:prim' function takes prop:object, a class,
  ;  a preparer, a dispatcher function, an unwrap property,
  ;  an unwrapper, and a property assoc list, and produces:
  ;* a struct constructor (must have prop:object)
  ;* a struct predicate
  ;* a struct type for derived classes (mustn't have prop:object)
  ;
  ; The supplied preparer takes a symbol and returns a num.
  ; 
  ; The supplied dispatcher takes an object and a num and returns a method.
  ;
  ; The supplied unwrap property is used for adding the unwrapper
  ;  as a property value on new objects.
  ;
  ; The supplied unwrapper takes an object and returns the unwrapped
  ;  version (or the original object).
  ;
  ; When a primitive class has a superclass, the struct:prim maker
  ;  is responsible for ensuring that the returned struct items match
  ;  the supertype predicate.

This suggests that make-struct:prim should take 7 arguments, but passing a 
function of 7 arguments to it from the repl produces:

-> (make-primitive-class (lambda (a b c d e f g) (values #f #f #f)) #f 'foo 
object% null #f null null null null)
; #: arity mismatch;
;  the expected number of arguments does not match the given number
;   expected: 7
;   given: 5

Also as far as I can tell `make-primitive-class` is never used in the code 
base, it is defined in class-internal.rkt, but can be commented out without 
seeming to break anything else. Does anyone know if there is a purpose for this 
function, or if there is documentation somewhere on the functions I need to 
pass it in order to construct a class. I think I'm starting to get a better 
idea of how it might work from reading more of class-internal.rkt and how the 
class* macro expands, but any guidance would be appreciated.

Thanks
Dan

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] Fwd: [racket] canonical index of Racket courses? [was: Summer programs learning Racket for a student]

2014-04-17 Thread Matthias Felleisen

Would someone volunteer please to create and maintain such a page for Racket? 
Thanks -- Matthias




Begin forwarded message:

> From: j...@math.brown.edu
> Subject: [racket] canonical index of Racket courses? [was: Summer programs 
> learning Racket for a student]
> Date: April 16, 2014 4:45:30 PM EDT
> To: Racket Users 
> 
> I recently asked here about in-person Racket courses available this summer 
> which I could recommend to a student I've been tutoring. (Thanks again to 
> everyone who let me know about their courses so far.)
> 
> To make this info easier to find, I'm wondering if the racket-lang.org 
> maintainers would be interested in publishing a canonical index of Racket 
> courses (both online and in-person) linked off the "Community" or "Learning" 
> sections on the homepage, and inviting the community to add to it.
> 
> (Similarly, linking to a canonical index of Racket meetup groups (à la 
> http://clojure.meetup.com/ and https://wiki.python.org/moin/LocalUserGroups)  
> would be great too. Google turned up http://racket.meetup.com/ but 2 of the 3 
> results there are for racket sports.)
> 
> Thanks, and looking forward to knowing how to become better plugged into the 
> Racket community!
> 
>  Racket Users list:
>  http://lists.racket-lang.org/users

_
  Racket Developers list:
  http://lists.racket-lang.org/dev