Re: [racket-dev] [racket] Profiling mostly macro-generated definitions?

2012-08-31 Thread Robby Findler
 I believe I'm using the 32 bit build in all those cases, tho. Are you
 using the 64 bit one?

 Yes.


Thanks. I see this too. Here's a shorter program illustrating the difference.

#lang racket
(require profile)

(define (f x)
  (if (zero? x)
  (continuation-mark-set-context
   (current-continuation-marks))
  (values (f (- x 1)

(unless (zero? (random 1))
  (set! f void))

(f 10)


Running this with a 64bit racket under windows returns the empty list,
but with a 32bit racket under windows returns a list of a bunch of
stuff:

C:\Users\robby\git\pltRacket.exe C:\Users\robby\tmp.rkt
(list (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
(cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 3
3 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
(cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0
 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
(cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4
 0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt
 4 0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rk
t 4 0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
133)) (cons '|[running body]| (srcloc #path:C:\U
sers\robby\tmp.rkt #f #f #f #f)))
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [racket] Profiling mostly macro-generated definitions?

2012-08-31 Thread Matthew Flatt
Sorry that I've been slow to catch on in this thread...

Yes, stack traces in JIT mode don't really work in Win64, and that's
why `profile' gives no information. I'll try to improve Win64 context
support sometime soon.

At Fri, 31 Aug 2012 07:05:14 -0500, Robby Findler wrote:
  I believe I'm using the 32 bit build in all those cases, tho. Are you
  using the 64 bit one?
 
  Yes.
 
 
 Thanks. I see this too. Here's a shorter program illustrating the difference.
 
 #lang racket
 (require profile)
 
 (define (f x)
   (if (zero? x)
   (continuation-mark-set-context
(current-continuation-marks))
   (values (f (- x 1)
 
 (unless (zero? (random 1))
   (set! f void))
 
 (f 10)
 
 
 Running this with a 64bit racket under windows returns the empty list,
 but with a 32bit racket under windows returns a list of a bunch of
 stuff:
 
 C:\Users\robby\git\pltRacket.exe C:\Users\robby\tmp.rkt
 (list (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
 (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 3
 3 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
 (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0
  33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33 133))
 (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4
  0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt
  4 0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rk
 t 4 0 33 133)) (cons 'f (srcloc #path:C:\Users\robby\tmp.rkt 4 0 33
 133)) (cons '|[running body]| (srcloc #path:C:\U
 sers\robby\tmp.rkt #f #f #f #f)))
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] desired behavior of (in-directory …) when lacking permissions?

2012-08-31 Thread John Clements
Currently, using the (in-directory …) sequence in a directory where there are 
unreadable directories causes a funny internal contract failure.

Suppose I have directory /tmp/f, containing directory sekrit which I cannot 
read. Then this program:

#lang racket

(sequence-list (in-directory /tmp/f))

… produces this pair of errors:

. . plt/collects/racket/private/for.rkt:1857:28: directory-list: could not open 
directory
  path: /tmp/f/sekrit
  system error: Permission denied; errno=13
. . car: contract violation
  expected: pair?
  given: #void

The first one looks reasonable, but why wouldn't that error just abort the 
whole computation? It looks like there's a handler somewhere that eats this 
error but then tries to continue by passing #void rather than a list.

The docs don't seem to have anything to say about this.

Is this a bug?

John



smime.p7s
Description: S/MIME cryptographic signature
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] desired behavior of (in-directory …) when lacking permissions?

2012-08-31 Thread Matthew Flatt
At Fri, 31 Aug 2012 09:55:04 -0700, John Clements wrote:
 #lang racket
 
 (sequence-list (in-directory /tmp/f))
 
 … produces this pair of errors:
 
 . . plt/collects/racket/private/for.rkt:1857:28: directory-list: could not 
 open directory
   path: /tmp/f/sekrit
   system error: Permission denied; errno=13
 . . car: contract violation
   expected: pair?
   given: #void
 
 The first one looks reasonable, but why wouldn't that error just abort the 
 whole computation? It looks like there's a handler somewhere that eats this 
 error but then tries to continue by passing #void rather than a list.
 
 The docs don't seem to have anything to say about this.
 
 Is this a bug?

Yes.

The implementation of `in-directory' uses a prompt with the default
continuation prompt tag. It should use its own tag, instead, to avoid
interfering with error escapes. I'll push a repair.


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


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

2012-08-31 Thread John Clements

On Aug 31, 2012, at 3:07 PM, mfl...@racket-lang.org wrote:

 mflatt has updated `master' from eed93825ab to 7b2e18afc5.
  http://git.racket-lang.org/plt/eed93825ab..7b2e18afc5
 
 =[ 2 Commits ]==
 Directory summary:
  11.6% collects/racket/private/
  49.7% collects/scribble/
  24.5% collects/scribblings/scribble/
  14.0% collects/tests/racket/
 
 ~~
 
 9cfcf89 Matthew Flatt mfl...@racket-lang.org 2012-08-31 11:12
 :
 | fix `in-directory' to properly propagate filesystem errors
 :
  M collects/racket/private/for.rkt | 10 +++---
  M collects/tests/racket/file.rktl | 15 +++

Thanks!

John



smime.p7s
Description: S/MIME cryptographic signature
_
  Racket Developers list:
  http://lists.racket-lang.org/dev