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

2012-07-29 Thread Matthias Felleisen

With all due respect. Was there a reason why parametric imports don't work? 
They do change behavior in a way that doesn't jive with the TR 
port-to-typed-without-change-in-semantics philosophy. 




On Jul 29, 2012, at 9:27 AM, stamo...@racket-lang.org wrote:

 stamourv has updated `master' from a0e6892d3e to dd02f5eeda.
  http://git.racket-lang.org/plt/a0e6892d3e..dd02f5eeda
 
 =[ One Commit ]=
 Directory summary:
  43.8% collects/tests/typed-racket/succeed/
  56.1% collects/typed-racket/
 
 ~~
 
 dd02f5e Vincent St-Amour stamo...@racket-lang.org 2012-07-29 09:02
 :
 | Fix parametric require/typed in typed/racket/base.
 |
 | Closes PR12951.
 |
 | Please merge to release.
 :
  A collects/tests/typed-racket/succeed/parametric-require-tr-base.rkt
  M collects/typed-racket/typed-racket.rkt | 2 +-
 
 =[ Overall Diff ]===
 
 collects/tests/typed-racket/succeed/parametric-require-tr-base.rkt
 ~~
 --- /dev/null
 +++ NEW/collects/tests/typed-racket/succeed/parametric-require-tr-base.rkt
 @@ -0,0 +1,4 @@
 +#lang typed/racket/base
 +
 +(require/typed racket/base
 +(values (All (a) (a - a
 
 collects/typed-racket/typed-racket.rkt
 ~~
 --- OLD/collects/typed-racket/typed-racket.rkt
 +++ NEW/collects/typed-racket/typed-racket.rkt
 @@ -7,7 +7,7 @@
  ;; that may appear in the residual program
  utils/utils.rkt
  (for-syntax utils/utils.rkt)
 - utils/any-wrap.rkt unstable/contract)
 + utils/any-wrap.rkt unstable/contract racket/contract/parametric)
 
 (provide (rename-out [module-begin #%module-begin]
  [top-interaction #%top-interaction])


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


Re: [racket-dev] possible 5.2.900.1 bug involving rest argument

2012-07-29 Thread Matthias Felleisen

On Jul 28, 2012, at 8:25 PM, Eli Barzilay wrote:

  andmap: contract violation
expected: list?
given: '(#syntax:/tmp/zzz:5:19 Y . #syntax:/tmp/zzz:5:23 Z)
argument position: 2nd
other arguments...:
 #procedure:void
context...:
 
 /home/scheme/html/release/racket/collects/syntax/parse/private/residual.rkt:206:0:
  predicate-ellipsis-parser
 /tmp/zzz: [running body]
 
 and the trace that points at synax/parse/private/residual.rkt was
 there when I tried your original line, so I think that it's the right
 error.
 
 (I'll let Ryan take it from here, I just did a semi-blind tracking...)


Eli, note how contract messages helped shift blame from compiler to 
syntax/parse. 


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


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

2012-07-29 Thread Vincent St-Amour
At Sun, 29 Jul 2012 10:15:17 -0400,
Matthias Felleisen wrote:
 With all due respect. Was there a reason why parametric imports don't
 work? They do change behavior in a way that doesn't jive with the TR
 port-to-typed-without-change-in-semantics philosophy.

Parametric imports were already in `typed/racket', but were not in
`typed/racket/base'.

This commit fixes `typed/racket/base' to be consistent with
`typed/racket'. It doesn't change the semantics of parametric imports.

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


Re: [racket-dev] Racket 5.3 pre-release impressions?

2012-07-29 Thread Neil Van Dyke
Thanks, Doug.  From talking with a few people, it sounds like 5.3 is 
shaping up pretty normally for a release, and the releases have been 
high-quality.


I was just a little spooked by running into two bugs very quickly (two 
points determine a line, after all), but I haven't found any since those.


Neil V.

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


Re: [racket-dev] seeing segfaults on build on 64-bit ubuntu

2012-07-29 Thread Danny Yoo
I tried building from scratch again from
c9d0319a11cb2aae6d1e81d0c6465b4241a4ecff  and see the following:


raco setup: 1 running: plot/scribblings/plot.scrbl
raco setup: 2 running: preprocessor/scribblings/preprocessor.scrbl
raco setup: 2 running: scribblings/quick/quick.scrbl
raco setup: 2 running: r5rs/r5rs.scrbl
raco setup: 2 running: r6rs/scribblings/r6rs.scrbl
*** glibc detected *** racket/racket3m: double free or corruption
(!prev): 0x2afccc1395e0 ***
*** glibc detected *** racket/racket3m: double free or corruption
(!prev): 0x2afccc1395e0 ***
=== Backtrace: =
=== Backtrace: =
/lib/x86_64-linux-gnu/libc.so.6(+0x7e626)[0x2afca64ad626]
/usr/lib/x86_64-linux-gnu/libpixman-1.so.0(pixman_image_unref+0x17)[0x2afce1314a97]
/usr/lib/x86_64-linux-gnu/libcairo.so.2(+0x21fd1)/usr/lib/x86_64-linux-gnu/libcairo.so.2(+0x293cc/usr/lib/x86_64-linux-gnu/libcairo.so.2(cairo_stroke_preserve+0x20)[0x2afce102e250]
/usr/lib/x86_64-linux-gnu/libcairo.so.2(cairo_stroke+0x9)[0x2afce102e269]
racket/racket3m(/usr/lib/x86_64-linux-gnu/libffi.so.6(ffi_call+0x1e5)[0x2afca600f435]
racket/racket3m(scheme_do_eval+0x295)[0x454bd5]
racket/racket3m(ffi_do_call+0x70b)[0x6485eb]
racket/racket3m(scheme_do_eval+0x295)[0xAborted (core dumped)
make[1]: *** [install-3m] Error 134
make[1]: Leaving directory `/home/dyoo/local/racket/src/build'
make: *** [install] Error 2



dyoo@grom:~/local/racket/src/build$ gdb racket/racket3m core
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as x86_64-linux-gnu.
For bug reporting instructions, please see:
http://bugs.launchpad.net/gdb-linaro/...
Reading symbols from /home/dyoo/local/racket/src/build/racket/racket3m...done.

warning: core file may not match specified executable file.
[New LWP 8450]
[New LWP 6091]
[New LWP 6090]
[New LWP 8455]
[New LWP 6092]
[New LWP 8454]
[New LWP 8448]
[New LWP 8453]
[New LWP 8449]
[New LWP 8451]
[New LWP 8452]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library /lib/x86_64-linux-gnu/libthread_db.so.1.
Core was generated by `racket/racket3m -X
/home/dyoo/local/racket/collects -N raco setup -l- setup --n'.
Program terminated with signal 6, Aborted.
#0  0x2afca6465445 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) where
#0  0x2afca6465445 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x2afca6468bab in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x2afca64a2e2e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x2afca64ad626 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x2afce1314a97 in pixman_image_unref ()
   from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
#5  0x2afce103c965 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#6  0x2afce103e3cc in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#7  0x2afce103f6eb in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#8  0x2afce103fe8b in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#9  0x2afce105d642 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#10 0x2afce1036fd1 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#11 0x2afce102e250 in cairo_stroke_preserve ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#12 0x2afce102e269 in cairo_stroke ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#13 0x2afca600fa14 in ffi_call_unix64 ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#14 0x2afca600f435 in ffi_call ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#15 0x006485eb in ffi_do_call (data=optimized out,
argc=optimized out, argv=0x2afcddc01998) at xsrc/foreign.c:5246
#16 0x00454bd5 in scheme_do_eval (obj=0x2afd28d11328, num_rands=1,
rands=0x2afcddc01998, get_value=-1)
at ../../../racket/gc2/../src/eval.c:2991
#17 0x00458603 in _scheme_apply_multi_from_native (
rator=optimized out, argc=1, argv=optimized out)
at ../../../racket/gc2/../src/schnapp.inc:87
#18 0x2afca87502fb in ?? ()
#19 0x2afcbe3260f0 in ?? ()
#20 0x2afcd7e34aa2 in ?? ()
#21 0x in ?? ()
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] potentially renaming /usr/bin/planet to /usr/bin/planet-racket in Debian

2012-07-29 Thread David Bremner

Hi All;

We're currently trying to figure out the right way to handle a name
conflict in Debian between racket and an rss aggregator named
planet-venus.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680685

I don't use the command /usr/bin/planet myself, so I was wondering if
anybody could explain the likely disruption caused by (hypothetically)
renaming it. In particular is it likely to be somether where people are
using it from scripts or cron jobs, or would making a shell alias
(alias planet planet-racket) suffice to avoid retraining fingers?

Thanks

David

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


Re: [racket-dev] potentially renaming /usr/bin/planet to /usr/bin/planet-racket in Debian

2012-07-29 Thread Jay McCarthy
The Racket core distribution has already started deprecating the
'planet' command in favour of going through the 'raco' command and the
'planet' subcommand:

raco planet ...

rather than

planet ...

The current documentation does not refer to the 'planet' command at all.

If users are still using it, then an alias would be sufficient, since
it is unlikely that programs (certainly none in the Racket
distribution) call 'planet' directly.

Jay

On Sun, Jul 29, 2012 at 1:46 PM, David Bremner brem...@debian.org wrote:

 Hi All;

 We're currently trying to figure out the right way to handle a name
 conflict in Debian between racket and an rss aggregator named
 planet-venus.

 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680685

 I don't use the command /usr/bin/planet myself, so I was wondering if
 anybody could explain the likely disruption caused by (hypothetically)
 renaming it. In particular is it likely to be somether where people are
 using it from scripts or cron jobs, or would making a shell alias
 (alias planet planet-racket) suffice to avoid retraining fingers?

 Thanks

 David

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



-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] raco make cannot marshal value error

2012-07-29 Thread Neil Toronto

Maybe it would be good to have official support for safe 3D values.

I realized after I wrote the `images/compile-time' module that it was 
just a special case. It could be extended to handle anything 
serializable. Having to serialize values at expansion time and 
unserialize them at runtime makes 3D values pretty safe.


Neil ⊥

On 07/27/2012 05:56 AM, Matthias Felleisen wrote:


I am almost sure there are additional explanations of 3d syntax and its 
problems between then and now.

When we (re)discovered 3d syntax at IU in 1984, we thought it was better than 
sliced bread. So it is natural that many other people re-discover it and want 
to use it in Racket.



On Jul 27, 2012, at 5:35 AM, Tobias Hammer wrote:


Thanks for the explanation. I think i understand now what i did wrong.
The 3D syntax was a good hint for further reading. I digged up a thread*
where you already had to explain it 10 years ago :)

Tobias

* http://www.cs.utah.edu/plt/mailarch/plt-scheme-2002/msg00111.html


On Thu, 26 Jul 2012 15:36:44 +0200, Matthew Flatt mfl...@cs.utah.edu wrote:


I agree that it's a bug, in a sense, that your program runs even though
it cannot be compiled.

This is an example of 3-D syntax: you're embedding a value (i.e., an
instance of `s') that you can't write as a literal into the result of a
macro expansion. I think 3-D syntax probably should not be allowed, but
the macro system currently allows it.

Most likely, using 3-D syntax is a bad idea. It's possible that you
want to replace `#:transparent' with `#:prefab' in your example, since
a prefab structure can be written as a literal. More likely, I think
you want to generate an expression that constructs an `s' instead of
generating an `s' instance in the macro expansion.

At Thu, 26 Jul 2012 14:59:41 +0200, Tobias Hammer wrote:

Hi,

i have the following two files, one that only requires the other and
calls a macro and the other one that defines that macro:

=== main.rkt
#lang racket

(require err.rkt)
(a)

=== err.rkt
#lang racket

(begin-for-syntax
  (struct s (arg) #:transparent)

  (define (fun arg)
(printf arg: ~a\n arg)))

(define-syntax (a stx)
   (syntax-case stx ()
 [(_)
  (with-syntax ([v #`#,(s 123)])
#'(begin
(begin-for-syntax
 (fun v]))

(provide a)

When executing 'racket main.rkt' directly i get the expected output
arg: #(struct:s 123)
but when i try to call 'raco make main.rkt' instead, i get this strange
error:

arg: #(struct:s 123)
write: cannot marshal value that is embedded in compiled code
   value: (s 123)
   context...:
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:388:6

/home_local/hamm_to/racket/racket-5.3.0.16/collects/racket/private/more-scheme.r
kt:151:2:
call-with-break-parameterization
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:188:5
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:508:26
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:501:42
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:466:0:
maybe-compile-zo
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:579:2:
do-check
/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/cm.rkt:653:4

/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/commands/make.rkt:7
7:8:
for-loop

/home_local/hamm_to/racket/racket-5.3.0.16/collects/compiler/commands/make.rkt:

[running body]
/home_local/hamm_to/racket/racket-5.3.0.16/collects/raco/raco.rkt:
[running body]
/home_local/hamm_to/racket/racket-5.3.0.16/collects/raco/main.rkt:
[running body]

I think i need a little help to understand what is happening here
and what i am doing wrong. I had expected that running and compiling
works on the same set of programs.

Thanks for any clarification.

Tobias



--
-
Tobias Hammer
DLR / Institute of Robotics and Mechatronics
Tel.: 08153/28-1487
Mail: tobias.ham...@dlr.de
_
  Racket Developers list:
  http://lists.racket-lang.org/dev

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



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



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


[racket-dev] Feature request: Vector-sort

2012-07-29 Thread Harry Spier
I would find a sort function for vectors very useful.

Thanks,
Harry Spier
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Feature request: Vector-sort

2012-07-29 Thread Eli Barzilay
A few minutes ago, Harry Spier wrote:
 I would find a sort function for vectors very useful.

Actually, the `sort' code uses a vector to do its work, which is
initialized from the input list.  But it doesn't help much to make it
deal with vectors too, since the vector that is used for the sorting
work needs to be bigger than the input -- so to sort a vector you'd
still need to create a copy.  Given that, you can usually just do the
usual (list-vector (sort (vector-list v) )).

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-07-29 Thread Sam Tobin-Hochstadt
On Sun, Jul 29, 2012 at 7:57 AM, Vincent St-Amour stamo...@ccs.neu.edu wrote:
 At Sun, 29 Jul 2012 10:15:17 -0400,
 Matthias Felleisen wrote:
 With all due respect. Was there a reason why parametric imports don't
 work? They do change behavior in a way that doesn't jive with the TR
 port-to-typed-without-change-in-semantics philosophy.

 Parametric imports were already in `typed/racket', but were not in
 `typed/racket/base'.

More specifically, Typed Racket changed to statically depend on less
of the contract system at expansion time, but I neglected to ensure
that the appropriate `require` of `racket/contract/polymorphic` was
maintained for the residual program.
-- 
sam th
sa...@ccs.neu.edu
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Feature request: Vector-sort

2012-07-29 Thread Harry Spier
On Sun, Jul 29, 2012 at 6:12 PM, Eli Barzilay e...@barzilay.org wrote:

 Actually, the `sort' code uses a vector to do its work, which is
 initialized from the input list.  But it doesn't help much to make it
 deal with vectors too, since the vector that is used for the sorting
 work needs to be bigger than the input -- so to sort a vector you'd
 still need to create a copy.  Given that, you can usually just do the
 usual (list-vector (sort (vector-list v) )).

Thanks Eli.  Thats in fact what I'm presently doing.  i.e. vector-list

Its on a vector of 26000 structs each consisting of 4 numbers and two
very short lists of numbers (0-2 or 3 numbers each).

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


Re: [racket-dev] possible 5.2.900.1 bug involving rest argument

2012-07-29 Thread Ryan Culpepper

Yes, I fixed the bug. The fix should be in the release build tomorrow.

Ryan

On 07/28/2012 08:28 PM, Robby Findler wrote:

I believe Ryan fixed this a few hours ago. He may be waiting for a
release build before commenting.

Robby

On Sat, Jul 28, 2012 at 7:25 PM, Eli Barzilay e...@barzilay.org wrote:

6 hours ago, Neil Van Dyke wrote:

Looks like a minor compiler/optimizer bug in Friday's 5.2.900.1
pre-release.

I haven't yet found a simpler test case, but you can reproduce by
installing a particular PLaneT package as shown below.

The line 1275 it's complaining about is the following, which starts
a procedure definition that is later applied at toplevel in the same
module:

(define (charterm-make-keydec keydec-id . keysets)

The demo program for this PLaneT package seems to run correctly despite
these install/compile-time error messages.


I tried to track this, and I don't think that it's a compiler bug...
It looks like it's a failure at the stage of compiling the docs which
would explain why the code runs fine.

The problem looks like something in syntax/parse -- either there or it
doesn't do enough checking of its input.  A small example that shows
it:

   #lang racket/base
   (require syntax/parse)
   (syntax-parse #'(X Y . Z) [(NAME:id ARGn ...) 1] [else 1])

which produces the following error:

   andmap: contract violation
 expected: list?
 given: '(#syntax:/tmp/zzz:5:19 Y . #syntax:/tmp/zzz:5:23 Z)
 argument position: 2nd
 other arguments...:
  #procedure:void
 context...:
  
/home/scheme/html/release/racket/collects/syntax/parse/private/residual.rkt:206:0:
 predicate-ellipsis-parser
  /tmp/zzz: [running body]

and the trace that points at synax/parse/private/residual.rkt was
there when I tried your original line, so I think that it's the right
error.

(I'll let Ryan take it from here, I just did a semi-blind tracking...)

--
   ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
 http://barzilay.org/   Maze is Life!
_
   Racket Developers list:
   http://lists.racket-lang.org/dev

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




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


Re: [racket-dev] potentially renaming /usr/bin/planet to /usr/bin/planet-racket in Debian

2012-07-29 Thread Robby Findler
I think it should be okay to remove it. All of the functionality is
covered by using raco planet.

Robby

On Sun, Jul 29, 2012 at 2:46 PM, David Bremner brem...@debian.org wrote:

 Hi All;

 We're currently trying to figure out the right way to handle a name
 conflict in Debian between racket and an rss aggregator named
 planet-venus.

 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680685

 I don't use the command /usr/bin/planet myself, so I was wondering if
 anybody could explain the likely disruption caused by (hypothetically)
 renaming it. In particular is it likely to be somether where people are
 using it from scripts or cron jobs, or would making a shell alias
 (alias planet planet-racket) suffice to avoid retraining fingers?

 Thanks

 David

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