Re: [racket-dev] DrRacket 5.3 suddenly crashing every few minutes on Win7/64

2012-10-22 Thread Matthew Flatt
I finally managed to get a Win7 installation updated with KB2739159,
but I haven't been able to provoke a crash. I assume that you're still
seeing the crash, though.

Does the pre-release candidate similarly fail for you?:

 http://pre.racket-lang.org/release/installers/


At Wed, 17 Oct 2012 09:53:05 -0400, Kathi Fisler wrote:
> Within the last couple of days, DrRacket has started crashing after a
> few minutes of use.  I have not noticed a pattern to what I am doing
> when the crash occurs (it has happened on each of mid-editing on
> changing tabs, and on hitting F5 to run).  I have tried both with
> multiple tabs open and with multiple windows open (but only single
> tabs).  It has now crashed 5 times within 20 minutes.
> 
> I am running 5.3[3m], which I upgraded to soon after its release.  I
> installed Windows upgrades a week ago; could be correlated to when the
> problem started occurring.  Last Windows update I installed was
> KB2739159.  I'm on 64-bit Windows 7.
> 
> Glad to provide more info if someone tells me what to grab and how to grab it.
> 
> Kathi
> _
>   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.1

2012-10-22 Thread Neil Toronto

On 10/15/2012 10:58 PM, Ryan Culpepper wrote:

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


All good.

Neil ⊥

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


[racket-dev] bug: internal typechecker error

2012-10-22 Thread Paulo J. Matos

Hello,

As I was converting a program into typed racket in drscheme 5.3 I got an 
internal typechecker error. Load the attached file and press run.


That should allow you to reproduce the problem.

Cheers,
--
PMatos
#lang typed/racket

;This program is free software: you can redistribute it and/or modify
;it under the terms of the GNU General Public License as published by
;the Free Software Foundation, either version 3 of the License, or
;(at your option) any later version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License
;along with this program.  If not, see .

(require file/md5)
(require (planet synx/stat))

(define *cache-file* (build-path (find-system-path 'home-dir) ".dupfi.cache"))
(define *cache* (make-parameter (make-hash)))
(define *cache-diff-max* 1000)

(struct: file
  ((name : String)
   (path : Path)
   (chksum : Bytes))
  #:transparent)

(struct: dir
  ((name : String)
   (path : Path)
   (contents : (Listof file)))
  #:transparent)

(define old-cache?
  (let ([cache-counter 0])
(lambda ()
  (if (= cache-counter *cache-diff-max*)
  (begin
(set! cache-counter 0)
#t)
  (begin
(set! cache-counter (+ cache-counter 1))
#f)

(define (file< f1 f2)
  ; sort two files alphabetically
  (string ( . ))
;;
(define (read-cache)
  (*cache* (make-hash))
  (when (file-exists? *cache-file*)
(call-with-input-file *cache-file*
  (lambda (in)
(let: loop : Void ([line : String (read-line in)])
  (when (not (eof-object? line))
(let ([split-str (string-split line ",")])
  (cond 
[(not (= (length split-str) 3))
 (printf "[1] read-cache fails, unexpected line in cache file: 
~a, ignoring.~n" line)
 (loop (read-line in))]
[else 
 (let ([path (first split-str)]
   [modtime (string->number (string-trim (second 
split-str)))]
   [md5 (string->bytes/utf-8 (string-trim (third 
split-str)))])
   (cond 
 [(or (not path) (not modtime) (not md5))
  (printf "[2] read-cache fails, unexpected line in cache 
file: ~a, ignoring.~n" line)
  (loop (read-line in))]
 [(not modtime)
  (error "fail")] ;; unreachable?
 [else 
  (hash-set! (*cache*) path (cons modtime md5))
  (loop (read-line in))]))])
  #:mode 'text))
  (printf "cache has ~a entries~n" (hash-count (*cache*

(define (write-cache)
  (call-with-output-file *cache-file*
(lambda (out)
  (hash-for-each (*cache*)
 (lambda (key val)
   (when (not (string? key))
 (error "writing cache failed, key is not string: " 
key))
   (when (not (number? (car val)))
 (error "writing cache failed, modtime is not number: " 
(car val)))
   (when (not (bytes? (cdr val)))
 (error "writing cache failed, md5 is not bytes: " (cdr 
val)))
   (fprintf out "~a, ~a, ~a~n" key (car val) 
(bytes->string/utf-8 (cdr val))
#:mode 'text
#:exists 'replace))

(define (dump-cache)
  (printf "CACHE DUMP:~n")
  (hash-for-each (*cache*)
   (lambda (key val)
 (let ([modtime (car val)]
   [md5 (cdr val)])
   (printf "~a: ~a,~a~n"
   key modtime md5
  (printf "CACHE DUMP DONE~n"))

(define (make-file name path)
  ; Checks if file is in cache, if it is and modification seconds are the same, 
returns cached file.
  ; Otherwise, it calculates its md5sum and adds file to cache.
  (let* ([fullpath (build-path path name)]
 [modtime (file-or-directory-modify-seconds fullpath)]
 [val (hash-ref (*cache*) (path->string fullpath) (lambda () #f))])
(if (and val (= (car val) modtime))
(begin
  (printf "found cache for file ~a~n" (path->string fullpath))
  (file name path (cdr val)))
(let ([md5 (begin
 (printf "computing md5 for ~a~n" fullpath)
 (if (normal-file? (type-bits fullpath))
   (call-with-input-file fullpath md5)
   (string->bytes/utf-8 "0")))])
  (if (not val)
(printf "file not in cache: ~a~n" (path->string fullpath))
(printf "file is in cache but modify times are different: old ~a, 
new ~a~n" (car val) modtime))
  
  (when val
(hash-remove! (*cache*) fullpath

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

2012-10-22 Thread John Clements

On Oct 15, 2012, at 9:58 PM, Ryan Culpepper wrote:
> 
> * John Clements 
>  - Stepper Tests
>  Updates:
>  - Stepper Updates: update HISTORY
>  (updates should show v5.3.1 as the most current version; email me
>  to pick the changes when they're done, or tell me if there are no such
>  changes.)

Done, history update in 54c5538fd61ca90b4410faaea6c5799d3ab80c72

John



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


[racket-dev] Pre-Release Checklist for v5.3.1, Second Call

2012-10-22 Thread Ryan Culpepper

Checklist items for the v5.3.1 release
  (using the v5.3.0.900 release candidate build)

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

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

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

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).  To
get the tests directory in such a directory, you can do this:
  cd ...racket-root...
  git archive --remote=git://git.racket-lang.org/plt.git release \
  -- collects/tests | tar x

--

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

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

* Ryan Culpepper 
  - Macro Debugger Tests

* Kathy Gray 
  - Test Engine Tests

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

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

* Danny Yoo 
  - Whalesong Tests (confirm that Whalesong runs from PLaneT)
_
 Racket Developers list:
 http://lists.racket-lang.org/dev


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

2012-10-22 Thread Danny Yoo
> * Danny Yoo 
>   - Whalesong Tests (confirm that Whalesong runs from PLaneT)

Does not run, but can you take this out of the checklist anyway?

I'll follow up with a request on how to add Whalesong as a DrDr test
so that it's continually tested as opposed to tested only at
release-branch time.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-10-22 Thread Sam Tobin-Hochstadt
Will these be in 5.3.1?  Without this fix, the macro stepper is very broken.

Sam
On Oct 22, 2012 3:05 PM,  wrote:

> ryanc has updated `master' from f60d57a27f to 1137b444ad.
>   http://git.racket-lang.org/plt/f60d57a27f..1137b444ad
>
> =[ 2 Commits ]==
> Directory summary:
>   60.2% collects/macro-debugger/model/
>   39.7% collects/macro-debugger/
>
> ~~
>
> 5f15401 Ryan Culpepper  2012-10-22 17:09
> :
> | macro stepper: fix bug re taking over run button
> |   Closes PR 13019
> :
>   M collects/macro-debugger/tool.rkt | 9 ++---
>
> ~~
>
> 1137b44 Ryan Culpepper  2012-10-22 17:26
> :
> | macro-stepper: show errors in provide expansion
> |   closes PR 13018
> :
>   M collects/macro-debugger/model/reductions.rkt | 17 ++---
>
> =[ Overall Diff ]===
>
> collects/macro-debugger/model/reductions.rkt
> 
> --- OLD/collects/macro-debugger/model/reductions.rkt
> +++ NEW/collects/macro-debugger/model/reductions.rkt
> @@ -222,12 +222,7 @@
>  [#:learn (list #'?var)])]
>
>  [(Wrap p:provide (e1 e2 rs ?1 inners ?2))
> - (let ([wrapped-inners
> -(for/list ([inner (in-list inners)])
> -  (match inner
> -[(Wrap deriv (e1 e2))
> - (make local-expansion e1 e2
> -   #f e1 inner #f e2 #f)]))])
> + (let ([wrapped-inners (map expr->local-action inners)])
> (R [! ?1]
>[#:pattern ?form]
>[#:pass1]
> @@ -668,7 +663,9 @@
>  [#:do (DEBUG (printf "** module begin pass 2\n"))]
>  [ModulePass ?forms pass2]
>  ;; ignore pass3 for now: only provides
> -)]))
> +[#:new-local-context
> + [#:pattern ?form]
> + [LocalActions ?form (map expr->local-action (or pass3
> null))]])]))
>
>  ;; ModulePass : (list-of MBRule) -> RST
>  (define (ModulePass mbrules)
> @@ -796,6 +793,12 @@
>(when #f
>  (apply error sym args)))
>
> +(define (expr->local-action d)
> +  (match d
> +[(Wrap deriv (e1 e2))
> + (make local-expansion e1 e2
> +   #f e1 d #f e2 #f)]))
> +
>  ;; opaque-table
>  ;; Weakly remembers assoc between opaque values and
>  ;; actual syntax, so that actual can be substituted in
>
> collects/macro-debugger/tool.rkt
> 
> --- OLD/collects/macro-debugger/tool.rkt
> +++ NEW/collects/macro-debugger/tool.rkt
> @@ -269,8 +269,12 @@
>  (set! user-custodian (current-custodian)))
>
>(define (uncaught-exception-raised) ;; =user=
> -;; formerly shut down user custodian
> -(void))
> +(set! normal-termination? #t)
> +(parameterize ([current-eventspace drs-eventspace])
> +  (queue-callback
> +   (λ ()
> +  (cleanup)
> +  (custodian-shutdown-all user-custodian)
>(define (show-error-report/tab) ;; =drs=
>  (send the-tab turn-on-error-report)
>  (send (send the-tab get-error-report-text) scroll-to-position
> 0)
> @@ -294,7 +298,6 @@
>(parameterize ([current-eventspace drs-eventspace])
>  (queue-callback
>   (λ ()
> -(send the-tab syncheck:clear-highlighting)
>  (cleanup)
>  (custodian-shutdown-all user-custodian))
>
>
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


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

2012-10-22 Thread Ryan Culpepper

That's the plan.

Ryan


On 10/22/2012 07:30 PM, Sam Tobin-Hochstadt wrote:

Will these be in 5.3.1?  Without this fix, the macro stepper is very broken.

Sam

On Oct 22, 2012 3:05 PM, mailto:ry...@racket-lang.org>> wrote:

ryanc has updated `master' from f60d57a27f to 1137b444ad.
http://git.racket-lang.org/plt/f60d57a27f..1137b444ad

=[ 2 Commits ]==
Directory summary:
   60.2% collects/macro-debugger/model/
   39.7% collects/macro-debugger/

~~

5f15401 Ryan Culpepper mailto:ry...@racket-lang.org>> 2012-10-22 17:09
:
| macro stepper: fix bug re taking over run button
|   Closes PR 13019
:
   M collects/macro-debugger/tool.rkt | 9 ++---

~~

1137b44 Ryan Culpepper mailto:ry...@racket-lang.org>> 2012-10-22 17:26
:
| macro-stepper: show errors in provide expansion
|   closes PR 13018
:
   M collects/macro-debugger/model/reductions.rkt | 17 ++---

=[ Overall Diff ]===

collects/macro-debugger/model/reductions.rkt

--- OLD/collects/macro-debugger/model/reductions.rkt
+++ NEW/collects/macro-debugger/model/reductions.rkt
@@ -222,12 +222,7 @@
  [#:learn (list #'?var)])]

  [(Wrap p:provide (e1 e2 rs ?1 inners ?2))
- (let ([wrapped-inners
-(for/list ([inner (in-list inners)])
-  (match inner
-[(Wrap deriv (e1 e2))
- (make local-expansion e1 e2
-   #f e1 inner #f e2 #f)]))])
+ (let ([wrapped-inners (map expr->local-action inners)])
 (R [! ?1]
[#:pattern ?form]
[#:pass1]
@@ -668,7 +663,9 @@
  [#:do (DEBUG (printf "** module begin pass 2\n"))]
  [ModulePass ?forms pass2]
  ;; ignore pass3 for now: only provides
-)]))
+[#:new-local-context
+ [#:pattern ?form]
+ [LocalActions ?form (map expr->local-action (or pass3
null))]])]))

  ;; ModulePass : (list-of MBRule) -> RST
  (define (ModulePass mbrules)
@@ -796,6 +793,12 @@
(when #f
  (apply error sym args)))

+(define (expr->local-action d)
+  (match d
+[(Wrap deriv (e1 e2))
+ (make local-expansion e1 e2
+   #f e1 d #f e2 #f)]))
+
  ;; opaque-table
  ;; Weakly remembers assoc between opaque values and
  ;; actual syntax, so that actual can be substituted in

collects/macro-debugger/tool.rkt

--- OLD/collects/macro-debugger/tool.rkt
+++ NEW/collects/macro-debugger/tool.rkt
@@ -269,8 +269,12 @@
  (set! user-custodian (current-custodian)))

(define (uncaught-exception-raised) ;; =user=
-;; formerly shut down user custodian
-(void))
+(set! normal-termination? #t)
+(parameterize ([current-eventspace drs-eventspace])
+  (queue-callback
+   (λ ()
+  (cleanup)
+  (custodian-shutdown-all user-custodian)
(define (show-error-report/tab) ;; =drs=
  (send the-tab turn-on-error-report)
  (send (send the-tab get-error-report-text)
scroll-to-position 0)
@@ -294,7 +298,6 @@
(parameterize ([current-eventspace drs-eventspace])
  (queue-callback
   (λ ()
-(send the-tab syncheck:clear-highlighting)
  (cleanup)
  (custodian-shutdown-all user-custodian))



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


[racket-dev] What's the process for adding a project to DrDr

2012-10-22 Thread Danny Yoo
During release testing for 5.3.1, I found that Whalesong broke in a
few ways.  I'd like to detect the problem in a better way than what
I've been doing now.  What's involved in getting into the DrDr
automatic build bot, and how would I get it to track Whalesong as I
continue to develop it?
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] What's the process for adding a project to DrDr

2012-10-22 Thread Jay McCarthy
We haven't done it before yet.

The simplest way is to commit something to the core, but that's not
good in the long run.

One thing that we could do is create a directory like

meta/drdr/external

of scripts that download something from the Internet and run it. We'll
have to think of a good way to make it secure (such as having this
script know the sha1 of the zip it is downloading.) Also, for
parallelization purposes, it will be important for it not to require
the use of "raco setup" to get started.

Does that sound plausible for Whalesong? If so, I can work out a
template for you.

Jay

On Mon, Oct 22, 2012 at 5:51 PM, Danny Yoo  wrote:
> During release testing for 5.3.1, I found that Whalesong broke in a
> few ways.  I'd like to detect the problem in a better way than what
> I've been doing now.  What's involved in getting into the DrDr
> automatic build bot, and how would I get it to track Whalesong as I
> continue to develop it?
> _
>   Racket Developers list:
>   http://lists.racket-lang.org/dev



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

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