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

2010-07-28 Thread Jon Rafkind



Infix notation can be achieved unambiguously if you use LL(1) with
backtracking

...which I didn't want to do.

Pedagogically, it has been immensely valuable to explain to kids that
+ and - aren't some special thing, but are just mere operators -- and
so are string-append and image-overlay and so on.

Plus, there isn't much arithmetic in many Scheme programs, which means
the quantity of actual infix is small.


Infix goes beyond just arithmetic, ruby allows this sort of syntax

some_list.map{...}.filter{...}.map{...}.fold_right{...}

Which I find much more readable than

(fold-right (map (filter (map some_list)))
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Language selection considered harmful

2010-08-26 Thread Jon Rafkind



When I'm answering such questions, it is getting extremely difficult
to tell people what to do, and often leads to some confusingly broken
dialog.  See for example:
http://stackoverflow.com/questions/3572450/packaging-system-in-racket

This is mostly a rant since I don't see any easy way to improve it,
especially given the problem of dealing with htdp based classes.



It doesn't look like the documentation is very explicit about how to run 
r6rs programs in drracket, the only information I could find was running 
programs on the command line with plt-r6rs and other such commands.


It looks like there are two places where the docs should say something 
about drracket and r6rs:

http://docs.racket-lang.org/guide/standards.html?q=r6rsq=r6rs#(part._.R6.R.S)
http://docs.racket-lang.org/r6rs/Running_Top-Level_Programs.html?q=r6rsq=r6rs

_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Language selection considered harmful

2010-08-26 Thread Jon Rafkind

 On 08/26/2010 09:48 AM, Eli Barzilay wrote:

On Aug 26, Jon Rafkind wrote:

When I'm answering such questions, it is getting extremely difficult
to tell people what to do, and often leads to some confusingly broken
dialog.  See for example:
http://stackoverflow.com/questions/3572450/packaging-system-in-racket

This is mostly a rant since I don't see any easy way to improve it,
especially given the problem of dealing with htdp based classes.


It doesn't look like the documentation is very explicit about how to run
r6rs programs in drracket, the only information I could find was running
programs on the command line with plt-r6rs and other such commands.

It looks like there are two places where the docs should say something
about drracket and r6rs:
http://docs.racket-lang.org/guide/standards.html?q=r6rsq=r6rs#(part._.R6.R.S)
http://docs.racket-lang.org/r6rs/Running_Top-Level_Programs.html?q=r6rsq=r6rs

(Improving that would be nice, but I run into these things in many
contexts, not just r6rs.)


ya.. well im hacking on the r6rs docs right now at least
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Language selection considered harmful

2010-08-26 Thread Jon Rafkind

 On 08/26/2010 09:33 AM, Eli Barzilay wrote:

It's getting to be difficult to tell people what to do wrt choosing a
language.  There are several things that contribute to this:

* I can't use default language to refer to the module language,
   since it's not the default.

* I can't use module language to refer to it since it's not known by
   that name -- and module is no longer something that newbies know
   about.

* I can't even refer to some sane label in the language dialog, since
   there is only a description instead of a name -- unlike other
   languages.

* The term language itself is very confusing -- no easy way to
   distinguish a language in the #lang sense and language in the
   entry in the language selection dialog sense.



What about having some sub-options under use language declared in 
source for some common things people use? drracket could just insert 
the appropriate #lang line and use that language.


* Use language declared in source
   * racket
   * r5rs
   * r6rs
   * typed-scheme
   * ...
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


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

2010-09-28 Thread Jon Rafkind

 http://www.cs.utah.edu/~rafkind/tmp/lines.png

This is not yet enabled, to see it change (show-line-numbers?) to #t. I 
don't know how to add menu options and configuration stuff off-hand, if 
anyone can whip it up quickly go for it, otherwise it will take me some 
extra time to figure it out.


Also this doesn't work well for split panes. When the definitions canvas 
is split the line numbers don't get split as well.


On 09/28/2010 02:24 PM, rafk...@racket-lang.org wrote:

rafkind has updated `master' from e4a598ccb2 to d112eb4ceb.
   http://git.racket-lang.org/plt/e4a598ccb2..d112eb4ceb

=[ 1 Commits ]==

Directory summary:
  100.0% collects/drracket/private/

~~

d112eb4 Jon Rafkindrafk...@racket-lang.org  2010-09-28 13:49
:
| add line numbers pane to drracket
:
   M collects/drracket/private/unit.rkt |  143 +++--

=[ Overall Diff ]===

collects/drracket/private/unit.rkt
~~
--- OLD/collects/drracket/private/unit.rkt
+++ NEW/collects/drracket/private/unit.rkt
@@ -447,8 +447,103 @@ module browser threading seems wrong.
  (set! definitions-text% (make-definitions-text%)))
definitions-text%)))

+;; TODO: get this from the configuation file
+;; also add a menu entry that sets this property dynamically
+(define (show-line-numbers?) #f)
+
+;; links two editor's together so they scroll in tandem
+(define (linked-scroller %)
+  (class %
+ (super-new)
+ (field [linked #f])
+ (init-field line-numbers?)
+
+ (inherit insert line-start-position line-end-position)
+
+ (define/public (link-to! who)
+   (set! linked who))
+
+ #;
+ (define/override (scroll-editor-to . args)
+   (printf Scroll editor to ~a\n args))
+ #;
+ (define/override (scroll-to-position . args)
+   (printf Scroll-to-position ~a\n args))
+
+ (define (visible? want-start want-end)
+   (define start (box 0))
+   (define end (box 0))
+   (send this get-visible-line-range start end)
+   (and (= want-start (unbox start))
+(= want-end (unbox end
+
+ (define/public (scroll-to-line start end)
+   (when (not (visible? start end))
+ (send this scroll-to-position
+   (send this line-end-position start)
+   #f
+   (send this line-end-position end
+
+ (define/augment (after-delete start length)
+   (when (not line-numbers?)
+ (when linked
+   (send linked ensure-length (send this last-line
+   (inner (void) after-delete start length))
+
+ (define/augment (after-insert start length)
+   (when (not line-numbers?)
+ #;
+ (printf Send ~a linked ensure-length ~a\n linked (send this 
last-line))
+ (when linked
+   (send linked ensure-length (send this last-line
+   (inner (void) after-insert start length))
+
+ (define/public (ensure-length length)
+   (define lines (send this last-line))
+   #;
+   (printf Line count has ~a needs ~a\n lines length)
+   (when line-numbers?
+ (when (  lines (add1 length))
+   (send this delete
+ (line-start-position (add1 length))
+ (line-end-position lines)
+ #f
+ ))
+ (send this begin-edit-sequence)
+ (for ([line (in-range (add1 lines) (add1 (add1 length)))])
+   #;
+   (printf Insert line ~a\n line)
+   (insert (format ~a\n line)))
+ (send this end-edit-sequence)))
+
+ (define/override (on-paint . args)
+   (define start (box 0))
+   (define end (box 0))
+   (define (current-time) (current-inexact-milliseconds))
+   (send this get-visible-line-range start end)
+   #;
+   (printf text: Repaint at ~a to ~a at ~a!\n (unbox start) 
(unbox end) (current-time))
+   (when linked
+ (send linked scroll-to-line (unbox start) (unbox end)))
+   (super on-paint . args))
+ #;
+ (define/override (on-scroll-on-change . args)
+   (printf Scroller on-scroll-on-change ~a\n args))
+ #;
+ (define/override (scroll-to . args)
+   (printf Scrolled to ~a\n args)
+   #;
+   (super on-scroll event
+
+;; an editor that does not respond to 

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

2010-10-22 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - Test that the binary installers for both work, try each one in
 both normal and unix-style installation modes. (just ubuntu)

done
source - ok
binary - ok
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] building docs, compile collects

2010-10-25 Thread Jon Rafkind
If I run 'racket -f quiet.rktl' in collects/tests/racket a bunch of
collects will be pulled in (mzlib, scheme, racket, etc.). So I would
need to do 'raco setup -D racket mzlib scheme', not to mention first
figure out what collections are pulled in to begin with.

On 10/25/2010 03:57 PM, Robby Findler wrote:
 Oh, yes. Just run make install and then raco setup -D racket.
 Write it down on a postit and stick it on your screen. :) Or make a
 little script that does the whole git pull thing and onwards.

 Robby

 On Mon, Oct 25, 2010 at 4:22 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu 
 wrote:
 On Mon, Oct 25, 2010 at 5:15 PM, Jon Rafkind rafk...@cs.utah.edu wrote:
 On 10/25/2010 03:06 PM, Sam Tobin-Hochstadt wrote:
 On Mon, Oct 25, 2010 at 4:54 PM, Jon Rafkind rafk...@cs.utah.edu wrote:
 My motivation is to quickly test changes to core libraries (like
 collects/racket) after doing a 'git pull --rebase'.
 Given that this is your motivation, why not just use:

  'raco setup -D'

 which skips the documentation altogether?
 The issue is building collects that I don't care about nor do the tests
 exercise (like algol60, or all of drracket). In the event that there is
 some subtle issue between my changes and a collect that I don't want to
 build then DrDr will find it.
 Try 'raco setup racket'
 --
 sam th
 sa...@ccs.neu.edu
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] building docs, compile collects

2010-10-26 Thread Jon Rafkind
Eli helped me write a module that installs a compile manager which
compiles all loaded files on the fly.
$ cat compile.rkt
#lang racket/base

(require compiler/cm)
(current-load/use-compiled
(make-compilation-manager-load/use-compiled-handler))

$ racket -t compile.rkt -l racket/base -t somefile.rkt
...
$ ls compiled
somefile_rkt.dep
somefile_rkt.zo

Any dependancies of 'somefile.rkt' would have been compiled as well.
This is basically the behavior I want so I'm happy. Does anyone want
that module (compile.rkt) in the collects tree (with docs on how to use
it) ?

On 10/25/2010 07:46 PM, Robby Findler wrote:
 Well, if you're working on things that drracket shares (like the
 quiet.rktl test suite does) then you can't use that. But if you read
 the docs that you were pointed to earlier, you should be in good
 shape.

 Robby

 On Mon, Oct 25, 2010 at 6:20 PM, Matthias Felleisen
 matth...@ccs.neu.edu wrote:
 On Oct 25, 2010, at 7:14 PM, Eli Barzilay wrote:

 IOW, it sounds to me like you want to use drracket with the
 auto-compile feature on for all files

 Amen, which is what I thought when I read Jon's message.

 Real friends use drracket. -- Matthias

 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] 5.0.2 changelog

2010-10-26 Thread Jon Rafkind
Here is the raw changelog for 5.0.2. If you would like to summarize your
changes please do so, otherwise someone (me/eli/ryan) will do it for
you. If there are any other important items to note for this release
please make a note of them.

Matthew Flatt
commit bf4fc2574c06132fece7342219fe6ea589e42f6d
fix syntax colorer for #true and #false
commit 99df8e126790077c11b4363a273ebf777bff8514
allow internal definitions in `when', `unless', `cond, `case', `match'
commit 15302dc844ecf931145f895677cc8eb765b69960
adjust futures to decouple blocked futures from worker threads
 which required adding a notion of lightweight continuation to
 the runtime system, where a lightweight continuation involves
 only frames from JIT0generated code (so that details of the stack
 layout are known, for example)

Mike Sperber
commit 38cf78e213ee8f246ce322becb419aaed6ec2391
Allow specifying arbitary expressions in a signature declaration.
   
Fixes PR 11282

Vincent St-Amour
commit 8baa1682af76965400ab1071a46f8ba50f7c7165
Turned the optimizer on by default.
commit 8d6230956dc8c207c097a389fa1f0c7273bb55b7
Documented the optimizer.

Jon Rafkind
commit d112eb4ceb8b94aebf1f699d1591386579e07a22
add line numbers pane to drracket

Will M. Farr
commit beb21754564fa8f20eae7e0e3109f2c1d06260c4
Added flvector-copy (with tests and docs).
commit 82096abb1b6fd4a8872f528437ba95c44a4aedba
Added interation forms for/vector, for*/vector, for/flvector, and
for*/flvector and for-clause in-flvector.

Jay McCarthy
commit 01a41a812e83d0fb3a31940de0b52504ac4bbdb6
Closing pr11216. Adding one armed check-error to teaching languages.
commit d17deb5fef8342e2dc25b6ddd027bd71d6373a8f
Adding hash table functions to ASL
commit 407dcee206678785b4b87bb513d7ba5f55ad8ab5
Adding match to ASL
commit 347e946548c26bd51b682284816aa7f6f34b2d92
Adding WebSocket support

Stevie Strickland
commit ec0711bf4996dde06ecddbc8fcb95f44987a6915
Add chaperone contract-related properties.
   
  * Flat contracts are chaperone contracts, and chaperone contracts
are (proxy) contracts.
  * Check in chaperone contracts that a chaperone (or chaperone-friendly
value) is indeed returned.

Ryan Culpepper
commit 5a8d2f010e9e7858ff8c32ffadf73adac11cd98a
added data/gvector, docs (need tests)
commit d7a87c79e0211071fecb8474e6f7f66317b089d4
Merged changes to syntax/parse
  Changed backtracking algorithm, runtime representations
- syntax classes, ~describe no longer implicitly commit
- ~describe no longer delimits effect of cut
  Added keyword  optional args for stxclasses
  Added ~do and #:do, ~post, ~commit and #:commit,
~delimit-cut and #:no-delimit-cut
  Added syntax/parse/debug, syntax/parse/experimental/*
- expr/c for contracting macro sub-expressions
  moved from syntax/parse to syntax/parse/experimental/contract
- syntax class reflection (~reflect, ~splicing-reflect)
- eh-alternative-sets (~eh-var)
- provide-syntax-class/contract
  (only for params, not attrs so far)
  Changed ~fail to not include POST progress (#:fail still does)
old (~fail _) is now (~post (~fail _))
  Made msg argument of ~fail optional
  Removed generic repetition constraint violated msg
  Removed atom-in-list stxclass
  Removed unnecessary datum-syntax on cdr of pair pattern
massive improvements to long-list microbenchmarks
  Optimization: integrable syntax classes (id, expr, keyword)
need better measurements
  Optimization: ad hoc elimination of head/tail choice point
for (EH ... . ()) patterns
  Added unstable/wrapc (proc version of expr/c)

Robby Findler
commit 5e01ac55373d2987410da7d95f26f42535cfae3b
added a pinhole property to images
commit 561ac12a91e02fbc298272cc97d96e00d92f98ae
got started on the -i parser

Sam Tobin-Hochstadt
commit 0635fc6d7542ea412e4586ca6ca051fdd2d91adb
Create data/ collection.
   
 - Initially populated with queues, skip-lists, and interval-maps
from unstable/
 - Tests in tests/data, docs in data/scribblings

Jens Axel Søgaard
commit 64c3a98e45bda91b39eb811456ab409b72f0936e
Added triangle/sss, triangle/ass, triangle/sas, triangle/ssa,
triangle/aas, triangle/asa, and, triangle/saa.

Kevin Tew
commit 5bb2e148de87457ebb4790287d3b83b872c91a78
Parallel docs build
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] 5.0.2 changelog

2010-10-27 Thread Jon Rafkind
Would people like a list of their own commits and they can choose which
ones should have an accompanying release note?

$ git log da9b718bf80c3e678e1d9372c521d512e0b91747..master --author=rafkind


On 10/27/2010 03:55 PM, Jay McCarthy wrote:
 On Tue, Oct 26, 2010 at 12:34 PM, Jon Rafkind rafk...@cs.utah.edu wrote:
 Here is the raw changelog for 5.0.2. If you would like to summarize your
 changes please do so, otherwise someone (me/eli/ryan) will do it for
 you. If there are any other important items to note for this release
 please make a note of them.

 Matthew Flatt
 commit bf4fc2574c06132fece7342219fe6ea589e42f6d
fix syntax colorer for #true and #false
 commit 99df8e126790077c11b4363a273ebf777bff8514
allow internal definitions in `when', `unless', `cond, `case', `match'
 commit 15302dc844ecf931145f895677cc8eb765b69960
adjust futures to decouple blocked futures from worker threads
 which required adding a notion of lightweight continuation to
 the runtime system, where a lightweight continuation involves
 only frames from JIT0generated code (so that details of the stack
 layout are known, for example)

 Mike Sperber
 commit 38cf78e213ee8f246ce322becb419aaed6ec2391
Allow specifying arbitary expressions in a signature declaration.

Fixes PR 11282

 Vincent St-Amour
 commit 8baa1682af76965400ab1071a46f8ba50f7c7165
Turned the optimizer on by default.
 commit 8d6230956dc8c207c097a389fa1f0c7273bb55b7
Documented the optimizer.

 Jon Rafkind
 commit d112eb4ceb8b94aebf1f699d1591386579e07a22
add line numbers pane to drracket

 Will M. Farr
 commit beb21754564fa8f20eae7e0e3109f2c1d06260c4
Added flvector-copy (with tests and docs).
 commit 82096abb1b6fd4a8872f528437ba95c44a4aedba
Added interation forms for/vector, for*/vector, for/flvector, and
 for*/flvector and for-clause in-flvector.

 Jay McCarthy
 commit 01a41a812e83d0fb3a31940de0b52504ac4bbdb6
Closing pr11216. Adding one armed check-error to teaching languages.
 commit d17deb5fef8342e2dc25b6ddd027bd71d6373a8f
Adding hash table functions to ASL
 commit 407dcee206678785b4b87bb513d7ba5f55ad8ab5
Adding match to ASL
 commit 347e946548c26bd51b682284816aa7f6f34b2d92
Adding WebSocket support
 I don't know where this list came from but it is lacking.

 There are some changes to PLAI and to the Web server.

 Jay

 Stevie Strickland
 commit ec0711bf4996dde06ecddbc8fcb95f44987a6915
Add chaperone contract-related properties.

  * Flat contracts are chaperone contracts, and chaperone contracts
are (proxy) contracts.
  * Check in chaperone contracts that a chaperone (or chaperone-friendly
value) is indeed returned.

 Ryan Culpepper
 commit 5a8d2f010e9e7858ff8c32ffadf73adac11cd98a
added data/gvector, docs (need tests)
 commit d7a87c79e0211071fecb8474e6f7f66317b089d4
Merged changes to syntax/parse
  Changed backtracking algorithm, runtime representations
- syntax classes, ~describe no longer implicitly commit
- ~describe no longer delimits effect of cut
  Added keyword  optional args for stxclasses
  Added ~do and #:do, ~post, ~commit and #:commit,
~delimit-cut and #:no-delimit-cut
  Added syntax/parse/debug, syntax/parse/experimental/*
- expr/c for contracting macro sub-expressions
  moved from syntax/parse to syntax/parse/experimental/contract
- syntax class reflection (~reflect, ~splicing-reflect)
- eh-alternative-sets (~eh-var)
- provide-syntax-class/contract
  (only for params, not attrs so far)
  Changed ~fail to not include POST progress (#:fail still does)
old (~fail _) is now (~post (~fail _))
  Made msg argument of ~fail optional
  Removed generic repetition constraint violated msg
  Removed atom-in-list stxclass
  Removed unnecessary datum-syntax on cdr of pair pattern
massive improvements to long-list microbenchmarks
  Optimization: integrable syntax classes (id, expr, keyword)
need better measurements
  Optimization: ad hoc elimination of head/tail choice point
for (EH ... . ()) patterns
  Added unstable/wrapc (proc version of expr/c)

 Robby Findler
 commit 5e01ac55373d2987410da7d95f26f42535cfae3b
added a pinhole property to images
 commit 561ac12a91e02fbc298272cc97d96e00d92f98ae
got started on the -i parser

 Sam Tobin-Hochstadt
 commit 0635fc6d7542ea412e4586ca6ca051fdd2d91adb
Create data/ collection.

 - Initially populated with queues, skip-lists, and interval-maps
 from unstable/
 - Tests in tests/data, docs in data/scribblings

 Jens Axel Søgaard
 commit 64c3a98e45bda91b39eb811456ab409b72f0936e
Added triangle/sss, triangle/ass, triangle/sas, triangle/ssa,
 triangle/aas, triangle/asa, and, triangle/saa.

 Kevin Tew
 commit 5bb2e148de87457ebb4790287d3b83b872c91a78
Parallel docs build
 _
  For list-related administrative tasks

[racket-dev] 5.0.2 changelog

2010-10-27 Thread Jon Rafkind
Please find your name below and provide some blurb for the 5.0.2 changelog

Author: Jay McCarthy j...@racket-lang.org
- Adding define-datatype to ASL
- PLAI changes
- Webserver changes

Author: Sam Tobin-Hochstadt sa...@racket-lang.org
Faster loading of TR files?

Author: Casey Klein clkl...@racket-lang.org
redex things?

Author: Matthew Flatt mfl...@racket-lang.org
Modules spliced at the file level instead of collection level.
Internal definitions for `when', `unless', `cond', `case', and `match'
#true and #false forms

Author: Robby Findler ro...@racket-lang.org
- Check syntax changes
- triangle primitives

Author: Jay McCarthy j...@racket-lang.org
- New hash functions

Author: ryan
   - data/gvector
   - syntax/parse updates
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] 5.0.2 changelog

2010-10-28 Thread Jon Rafkind
On 10/28/2010 06:36 AM, Sam Tobin-Hochstadt wrote:
 On Thu, Oct 28, 2010 at 1:40 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 Author: Sam Tobin-Hochstadt sa...@racket-lang.org
Faster loading of TR files?
 Not worth mentioning.

 You do have the optimizer-by-default in the changelog, right?
yessir
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] try the GRacket2 branch

2010-10-28 Thread Jon Rafkind
Maybe I screwed something up but I can't tell if I'm running gr2 or not.
I built the gr2 branch and ran drscheme but so far it looks exactly the
same as gr1 (which I am positive is actually gr1).

Is there an easy way to tell if I'm running gr2? Or should gr2 look
identical to gr1?

On 10/28/2010 12:25 AM, Matthew Flatt wrote:
 The git repository now includes a gr2 branch for the new
 implementation of `racket/gui', which we've been informally calling
 GRacket2.

 The new `racket/gui' is intended to be mostly compatible with the
 current library, but there are some significant incompatibilities.
 Those differences are described below in a copy of the Porting from
 v5.0.x to vX.Y notes that are linked from the Release Notes page of
 the documentation.

 GRacket2 is a misnomer in the sense that you can use the new
 `racket/gui' with just `racket'. Furthermore, the drawing layer is
 mostly unbundled from the GUI layer into a separate `racket/draw'
 library, so you can manipulate images without a GUI (e.g., without an
 X11 connection). The documentation doesn't yet reflect the GUI--Draw
 split, Slideshow's pict library doesn't yet use `racket/draw', etc.,
 but I hope to get to that next.

 More immediately, it's time for you to try out the gr2 branch for
 everyday work. I've switched to GRacket2 for SirMail, Slideshow, and
 DrRacket --- even during lecture. All library functionality is in
 place, but I'm sure that gaps and problems will show up as we put the
 library to work (and I know that some of the tests still fail). I
 expect to see many bug reports; once the bug reports slow down, I'll
 take that as a sign that GRacket2 can move to master branch.

 

 GRacket, Racket, Drawing, and GUIs
 --

 Version X.Y includes two major changes to the Racket drawing and GUI
 API:

  * The drawing portion of the GUI toolbox is now available as a
separate layer: `racket/draw'. This layer can be used independent
of the `racket/gui/base' library, although `racket/gui' re-exports
`racket/draw'.

(The `racket/draw' library is built on top of the widely used Cairo
drawing library and Pango text-rendering library.)

  * The GRacket executable is no longer strictly necessary for running
GUI programs; the `racket/gui/base' library can be used from
Racket.

The GRacket executable still offers some additional GUI-specific
functiontality however. Most notably, GRacket is a GUI application
under Windows (as opposed to a console application, which is
launched slightly differently by the OS), GRacket is a bundle under
Mac OS X (so the dock icon is the Racket logo, for example), and
GRacket manages single-instance mode for Windows and X.

 The drawing and GUI libraries have also changed in further small ways.


 Bitmaps
 ---

 Drawing to a bitmap may not produce the same results as drawing to a
 canvas. Use the `make-screen-bitmap' function (from `racket/gui') or
 the `make-bitmap' method of `canvas%' to obtain a bitmap that uses the
 same drawing algorithms as a canvas.

 A color bitmap can have an alpha channel, instead of just a mask
 bitmap. When drawing a bitmap, alpha channels are used more
 consistently and automatically than mask bitmaps. More significantly,
 drawing into a bitmap with an alpha channel preserves the drawn
 alphas; for example, drawing a line in the middle of an empty bitmap
 produces an image with non-zero alpha only at the drawn line.

 Only bitmaps created with the new `make-gl-bitmap' function support
 OpenGL drawing.

 Use the new `make-bitmap', `read-bitmap', `make-monochrome-bitmap',
 `make-screen-bitmap', and `make-gl-bitmap' functions to create
 bitmaps, instead of using `make-object' with `bitmap%'. The new
 constructors are less overloaded and provide more modern defaults
 (such as alpha channels by default).

 Image formats can be read into a `bitmap%' from from input ports,
 instead of requiring a file path. A newly created bitmap has an empty
 content (i.e., white with zero alpha), instead of unspecified content.


 Canvases
 

 Drawing to a canvas always draws into a bitmap that is kept offscreen
 and periodically flushed onto the screen. The new `suspend-flush' and
 `resume-flush' methods of `canvas%' provide some control over the
 timing of the flushes, which in many cases avoids the need for
 (additional) double buffering of canvas content.

 OpenGL drawing in a canvas requires supplying 'gl as a style when
 creating the `canvas%' instance. OpenGL and normal dc% drawing no
 longer mix reliably in a canvas.


 Drawing-Context Transformations
 ---

 A `dc%' instance supports rotation (via `set-rotation'), negative
 scaling factors for flipping, and a general transformation matrix (via
 `set-initial-matrix'). A transformation matrix has the form `(vector
 xx xy yx yy x0 y0)', where a point (x1, y1) is transformed to a point
 (x2, y2) 

Re: [racket-dev] try the GRacket2 branch

2010-10-28 Thread Jon Rafkind
I got it to work, I think my initial trouble was I ran
$ git checkout -b gr2
instead of
$ git checkout gr2

On 10/28/2010 12:11 PM, Robby Findler wrote:
 Under ubuntu the menus are ubuntu colors instead of grey. Under mac os
 x, the splash screen's progress bar is slightly taller.

 Robby

 On Thu, Oct 28, 2010 at 12:42 PM, Matthew Flatt mfl...@cs.utah.edu wrote:
 The version number on GRacket2 right now is 5.0.2.2.

 At Thu, 28 Oct 2010 11:26:43 -0600, Jon Rafkind wrote:
 Maybe I screwed something up but I can't tell if I'm running gr2 or not.
 I built the gr2 branch and ran drscheme but so far it looks exactly the
 same as gr1 (which I am positive is actually gr1).

 Is there an easy way to tell if I'm running gr2? Or should gr2 look
 identical to gr1?

 On 10/28/2010 12:25 AM, Matthew Flatt wrote:
 The git repository now includes a gr2 branch for the new
 implementation of `racket/gui', which we've been informally calling
 GRacket2.

 The new `racket/gui' is intended to be mostly compatible with the
 current library, but there are some significant incompatibilities.
 Those differences are described below in a copy of the Porting from
 v5.0.x to vX.Y notes that are linked from the Release Notes page of
 the documentation.

 GRacket2 is a misnomer in the sense that you can use the new
 `racket/gui' with just `racket'. Furthermore, the drawing layer is
 mostly unbundled from the GUI layer into a separate `racket/draw'
 library, so you can manipulate images without a GUI (e.g., without an
 X11 connection). The documentation doesn't yet reflect the GUI--Draw
 split, Slideshow's pict library doesn't yet use `racket/draw', etc.,
 but I hope to get to that next.

 More immediately, it's time for you to try out the gr2 branch for
 everyday work. I've switched to GRacket2 for SirMail, Slideshow, and
 DrRacket --- even during lecture. All library functionality is in
 place, but I'm sure that gaps and problems will show up as we put the
 library to work (and I know that some of the tests still fail). I
 expect to see many bug reports; once the bug reports slow down, I'll
 take that as a sign that GRacket2 can move to master branch.

 

 GRacket, Racket, Drawing, and GUIs
 --

 Version X.Y includes two major changes to the Racket drawing and GUI
 API:

  * The drawing portion of the GUI toolbox is now available as a
separate layer: `racket/draw'. This layer can be used independent
of the `racket/gui/base' library, although `racket/gui' re-exports
`racket/draw'.

(The `racket/draw' library is built on top of the widely used Cairo
drawing library and Pango text-rendering library.)

  * The GRacket executable is no longer strictly necessary for running
GUI programs; the `racket/gui/base' library can be used from
Racket.

The GRacket executable still offers some additional GUI-specific
functiontality however. Most notably, GRacket is a GUI application
under Windows (as opposed to a console application, which is
launched slightly differently by the OS), GRacket is a bundle under
Mac OS X (so the dock icon is the Racket logo, for example), and
GRacket manages single-instance mode for Windows and X.

 The drawing and GUI libraries have also changed in further small ways.


 Bitmaps
 ---

 Drawing to a bitmap may not produce the same results as drawing to a
 canvas. Use the `make-screen-bitmap' function (from `racket/gui') or
 the `make-bitmap' method of `canvas%' to obtain a bitmap that uses the
 same drawing algorithms as a canvas.

 A color bitmap can have an alpha channel, instead of just a mask
 bitmap. When drawing a bitmap, alpha channels are used more
 consistently and automatically than mask bitmaps. More significantly,
 drawing into a bitmap with an alpha channel preserves the drawn
 alphas; for example, drawing a line in the middle of an empty bitmap
 produces an image with non-zero alpha only at the drawn line.

 Only bitmaps created with the new `make-gl-bitmap' function support
 OpenGL drawing.

 Use the new `make-bitmap', `read-bitmap', `make-monochrome-bitmap',
 `make-screen-bitmap', and `make-gl-bitmap' functions to create
 bitmaps, instead of using `make-object' with `bitmap%'. The new
 constructors are less overloaded and provide more modern defaults
 (such as alpha channels by default).

 Image formats can be read into a `bitmap%' from from input ports,
 instead of requiring a file path. A newly created bitmap has an empty
 content (i.e., white with zero alpha), instead of unspecified content.


 Canvases
 

 Drawing to a canvas always draws into a bitmap that is kept offscreen
 and periodically flushed onto the screen. The new `suspend-flush' and
 `resume-flush' methods of `canvas%' provide some control over the
 timing of the flushes, which in many cases avoids the need for
 (additional) double buffering of canvas content.

 OpenGL drawing in a canvas requires

Re: [racket-dev] try the GRacket2 branch

2010-10-28 Thread Jon Rafkind
On 10/28/2010 01:05 PM, Casey Klein wrote:
 On Thu, Oct 28, 2010 at 1:25 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 More immediately, it's time for you to try out the gr2 branch for
 everyday work.
 In case there's anyone else who wants to try but (somehow) knows even
 less about git than I do, here's what I did to checkout the branch.

 $ git clone g...@git.racket-lang.org:plt gr2
 $ git branch gr2 origin/gr2
 $ git checkout gr2

 It seems to have worked, but there may be a more git-savvy way to do it.
You should be able to do just
$ git clone ...
$ git checkout gr2
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Demodularizer

2010-10-29 Thread Jon Rafkind
How do you run the resulting _merged file? I ran 'raco demod p.rkt' and
got compiled/p_rkt_zo_merged.zo. Then I tried running racket on it but
got an error

$ ~/bin/plt/bin/racket p_rkt_zo_merged
compiled/p_rkt_zo_merged.zo: read (compiled): ill-formed code (bad
count: 436459 != 801349, started at 11951)

Also just some quick stats:
$ cat p.rkt
#lang racket

(define (hello)
  (printf Hello world!))

(hello)

$ ls -l compiled/p_rkt.zo ;; just using raco make
352
$ ls -l compiled/p_rkt_zo_merged.zo
448410

Would you mind renaming the command to 'demodularize' ?

On 10/29/2010 07:53 PM, Jay McCarthy wrote:
 Here is a message from Blake Johnson about something I just pushed for him:

 

 Jay recently committed my changes implementing raco demod, which will
 flatten a modular program into a single compiled module.

 How to use it:

 Run raco demod filename. This will produce a demodularized zo file
 called filename_merged.zo which can then be run by passing it to
 racket. This process can take quite a while, so if you want to see
 what is going on, you can set PLTSTDERR=debug or info. Once the zo
 file is created, it can be moved and run from anywhere because it has
 no dependencies.

 What it doesn't do (yet):

 - Dead code elimination

 This is partially implemented but doesn't handle every case properly,
 so it is turned off for now.

 - Optimize the program

 This is the next big thing I'm working on, which involves decompiling
 the zo slightly and converting it into c structs so that the existing
 optimizer can run on it.

 - Work with programs that dynamically manipulate modules

 This means things like DrRacket won't be able to be demodularized. We
 have some ideas on how to handle this, but it probably won't happen
 any time soon.

 Other improvements:

 zo-parse and zo-marshal should be able to handle any .zo you throw at them.

 Help needed:

 Any programs that don't work after demodularization would be helpful.

 Thanks,

 Blake Johnson

 

 At the moment, we have not measured any performance improvements, etc
 after using the demodularizer. At the moment, we do not anticipate
 that there will be any because we are not doing DCE or the
 re-optimization. We'll let everyone know when we measure that. For the
 moment, this may be of particular interest to any out there that are
 doing program analysis and would like whole programs.

 Jay


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Demodularizer

2010-10-29 Thread Jon Rafkind
Ok nevermind about the bug, I had some leftover .zo files. When I erased
my compiled directory and reran the demodularizer it worked.

Another quick stat:
$ time raco demod p.rkt
real 3m55.563s

1.8ghz amd

On 10/29/2010 10:40 PM, Jon Rafkind wrote:
 How do you run the resulting _merged file? I ran 'raco demod p.rkt' and
 got compiled/p_rkt_zo_merged.zo. Then I tried running racket on it but
 got an error

 $ ~/bin/plt/bin/racket p_rkt_zo_merged
 compiled/p_rkt_zo_merged.zo: read (compiled): ill-formed code (bad
 count: 436459 != 801349, started at 11951)

 Also just some quick stats:
 $ cat p.rkt
 #lang racket

 (define (hello)
   (printf Hello world!))

 (hello)

 $ ls -l compiled/p_rkt.zo ;; just using raco make
 352
 $ ls -l compiled/p_rkt_zo_merged.zo
 448410

 Would you mind renaming the command to 'demodularize' ?

 On 10/29/2010 07:53 PM, Jay McCarthy wrote:
 Here is a message from Blake Johnson about something I just pushed for him:

 

 Jay recently committed my changes implementing raco demod, which will
 flatten a modular program into a single compiled module.

 How to use it:

 Run raco demod filename. This will produce a demodularized zo file
 called filename_merged.zo which can then be run by passing it to
 racket. This process can take quite a while, so if you want to see
 what is going on, you can set PLTSTDERR=debug or info. Once the zo
 file is created, it can be moved and run from anywhere because it has
 no dependencies.

 What it doesn't do (yet):

 - Dead code elimination

 This is partially implemented but doesn't handle every case properly,
 so it is turned off for now.

 - Optimize the program

 This is the next big thing I'm working on, which involves decompiling
 the zo slightly and converting it into c structs so that the existing
 optimizer can run on it.

 - Work with programs that dynamically manipulate modules

 This means things like DrRacket won't be able to be demodularized. We
 have some ideas on how to handle this, but it probably won't happen
 any time soon.

 Other improvements:

 zo-parse and zo-marshal should be able to handle any .zo you throw at them.

 Help needed:

 Any programs that don't work after demodularization would be helpful.

 Thanks,

 Blake Johnson

 

 At the moment, we have not measured any performance improvements, etc
 after using the demodularizer. At the moment, we do not anticipate
 that there will be any because we are not doing DCE or the
 re-optimization. We'll let everyone know when we measure that. For the
 moment, this may be of particular interest to any out there that are
 doing program analysis and would like whole programs.

 Jay

 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] adding preferences

2010-11-01 Thread Jon Rafkind
I currently have a preference to enabling/disabling line numbers in the
'view' menu which is easy to set up in drracket/collects/main.rkt. A
user asked me to add a checkbox they could select in
edit-preferences-general which I see is controlled by
framework/private/preferences.rkt but I can't seem to get a reference to
the definitions text from there. I suppose I can make the preference set
the 'drracket:show-line-numbers property but it would be nice if it
could dynamically update the line numbers, much like 'view-show line
numbers' currently does.

Is there a way to get to the definitions text in those callbacks?
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] adding preferences

2010-11-01 Thread Jon Rafkind
nevermind, I see preferences:add-to-general-checkbox-panel in
drracket/private/main.rkt

On 11/01/2010 10:27 PM, Jon Rafkind wrote:
 I currently have a preference to enabling/disabling line numbers in the
 'view' menu which is easy to set up in drracket/collects/main.rkt. A
 user asked me to add a checkbox they could select in
 edit-preferences-general which I see is controlled by
 framework/private/preferences.rkt but I can't seem to get a reference to
 the definitions text from there. I suppose I can make the preference set
 the 'drracket:show-line-numbers property but it would be nice if it
 could dynamically update the line numbers, much like 'view-show line
 numbers' currently does.

 Is there a way to get to the definitions text in those callbacks?
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] for behavior with empty sequence

2010-11-07 Thread Jon Rafkind
Is this the right behavior for a `for' loop when no sequences are given?

- (for () (printf ok!\n))
ok!
- (for ([x (in-list (list))]) (printf ok!\n))
-

I would expect the body to occur 0 times.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2010-11-09 Thread Jon Rafkind
It occured to me while making this small patch that the name of the
macro shown in the error message might not be the same as the one the
user called. Namely, if the user renames or prefixes the macro when
requiring it then they will get a mismatch. This seems to be consistent
with how `raise-syntax-error' already works though so is it a big deal?

On 11/09/2010 05:26 PM, rafk...@racket-lang.org wrote:
 rafkind has updated `master' from 3936a40717 to 81eac261dc.
   http://git.racket-lang.org/plt/3936a40717..81eac261dc

 =[ 1 Commits ]==

 Directory summary:
  100.0% collects/racket/private/

 ~~

 81eac26 Jon Rafkind rafk...@racket-lang.org 2010-11-09 17:23
 :
 | better error message for define-syntax-rule
 :
   M collects/racket/private/misc.rkt |   22 --

 =[ Overall Diff ]===

 collects/racket/private/misc.rkt
 
 --- OLD/collects/racket/private/misc.rkt
 +++ NEW/collects/racket/private/misc.rkt
 @@ -12,18 +12,20 @@
(define-syntax define-syntax-rule
  (lambda (stx)
(syntax-case stx ()
 -[(dr (foo . pattern) template)
 - (identifier? #'foo)
 +[(dr (name . pattern) template)
 + (identifier? #'name)
   (syntax/loc stx
 -   (define-syntax foo
 - (lambda (x)
 -   (syntax-case** dr #t x () free-identifier=?
 -  [(_ . pattern) (syntax/loc x template)]]
 -[(dr (foo . pattern) template)
 - (raise-syntax-error 'define-syntax-rule expected an identifier 
 stx #'foo)]
 -[(dr (foo . pattern))
 +   (define-syntax name
 + (lambda (user)
 +   (syntax-case** dr #t user () free-identifier=?
 +  [(_ . pattern) (syntax/loc user template)]
 +  [else (raise-syntax-error 'name (format ~a 
 did not match pattern ~a (syntax-datum user) '(name . pattern)))]
 +  ]
 +[(dr (name . pattern) template)
 + (raise-syntax-error 'define-syntax-rule expected an identifier 
 stx #'name)]
 +[(dr (name . pattern))
   (raise-syntax-error 'define-syntax-rule no template provided stx)]
 -[(dr (foo . pattern) template . etc)
 +[(dr (name . pattern) template . etc)
   (raise-syntax-error 'define-syntax-rule too many templates stx 
 #'etc)]
  [(dr head . template)
   (raise-syntax-error 'define-syntax-rule invalid pattern stx 
 #'head)])))

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2010-11-16 Thread Jon Rafkind
On 11/16/2010 02:39 PM, Robby Findler wrote:
 I added (but have not pushed, apprently) queue-map. Mind if we keep
 that one instead?


Instead of what.. queue-list? I guess you can implement queue-list in
terms of queue-map as (queue-map values queue), but I'd rather not write
that in user code.

 Also, I think that a rename like the below is a bad idea if the queues
 have been released already.


I added queue-count yesterday or so, so its fairly fresh. (The rename
was not my idea)
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] proposed clarification to async-apply docs

2010-11-16 Thread Jon Rafkind
FWIW I agree with John and disagree with Jay.

On 11/16/2010 03:45 PM, Jay McCarthy wrote:
 The typesetting on async-apply clearly refers to the argument rather
 than to a well-known function. This is a convention of the docs that I
 don't think merits special attention here, although this case may
 indicate we should make a how to read the documentation section that
 points out these conventions.

 Jay

 On Tue, Nov 16, 2010 at 1:26 PM, John Clements
 cleme...@brinckerhoff.org wrote:
 My quick reading of the documentation for the #:async-apply argument to the 
 _fun form led to a misunderstanding; the docs seemed to be suggesting that 
 some built-in 'async-apply' procedure was doing all of these magical things, 
 whereas the point was to indicate that the *user* must provide an 
 async-apply that behaves correctly.  I wound up going through and replacing 
 'async-apply' with 'the given async-apply procedure' in about five places. I 
 think the text is clearer now; let me know if I shouldn't commit these 
 changes. Otherwise, I'll commit them locally and push them sometime soon.

 John



 pcp062767pcs:~/plt/collects/scribblings/foreign clements$ git diff 
 types.scrbl
 diff --git a/collects/scribblings/foreign/types.scrbl 
 b/collects/scribblings/foreign/types.scrbl
 index 9d753ac..233f48d 100644
 --- a/collects/scribblings/foreign/types.scrbl
 +++ b/collects/scribblings/foreign/types.scrbl
 @@ -401,19 +401,22 @@ procedure with the generated procedure type can be 
 applied in a
  foreign thread (i.e., an OS-level thread other than the one used to
  run Racket). The call in the foreign thread is transferred to the
  OS-level thread that runs Racket, but the Racket-level thread (in the
 -sense of @racket[thread]) is unspecified; the job of
 -...@scheme[async-apply] is to arrange for the callback procedure to be
 -run in a suitable Racket thread. The @scheme[async-apply] function is
 +sense of @racket[thread]) is unspecified; the job of the provided
 +...@scheme[async-apply] procedure is to arrange for the callback procedure 
 to be
 +run in a suitable Racket thread. The given @scheme[async-apply] procedure is
  applied to a thunk that encapsulates the specific callback invocation,
  and the foreign OS-level thread blocks until the thunk is called and
  completes; the thunk must be called exactly once, and the callback
 -invocation must return normally. The @scheme[async-apply] procedure
 +invocation must return normally. The given @scheme[async-apply] procedure
  itself is called in atomic mode (see @scheme[atomic?] above). If the
  callback is known to complete quickly, requires no synchronization,
  and works independent of the Racket thread in which it runs, then
 -...@scheme[async-apply] can apply the thunk directly. Otherwise,
 -...@racket[async-apply] must arrange for the thunk to be applied in a
 -suitable Racket thread sometime after @racket[async-apply] itself
 +it is safe for the given
 +...@scheme[async-apply] procedure to apply the thunk directly. Otherwise,
 +the given @racket[async-apply] procedure
 +must arrange for the thunk to be applied in a
 +suitable Racket thread sometime after the given
 +...@racket[async-apply] procedure itself
  returns; if the thunk raises an exception or synchronizes within an
  unsuitable Racket-level thread, it can deadlock or otherwise damage
  the Racket process. Foreign-thread detection to trigger
 pcp062767pcs:~/plt/collects/scribblings/foreign clements$


 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] code base metrics

2010-12-01 Thread Jon Rafkind
And because I already started it, here is the entire collects tree (370k
file)

http://www.cs.utah.edu/~rafkind/tmp/racket-definitions.txt

On 11/29/2010 03:34 PM, Matthias Felleisen wrote:
 That makes sense. For now, I am fine with this very first-order 
 approximation. Thanks 


 On Nov 29, 2010, at 5:32 PM, Jon Rafkind wrote:

 There is one thing defined at phase 0, module-begin. The module exports
 a bunch of stuff

 (provide (rename-out [module-begin #%module-begin])
 (except-out (all-from-out scheme/base) #%module-begin)
 (all-from-out scheme/unit)
 (all-from-out scheme/contract)
 (for-syntax (all-from-out scheme/base)))

 I realize you probably wanted something like 'only count exports of
 things defined in the module' but thats a little harder to compute,
 which is why the metric is a first approximation.

 On 11/29/2010 03:29 PM, Matthias Felleisen wrote:
 Thanks, that's great. But what does this mean: 

 collects/racket/signature/lang.rkt defined 1 exported 2747

 -- Matthias




 On Nov 29, 2010, at 4:24 PM, Jon Rafkind wrote:

 On 11/29/2010 12:20 PM, Jon Rafkind wrote:
 I hacked my old tool to get a first approximation and ran it on all the
 files of the collects/racket tree. I can run it on the entire collects
 tree if you want, but its sort of slow so it will take a while. I
 couldn't expand all the files because local requires failed, I'll try to
 fix that.
 Here is a better list

 collects/racket/file.rkt defined 29 exported 18
 collects/racket/include.rkt defined 5 exported 4
 collects/racket/set.rkt defined 32 exported 26
 collects/racket/gui/info.rkt defined 3 exported 2
 collects/racket/gui/init.rkt defined 0 exported 3354
 collects/racket/gui/base.rkt defined 4 exported 209
 collects/racket/gui/lang/reader.rkt defined 6 exported 3
 collects/racket/gui/dynamic.rkt defined 5 exported 2
 collects/racket/gui/installer.rkt defined 1 exported 1
 collects/racket/match/define-forms.rkt defined 1 exported 1
 collects/racket/match/compiler.rkt defined 13 exported 1
 collects/racket/match/struct.rkt defined 1 exported 1
 collects/racket/match/runtime.rkt defined 11 exported 6
 collects/racket/match/gen-match.rkt defined 3 exported 2
 collects/racket/match/patterns.rkt defined 194 exported 163
 collects/racket/match/reorder.rkt defined 11 exported 1
 collects/racket/match/parse-legacy.rkt defined 1 exported 1
 collects/racket/match/parse.rkt defined 2 exported 1
 collects/racket/match/parse-helper.rkt defined 15 exported 11
 collects/racket/match/parse-quasi.rkt defined 3 exported 1
 collects/racket/match/legacy-match.rkt defined 11 exported 15
 collects/racket/match/match-expander.rkt defined 1 exported 1
 collects/racket/match/match.rkt defined 11 exported 16
 collects/racket/match/split-rows.rkt defined 2 exported 1
 collects/racket/system.rkt defined 0 exported 8
 collects/racket/control.rkt defined 0 exported 24
 collects/racket/package.rkt defined 10 exported 11
 collects/racket/runtime-path.rkt defined 2 exported 7
 collects/racket/tcp.rkt defined 1 exported 12
 collects/racket/runtime-config.rkt defined 1 exported 1
 collects/racket/init.rkt defined 0 exported 3206
 collects/racket/serialize.rkt defined 5 exported 12
 collects/racket/surrogate.rkt defined 1 exported 1
 collects/racket/cmdline.rkt defined 5 exported 2
 collects/racket/splicing.rkt defined 15 exported 11
 collects/racket/provide-syntax.rkt defined 1 exported 1
 collects/racket/require-transform.rkt defined 30 exported 22
 collects/racket/load/lang/reader.rkt defined 6 exported 3
 collects/racket/stream.rkt defined 19 exported 17
 collects/racket/contract/regions.rkt defined 5 exported 3
 collects/racket/contract/private/object.rkt defined 15 exported 6
 collects/racket/contract/private/arrow.rkt defined 104 exported 17
 collects/racket/contract/private/ds.rkt defined 45 exported 9
 collects/racket/contract/private/guts.rkt defined 95 exported 69
 collects/racket/contract/private/misc.rkt defined 121 exported 28
 collects/racket/contract/private/provide.rkt defined 4 exported 2
 collects/racket/contract/private/base.rkt defined 5 exported 3
 collects/racket/contract/private/hash.rkt defined 22 exported 1
 collects/racket/contract/private/vector.rkt defined 52 exported 4
 collects/racket/contract/private/helpers.rkt defined 12 exported 9
 collects/racket/contract/private/basic-opters.rkt defined 0 exported 0
 collects/racket/contract/private/arr-i.rkt defined 26 exported 1
 collects/racket/contract/private/opt-guts.rkt defined 40 exported 31
 collects/racket/contract/private/legacy.rkt defined 22 exported 18
 collects/racket/contract/private/arr-util.rkt defined 2 exported 2
 collects/racket/contract/private/box.rkt defined 26 exported 2
 collects/racket/contract/private/prop.rkt defined 72 exported 19
 collects/racket/contract/private/opt.rkt defined 20 exported 6
 collects/racket/contract/private/arr-i-old.rkt defined 22 exported 1
 collects/racket/contract/private/arr-i-parse.rkt defined 45

Re: [racket-dev] code base metrics

2010-12-01 Thread Jon Rafkind
Oh, there were some errors while running the script so to clean it up I
just did 'grep defined out' :p

/home/kazzmir/svn/plt/racket/collects/htdp/tests/guess-gui.rkt:10:3:
view: name is not defined, not a parameter, and not a primitive name in:
view


On 12/01/2010 08:40 PM, Matthias Felleisen wrote:
 Thanks. When I re-run my 'averaging' I get around 34% exports.  

 BTW, your script is broken. Look for view: name


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] full tree text search

2010-12-08 Thread Jon Rafkind
On 12/08/2010 10:12 PM, Eli Barzilay wrote:
 Is this different from a recursive grep?

 (See also `git grep' -- and there's a web interface for that,
 http://git.racket-lang.org//plt?a=searchh=HEADst=greps=foo )


Oh I had no idea git grep existed. Well that looks good enough for now.

(BTW, recursive grep on the command line is not so trivial..
$ find . -name *.rkt | xargs grep foo
)
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] spam planet bug reports

2010-12-11 Thread Jon Rafkind
FWIW, recaptcha is really easy to set up. Like less than 10 minutes from
not knowing anything about it to having a working system.

http://www.google.com/recaptcha

On 12/11/2010 07:33 AM, Robby Findler wrote:
 Some spam system figured out my low-tech anti-spam device for planet
 so I changed the regexp to insist that the version numbers begin with
 a 'v' (and I give less of a clue in the error message now).

 If this stops working soon, Ill probably just disable planet bug
 report submissions until I can find time to figure out how to make a
 captcha work.

 Sorry for the inconvenience.

 Robby
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] sudo make install

2010-12-31 Thread Jon Rafkind
A user on IRC complained about an issue where after building and
installing racket (with 'sudo make install') he received the following
error upon starting drracket:

Error saving preferences: open-output-file: cannot open output file:
~/.racket/.LOCKracket-prefs.rktd (Permission denied; errno=13)

Apparently some part of the installation process writes to ~/.racket and
since he used 'sudo' it was with root privileges. Its worth noting that
if you use 'su -c make install' things work because 'su -c' changes
$HOME to /root whereas sudo does not.

The user used 'sudo make install' because he passed
'--prefix=/usr/local' to configure and so expected things to install
there. I suppose this is a case of user error but its extremely subtle
so I wouldn't call it that.

Maybe during installation ~/.racket shouldn't be used, and /tmp/racket
could be used instead or something?
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] sudo make install

2010-12-31 Thread Jon Rafkind
I reproduced this. 'make install' was killed due to a memory shortage
but before it died it wrote out .racket. This happened somewhere while
the scribble files were being processed.

$ find .racket
.racket
.racket/5.0.99.6
.racket/5.0.99.6/doc
.racket/5.0.99.6/doc/handin-server
.racket/5.0.99.6/doc/handin-server/in.sxref
.racket/5.0.99.6/doc/handin-server/stamp.sxref
.racket/5.0.99.6/doc/handin-server/out.sxref

On 12/31/2010 02:44 PM, Jon Rafkind wrote:
 Well I'm not sure when he will pop into irc again but I'll try to
 reproduce this scenario.

 On 12/31/2010 02:43 PM, Robby Findler wrote:
 Probably whatever is writing to the preferences file should not be doing 
 that.

 If he could send along whatever is in the .racket/ directory (and
 owned by root) that would be useful.

 Robby

 On Fri, Dec 31, 2010 at 1:38 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 A user on IRC complained about an issue where after building and
 installing racket (with 'sudo make install') he received the following
 error upon starting drracket:

 Error saving preferences: open-output-file: cannot open output file:
 ~/.racket/.LOCKracket-prefs.rktd (Permission denied; errno=13)

 Apparently some part of the installation process writes to ~/.racket and
 since he used 'sudo' it was with root privileges. Its worth noting that
 if you use 'su -c make install' things work because 'su -c' changes
 $HOME to /root whereas sudo does not.

 The user used 'sudo make install' because he passed
 '--prefix=/usr/local' to configure and so expected things to install
 there. I suppose this is a case of user error but its extremely subtle
 so I wouldn't call it that.

 Maybe during installation ~/.racket shouldn't be used, and /tmp/racket
 could be used instead or something?
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] sudo make install

2011-01-03 Thread Jon Rafkind
On 01/03/2011 10:52 AM, Robby Findler wrote:
 On Mon, Jan 3, 2011 at 11:42 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 At Mon, 3 Jan 2011 11:39:28 -0600, Robby Findler wrote:
 I've changed the handin server so it puts its docs in the main tree
 like (I believe) it is supposed to.
 That breaks the distribution build. The handin-server docs were
 intentionally not installed into the main tree, because handin-server
 is not included in the distribution.
 So what the irc person was doing is just not supposed to work, I guess?

 I'd still like to find out what preference was getting set, so if Jon
 tries again, that'd be interesting to me.

As of commit

commit e6d45e2ae6804a73c9cea2a41d544c4a65b7a5d9
Author: Robby Findler ro...@racket-lang.org
Date:   Mon Jan 3 08:19:51 2011 -0600

a 'sudo make install' does not create the ~/.racket directory and things
install fine into /usr/local when --prefix=/usr/local is given to
`configure'
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] sudo make install

2011-01-03 Thread Jon Rafkind
Won't that make .racket be owned by root again when some preference file
gets written out during 'make install'?

On 01/03/2011 12:47 PM, Robby Findler wrote:
 Ah. So the problem was that root owned the .racket directory itself.

 Should I revert my commit?

 Robby

 On Mon, Jan 3, 2011 at 1:39 PM, Jon Rafkind rafk...@cs.utah.edu wrote:
 On 01/03/2011 10:52 AM, Robby Findler wrote:
 On Mon, Jan 3, 2011 at 11:42 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 At Mon, 3 Jan 2011 11:39:28 -0600, Robby Findler wrote:
 I've changed the handin server so it puts its docs in the main tree
 like (I believe) it is supposed to.
 That breaks the distribution build. The handin-server docs were
 intentionally not installed into the main tree, because handin-server
 is not included in the distribution.
 So what the irc person was doing is just not supposed to work, I guess?

 I'd still like to find out what preference was getting set, so if Jon
 tries again, that'd be interesting to me.
 As of commit

 commit e6d45e2ae6804a73c9cea2a41d544c4a65b7a5d9
 Author: Robby Findler ro...@racket-lang.org
 Date:   Mon Jan 3 08:19:51 2011 -0600

 a 'sudo make install' does not create the ~/.racket directory and things
 install fine into /usr/local when --prefix=/usr/local is given to
 `configure'


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] sudo make install

2011-01-03 Thread Jon Rafkind
On 01/03/2011 12:55 PM, Sam Tobin-Hochstadt wrote:
 On Mon, Jan 3, 2011 at 2:51 PM, Robby Findler
 ro...@eecs.northwestern.edu wrote:
 Or maybe there is another possible solution that involves changing how
 the distribution and or the docs build works?
 I think the conventional solution is for `make install' to do much
 less work than it current does.  In normal Make-built software,
 `make' does all of the compilation, and `make install' just does the
 copying.  That way, `make install' wouldn't be doing things like
 reading preferences and creating the '.racket' directory.


Yea, I kind of feel like 'make' should build all the collects and docs
and whatnot. Unless there is a good reason not to.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] raco setup hangs

2011-01-10 Thread Jon Rafkind
`raco setup' hangs when it tries to build my planet package. I narrowed
down the problem to this file

#lang racket/base

(require racket/class)

(define bar
  (mixin () ()
(define (foo)
  (let loop ([x 0])
(printf loop!\n)
(loop (begin
;; uncomment for this to fail #;
(send this anything)
2))

Put that in bar.rkt or whatever and add it as the main file of info.ss.
If the line (send this anything) is uncommented then `raco setup' will
hang. It dosen't print loop! or anything so its not obvious whats
wrong. `raco make bar.rkt' works though.

I'm not exactly sure when this behavior started occurring but it was
something like 3 weeks ago.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] raco setup hangs

2011-01-13 Thread Jon Rafkind
thanks, it works now

On 01/13/2011 01:14 PM, Matthew Flatt wrote:
 This was a bug in the optimizer's tracking of inlining so that it tried
 to unroll `loop' forever. It's now fixed.

 At Mon, 10 Jan 2011 17:16:45 -0700, Jon Rafkind wrote:
 `raco setup' hangs when it tries to build my planet package. I narrowed
 down the problem to this file

 #lang racket/base

 (require racket/class)

 (define bar
   (mixin () ()
 (define (foo)
   (let loop ([x 0])
 (printf loop!\n)
 (loop (begin
 ;; uncomment for this to fail #;
 (send this anything)
 2))

 Put that in bar.rkt or whatever and add it as the main file of info.ss.
 If the line (send this anything) is uncommented then `raco setup' will
 hang. It dosen't print loop! or anything so its not obvious whats
 wrong. `raco make bar.rkt' works though.

 I'm not exactly sure when this behavior started occurring but it was
 something like 3 weeks ago.

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-lang down?

2011-01-19 Thread Jon Rafkind
its working for me. i just submitted a bug, too.

On 01/19/2011 04:44 PM, John Clements wrote:
 It looks like racket-lang.org is down. 

 John



 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

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

2011-01-31 Thread Jon Rafkind
On 01/31/2011 03:50 PM, Ryan Culpepper wrote:
 Checklist items for the v5.1 release
   (using the v5.0.99.900 release candidate build)

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

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

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


This link is a 404.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-02-01 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - 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]


Using mz-5.0.99.900-src-unix.tgz, configure error'd out
  config.status: error: cannot find input file: plot/Makefile.in

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-02-02 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - 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]


Running the plt binary installer:
http://pre.racket-lang.org/release/installers/plt-5.0.99.900-bin-i386-linux-ubuntu-jaunty.sh

Checking the integrity of the binary archive... ok.
Unpacking into /tmp/work/x/plt/racket-tmp-install... done.
Cannot handle distribution of shared-libraries (yet)

 === context ===
/tmp/work/x/plt/racket-tmp-install/collects/setup/unixstyle-install.rkt:383:0:
move/copy-distribution
/tmp/work/x/plt/racket-tmp-install/collects/setup/unixstyle-install.rkt:
[running body]

Error: installation failed
  (Removing installation files in /tmp/work/x/plt/racket-tmp-install)

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Pre-Release Checklist for v5.1, second call

2011-02-03 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - 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 list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] drafting the v5.1 release announcement

2011-02-09 Thread Jon Rafkind
Here are some items I pulled from the commit log

Robby:
823b6629aae7a1c668c2dffb2d89a16fc4a5889c
add an extra check to make sure drracket is more likely to startup
when things go wrong in strange ways
  Please merge to the 5.1 release branch
ce4bf97bde32032b0663c623d8ef1f2158a96fae
monitor the font size preference in order to redo the one-line size
computation for the search bar
  closes PR 11687
0411cddba53914a33af88d720fd4d05634aac016
added set/c and made sets print as set, seteq, or seteqv
  closes PR 11454
670d58d134eaf2dc5ed6ef4ea60f53d66321acda
added un/cache-image, a function that enables/disables the drawing
cache in 2htdp/image images
b77847904e4d05a731ca331c7d84e3532c980521
adjust the way the () colorer status thingy draws
2f009ca529fcbe4ebe496379a5403cbcf1a0cd14
changed the way equal% and snip% interact. Specifically:
   
 - snip% now implements equal%
   its equal-to? delegates to other-equal-to?.
   
 - snip%'s other-equal-to and equal-hash-code and
   equal-secondary-hash-code all just amount to using eq?. The
   setup is here just to make snip% be the one that declares
   that it implements equal% so that various snips can adjust
   other-equal-to? (and the hash code methods)
   
 - image-snip% no longer implements equal%
   (but it extends snip% and it overrides other-equal-to?
and the hash-code methods to do what they always did)
4917d2af4a680de5380f0b82ef13f82d216d7d76
added freeze to 2htdp/image
d1fe2766559133ba3913c5aef1f3f72c1a8be758
adjust the bug report form so that hitting return does not submit
the bug report
  as mentioned in PR 11551
0542d3ca7084579b1c209ee52e52edcc59a6ad53
added support for saving bug reports (for ease of offline submission)
also cleaned up a bunch of little things in the bug report
implementation:
 - the abort had race conditions
 - formatted the collections a little bit better (hopefully)
 - broke the implementation up into multiple files
 - fixed broken interaction with drracket (the drracket frame mixin
is now being used properly)
18dacad6c825e4fb18b37f1eae259d6c73419fc6
a first attempt at a rewording of the blame error messages to admit
the possibility that the contract was wrong and also to claim that
fixing the blamed module or the contract is all that is required
   
note that two test cases are failing, but only because they depend
on the wording of the error messages; once that is set, I'll fix them.
a63bbf82abb4b43b59d67ce9383c21b3ad1074ee
added current-trace-results

Matthew:
dfa36afa894ecc4a9626ecbe1ba36e4ff1f00a77
change `floating-point-bytes-real' to always produce a flonum
ff0a591b7beaadf68053b1f0beba2595a442aef0
change FFI `_float' to coerce to Racket double-precision flonum
3ef32d915ba6d07e5191aa980ba0a936e1970462
make inexacts `eqv?' only when precision is the same
 plus some other small fixes
b5bc288f676a81129ea93aaffeaebefa18831879
Windows: fix `path-list-string-path-list' to throw away quotes
 --- which seems to be what the command shell does with quotes in
 PATH, at least; Microsoft isn't in the habit of documenting this
 sort of thing
fb406390b7dbb44f8811d2ff07f058019c026715
fix readline port to obey port protocol  use interaction port handler
 --- in particular, it no longer blocks on a read request; the
 call to the readline library now uses a separate thread,
 so that the input port can return an event
069a7c2b4871477bf35a120b33ff5d7358e23a7c
add `current-get-interaction-input-port' and adjust `racket/gui'
 so that GUI events are dispatched while a REPL is blocked on input
b112fd76df4305b178a7e761fe0d29214a37c518
add `reparent' to `subwindow%'
98822cf1f989efd7c22f5d9587a65aeee29f26c0
adjust `racket/gui' and dependencies to survive a locked preference file
 - adds a `#:timeout-lock-there' argument to `get-preference'
 - fixes preference looup in `racket/gui'
 - make preference names consistently use `GRacket' and consistently
   fall back on `MrEd' names
 - fix Emacs-style undo mode while we're at it
d8e123753c40fadc6d51513cf1fa5e4eca614bc8
gtk: enable input-method (e.g., Chinese) support
79cd92859c9f6227abfd2a97ca0f3aa209d2c6eb
disable user-specific setup on `make install' by default
 and add a `--enable-userspecific' flag for `configure'
d6fc7da7501ff636ebf13639def6909aaa4feb47
add `refresh-now' to `canvas%'
 --- this method doesn't have to be built in, but it
 encapsulates a common and not-too-obvious pattern
13ddab969b7a071f3b0a532a19f579cdf6e2cb9a
enable ptherads by default for OpenBSD
55693e090f5f9686b286e69f1181565895194846
add `port-try-file-lock?' and `port-file-unlock'
7319b539f0fcef27637a507367e64bfce1808931
win64: initial CGC build
cc82d3728525b5bac3f2cb91d249d5404a7a3bd0
Scribble Latex image support (missed an earlier commit)

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

2011-03-15 Thread Jon Rafkind
On 03/15/2011 08:16 PM, mfl...@racket-lang.org wrote:
 mflatt has updated `master' from 056a3fb588 to 0efcf22ed4.
   http://git.racket-lang.org/plt/056a3fb588..0efcf22ed4

 =[ 1 Commits ]==

 Directory summary:
   23.6% collects/racket/
   63.7% collects/scribblings/reference/
   12.5% collects/tests/racket/

 ~~

 0efcf22 Matthew Flatt mfl...@racket-lang.org 2011-03-15 20:09
 :
 | racket/generator: clean-ups, including planned generalization
 |  - syntax is now (generator formals body ...+)
 |  - add `generator?'
 |  - remove common run-time code from the `generator' macro expansion
 |  - doc fixes
 |  - start test suite
 :
   M collects/racket/generator.rkt  |   60 ++--
   M collects/scribblings/reference/sequences.scrbl |  173 
 -
   A collects/tests/racket/generator.rktl
   M collects/tests/racket/mzlib-tests.rktl |1 +

There are also some generator tests in collects/tests/racket/for.rktl.
Shall I move over to generator.rktl?
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] prefix-out

2011-03-16 Thread Jon Rafkind
Is there a good reason why `prefix-out' does not allow more than one
require-spec? Currently to attach a prefix to multiple identifiers you
must use `combine-out'

(provide (prefix-out foo: (combine-out x y))

Instead of

(provide (prefix-out foo: x y))

The issue was raised on IRC, so its not an immediate concern of mine.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-04-10 Thread Jon Rafkind
If I cilck on the line:column thing in the toolbar area next to the gc
icon it and select 'show line and column numbers' then the line:column
becomes hidden. If I then click in the same area to bring up the popup I
see that 'show line and column numbers' is still selected and clicking
it does not bring back the line:column display.

Also if line:column is being shown and I click 'show character offsets'
(which did not already have a checkmark next to it) then the line:column
goes away and I see 'show line and column numbers' without a checkmark
next to it (when before it did have one).

A further issue seems to be if the line:column display is hidden then
its not clear where to click to get it back. Not that I really care but
I don't see the problem with always displaying either line:column or
character offset (or maybe both).

On 04/10/2011 06:38 PM, ro...@racket-lang.org wrote:
 robby has updated `master' from 6b503fa947 to c4e0559db4.
   http://git.racket-lang.org/plt/6b503fa947..c4e0559db4

 =[ 3 Commits ]==

 Directory summary:
   17.2% collects/drracket/private/
   23.5% collects/framework/private/
   53.7% collects/scribblings/framework/
5.5% collects/string-constants/

 ~~

 2c2669b Robby Findler ro...@racket-lang.org 2011-04-10 17:43
 :
 | fix the handling of the drracket:show-line-numbers? preference
 |   so the line numbers change no matter who sets the preference
 :
   M collects/drracket/private/main.rkt |   10 +-
   M collects/drracket/private/unit.rkt |   14 +-

 ~~

 f3936ac8 Robby Findler ro...@racket-lang.org 2011-04-10 19:30
 :
 | correct capitolization for menu items
 :
   M collects/string-constants/english-string-constants.rkt |4 ++--

 ~~

 c4e0559 Robby Findler ro...@racket-lang.org 2011-04-10 19:35
 :
 | made the line/column thingy's popup menu be able to show the line numbers 
 in the definitions window
 |   - added add-line-number-menu-items
 |   - some minor fixes to the docs
 |   related to discussion in PR 11837
 :
   M collects/drracket/private/unit.rkt |   11 ++
   M collects/framework/private/frame.rkt   |   56 ---
   M collects/scribblings/framework/frame.scrbl |  117 
 ++---
   M collects/string-constants/english-string-constants.rkt |1 +

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-04-19 Thread Jon Rafkind
It looks like places and futures have been combined into a single
'parallel' variable within configure, so does it make sense to have both
--enable-places and --enable-futures instead of --enable-parallel ?

On 04/19/2011 09:27 AM, t...@racket-lang.org wrote:
 tewk has updated `master' from 7389eef5b2 to 4fd6144e3d.
   http://git.racket-lang.org/plt/7389eef5b2..4fd6144e3d

 =[ 1 Commits ]==

 Directory summary:
   43.2% src/racket/
7.6% src/worksp/
   49.0% src/

 ~~

 4fd6144 Kevin Tew t...@racket-lang.org 2011-04-19 09:05
 :
 | [Places] place are now turned on by default
 :
   M src/configure   |   20 ++--
   M src/racket/configure.ac |   20 ++--
   M src/worksp/mzconfig.h   |2 +-

 =[ Overall Diff ]===

 src/configure
 ~
 --- OLD/src/configure
 +++ NEW/src/configure
 @@ -1327,7 +1327,7 @@ Optional Features:
--enable-jitcompile JIT support (enabled by default)
--enable-foreigncompile foreign support (enabled by default)
--enable-libffi use installed libffi (enabled by default)
 -  --enable-places compile places support
 +  --enable-places compile places support (usually enabled by default)
--enable-futurescompile futures support (usually enabled by 
 default)
--enable-cgcdefault use CGC (Boehm or Senora) as default build
--enable-sgcuse Senora GC instead of the Boehm GC
 @@ -2216,10 +2216,12 @@ show_explicitly_disabled ${enable_foreign} Foreign
  show_explicitly_disabled ${enable_libffi} Installed libffi
  
  show_explicitly_enabled ${enable_places} Places
 -show_explicitly_enabled ${enable_gc2_places_testing} GC2 Places Testing
 +show_explicitly_disabled ${enable_places} Places
  show_explicitly_enabled ${enable_futures} Futures
  show_explicitly_disabled ${enable_futures} Futures
  
 +show_explicitly_enabled ${enable_gc2_places_testing} GC2 Places Testing
 +
  show_explicitly_enabled ${enable_sgc} SGC
  show_explicitly_enabled ${enable_sgcdebug} SGC debug mode
  show_explicitly_enabled ${enable_compact} Compact 3m GC
 @@ -3907,7 +3909,7 @@ case $OS in
  case `$UNAME -m` in
#Required for CentOS 4.6
x86_64)
 -   enable_futures_by_default=yes
 +   enable_parallel_by_default=yes
 CGC_X86_64=1
 ;;
ppc)
 @@ -3917,7 +3919,7 @@ case $OS in
 EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
 ;;
i386|i486|i586|i686)
 -   enable_futures_by_default=yes
 +   enable_parallel_by_default=yes
 ;;
*)
 ;;
 @@ -3979,7 +3981,7 @@ case $OS in
  
  case `$UNAME -m` in
i386|x86_64)
 -   enable_futures_by_default=yes
 +   enable_parallel_by_default=yes
 ;;
*)
 ;;
 @@ -8253,6 +8255,12 @@ fi
  
  ### places ###
  
 +if test ${enable_parallel_by_default} = yes ; then
 +  if test ${enable_places} =  ; then
 +enable_places=yes
 +  fi
 +fi
 +
  if test ${enable_places} = yes ; then
  
  cat confdefs.h \_ACEOF
 @@ -8264,7 +8272,7 @@ fi
  
  ### futures ###
  
 -if test ${enable_futures_by_default} = yes ; then
 +if test ${enable_parallel_by_default} = yes ; then
if test ${enable_futures} =  ; then
  enable_futures=yes
fi

 src/racket/configure.ac
 ~~~
 --- OLD/src/racket/configure.ac
 +++ NEW/src/racket/configure.ac
 @@ -38,7 +38,7 @@ AC_ARG_ENABLE(jit, [  --enable-jitcompile 
 JIT support (enabled b
  AC_ARG_ENABLE(foreign, [  --enable-foreigncompile foreign support 
 (enabled by default)], , enable_foreign=yes)
  AC_ARG_ENABLE(libffi,  [  --enable-libffi use installed libffi 
 (enabled by default)], , enable_libffi=yes)
  
 -AC_ARG_ENABLE(places,  [  --enable-places compile places support])
 +AC_ARG_ENABLE(places,  [  --enable-places compile places support 
 (usually enabled by default)])
  AC_ARG_ENABLE(futures, [  --enable-futurescompile futures support 
 (usually enabled by default)])
  
  AC_ARG_ENABLE(cgcdefault, [  --enable-cgcdefault use CGC (Boehm or 
 Senora) as default build])
 @@ -283,10 +283,12 @@ show_explicitly_disabled ${enable_foreign} Foreign
  show_explicitly_disabled ${enable_libffi} Installed libffi
  
  show_explicitly_enabled ${enable_places} Places
 -show_explicitly_enabled ${enable_gc2_places_testing} GC2 Places Testing
 +show_explicitly_disabled ${enable_places} Places
  show_explicitly_enabled ${enable_futures} Futures
  show_explicitly_disabled ${enable_futures} Futures
  
 +show_explicitly_enabled ${enable_gc2_places_testing} GC2 Places Testing
 +
  show_explicitly_enabled ${enable_sgc} SGC
  show_explicitly_enabled ${enable_sgcdebug} SGC debug mode
  show_explicitly_enabled ${enable_compact} Compact 3m GC
 @@ -540,7 +542,7 @@ case $OS in
  case 

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

2011-04-21 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - 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]


The binary installers had problems with libffi.so.5. Source
distributions are still compiling. I used

plt-5.1.0.900-bin-i386-linux-ubuntu-jaunty.sh
mz-5.1.0.900-bin-i386-linux-ubuntu-jaunty.sh

My notes:
textual - failed in normal mode after install
   $ ./racket
   ./racket: error while loading shared libraries: libffi.so.5: cannot
open shared object file: No such file or directory

  failed in unix mode during install
  Unpacking into
/tmp/work/x/binary/textual-unix/racket-textual-tmp-install... done.
  racket-textual-tmp-install/bin/racket: error while loading shared
libraries: libffi.so.5: cannot open shared object file: No such file or
directory

  racket - failed in normal mode after install
$ ./racket
./racket: error while loading shared libraries: libffi.so.5: cannot
open shared object file: No such file or directory

  failed in unix mode during install
   Unpacking into /tmp/work/x/binary/racket-unix/racket-tmp-install...
done.
   racket-tmp-install/bin/racket: error while loading shared libraries:
libffi.so.5: cannot open shared object file: No such file or directory
   Error: installation failed
 (Removing installation files in
/tmp/work/x/binary/racket-unix/racket-tmp-install)

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-04-21 Thread Jon Rafkind
Source distributions compiled ok. The racket distribution no longer
produces a 'drscheme' executable even though it does produce 'mzscheme'.

Is that a mistake?

On 04/21/2011 11:50 AM, Jon Rafkind wrote:
 * Jon Rafkind rafk...@cs.utah.edu
   Release tests for (one of the) linux releases:
   - Test that the `racket' and `racket-textual' source releases
 compile fine
   - 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]

 The binary installers had problems with libffi.so.5. Source
 distributions are still compiling. I used

 plt-5.1.0.900-bin-i386-linux-ubuntu-jaunty.sh
 mz-5.1.0.900-bin-i386-linux-ubuntu-jaunty.sh

 My notes:
 textual - failed in normal mode after install
$ ./racket
./racket: error while loading shared libraries: libffi.so.5: cannot
 open shared object file: No such file or directory

   failed in unix mode during install
   Unpacking into
 /tmp/work/x/binary/textual-unix/racket-textual-tmp-install... done.
   racket-textual-tmp-install/bin/racket: error while loading shared
 libraries: libffi.so.5: cannot open shared object file: No such file or
 directory

   racket - failed in normal mode after install
 $ ./racket
 ./racket: error while loading shared libraries: libffi.so.5: cannot
 open shared object file: No such file or directory

   failed in unix mode during install
Unpacking into /tmp/work/x/binary/racket-unix/racket-tmp-install...
 done.
racket-tmp-install/bin/racket: error while loading shared libraries:
 libffi.so.5: cannot open shared object file: No such file or directory
Error: installation failed
  (Removing installation files in
 /tmp/work/x/binary/racket-unix/racket-tmp-install)

 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] lots of new tests pushed

2011-04-25 Thread Jon Rafkind
On 04/25/2011 12:32 PM, Robby Findler wrote:
 I just pushed tests for all non-racket and non-scheme collections that
 makes sure that all of the top-level libraries have their exports
 fully documented. I left out info.rkt and tried to drop obviously bad
 things from this list, but if you spot problems when drdr complains at
 you, please just go edit the file to remove libraries that shouldn't
 be there.


Maybe a dumb question, but by 'documented' do you mean 'exported with a
contract' ? It doesn't look like the implementation is checking scribble..
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] release blurb for 5.1.1

2011-04-26 Thread Jon Rafkind
Here are some suggested items for the 5.1.1 release announcement. Please
respond with any additions/deletions. The stuff in parentheses are short
git sha1's. Use 'git show 12ab345' to see the commit.

ryan:
  * new ffi/file module (..needs description..) (9bc3457bb)

matthew
  * Removed drscheme, mred, and mred.app although mred for unix still
exists (8d9e10f34e)
  * The installed version of libffi can be used instead of the
distributed version (f3c3bb4441c)
  * `touch' and `future' are safe functions to execute inside futures
(857003378 3bf0f800a76)
  * A new streams library compatible with `for' has been added to the
racket collection as `racket/stream' (e652546bf52)
  * list-box% now supports multi-column (137d96c08917)

eli
  * chrome is a supported browser in drracket (52ca08a8a9a)
  * All 3rd party copyrighted code has had their licenses clarified or
changed to be compatible with the LGPL (f6f7e4eb3502 a3d00a910afb)

robby
  * Added a widget to the status line of DrRacket that can toggle line
numbers (c4e0559db4ca37)
  * The module browser graph is rendered much faster. (e928bd840c02)
  * Added `overlay/align', `underlay/align', `overlay/align/offset' and
'underlay/align/offset' (c1668d894e210)

stephen
  * The stepper now supports lazy racket (da456f2e37e54)

kathy
  * Addition of `define-wish' to the teaching languages and
corresponding addition of support for wishes in test reports and
check-expects (7758f508c56)
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] narrow menus in 5.1

2011-04-26 Thread Jon Rafkind
A user from #scheme on irc said drracket in 5.1 shows narrow menus. His 
system is ubuntu 10.10, the language is Portuguese.


http://www.pasteall.org/pic/show.php?id=11565
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] gtk too-small menu bar

2011-05-17 Thread Jon Rafkind
Fixed for me too, ubuntu 11.04 32bit, not using unity.

thanks a lot Robby!

On 05/17/2011 10:53 AM, Kevin Tew wrote:
 Its fixed for me now.

 Ubuntu 11.04 x86_64.

 Thanks.

 On 05/17/2011 10:04 AM, Robby Findler wrote:
 In consultation with Matthew, I've pushed a change that fixes the too
 small menu bar problem, at least on a VM on my laptop.

 If you're seeing this problem, can you check and see if the change
 fixes it for you too?

 Also, if someone could try it out on a unity setup, that'd be helpful.

 Thanks,
 Robby
 _
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/dev

 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] guidelines on error messages -- please send feedback

2011-06-03 Thread Jon Rafkind
Somewhat offtopic but could the *SL languages use levenshtien distances
to find symbolically related variables? clang (a c++ compiler) does this
and I find it immensely useful.

foodar();
Error: `foodar' not found, did you mean 'foobar' ?

On 06/03/2011 11:21 AM, Shriram Krishnamurthi wrote:
 Guillaume, Kathi and I have created a set of guidelines for writing
 error messages for *SL.  For consistency, these guidelines need to be
 used also by authors of libraries including Teachpacks, etc.  These
 guidelines are currently being applied to all the error messages in
 *SL in the core distribution.

 Please review these guidelines and let us know if anything is
 unclear.  We'd like to hear back from you within a week, by

 Fri, June 10

 We have had to compromise on the description a little to make
 everything fit into a small number of pages, which we did because we
 really do hope people will print these out and put them on the wall or
 next to their monitor to refer to while writing code.  Therefore,
 lengthy descriptions are out.

 In particular, rationale is also out.  If you are curious about the
 rationales for any of these things, please do ask.

 After this is settled next week, we will send this to users@ and also
 to edu@ to tell instructors to follow these terms.

 Thanks,
 Shriram


 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] current-load/use-compiled

2011-06-22 Thread Jon Rafkind
I'm trying to hook into the part of racket that loads files so I can
automatically create .zo files when they don't exist (and no, I don't
want to type raco make). Here is the code that loads the file and sets
up the handler (more explanation follows the code).

== load.rkt
(let ([namespace (make-base-namespace)])
  (define loader (current-load/use-compiled))
  (parameterize ([current-namespace namespace]
 [current-load/use-compiled
   (lambda (path something)
 (define-values (parent self _) (split-path path))
 (parameterize ([current-load-relative-directory
parent])
   (printf compile/load ~a ~a\n path something)
   (printf load directory ~a\n
(current-load-relative-directory))
   #;
   ((compile-zos #f #:module? #t) (list path)
compiled)
   (define load-path
 (if (is-zo? path)
   path
   (build-path parent compiled
(path-add-suffix self #.zo
   (printf Loading file ~a\n load-path)
   (loader load-path something)))])
(eval-syntax (with-syntax ([file test.rkt])
   #'(require file)

And here are the files being loaded
== test.rkt
#lang racket/base

(require test1.rkt)

(printf hello from test!\n)

== test1.rkt
#lang racket/base

(require (for-syntax racket/base))

(define-syntax (foo stx)
  (printf hello from foo macro\n)
  #'(void))

(foo)

#;
(begin-for-syntax
  (printf hello from phase1 code\n))

(printf test1!\n)

If I uncomment the 'begin-for-syntax' expression and run 'raco make' to
produce a .zo file then running 'racket test.rkt' won't display the
hello from phase1 code line. However if I run 'load.rkt' then no
matter if there is a .zo or not I see that printf being executed.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] make-vector: out of memory making vector of length 0

2011-06-30 Thread Jon Rafkind
I just updated to HEAD and I see this error during 'make install'.

raco setup: making: compiler
raco setup: making: raco
make-vector: out of memory making vector of length 0
make-vector: out of memory making vector of length 0
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] documentation reorganization

2011-07-01 Thread Jon Rafkind
I think the 'guide' and 'reference' links could use a description of
what they are similar to the tutorial links.

On 07/01/2011 06:45 PM, Ryan Culpepper wrote:
 I just pushed a commit intended to improve the usability of the main
 documentation page, especially for newcomers to Racket. You can also
 see the new version here:

   http://www.cs.utah.edu/~ryan/tmp/doc/

 If you have a manual in the trunk, I probably changed it
 slightly. Take a look at the changes. The rest of this message is
 about the rationale behind the reorganization.

 -- 

 Back in May, we heard from a newcomer to Racket who had gotten lost in
 the documentation and ended up going down the wrong path. His report
 sparked a discussion about, among other things, changing the
 documentation to make it more accessible to newcomers and
 visitors. While there are some gaps in the content of the
 documentation we have available, the primary problem seemed to be the
 organization; the newcomer didn't find the right manuals to read.

 The new documentation has four conceptual parts: Orientation, Racket,
 Teaching, and Everything Else.

 Orientation: The Getting Started link now stands alone; previously it
 was too easy to miss. The tutorials are now labeled as such in a
 separate section.

 Racket: The previous organization was too egalitarian. The Racket
 Reference was bare centimeters above the R6RS manual; R6RS is the
 standard, right?---guess I should start there! Core libraries were
 scattered throughout the documentation; you have to scroll to find the
 GUI manual.

 The new Racket Language and Core Libraries section makes it clear
 where the serious, comprehensive material about Racket starts. The
 core libraries are part reassurance (good, there's a standard GUI
 toolkit) and part advertisement (oh, there's a standard way of
 producing documentation).

 Teaching: The teaching materials are important enough to the Racket
 mission that they come next.

 Everything Else: There are a couple lesser improvements to the rest of
 the manuals.

 First, the old Languages section (again, overly egalitarian) is now
 much smaller, and its role is clarified. Racket is The Language; these
 are others... what does that mean? The link explains it.

 Second, I've done away with the @bold{X}: Y manual naming
 convention. In some cases this convention works, but in most cases it
 was a poor fit. @bold{Guide}: Racket is a bit inscrutable compared
 to The Racket Guide, and @bold{Version}: Racket Version Checking
 is grandiose for a manual that documents eight exports. The convention
 was confining, and it led to an arms race of bolding. If your manual
 didn't start with a bold keyword, it looked pitiful. I've changed
 major manuals to have names such as The Racket Guide, The Racket
 Drawing Toolkit, etc. I've renamed a few other manuals in that style,
 such as Web Applications in Racket (used to be Web: ...) and
 Extending DrRacket (used to be Plugins: ...). Use the unbolded
 X: Y pattern for manuals that are just the documentation for some
 collection; otherwise consider giving the manual a more descriptive
 name.

 -- 

 This is intended as a first step. In particular, I wanted to get the
 first three parts (Orientation, Racket, Teaching) in better shape in
 time for the upcoming release.

 Ryan
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] interactive hack

2011-07-10 Thread Jon Rafkind
command-repl +1
crepl -1

On 07/10/2011 09:54 AM, Eli Barzilay wrote:
 It's no longer mine, and it's really been years since it was really a hack.

 I think that I'll go with a shortened command-repl: `crepl'.


 On 2011-07-10, Matthias Felleisen matth...@ccs.neu.edu wrote:
 how about ElisInteractiveHack


 On Jul 10, 2011, at 8:39 AM, Eli Barzilay wrote:

 10 minutes ago, Sam Tobin-Hochstadt wrote:
 Why not `interactive'?
 Interactive what?  -- It's way too generic.


 And this is for the name of the module, right?
 A new toplevel collection.  Used similarly to readline.  (And
 supersedes it, hopefully, for casual users.)

 --
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev



_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-07-22 Thread Jon Rafkind

  * Jon Rafkind rafk...@cs.utah.edu
  
   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 list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-07-26 Thread Jon Rafkind
On 07/26/2011 10:57 AM, Eli Barzilay wrote:
 25 minutes ago, rafk...@racket-lang.org wrote:
 4e8e184 Jon Rafkind rafk...@racket-lang.org 2011-07-24 16:43
 :
 | add lexer for honu
 :
   A collects/honu/core/read.rkt
 Is the C code going away?


That is the hope.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] cannot disable libffi

2011-07-28 Thread Jon Rafkind
I am trying to compile racket for a different architecture that libffi
is not ported to so I tried to use --disable-libffi but foreign/libffi
still gets configured. A) should that be happening and B) is there a way
around it?

$ ../configure --disable-libffi --host=x86
...
configure: error: libffi has not been ported to x86-unknown-none.
configure: error: ../../../foreign/libffi/configure failed for
foreign/libffi

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] cannot disable libffi

2011-07-28 Thread Jon Rafkind
Ah it was --disable-foreign.

--disable-libffi is to use the bundled ffi instead of the host one, or
something.

On 07/28/2011 11:42 AM, Jon Rafkind wrote:
 I am trying to compile racket for a different architecture that libffi
 is not ported to so I tried to use --disable-libffi but foreign/libffi
 still gets configured. A) should that be happening and B) is there a way
 around it?

 $ ../configure --disable-libffi --host=x86
 ...
 configure: error: libffi has not been ported to x86-unknown-none.
 configure: error: ../../../foreign/libffi/configure failed for
 foreign/libffi

 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] 5.1.2 segfault during setup

2011-08-03 Thread Jon Rafkind
The launchpad build farm showed a segfault while it was building the PPA
package for 5.1.2.

https://launchpadlibrarian.net/76556662/buildlog_ubuntu-lucid-i386.racket_5.1.2-1_FAILEDTOBUILD.txt.gz

...
raco setup: re-rendering: scribblings/guide/guide.scrbl
Seg fault (internal error) at 0x69fbac3a
SIGSEGV SEGV_ACCERR SI_CODE 2 fault on 0x69fbac3a
Aborted

The amd64 builder did succeed, so I can probably just resubmit the
package and hope it works.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] DrDr Feature Request

2011-08-08 Thread Jon Rafkind
Another request: could DrDr process the latest push first? Its a little
annoying to get emails for tests that failed when the latest push fixes
them but DrDr is so far behind. Is there any benefit to testing all the
intermediate pushes?

On 08/08/2011 09:56 AM, Vincent St-Amour wrote:
 I love DrDr, but there's a small thing that annoys me about it.

 Some tests are prone to intermittent failures. For example, some
 benchmarks need to create a file, and several benchmarks share the
 same file, which leads to race conditions. Similarly, some DrRacket
 tests sometimes fail for focus reasons.

 So, whenever someone pushes, they may get failures from these tests,
 then have go look at the actual errors, and try to figure out if they
 actually broke something or not.

 (Or, they ignore these failures, which is bad.)

 Here are two potential solutions. Let's assume that I just pushed
 something, and a test started failing.

 - Have DrDr send me email for every push about the broken test for as
   long as it fails. If I get email more than once, it's likely that I
   actually broke something. If I only get email once, the problem went
   away on its own, and was likely an intermittent failure.

 - Have the possiblity to flag some tests as intermittent (something
   like `drdr:random'), and only report failures for these tests if
   they fail twice in a row. This would reduce the amount of noise,
   since I expect most of these tests to pass most of the time. Actual
   breakage would still be detected, since it's unlikely that such
   failures would go away on their own. Detection would happen one push
   late, but that shouldn't be too much of an issue.

   Or, maybe only notify the pusher after two failures in a row, but
   notify the responsible person right away.

 Any thoughts?

 Vincent
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] DrDr Feature Request

2011-08-08 Thread Jon Rafkind
Could DrDr say This build is not the latest or The latest push is
234234?

On 08/08/2011 11:37 AM, Jay McCarthy wrote:
 It is useful to test all of them to find out when errors start. It
 doesn't do the newest first, because then the calculation of new
 issue wouldn't make any sense, because you wouldn't have the previous
 push's tests.

 Jay

 On Mon, Aug 8, 2011 at 11:34 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 Another request: could DrDr process the latest push first? Its a little
 annoying to get emails for tests that failed when the latest push fixes
 them but DrDr is so far behind. Is there any benefit to testing all the
 intermediate pushes?

 On 08/08/2011 09:56 AM, Vincent St-Amour wrote:
 I love DrDr, but there's a small thing that annoys me about it.

 Some tests are prone to intermittent failures. For example, some
 benchmarks need to create a file, and several benchmarks share the
 same file, which leads to race conditions. Similarly, some DrRacket
 tests sometimes fail for focus reasons.

 So, whenever someone pushes, they may get failures from these tests,
 then have go look at the actual errors, and try to figure out if they
 actually broke something or not.

 (Or, they ignore these failures, which is bad.)

 Here are two potential solutions. Let's assume that I just pushed
 something, and a test started failing.

 - Have DrDr send me email for every push about the broken test for as
   long as it fails. If I get email more than once, it's likely that I
   actually broke something. If I only get email once, the problem went
   away on its own, and was likely an intermittent failure.

 - Have the possiblity to flag some tests as intermittent (something
   like `drdr:random'), and only report failures for these tests if
   they fail twice in a row. This would reduce the amount of noise,
   since I expect most of these tests to pass most of the time. Actual
   breakage would still be detected, since it's unlikely that such
   failures would go away on their own. Detection would happen one push
   late, but that shouldn't be too much of an issue.

   Or, maybe only notify the pusher after two failures in a row, but
   notify the responsible person right away.

 Any thoughts?

 Vincent
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] DrDr Feature Request

2011-08-08 Thread Jon Rafkind
I noticed this functionality just now.. thanks a lot!

On 08/08/2011 12:38 PM, Jay McCarthy wrote:
 Your wish is my command.

 On Mon, Aug 8, 2011 at 10:00 AM, Robby Findler
 ro...@eecs.northwestern.edu wrote:
 PS: I'm also happy if this class of tests only emails the responsible
 person, and not the pusher.

 Robby

 On Mon, Aug 8, 2011 at 10:59 AM, Robby Findler
 ro...@eecs.northwestern.edu wrote:
 I like the two-times-in-a-row thought.

 FWIW, please try to avoid race conditions of the second kind.

 I think the drracket test suites are special because they fail
 not-so-often and I don't actually know how to fix them.  If either of
 those weren't true then I'd say they should just not run in drdr. (So
 the race-condition/using the same file thing fails this test.)

 Robby

 On Mon, Aug 8, 2011 at 10:56 AM, Vincent St-Amour stamo...@ccs.neu.edu 
 wrote:
 I love DrDr, but there's a small thing that annoys me about it.

 Some tests are prone to intermittent failures. For example, some
 benchmarks need to create a file, and several benchmarks share the
 same file, which leads to race conditions. Similarly, some DrRacket
 tests sometimes fail for focus reasons.

 So, whenever someone pushes, they may get failures from these tests,
 then have go look at the actual errors, and try to figure out if they
 actually broke something or not.

 (Or, they ignore these failures, which is bad.)

 Here are two potential solutions. Let's assume that I just pushed
 something, and a test started failing.

 - Have DrDr send me email for every push about the broken test for as
  long as it fails. If I get email more than once, it's likely that I
  actually broke something. If I only get email once, the problem went
  away on its own, and was likely an intermittent failure.

 - Have the possiblity to flag some tests as intermittent (something
  like `drdr:random'), and only report failures for these tests if
  they fail twice in a row. This would reduce the amount of noise,
  since I expect most of these tests to pass most of the time. Actual
  breakage would still be detected, since it's unlikely that such
  failures would go away on their own. Detection would happen one push
  late, but that shouldn't be too much of an issue.

  Or, maybe only notify the pusher after two failures in a row, but
  notify the responsible person right away.

 Any thoughts?

 Vincent
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev



_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-08-16 Thread Jon Rafkind
What was the bug? :)

On 08/16/2011 10:43 AM, mfl...@racket-lang.org wrote:
 mflatt has updated `master' from d05f138ed2 to 311d55b5cf.
   http://git.racket-lang.org/plt/d05f138ed2..311d55b5cf

 =[ 1 Commits ]==

 Directory summary:
  100.0% src/racket/src/

 ~~

 311d55b Matthew Flatt mfl...@racket-lang.org 2011-08-16 10:27
 :
 | fix bug that affects `free-identifier=?'
 |
 | This bug is in the amazing that it lurked for years category,
 | as well as the stupid use of C preprocessor category.
 :
   M src/racket/src/syntax.c |5 +++--

 =[ Overall Diff ]===

 src/racket/src/syntax.c
 ~~~
 --- OLD/src/racket/src/syntax.c
 +++ NEW/src/racket/src/syntax.c
 @@ -365,7 +365,7 @@ XFORM_NONGCING static MZ_INLINE void 
 DO_WRAP_POS_INC(Wrap_Pos *w)
  #define WRAP_POS_INIT_END(w) (w.l = scheme_null, w.a = NULL, w.is_limb = 0, 
 w.pos = 0)
  #define WRAP_POS_END_P(w) SCHEME_NULLP(w.l)
  #define WRAP_POS_FIRST(w) w.a
 -#define WRAP_POS_COPY(w, w2) w.l = (w2).l; w.a = (w2).a; w.is_limb= 
 (w2).is_limb; w.pos = (w2).pos
 +#define WRAP_POS_COPY(w, w2) w.l = (w2).l; w.a = (w2).a; w.is_limb = 
 (w2).is_limb; w.pos = (w2).pos
  
  /* Walking backwards through one chunk: */
  
 @@ -3618,8 +3618,9 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
if (_wraps) {
  WRAP_POS_COPY(wraps, *_wraps);
  WRAP_POS_INC(wraps);
 -  } else
 +  } else {
  WRAP_POS_INIT(wraps, ((Scheme_Stx *)a)-wraps);
 +  }
  
while (1) {
  if (WRAP_POS_END_P(wraps)) {

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-08-16 Thread Jon Rafkind
Oh sorry, I meant how did the bug manifest itself in racket programs.

On 08/16/2011 11:02 AM, Jay McCarthy wrote:
 The C macro expanded into more than a single expression, but there was
 no {} after the else, so the latter expressions always ran.

 This is a great example :)

 Jay

 On Tue, Aug 16, 2011 at 11:00 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 What was the bug? :)

 On 08/16/2011 10:43 AM, mfl...@racket-lang.org wrote:
 mflatt has updated `master' from d05f138ed2 to 311d55b5cf.
   http://git.racket-lang.org/plt/d05f138ed2..311d55b5cf

 =[ 1 Commits ]==

 Directory summary:
  100.0% src/racket/src/

 ~~

 311d55b Matthew Flatt mfl...@racket-lang.org 2011-08-16 10:27
 :
 | fix bug that affects `free-identifier=?'
 |
 | This bug is in the amazing that it lurked for years category,
 | as well as the stupid use of C preprocessor category.
 :
   M src/racket/src/syntax.c |5 +++--

 =[ Overall Diff ]===

 src/racket/src/syntax.c
 ~~~
 --- OLD/src/racket/src/syntax.c
 +++ NEW/src/racket/src/syntax.c
 @@ -365,7 +365,7 @@ XFORM_NONGCING static MZ_INLINE void 
 DO_WRAP_POS_INC(Wrap_Pos *w)
  #define WRAP_POS_INIT_END(w) (w.l = scheme_null, w.a = NULL, w.is_limb = 
 0, w.pos = 0)
  #define WRAP_POS_END_P(w) SCHEME_NULLP(w.l)
  #define WRAP_POS_FIRST(w) w.a
 -#define WRAP_POS_COPY(w, w2) w.l = (w2).l; w.a = (w2).a; w.is_limb= 
 (w2).is_limb; w.pos = (w2).pos
 +#define WRAP_POS_COPY(w, w2) w.l = (w2).l; w.a = (w2).a; w.is_limb = 
 (w2).is_limb; w.pos = (w2).pos

  /* Walking backwards through one chunk: */

 @@ -3618,8 +3618,9 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
if (_wraps) {
  WRAP_POS_COPY(wraps, *_wraps);
  WRAP_POS_INC(wraps);
 -  } else
 +  } else {
  WRAP_POS_INIT(wraps, ((Scheme_Stx *)a)-wraps);
 +  }

while (1) {
  if (WRAP_POS_END_P(wraps)) {
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] OT: ld static linking + linux version numbers - ??

2011-08-31 Thread Jon Rafkind
On 08/31/2011 05:53 PM, John Clements wrote:
 TOTALLY OFF-TOPIC, sorry:

 I have an autoconf script that's failing to detect a certain library, and 
 I've tracked it down to a failure of

 ld -lasound foo.c

 ..which tells me that it can't find -lasound.  Digging around in /usr/lib, I 
 see that there's a libasound.so.2, but not a libasound.so.  I just created a 
 symbolic link from libasound.so to libasound.so.2, and that seems to work, 
 but that *can't* be the general solution. Can it?

 Put differently: is there a way to specify a library version using an ld -l 
 flag?

AFAIK to get the .so file you are supposed to install the development versions 
of the library.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Fwd: [clipperz] Re: Marketing Ideas

2011-09-09 Thread Jon Rafkind
Is there any correlation between number of likes and well.. anything?

On 09/09/2011 12:43 PM, John Clements wrote:
 Yes, we hate facebook.  But our facebook page has a GENUINELY EMBARRASSING 
 number of likes (uh... 57?).  Forwarded from an entirely unrelated list, 
 could we consider putting those facebook/twitter/linkedin like buttons on 
 the  racket-lang.org page?  Is this something we've already considered and 
 decided against?

 John


 Begin forwarded message:

 From: Robin ro...@ourstillwaters.org
 Date: September 7, 2011 10:10:41 PM PDT
 To: Clipperz clipp...@googlegroups.com
 Subject: [clipperz] Re: Marketing Ideas
 Reply-To: ro...@ourstillwaters.org

 Why not get a Facebook account and a Like button? Same for Twitter,
 Linked In, and the newest social/business networking sites.

 Also, have you advertised in any techy mags? Wired would be the
 obvious choice and probably well worth the cost, whatever it is. But
 secondary mags directed at IT types, Web developers, and programmers
 would at least get you some major exposure to the right group for
 subsequent word of mouth.

 Good luck guys!
 Robin

 On Sep 7, 12:54 am, Nate nate...@gmail.com wrote:
 Do you have any ideas on ways that the community can help market
 Clipperz?
 -- 
 You received this message because you are subscribed to the Google Groups 
 Clipperz group.
 To post to this group, send email to clipp...@googlegroups.com.
 To unsubscribe from this group, send email to 
 clipperz+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/clipperz?hl=en.



 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Fwd: [clipperz] Re: Marketing Ideas

2011-09-09 Thread Jon Rafkind
On 09/09/2011 01:50 PM, Neil Van Dyke wrote:
 If you add Facebook buttons to racket-lang.org, I recommend *not* doing it 
 in the usual way, which is referencing JS/CSS/images/etc. from Facebook at 
 page
 load time.  That can actually silently track most people's 
 reading/viewing/posting/messaging behavior across most popular Web pages 
 these last few years,
 including their real-world identities.  (And don't for a second think that 
 Facebook doesn't really, really want to do that. :)


Supposedly theres no other way to do it

http://www.jwz.org/blog/2011/09/surprise-facebook-doesnt-like-privacy-countermeasures/
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] current-read-interaction

2011-09-15 Thread Jon Rafkind
For Honu I set up the `current-read-interaction' procedure to read a string of 
characters ended by a newline and to parse that with `honu-read-syntax'. This
leads to two issues

1. this works on the command line but in drracket after typing '1' and pressing 
enter the prompt never comes back and drracket chews up some cpu.
2. I wanted to make ctrl-d quit the repl immediately so I look for an 
eof-object in the stream and if found I try to return #'(exit). The Honu parser 
gets
involved at that point so it doesn't quite work, but anyway is that the right 
strategy?

Here is my repl reader:

(define (read-one-line name input)
  (define quit? #f)
  (define one-line
(with-output-to-string
  (lambda ()
(let loop ()
  (define next (read-char input))
  (when (eof-object? next)
(set! quit? #t))
  (when (not (or (eof-object? next)
 (char=? next #\newline)))
(display next)
(loop))
  (if quit?
;; this isn't right, somehow communicate to the system that the repl should 
close
#'(exit)
(honu-read-syntax name (open-input-string one-line

(provide configure)
(define (configure . args)
  (current-read-interaction read-one-line))
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-09-21 Thread Jon Rafkind
How do I see the Honu docs now? I just rebuilt, searching for 'honu' doesn't 
find it.

On 09/21/2011 02:10 PM, e...@racket-lang.org wrote:
 eli has updated `master' from 5024b690ca to 81e0f3f3d7.
   http://git.racket-lang.org/plt/5024b690ca..81e0f3f3d7

 =[ 1 Commits ]==

 Directory summary:
   50.0% collects/honu/scribblings/
   49.9% collects/scribblings/honu/

 ~~

 81e0f3f Eli Barzilay e...@racket-lang.org 2011-09-21 16:10
 :
 | Move `scribblings/honu' to `honu/scribblings'.
 |
 | Also, use `user-doc' since it's not distributed, yet.
 :
   A collects/honu/scribblings/info.rkt
   R collects/{scribblings/honu = honu/scribblings}/honu.scrbl (100%)
   D collects/scribblings/honu/info.rkt

 =[ Overall Diff ]===

 collects/honu/scribblings/info.rkt
 ~~
 --- /dev/null
 +++ NEW/collects/honu/scribblings/info.rkt
 @@ -0,0 +1,3 @@
 +#lang setup/infotab
 +
 +(define scribblings '((honu.scrbl (multi-page user-doc) (experimental 
 40

 collects/scribblings/honu/info.rkt
 ~~
 --- OLD/collects/scribblings/honu/info.rkt
 +++ /dev/null
 @@ -1,3 +0,0 @@
 -#lang setup/infotab
 -
 -(define scribblings '((honu.scrbl (multi-page) (experimental 40

 *** See above for renames and copies ***

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-09-21 Thread Jon Rafkind
On 09/21/2011 05:27 PM, Eli Barzilay wrote:
 An hour and a half ago, Jon Rafkind wrote:
 How do I see the Honu docs now? I just rebuilt, searching for 'honu'
 doesn't find it.
 Run `raco docs'.


And then what? Do you see Honu in there? I don't.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-09-21 Thread Jon Rafkind
On 09/21/2011 05:34 PM, Ryan Culpepper wrote:
 On 09/21/2011 05:31 PM, Eli Barzilay wrote:
 Just now, Jon Rafkind wrote:
 On 09/21/2011 05:27 PM, Eli Barzilay wrote:
 An hour and a half ago, Jon Rafkind wrote:
 How do I see the Honu docs now? I just rebuilt, searching for 'honu'
 doesn't find it.
 Run `raco docs'.

 And then what? Do you see Honu in there? I don't.

 I don't know what went wrong, but I definitely see a honu manual
 there.  Right below the algol manual.

 Jon: did you run raco setup as opposed to raco setup honu? The index, 
 main page, etc aren't rebuilt unless you run setup on the whole tree.

 Ryan

I did 'make  make install' after doing a git pull, but i just tried to erase 
some stuff and am running 'raco setup' right now.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2011-09-21 Thread Jon Rafkind
On 09/21/2011 05:35 PM, Jon Rafkind wrote:
 On 09/21/2011 05:34 PM, Ryan Culpepper wrote:
 On 09/21/2011 05:31 PM, Eli Barzilay wrote:
 Just now, Jon Rafkind wrote:
 On 09/21/2011 05:27 PM, Eli Barzilay wrote:
 An hour and a half ago, Jon Rafkind wrote:
 How do I see the Honu docs now? I just rebuilt, searching for 'honu'
 doesn't find it.
 Run `raco docs'.
 And then what? Do you see Honu in there? I don't.
 I don't know what went wrong, but I definitely see a honu manual
 there.  Right below the algol manual.
 Jon: did you run raco setup as opposed to raco setup honu? The index, 
 main page, etc aren't rebuilt unless you run setup on the whole tree.

 Ryan
 I did 'make  make install' after doing a git pull, but i just tried to 
 erase some stuff and am running 'raco setup' right now.

Ok all set now.. not sure exactly what fixed it though.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] ACM publishing and ArXiv

2011-09-30 Thread Jon Rafkind
So what exactly is the benefit of publishing with ACM these days? Is it just to 
prove that your paper was peer reviewed?

On 09/30/2011 12:02 PM, John Clements wrote:
 On Sep 30, 2011, at 10:07 AM, John Clements wrote:

 In case you didn't catch Stephanie Weirich's post of this on 
 plus.google.com, here's some very interesting information about ArXiv and 
 ACM and where copyrights intersect.

 It may be that you can avoid much of this by only publishing draft 
 versions of your paper on ArXiv; I Am Not A Lawyer.
 Oh for heaven's sake.  Neglected to post the link.

 http://r6.ca/blog/20110930T012533Z.html

 John



 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

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

2011-10-18 Thread Jon Rafkind
On 10/17/2011 07:02 PM, Ryan Culpepper wrote:
 Checklist items for the v5.2 release

 * Jon Rafkind rafk...@cs.utah.edu
   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 list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] no backtrace for error in macro

2011-11-08 Thread Jon Rafkind
When this program is run in DrRacket the error is displayed in the interactions 
pane with a backtrace icon next to it but if you click that icon the backtrace 
window is blank. It would be nice to get some sort of backtrace or I suppose in 
the worst case no backtrace icon should appear.

#lang racket

(define-syntax (foo stx) (raise-syntax-error 'foo dont use foo))
(define-syntax (bar stx)
  #'(foo))

(bar)


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] no backtrace for error in macro

2011-11-08 Thread Jon Rafkind
Ok. Whats your (the) strategy for debugging these sorts of errors? Yesterday I 
just stared at the macro debugger output for a while until I saw where an 
identifier that ultimately raised a syntax error showed up.

On 11/08/2011 10:41 AM, Robby Findler wrote:
 This is a change I made recently and I put a rationale and explanation
 in the commit message here:

   
 http://git.racket-lang.org/plt/commit/e1ce0a0d1e6120354ace65dc3fda76d0442fb3a1

 Robby

 On Tue, Nov 8, 2011 at 11:30 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 When this program is run in DrRacket the error is displayed in the 
 interactions pane with a backtrace icon next to it but if you click that 
 icon the backtrace window is blank. It would be nice to get some sort of 
 backtrace or I suppose in the worst case no backtrace icon should appear.

 #lang racket

 (define-syntax (foo stx) (raise-syntax-error 'foo dont use foo))
 (define-syntax (bar stx)
  #'(foo))

 (bar)


 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] no backtrace for error in macro

2011-11-08 Thread Jon Rafkind
So is there a more efficient way to debug the issue than looking at the macro 
debugger that you know of?

Also FWIW the error I meant arose from exactly the situation below. I created a 
new identifier meant to be used as a literal:

  (define-syntax my-new-literal (lambda (stx) (raise-syntax-error 'literal 
this is a literal meant to be used inside a macro))

And the literal ended up in code outside the intended form that would have 
consumed it so the literal's syntax error was raised.

On 11/08/2011 10:51 AM, Robby Findler wrote:
 It isn't clear to me that the stacktrace is actually containing useful
 information in such cases. That is, the stack will not tell you which
 macro introduced the free identifier, only the code that finds the
 identifier (that is, the code that detects free variables).

 Robby

 On Tue, Nov 8, 2011 at 11:46 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 Ok. Whats your (the) strategy for debugging these sorts of errors? Yesterday 
 I just stared at the macro debugger output for a while until I saw where an 
 identifier that ultimately raised a syntax error showed up.

 On 11/08/2011 10:41 AM, Robby Findler wrote:
 This is a change I made recently and I put a rationale and explanation
 in the commit message here:

   
 http://git.racket-lang.org/plt/commit/e1ce0a0d1e6120354ace65dc3fda76d0442fb3a1

 Robby

 On Tue, Nov 8, 2011 at 11:30 AM, Jon Rafkind rafk...@cs.utah.edu wrote:
 When this program is run in DrRacket the error is displayed in the 
 interactions pane with a backtrace icon next to it but if you click that 
 icon the backtrace window is blank. It would be nice to get some sort of 
 backtrace or I suppose in the worst case no backtrace icon should appear.

 #lang racket

 (define-syntax (foo stx) (raise-syntax-error 'foo dont use foo))
 (define-syntax (bar stx)
  #'(foo))

 (bar)


 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev



_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] no backtrace for error in macro

2011-11-08 Thread Jon Rafkind
On 11/08/2011 11:18 AM, Robby Findler wrote:
 On Tue, Nov 8, 2011 at 12:17 PM, Jon Rafkind rafk...@cs.utah.edu wrote:
 I guess runtime stack traces won't help. It would be nice to see all the 
 locations the syntax went through in its lifetime. Maybe it could be stored 
 as a syntax property?
 You mean you could, say, click on some subexpression in step N and
 then go back one step and find that expression (if it still exists) in
 the previous step in the stepper?

I suppose that could be useful if that stepper showed me the last expression 
that it tried to execute before the syntax error was raised. Then I would have 
seen

  (... my-new-literal ...)
-
  dont use my-new-literal

If I could click on 'my-new-literal' in the code above the arrow and keep 
pressing back until I found its origin then I would be happy. Right now the 
last step before the syntax error does not highlight 'my-new-literal' as the 
syntax that is to be executed next. Actually even if I just saw that (the next 
step to be executed with code highlighted) I could have found my issue very 
quickly.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] scribble -- an ncurses game

2011-12-13 Thread Jon Rafkind
A user of mine alerted me to the fact that 'scribble' is a crossword puzzle 
similar to scrabble. He had it installed in ubuntu so when he typed make in my 
source tree he ended up playing a game instead of generating documentation.

$ aptitude search scribble
p   scribble  - Popular crossword game, 
similar to Scrabble(R)

Well that's my public service announcement for the day. (My dream of dreams is 
to rename 'scribble' to 'racket:scribble'..)
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] scribble -- an ncurses game

2011-12-13 Thread Jon Rafkind
On 12/13/2011 08:11 PM, Matthew Flatt wrote:
 You can use `raco scribble' instead of `scribble'. Maybe `raco
 scribble' should be the preferred form?

Sounds like a good solution to me for now, thanks.
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Racket home page proposal

2011-12-19 Thread Jon Rafkind
+1

On 12/19/2011 10:34 PM, Asumu Takikawa wrote:
 Hi all,

 Currently, the Racket home page is really nice, but it leaves a
 significant amount of vertical space unused that could be used to
 communicate information.

 How would people feel about adding more content below the fold on the
 website? To be more concrete about this, here's a mockup I made:

 http://www.ccs.neu.edu/home/asumu/racket-home/
 (should look fine on Firefox, Opera, and Chrome at least)

 Notably, it contains a twitter feed for @racketlang and entries from the
 blog. These might help to give the first impression that we're an active
 community.

 Cheers,
 Asumu
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


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

2012-01-17 Thread Jon Rafkind
On 01/17/2012 04:44 PM, Ryan Culpepper wrote:
 * Jon Rafkind rafk...@cs.utah.edu
   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
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-04-18 Thread Jon Rafkind


 * Jon Rafkind rafk...@cs.utah.edu
   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
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-04-26 Thread Jon Rafkind
On 04/26/2012 09:35 PM, Sam Tobin-Hochstadt wrote:
 On Thu, Apr 26, 2012 at 11:13 PM,  rafk...@racket-lang.org wrote:
 565e844 Jon Rafkind rafk...@racket-lang.org 2012-04-24 14:53
 :
 | [honu] add vim syntax file for honu
 :
  A collects/honu/misc/honu.vim
 I think this file should go in collects/meta/contrib, along with
 things like shell completion scripts.

I thought about that too, but then I thought putting it there is a good way to 
forget about its (honu.vim) existence.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] version number for functions/forms in docs

2012-04-27 Thread Jon Rafkind
+1

On 04/27/2012 11:25 AM, Laurent wrote:
 Hi,

 If that's not too difficult to do (maybe automatically), it would be nice if 
 the docs could tell if a function/form has changed or has been added recently.
 Maybe a note in the margin like Added in 5.2.1 or Changed in 5.3.0.
 It would be helpful for backward compatibility.

 Laurent


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

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


[racket-dev] make-evaluator fails for honu

2012-05-07 Thread Jon Rafkind
I'm trying to evaluate honu programs inside a sandbox but I get an error from 
`make-evaluator'. Other languages work (racket/base, typed/racket), its only 
'honu that fails so I must have set up something incorrectly. Any idea what it 
could be?

current-directory: `exists' access denied for /home/jon/tmp/

 === context ===
/home/jon/bin/plt/collects/setup/private/main-collects.rkt:19:4: 
find-main-collects
/home/jon/bin/plt/collects/racket/private/promise.rkt:103:10
/home/jon/bin/plt/collects/racket/private/more-scheme.rkt:268:2: 
call-with-exception-handler
...

From this code

#lang at-exp racket/base

(require racket/sandbox)

(define (test input)
  (define honu-eval (make-evaluator 'honu))
  (honu-eval input))

(define input string-append)

(test @input{1})

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


Re: [racket-dev] make-evaluator fails for honu

2012-05-07 Thread Jon Rafkind
The short answer is to use call-with-trusted-sandbox-configuration so the 
sandbox can make filesystem calls without being hindered.

On 05/07/2012 11:46 AM, Jon Rafkind wrote:
 I'm trying to evaluate honu programs inside a sandbox but I get an error from 
 `make-evaluator'. Other languages work (racket/base, typed/racket), its only 
 'honu that fails so I must have set up something incorrectly. Any idea what 
 it could be?

 current-directory: `exists' access denied for /home/jon/tmp/

  === context ===
 /home/jon/bin/plt/collects/setup/private/main-collects.rkt:19:4: 
 find-main-collects
 /home/jon/bin/plt/collects/racket/private/promise.rkt:103:10
 /home/jon/bin/plt/collects/racket/private/more-scheme.rkt:268:2: 
 call-with-exception-handler
 ...

 From this code

 #lang at-exp racket/base

 (require racket/sandbox)

 (define (test input)
   (define honu-eval (make-evaluator 'honu))
   (honu-eval input))

 (define input string-append)

 (test @input{1})

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

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


Re: [racket-dev] XREPL and readline-6.*

2012-05-07 Thread Jon Rafkind
On 05/07/2012 07:01 PM, Eli Barzilay wrote:
 On January 11th, Eli Barzilay wrote:
 10 minutes ago, Marijn wrote:
 On 19-12-11 16:45, Marijn wrote:
 that makes sense as my installed and the current upstream readline
 version is 6.2. Any chance that could be fixed?
 This is still current,
 Did you try to change the version in the source and see if it works?
 Is there anyone with readline v6 who can see if it's still compatible
 with our glue?


I have readline 6 and xrepl still works with it.

$ ls -l /usr/lib/libreadline.so
lrwxrwxrwx 1 root root 21 2011-08-01 00:09 /usr/lib/libreadline.so - 
/lib/libreadline.so.6
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-05-18 Thread Jon Rafkind
yea it was, I have a command line tool that prints out all the imports and 
exports of a module. you wanted it to show contracts and maybe types too 
eventually so I started on this 'module-interface' thing but I didn't work on 
it much since the initial import..

On 05/18/2012 02:07 PM, Matthias Felleisen wrote:
 Was this an attempt to show the interfaces of a module? I do wish we had one 
 inside of DrRacket. 


 On May 18, 2012, at 4:05 PM, as...@racket-lang.org wrote:

 asumu has updated `master' from f34258e253 to a00cd7ebff.
  http://git.racket-lang.org/plt/f34258e253..a00cd7ebff

 =[ 1 Commits ]==

 Directory summary:
 100.0% collects/drracket/private/module-interface/

 ~~

 a00cd7e Asumu Takikawa as...@racket-lang.org 2012-05-18 15:50
 :
 | Remove drracket/private/module-interface.
 |
 | With permission from Jon Rafkind.
 :
  D collects/drracket/private/module-interface/check.rkt
  D collects/drracket/private/module-interface/gui.rkt

 =[ Overall Diff ]===


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


Re: [racket-dev] Code micro-level organization

2012-05-30 Thread Jon Rafkind
On 05/30/2012 04:07 PM, Eli Barzilay wrote:

 Having expressions come from the bottom, using the down arrow, seems
 sort of wierd.
 Here's a concrete example:

   (○ (let ([x 10]) ↓)
  (for ([i (in-range x)]) ↓)
  (for ([j (in-range i)]) ↓)
  ...etc...)

 Do you have a concrete suggestion for doing that?


Well in this case its easy, just remove the closing ) from each of the lines so 
the next line is nested in the right place. If you were going to use the down 
arrow in a different position, like

(for ([i ↓]) ..blah..)
(let ...)

I think things would get out of hand quickly because the physical gap between 
the for expression and the let expression could get quite large.

I mean I hope I'm not trivializing your issue, do you have a different example?
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-07-25 Thread Jon Rafkind


 * Jon Rafkind rafk...@cs.utah.edu
   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]


There was a problem with unix style installation:


Checking the integrity of the binary archive... ok.
Unpacking into /home/jon/tmp/binary/racket/racket-tmp-install (Ctrl+C to 
abort)...
Done.
Moving bin - /home/jon/tmp/binary/racket/bin
Moving collects - /home/jon/tmp/binary/racket/lib/racket/collects
cMoving doc - /home/jon/tmp/binary/racket/share/racket/doc
Moving include - /home/jon/tmp/binary/racket/include/racket
Moving lib - /home/jon/tmp/binary/racket/lib/racket
Moving man - /home/jon/tmp/binary/racket/share/man
Moving README - /home/jon/tmp/binary/racket/share/racket/doc/README
Writing uninstaller at: /home/jon/tmp/binary/racket/bin/racket-uninstall...
Rewriting configuration file at: 
/home/jon/tmp/binary/racket/lib/racket/collects/config/config.rkt...
Recompiling to 
/home/jon/tmp/binary/racket/lib/racket/collects/config/compiled/config_rkt.zo...
default-load-handler: cannot open input file
  path: 
/home/jon/tmp/binary/racket/racket-tmp-install/collects/setup/compiled/unixstyle-install_rkt.zo
  system error: No such file or directory; errno=2
  context...:
   standard-module-name-resolver
Error: installation failed
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-09-05 Thread Jon Rafkind
Frtime has a build error now

raco setup: error: during making for frtime (FrTime)
raco setup:   module: identifier already imported from: lang-ext.rkt
raco setup: at: undefined?
raco setup: in: (rename frtime/core/frp undefined? undefined?)
raco setup: error: during making for frtime/opt
raco setup:   module: identifier already imported from: racket
raco setup: at: third
raco setup: in: (rename srfi/1 third third)
make[2]: *** [install-3m] Error 1
make[2]: Leaving directory `/build/buildd/racket-5.3.0.22/build'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/build/buildd/racket-5.3.0.22/build'
make: *** [common-install-impl] Error 2

On 09/04/2012 11:03 PM, gcoo...@racket-lang.org wrote:
 gcooper has updated `master' from ba56fd72da to 3d8fc4ad01.
   http://git.racket-lang.org/plt/ba56fd72da..3d8fc4ad01

 =[ 57 Commits ]=
 Directory summary:
   57.8% collects/frtime/animation/
   19.8% collects/frtime/frlibs/
3.0% collects/frtime/opt/
   19.1% collects/frtime/


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


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

2012-10-17 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   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
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] build failed on ubuntu 13.04

2012-11-07 Thread Jon Rafkind
Racket failed to build for the ppa on ubuntu 13.04 (raring). I'm not exactly 
sure what the issue is but the details are that its using 
gcc-4.7_4.7.2-5ubuntu5.

Full build log: 
https://launchpadlibrarian.net/122334588/buildlog_ubuntu-raring-i386.racket_5.3-20121107~raring_FAILEDTOBUILD.txt.gz

The error is

make[5]: Entering directory `/build/buildd/racket-5.3/build/racket/gc2'
 gcc -I./.. -I/build/buildd/racket-5.3/src/racket/gc2/../include -g -pthread
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   -Wall  -I./.. -c 
/build/buildd/racket-5.3/src/racket/gc2/gc2.c -o gc2.o
 In file included from /build/buildd/racket-5.3/src/racket/gc2/gc2.c:15:0:
 /build/buildd/racket-5.3/src/racket/gc2/newgc.c: In function 
'GC_message_objects_size':
 /build/buildd/racket-5.3/src/racket/gc2/newgc.c:1594:5: warning: format '%lu' 
expects argument of type 'long unsigned int', but argument 2 has type 
'uintptr_t' [-Wformat]
 In file included from /build/buildd/racket-5.3/src/racket/gc2/newgc.c:2438:0,
  from /build/buildd/racket-5.3/src/racket/gc2/gc2.c:15:
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c: At top 
level:
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:63:35: 
warning: 'struct siginfo' declared inside parameter list [enabled by default]
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:63:35: 
warning: its scope is only this definition or declaration, which is probably 
not what you want [enabled by default]
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c: In 
function 'fault_handler':
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:65:15: 
error: dereferencing pointer to incomplete type
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:67:13: 
error: dereferencing pointer to incomplete type
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:71:9: 
error: dereferencing pointer to incomplete type
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:87:46: 
error: dereferencing pointer to incomplete type
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:87:58: 
error: dereferencing pointer to incomplete type
  /build/buildd/racket-5.3/src/racket/gc2/sighand.c:103:11: 
error: dereferencing pointer to incomplete type
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] build failed on ubuntu 13.04

2012-11-07 Thread Jon Rafkind
Ok I think I found the issue. Commit 1e375bab48f3d704bb2beeade77d05a2a3a642de 
is not in stable. The commit is basically

diff --git a/src/racket/gc2/sighand.c b/src/racket/gc2/sighand.c
index c40aa09..b91ec7c 100644
--- a/src/racket/gc2/sighand.c
+++ b/src/racket/gc2/sighand.c
@@ -60,7 +60,7 @@ void launchgdb() {
 }
 #endif

-void fault_handler(int sn, struct siginfo *si, void *ctx)
+void fault_handler(int sn, siginfo_t *si, void *ctx)
 {


So should this commit be merged to stable?

On 11/07/2012 09:17 PM, Jon Rafkind wrote:
 Racket failed to build for the ppa on ubuntu 13.04 (raring). I'm not exactly 
 sure what the issue is but the details are that its using 
 gcc-4.7_4.7.2-5ubuntu5.

 Full build log: 
 https://launchpadlibrarian.net/122334588/buildlog_ubuntu-raring-i386.racket_5.3-20121107~raring_FAILEDTOBUILD.txt.gz

 The error is

 make[5]: Entering directory `/build/buildd/racket-5.3/build/racket/gc2'
  gcc -I./.. -I/build/buildd/racket-5.3/src/racket/gc2/../include -g -pthread  
   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64   -Wall  -I./.. -c 
 /build/buildd/racket-5.3/src/racket/gc2/gc2.c -o gc2.o
  In file included from /build/buildd/racket-5.3/src/racket/gc2/gc2.c:15:0:
  /build/buildd/racket-5.3/src/racket/gc2/newgc.c: In function 
 'GC_message_objects_size':
  /build/buildd/racket-5.3/src/racket/gc2/newgc.c:1594:5: warning: format 
 '%lu' expects argument of type 'long unsigned int', but argument 2 has type 
 'uintptr_t' [-Wformat]
  In file included from /build/buildd/racket-5.3/src/racket/gc2/newgc.c:2438:0,
   from /build/buildd/racket-5.3/src/racket/gc2/gc2.c:15:
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c: At top 
 level:
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:63:35: 
 warning: 'struct siginfo' declared inside parameter list [enabled by default]
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:63:35: 
 warning: its scope is only this definition or declaration, which is probably 
 not what you want [enabled by default]
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c: In 
 function 'fault_handler':
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:65:15: 
 error: dereferencing pointer to incomplete type
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:67:13: 
 error: dereferencing pointer to incomplete type
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:71:9: 
 error: dereferencing pointer to incomplete type
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:87:46: 
 error: dereferencing pointer to incomplete type
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:87:58: 
 error: dereferencing pointer to incomplete type
   /build/buildd/racket-5.3/src/racket/gc2/sighand.c:103:11: 
 error: dereferencing pointer to incomplete type
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev

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


Re: [racket-dev] Identifier macros

2012-12-05 Thread Jon Rafkind
Actually I would hope that section 1.2 (syntax model) in the reference would 
explain exactly how macros are invoked. Unless I'm missing something it never 
mentions exactly what syntax object is passed to the transformer function once 
a macro binding is observed.

It could either go in paragraph about transformer bindings in the 'expansion 
steps' section (1.2.3.2) or in the section specifically about transformer 
bindings (1.2.3.5). Something like

If the binding appears at the head of a syntax object then the entire syntax 
object is passed as the argument to the transformer. In any other context only 
the syntax object for the binding itself is used as the argument.


On 12/05/2012 12:27 PM, Matthew Flatt wrote:
 At Wed, 5 Dec 2012 14:25:29 -0500, Carl Eastlund wrote:
 On looking back, my confusion was not entirely due to the documentation,
 but partly from my own expectations coming in to it.  If I just look up
 identifier macro, trying to figure out how to write one, I get a link to
 section 16.1.5. 
 Ah, that makes sense. Thanks!

 This does not directly state the context involving
 syntax-rules; it instead describes an identifier macro simply as ...works
 in any expression.  The documentation then goes on to present
 syntax-id-rules as a mechanism for identifier macros, presenting set!
 transformation as well.  So while it doesn't explicitly state that set!
 transformers and identifier macros are the same thing, it does appear to
 imply it and doesn't clarify the matter.  If we're going to use identifier
 macro as an indexed technical term, we should probably have a more precise
 discussion of it in the reference manual as well that spells out how these
 things work.  I know I wasn't the only one surprised to find out that
 ordinary define-syntax  syntax-case / syntax-parse macros can expand (what
 most people would call) identifier macros.  The only way I can figure this
 out in the documentation is from a very close reading of the low-level
 expansion model, which is not written terribly plainly to begin with.

 --Carl

 Carl Eastlund

 On Wed, Dec 5, 2012 at 2:12 PM, Matthew Flatt mfl...@cs.utah.edu wrote:

 At Wed, 5 Dec 2012 09:41:37 -0500, Matthias Felleisen wrote:
 I think two additions/refinements would be good here:

 1. The section on identifier macros in the Guide (16.1.5) should mention
 that
 define-syntax introduces short-hands for identifiers, period.
 I think a `define-syntax' that binds to a procedure of one argument
 is what you mean --- but section 16.1 is about `syntax-rules' and
 `syntax-id-rules', not procedures as transformers.

 Improving the start of 16.2 along these lines makes sense, along with a
 better connection to 16.1. Or maybe you're suggesting a different
 organization than the current 16.1--16.2 split?

 I'm still unclear on the specific text that confused Carl, though. Was
 it 16.1?



 _
   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 v5.3.2

2013-01-17 Thread Jon Rafkind

 * Jon Rafkind rafk...@cs.utah.edu
   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
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] patch for double spaced autobib

2013-02-28 Thread Jon Rafkind
Attached is a patch that adds a keyword, #spaces, to `define-cite', which makes 
the generate bibliography have N spaces between each entry.

(define-cite ... g #:spaces 2)
(g)

..output..

[1] entry 1

[2] entry 2

If it looks ok I can push it, and update the docs as well.
diff --git a/collects/scriblib/autobib.rkt b/collects/scriblib/autobib.rkt
index 4d31b69..a6baa61 100644
--- a/collects/scriblib/autobib.rkt
+++ b/collects/scriblib/autobib.rkt
@@ -222,7 +222,8 @@
 (define (gen-bib tag group sec-title 
  style maybe-disambiguator 
  maybe-render-date-bib maybe-render-date-cite 
- maybe-date? maybe-date=?)
+ maybe-date? maybe-date=?
+ spaces)
   (define disambiguator (or maybe-disambiguator default-disambiguation))
   (define date? (or maybe-date? default-date?))
   (define date=? (or maybe-date=? default-date=?))
@@ -304,12 +305,22 @@
 (bib-para bib (and ambiguous?? (disambiguator num-ambiguous*)) i))
   (values bib num-ambiguous* (cons para* rev-disambiguated*
   (reverse rev-disambiguated*)))
+
+  (define (make-space)
+(list
+  (make-paragraph (make-style #f '()) '())
+  (make-paragraph (make-style #f '()) '(
+
   (make-part #f
  `((part ,tag))
  (list sec-title)
  (make-style #f '(unnumbered))
  null
- (list (make-table (send style bibliography-table-style) disambiguated))
+ (list (make-table (send style bibliography-table-style)
+   (add-between #:splice? #t
+disambiguated
+(for/list ([i (in-range 1 spaces)])
+  (make-space)
  null))
 
 (define (bib-entry bib style disambiguation render-date-bib i)
@@ -353,6 +364,7 @@
 (~or (~optional (~seq #:style style) #:defaults ([style #'author+date-style]))
  (~optional (~seq #:disambiguate fn) #:defaults ([fn #'#f]))
  (~optional (~seq #:render-date-in-bib render-date-bib) #:defaults ([render-date-bib #'#f]))
+ (~optional (~seq #:spaces spaces) #:defaults ([spaces #'1]))
  (~optional (~seq #:render-date-in-cite render-date-cite) #:defaults ([render-date-cite #'#f]))
  (~optional (~seq #:date? date?) #:defaults ([date? #'#f]))
  (~optional (~seq #:date=? date=?) #:defaults ([date=? #'#f]))) ...)
@@ -365,7 +377,7 @@
  (define (citet bib-entry . bib-entries)
(add-inline-cite group (cons bib-entry bib-entries) the-style date? date=?))
  (define (generate-bibliography #:tag [tag doc-bibliography] #:sec-title [sec-title Bibliography])
-   (gen-bib tag group sec-title the-style fn render-date-bib render-date-cite date? date=?]))
+   (gen-bib tag group sec-title the-style fn render-date-bib render-date-cite date? date=? spaces]))
 
 (define (ends-in-punc? e)
   (regexp-match? #rx[.!?,]$ (content-string e)))
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] build: schemef.h - schemex.h

2013-03-10 Thread Jon Rafkind
The ubuntu ppa build has been failing for a while, and I finally tracked it 
down to this issue: src/racket/src/schemef.h has a newer timestamp than 
src/racket/src/schemex.h on a fresh git checkout from github. This results in 
the make system trying to execute the following

make[6]: Entering directory `/home/jon/tmp/plt2/src/b/racket/src'
racket ../../../racket/src/makex.rkt  ../../../racket/src/schemef.h  
../../../racket/src/schemex.h

On a fresh machine with no racket installed, this fails because there is no 
'racket' executable available. I'm not sure what the best solution is. Right 
now I'm thinking of just doing a 'touch *' immediately after a 'git pull' for 
the build machine, since schemex.h probably should not be built every time.. 
But in general I imagine someone might run into this issue on their own 
machine. I'm mildly surprised it hasn't happened to anyone yet.

For whatever reason, this issue only started appearing about 3 weeks ago. 
Perusing the git log doesn't show much related to schemex.h or whatever so I'm 
not sure what the root cause is.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


  1   2   >