Re: [racket-dev] Pre-Release Checklist for v6.0, corrected url
My initial reaction to your message is that this is far too big of a test case to hand over to someone else. Is there some way we can get you access to a machine that demonstrates the problem so you can make something smaller? Robby On Monday, December 30, 2013, Neil Toronto wrote: I don't think there's anything I can look into. I can't duplicate the problem on my system, and Plot doesn't do anything platform-specific, so the bug is almost certainly in `pict', `racket/draw' or Cairo. Matthew? Sorry I wasn't clear on this earlier. (It could be that it's *possible* duplicate it on my system, and that it only shows up on the build machine because the default font is a different size, which gives the plot areas slightly different sizes, which gives the projected triangles slightly different vertices. I could look into that, but it seems unlikely. I use Plot a *lot* and have never seen this before.) If I were debugging it, I'd try to find the simplest plot that's missing a polygon. Here are the bad plots from the docs, rendered the way the docs do it (plot to a pict, then convert to a bitmap), with the number of samples easy to tweak: #lang racket (require pict plot/pict) (plot3d-samples 41) ; default is 41 (parameterize ([plot-z-ticks (currency-ticks)]) (pict-bitmap (plot3d-pict (contour-intervals3d (λ (x y) (- (sqr x) (sqr y))) -1 1 -1 1 #:label z) #:legend-anchor 'center))) (pict-bitmap (plot3d-pict (polar3d (λ (θ ρ) 1) #:color 2 #:line-style 'transparent) #:altitude 25)) I'd also try passing #:out-file out.pdf to `plot3d-pict' to see if the PDF back-end is afflicted. I don't know how worried to be about missing polygons. It could be anything from bad array management in Cairo (which could be serious) to a mostly harmless problem in the implementation of region culling or winding rules. Neil ⊥ On 12/29/2013 09:39 PM, Robby Findler wrote: Neil: have you had time to look into this? If not, then I think we should just leave it for the next release. Please let us know what you're thinking about this one. Robby On Sat, Dec 21, 2013 at 4:13 PM, Neil Toronto neil.toro...@gmail.com mailto:neil.toro...@gmail.com wrote: Some plots in the documentation are missing a polygon. I think it's platform-specific, because I can't reproduce the problem. Examples: First example plot in 1.5 Renderer and Plot Bounds (look for a light green rectangle) file:///usr/racket-5.91.0.900/__doc/plot/intro.html?q=plot#% __28part._.Renderer_and_.Plot_.__Bounds%29 Last example plot in `plot-z-far-ticks' docs (look for a white hole under the z in the legend) http://plt.eecs.northwestern.__edu/snapshots/current/doc/__ plot/ticks_and_transforms.__html?q=plot-z-far-ticks#%__ 28def._%28%28lib._plot%2Fmain.__.rkt%29._plot-z-far-ticks%29%__29 http://plt.eecs.northwestern.edu/snapshots/current/doc/ plot/ticks_and_transforms.html?q=plot-z-far-ticks#% 28def._%28%28lib._plot%2Fmain..rkt%29._plot-z-far-ticks%29%29 Here's a program that renders one of the bad plots like Scribble does (I think): #lang racket (require pict plot/pict) (pict-bitmap (plot3d-pict (polar3d (λ (θ ρ) 1) #:color 2 #:line-style 'transparent) #:altitude 25)) Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/__dev http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0, Second Call
On 12/29/13, 1:57 PM, Ryan Culpepper wrote: * David Van Horn dvanh...@ccs.neu.edu - EoPL Tests Done. _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Pre-Release Checklist for v6.0, Second Call
We really shouldn't ship until this memory leak is fixed (which I just reported): http://bugs.racket-lang.org/query/?cmd=viewpr=14264 It's making writing substantial programs very difficult, especially in Typed Racket, which seems to be affected more. It's possible there's a weird interaction with Ubuntu 13.10, which I upgraded to last week, but I don't know what it could be. Or I may just not have noticed before. (I haven't been coding much recently.) Neil ⊥ #lang racket (require (only-in typed/racket/base index?)) (define (emit v) (printf ~a~n v)) ;(: multi-dag-add-edge (All (T R) ((Multi-Dag T R) T R T - (Multi-Dag T R (define (multi-dag-add-edge h src r dst) (define edges (hash-ref h src (λ () (make-immutable-hash (define dsts (hash-ref edges r (λ () (set (hash-set h src (hash-set edges r (set-add dsts dst ;; === ;(: set-union* (All (A) ((Setof (Setof A)) - (Setof A (define (set-union* s) (define ss (set-list s)) (cond [(empty? ss) (set)] [else (apply set-union (first ss) (rest ss))])) ;(: set-image (All (A B) ((A - B) (Setof A) - (Setof B (define (set-image f s) (list-set (set-map s f))) ;(: set-bind (All (A B) ((Setof A) (A - (Setof B)) - (Setof B (define (set-bind A f) (set-union* (set-image f A))) ;; === (struct Relation (forward backward) #:transparent #:property prop:custom-print-quotable 'never #:property prop:custom-write (λ (r out mode) (write-string (symbol-string (Relation-forward r)) out))) (define-syntax-rule (define-relation name1 name2) (begin (define name1 (Relation 'name1 'name2)) (define name2 (Relation 'name2 'name1 (define-relation holding held-by) (define-relation inside outside) (define-relation north south) (define-relation east west) (define-relation up down) ;(: relation-reverse (Relation - Relation)) (define (relation-reverse r) (Relation (Relation-backward r) (Relation-forward r))) ;; === (struct Edge (fst rel snd) #:transparent) (struct Action-Type () #:transparent) (struct Look Action-Type () #:transparent) (struct Describe Action-Type (parent relation entity) #:transparent) (struct Action-Dest (relation entity) #:transparent) (struct Action-Path (src dsts) #:transparent) (struct Init-Action (type src) #:transparent) (struct Received-Action (type path) #:transparent) ;(define-type Action (U Init-Action Received-Action)) ;(: action-path-entities (Action-Path - (Listof Pointer))) (define (action-path-entities p) (match-define (Action-Path src dsts) p) (cons src (reverse (map Action-Dest-entity dsts ;(: action-path-relations (Action-Path - (Listof Relation))) (define (action-path-relations p) (reverse (map Action-Dest-relation (Action-Path-dsts p ;(: action-entities (Action - (Listof Pointer))) (define (action-entities act) (match act [(Init-Action _ src) (list src)] [(Received-Action _ path) (action-path-entities path)])) ;(: action-last-entity (Action - Pointer)) (define (action-last-entity act) (match act [(Init-Action type src) src] [(Received-Action type (Action-Path src dsts)) (Action-Dest-entity (first dsts))])) ;(: action-push-dest (Action Relation Pointer - Received-Action)) (define (action-push-dest act r dst) (match act [(Init-Action type src) (Received-Action type (Action-Path src (list (Action-Dest r dst] [(Received-Action type (Action-Path src dsts)) (Received-Action type (Action-Path src (cons (Action-Dest r dst) dsts)))])) ;(: action-pop-dest (Received-Action - (Values Action Relation Pointer))) (define (action-pop-dest act) (match-define (Received-Action type (Action-Path src dsts)) act) (match-let* ([(Action-Dest rel dst) (first dsts)] [dsts (rest dsts)]) (cond [(empty? dsts) (values (Init-Action type src) rel dst)] [else (values (Received-Action type (Action-Path src dsts)) rel dst)]))) ;(: action-path-reverse (Action-Path - Action-Path)) (define (action-path-reverse p) (match-define (Action-Path src dsts) p) (define es (reverse (action-path-entities p))) (define rs (reverse (action-path-relations p))) (Action-Path (first es) (reverse (for/list ([e (in-list (rest es))] [r (in-list rs)]) (Action-Dest (relation-reverse r) e) (struct Entity (name alts start-action receive-action properties) #:transparent) ;(: empty-property-hash (HashTable Symbol Any)) (define empty-property-hash (make-immutable-hasheq)) ;; === ;; The world ;(define-type Pointer Index) ;(: empty-entity-set (Setof Pointer))
Re: [racket-dev] Pre-Release Checklist for v6.0, Second Call
I assume you checked and it doesn't happen in 5.3.6? Robby On Mon, Dec 30, 2013 at 9:53 PM, Neil Toronto neil.toro...@gmail.comwrote: We really shouldn't ship until this memory leak is fixed (which I just reported): http://bugs.racket-lang.org/query/?cmd=viewpr=14264 It's making writing substantial programs very difficult, especially in Typed Racket, which seems to be affected more. It's possible there's a weird interaction with Ubuntu 13.10, which I upgraded to last week, but I don't know what it could be. Or I may just not have noticed before. (I haven't been coding much recently.) Neil ⊥ _ 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 v6.0, Second Call
No, but that was a good idea, so I checked it. It doesn't happen in 5.3.6. Neil ⊥ On 12/30/2013 09:14 PM, Robby Findler wrote: I assume you checked and it doesn't happen in 5.3.6? Robby On Mon, Dec 30, 2013 at 9:53 PM, Neil Toronto neil.toro...@gmail.com mailto:neil.toro...@gmail.com wrote: We really shouldn't ship until this memory leak is fixed (which I just reported): http://bugs.racket-lang.org/__query/?cmd=viewpr=14264 http://bugs.racket-lang.org/query/?cmd=viewpr=14264 It's making writing substantial programs very difficult, especially in Typed Racket, which seems to be affected more. It's possible there's a weird interaction with Ubuntu 13.10, which I upgraded to last week, but I don't know what it could be. Or I may just not have noticed before. (I haven't been coding much recently.) Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev