[racket-users] Call for participation - Programming Languages Mentoring Workshop (PLMW)

2017-03-28 Thread Tobias Grosser
We invite early graduate students and undergraduates to apply for a
scholarship and to participate in the Programming Languages Mentoring
Workshop (PLMW) in Barcelona, Spain on Sunday, June 18, 2017. 

The purpose of this mentoring workshop is to encourage and prepare
graduate students and senior undergraduate students to pursue careers in
programming language research. The workshop also includes specific
mentoring opportunities for students who belong to traditionally
underrepresented populations, including women, people of color, students
with disabilities, and first-generation students. 

Throughout the day, we’ll have technical sessions, to discuss
cutting-edge research in programming languages; and mentoring sessions,
to help you learn about, prepare, and succeed in your research career.
You’ll also have the opportunity to talk with top programming language
researchers and other students interested in programming language
research. 

This workshop is part of the activities surrounding the Programming
Languages Design and Implementation (PLDI) conference and takes place
the day before the main conference. One goal of the workshop is to make
the PLDI conference more accessible to newcomers. We hope that
participants will stay through the entire conference. Other events that
follow the workshop include the Programming Languages Summer School and
the European Conference on Object-Oriented Programming (ECOOP). 

Scholarship funds are available for students to attend PLMW@PLDI. These
scholarships should cover reasonable expenses (airfare, hotel, and
registration fees) for attendance at both the workshop and an associated
event (such as the PLDI conference or the summer school), but are
limited. We welcome students with alternative sources of funding to
attend as well; but everyone who plans to attend needs to apply.

Apply for a scholarship and to participate at PLMW@PLDI:
https://goo.gl/forms/80aacyFiXNFNnPqA3

The deadline for full consideration of funding is SATURDAY, APRIL 15.
Selected participants will be notified by APRIL 29 and will need to
pre-register and commit to attending the workshop by MAY 10. Applicants
who apply after April 15 but by May 15 may be eligible to receive
funding, if funds remain, and will be notified by by May 29.

Additionally, if you are currently a student in the United States who
cannot (or will not) travel due to concerns about US travel
restrictions, we encourage you to apply and let us know. We may be able
to arrange another form of mentoring for you.

We look forward to seeing you!

The PLMW@PLDI Organizers
Michael Carbin, MIT
Stephen Chong, Harvard University
Işıl Dillig, The University of Texas at Austin
Ben Wiedermann, Harvey Mudd College

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Errors in url dispatch of static files

2017-03-28 Thread Zelphir Kaltstahl
I seem to have a similar problem with the dispatch of static files. I posted it 
on Stackoverflow. Could you take a look at it?

https://stackoverflow.com/questions/43027717/racket-servlet-serve-static-files

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] "check-random" + TR

2017-03-28 Thread 'John Clements' via Racket Users

> On Mar 28, 2017, at 11:51 AM, Matthias Felleisen  wrote:
> 
> 
> Probably. 
> 
> FWIW, Kathy hasn’t maintained the system for a while and no longer gets mail 
> about it. I am the one who implemented check-random. Is it the only thing 
> that isn’t running under TR? 

I’m not aware of any others. (it’s true, I didn’t really answer your 
question….) I will say that the error message simply suggests that another 
typed import is needed.

John

> 
> 
> 
>> On Mar 28, 2017, at 12:38 PM, 'John Clements' via Racket Users 
>>  wrote:
>> 
>> Someone on stack overflow just discovered that “check-random”—from Kathy 
>> Gray’s teaching language test framework—doesn’t work with TR. It looks like 
>> this is because no one bothered to implement it. I suggested that they 
>> change to rackunit, instead, and provided them with this quick hack version 
>> of check-random. 
>> 
>> I guess my question is this: am I right in thinking that the only issue with 
>> using Kathy’s teaching language test framework is that no one bothered to 
>> provide a type for it? If so, is that something we should do?
>> 
>> Link to SO post: 
>> 
>> http://stackoverflow.com/questions/43072656/typed-racket-error-with-check-random
>> 
>> My suggestion to the OP:
>> 
>>   #lang typed/racket
>> 
>>   ; provides check-expect and others for testing
>>   (require typed/rackunit)
>> 
>>   ;; create a new prng, set the seed to the given number, run the thunk.
>>   (: run-with-seed (All (T) ((-> T) Positive-Integer -> T)))
>>   (define (run-with-seed thunk seed)
>> (parameterize ([current-pseudo-random-generator
>> (make-pseudo-random-generator)])
>>   (random-seed seed)
>>   (thunk)))
>> 
>>   ;; run a check-equal where both sides get the same PRNG seed
>>   (define-syntax check-random-equal?
>> (syntax-rules ()
>>   [(_ a b) (let ([seed (add1 (random (sub1 (expt 2 31])
>>  (check-equal? (run-with-seed (λ () a) seed)
>>(run-with-seed (λ () b) seed)))]))
>> 
>>   (: bar (-> Positive-Integer Integer))
>>   (define (bar x)
>> (random x))
>> 
>>   (check-random-equal? (bar 6)
>>(random 6))
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to racket-users+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] "check-random" + TR

2017-03-28 Thread Matthias Felleisen

Probably. 

FWIW, Kathy hasn’t maintained the system for a while and no longer gets mail 
about it. I am the one who implemented check-random. Is it the only thing that 
isn’t running under TR? 



> On Mar 28, 2017, at 12:38 PM, 'John Clements' via Racket Users 
>  wrote:
> 
> Someone on stack overflow just discovered that “check-random”—from Kathy 
> Gray’s teaching language test framework—doesn’t work with TR. It looks like 
> this is because no one bothered to implement it. I suggested that they change 
> to rackunit, instead, and provided them with this quick hack version of 
> check-random. 
> 
> I guess my question is this: am I right in thinking that the only issue with 
> using Kathy’s teaching language test framework is that no one bothered to 
> provide a type for it? If so, is that something we should do?
> 
> Link to SO post: 
> 
> http://stackoverflow.com/questions/43072656/typed-racket-error-with-check-random
> 
> My suggestion to the OP:
> 
>#lang typed/racket
> 
>; provides check-expect and others for testing
>(require typed/rackunit)
> 
>;; create a new prng, set the seed to the given number, run the thunk.
>(: run-with-seed (All (T) ((-> T) Positive-Integer -> T)))
>(define (run-with-seed thunk seed)
>  (parameterize ([current-pseudo-random-generator
>  (make-pseudo-random-generator)])
>(random-seed seed)
>(thunk)))
> 
>;; run a check-equal where both sides get the same PRNG seed
>(define-syntax check-random-equal?
>  (syntax-rules ()
>[(_ a b) (let ([seed (add1 (random (sub1 (expt 2 31])
>   (check-equal? (run-with-seed (λ () a) seed)
> (run-with-seed (λ () b) seed)))]))
> 
>(: bar (-> Positive-Integer Integer))
>(define (bar x)
>  (random x))
> 
>(check-random-equal? (bar 6)
> (random 6))
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] RE: empty lines in a grammer of defform of scribble

2017-03-28 Thread Jos Koot
Option 3 works very fine.
I have incorporated it in https://github.com/joskoot/turing.
Looks very good.
Thanks again, Jos

-Original Message-
From: Dupéron Georges [mailto:jahvascriptman...@gmail.com] 
Sent: martes, 28 de marzo de 2017 15:13
To: Racket Users
Cc: jos.k...@gmail.com
Subject: Re: empty lines in a grammer of defform of scribble

Le lundi 27 mars 2017 22:36:43 UTC+2, jos.koot a écrit :
> When I use #:grammar in a defform,
> the rules of the grammer are separated by empty lines.
> 
> I would like to avoid these empty lines.
> Is it possible?

I haven't seen a built-in mechanism to control this. Generally speaking, the 
tools for documenting bindings are somewhat inflexible,
if your use case falls out of the existing options. This leaves you with three 
possibilities:

1) Copy the source code of the @defform macro, and patch it to your needs
2) Add an option to control this in the mainstream scribble, and hope/wait for 
your Pull Request to be accepted
3) Call the current, official @defform macro, and patch the result.

Solution 1 is future-proof, but your implementation and the official one may 
drift apart, yielding slight inconsistencies in the
rendered output.

Solution 2 sounds better, although I wonder how many quick-fixes like this one 
@defform and similar macros can bear, given that they
are already a maze of particularly complex code, with lots of special-casing.

Solution 3 is the simplest, but is also more brittle, as you depend on the 
output of @defform staying roughly the same.

Here's a quick and dirty implementation of solution 3, note that if you intend 
to use this in production, you should try to make the
match pattern a bit more robust (i.e. a bit more general, in several cases I 
assume single-element lists, and any change in the
implementation of @defform is likely to break this code).

#lang scribble/manual
@(require scribble/manual
  scribble/core
  racket/match
  racket/list)
@(define (defform-remove-empty-lines the-defform)
   (match the-defform
 [(box-splice
   (list
before ...
(nested-flow nf-style
 (list
  (table t-style
 (list other ...
   (list
(table (style "specgrammar" tspec-style)
   (list lines ...)))
   more ...
after ...))
  (define without-empty-lines
;; an empty lines is a sequence of five empty columns:
(remove* (list
  (list
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)))
 lines))
  (box-splice
   (append
before
(list (nested-flow nf-style
   (list
(table t-style
   (append other
   (list (list
  (table (style "specgrammar" 
tspec-style)
 without-empty-lines)))
   more)
after))]))

@defform-remove-empty-lines[
 @defform[(foo bar baz quux)
  #:grammar ([bar (code:line xxx)
  (code:line yyy)]
 [baz (code:line zzz)
  (code:line ttt)]
 [quux (code:line aaa)
  (code:line bbb)])]{
  Blah blah lots of text.}]

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Re: Stickers!

2017-03-28 Thread Adeoluwa Adejumo
On Tuesday, 28 March 2017 13:41:29 UTC+1, Ben Greenman  wrote:
> Sure. What's your mailing address?
> 
> 
> On Tue, Mar 28, 2017 at 4:55 AM, Adeoluwa Adejumo  
> wrote:
> 
> 
> On Tuesday, 24 January 2017 22:15:59 UTC+1, Ben Greenman  wrote:
> 
> > Hi Racket Users,
> 
> >
> 
> >
> 
> > I ordered a bunch of Racket stickers to celebrate the 6.8 release. Here's 
> > proof:
> 
> > http://www.ccs.neu.edu/home/types/resources/stickers.jpg
> 
> >
> 
> >
> 
> >
> 
> > If you send me your address, I will mail you some stickers. For free!*
> 
> >
> 
> >
> 
> > I'm thinking 4 stickers per request (2 rectangles, 2 circles), but if you 
> > live outside the US and promise to serve as a "volunteer regional sticker 
> > distributor" then I'll send more.**
> 
> >
> 
> >
> 
> >
> 
> > Peace, Love, and Racket,
> 
> > Ben
> 
> >
> 
> >
> 
> >
> 
> >
> 
> > * While supplies last. And if you want un-free stickers, you can make your 
> > own on stickermule.com or send a donation to RacketCon 2017.
> 
> >
> 
> >
> 
> > ** While supplies last, and subject to the internal dimensions of the 
> > cheapest padded envelope at my local US post office.
> 
> 
> 
> hello, are the free stickers still available?
> 
> 
> 
> 
> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> 
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users...@googlegroups.com.
> 
> For more options, visit https://groups.google.com/d/optout.

Q1061 ikolaba g.r.a Ibadan, Nigeria. Postal Code: 200221 thanks a bunch!

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] RE: empty lines in a grammer of defform of scribble

2017-03-28 Thread Jos Koot
Thanks very much indeed for your comprehensive answer.
I tried your code given for option 3.
Works well, but your warning makes me hesitate.
Well, I'll see.
I already have a lot of old code no longer accepted by Racket.
Not a big problem, but requires work to adapt.
Thanks a lot again,
Jos Koot

-Original Message-
From: Dupéron Georges [mailto:jahvascriptman...@gmail.com] 
Sent: martes, 28 de marzo de 2017 15:13
To: Racket Users
Cc: jos.k...@gmail.com
Subject: Re: empty lines in a grammer of defform of scribble

Le lundi 27 mars 2017 22:36:43 UTC+2, jos.koot a écrit :
> When I use #:grammar in a defform,
> the rules of the grammer are separated by empty lines.
> 
> I would like to avoid these empty lines.
> Is it possible?

I haven't seen a built-in mechanism to control this. Generally speaking, the 
tools for documenting bindings are somewhat inflexible,
if your use case falls out of the existing options. This leaves you with three 
possibilities:

1) Copy the source code of the @defform macro, and patch it to your needs
2) Add an option to control this in the mainstream scribble, and hope/wait for 
your Pull Request to be accepted
3) Call the current, official @defform macro, and patch the result.

Solution 1 is future-proof, but your implementation and the official one may 
drift apart, yielding slight inconsistencies in the
rendered output.

Solution 2 sounds better, although I wonder how many quick-fixes like this one 
@defform and similar macros can bear, given that they
are already a maze of particularly complex code, with lots of special-casing.

Solution 3 is the simplest, but is also more brittle, as you depend on the 
output of @defform staying roughly the same.

Here's a quick and dirty implementation of solution 3, note that if you intend 
to use this in production, you should try to make the
match pattern a bit more robust (i.e. a bit more general, in several cases I 
assume single-element lists, and any change in the
implementation of @defform is likely to break this code).

#lang scribble/manual
@(require scribble/manual
  scribble/core
  racket/match
  racket/list)
@(define (defform-remove-empty-lines the-defform)
   (match the-defform
 [(box-splice
   (list
before ...
(nested-flow nf-style
 (list
  (table t-style
 (list other ...
   (list
(table (style "specgrammar" tspec-style)
   (list lines ...)))
   more ...
after ...))
  (define without-empty-lines
;; an empty lines is a sequence of five empty columns:
(remove* (list
  (list
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)))
 lines))
  (box-splice
   (append
before
(list (nested-flow nf-style
   (list
(table t-style
   (append other
   (list (list
  (table (style "specgrammar" 
tspec-style)
 without-empty-lines)))
   more)
after))]))

@defform-remove-empty-lines[
 @defform[(foo bar baz quux)
  #:grammar ([bar (code:line xxx)
  (code:line yyy)]
 [baz (code:line zzz)
  (code:line ttt)]
 [quux (code:line aaa)
  (code:line bbb)])]{
  Blah blah lots of text.}]

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: empty lines in a grammer of defform of scribble

2017-03-28 Thread Dupéron Georges
Le lundi 27 mars 2017 22:36:43 UTC+2, jos.koot a écrit :
> When I use #:grammar in a defform,
> the rules of the grammer are separated by empty lines.
> 
> I would like to avoid these empty lines.
> Is it possible?

I haven't seen a built-in mechanism to control this. Generally speaking, the 
tools for documenting bindings are somewhat inflexible, if your use case falls 
out of the existing options. This leaves you with three possibilities:

1) Copy the source code of the @defform macro, and patch it to your needs
2) Add an option to control this in the mainstream scribble, and hope/wait for 
your Pull Request to be accepted
3) Call the current, official @defform macro, and patch the result.

Solution 1 is future-proof, but your implementation and the official one may 
drift apart, yielding slight inconsistencies in the rendered output.

Solution 2 sounds better, although I wonder how many quick-fixes like this one 
@defform and similar macros can bear, given that they are already a maze of 
particularly complex code, with lots of special-casing.

Solution 3 is the simplest, but is also more brittle, as you depend on the 
output of @defform staying roughly the same.

Here's a quick and dirty implementation of solution 3, note that if you intend 
to use this in production, you should try to make the match pattern a bit more 
robust (i.e. a bit more general, in several cases I assume single-element 
lists, and any change in the implementation of @defform is likely to break this 
code).

#lang scribble/manual
@(require scribble/manual
  scribble/core
  racket/match
  racket/list)
@(define (defform-remove-empty-lines the-defform)
   (match the-defform
 [(box-splice
   (list
before ...
(nested-flow nf-style
 (list
  (table t-style
 (list other ...
   (list
(table (style "specgrammar" tspec-style)
   (list lines ...)))
   more ...
after ...))
  (define without-empty-lines
;; an empty lines is a sequence of five empty columns:
(remove* (list
  (list
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)
   (paragraph (style #f '(omitable)) (element #f (list (element 
'tt '(nbsp)))
 lines))
  (box-splice
   (append
before
(list (nested-flow nf-style
   (list
(table t-style
   (append other
   (list (list
  (table (style "specgrammar" 
tspec-style)
 without-empty-lines)))
   more)
after))]))

@defform-remove-empty-lines[
 @defform[(foo bar baz quux)
  #:grammar ([bar (code:line xxx)
  (code:line yyy)]
 [baz (code:line zzz)
  (code:line ttt)]
 [quux (code:line aaa)
  (code:line bbb)])]{
  Blah blah lots of text.}]

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Re: Stickers!

2017-03-28 Thread Ben Greenman
Sure. What's your mailing address?

On Tue, Mar 28, 2017 at 4:55 AM, Adeoluwa Adejumo  wrote:

> On Tuesday, 24 January 2017 22:15:59 UTC+1, Ben Greenman  wrote:
> > Hi Racket Users,
> >
> >
> > I ordered a bunch of Racket stickers to celebrate the 6.8 release.
> Here's proof:
> > http://www.ccs.neu.edu/home/types/resources/stickers.jpg
> >
> >
> >
> > If you send me your address, I will mail you some stickers. For free!*
> >
> >
> > I'm thinking 4 stickers per request (2 rectangles, 2 circles), but if
> you live outside the US and promise to serve as a "volunteer regional
> sticker distributor" then I'll send more.**
> >
> >
> >
> > Peace, Love, and Racket,
> > Ben
> >
> >
> >
> >
> > * While supplies last. And if you want un-free stickers, you can make
> your own on stickermule.com or send a donation to RacketCon 2017.
> >
> >
> > ** While supplies last, and subject to the internal dimensions of the
> cheapest padded envelope at my local US post office.
>
> hello, are the free stickers still available?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Stickers!

2017-03-28 Thread Adeoluwa Adejumo
On Tuesday, 24 January 2017 22:15:59 UTC+1, Ben Greenman  wrote:
> Hi Racket Users,
> 
> 
> I ordered a bunch of Racket stickers to celebrate the 6.8 release. Here's 
> proof:
> http://www.ccs.neu.edu/home/types/resources/stickers.jpg
> 
> 
> 
> If you send me your address, I will mail you some stickers. For free!*
> 
> 
> I'm thinking 4 stickers per request (2 rectangles, 2 circles), but if you 
> live outside the US and promise to serve as a "volunteer regional sticker 
> distributor" then I'll send more.**
> 
> 
> 
> Peace, Love, and Racket,
> Ben
> 
> 
> 
> 
> * While supplies last. And if you want un-free stickers, you can make your 
> own on stickermule.com or send a donation to RacketCon 2017.
> 
> 
> ** While supplies last, and subject to the internal dimensions of the 
> cheapest padded envelope at my local US post office.

hello, are the free stickers still available?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.