[racket-users] Racket 7.3 Plot Performance Regression

2019-05-17 Thread evdubs
Hi All,

I have noticed sluggish performance with my plot overlays in Racket 7.3 
that I had not noticed in versions 7.2 and prior. Here's the code I am 
using to test (taken from here 

):

(require plot)

(define ((make-current-value-renderer fn) snip event x y)
  (define overlays
(and x y (eq? (send event get-event-type) 'motion)
 (list (vrule x #:style 'long-dash)
   (point-label (vector x (fn x)) #:anchor 'auto
  (send snip set-overlay-renderers overlays))

(define snip (plot-snip (function sin) #:x-min 0 #:x-max (* 2 pi) #:y-min 
-1.5 #:y-max 1.5))
(send snip set-mouse-event-callback (make-current-value-renderer sin))
snip

With 7.3, it feels like the frame rate hovers around 5-10 fps and the mouse 
pointer input is buffered so you can move around the plot and it will 
slowly try to catch up to where your pointer was. 7.2 and prior all felt 
snappy and seemed to be at least 20-30 fps. 

Here are my installation details:

Ubuntu 19.04
Intel Core i5-7400
16GB RAM with only ~10GB in use (no swapping) and <1GB in use by DrRacket
Racket 7.3 installed from the PPA 


I asked Alex H. if he had noticed this regression and he said he had not. 
He uses Windows. I have not tried to see if the PPA version is any 
different from the official installer to see if there's a difference. Maybe 
that's the next step?

Evan

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/b68b9731-3163-4d0b-9edc-32c3774b6243%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Help: How to check a typed/racket type in an untyped Racket contract?

2019-05-17 Thread Ben Greenman
What happens if you provide the data structure from Typed Racket and
require it in an untyped module?

On 5/17/19, bruno cuconato  wrote:
> hi,
>
> I'm trying to use a data structure defined in a typed racket module in my
> untyped code.
>
> I'm want it to be accessible from a generic interface, so I'm using
> `define-generics`'s #:fast-defaults for
> dispatching to the proper methods (this might not be the best practice
> though, and if so I welcome corrections).
> to do this I need a predicate for the type of data structure, hence my
> replying to this thread.
>
> would Matthias' suggestion be the best long-term solution here?
>
>> It suggests we should provide these generated contracts (or grant access
> them) via a modicum of reflection.
>
> I couldn't get Sam's solution to work, most likely because I haven't read
> much about typed racket yet. I tried
> both
>
> `(define-predicate RBTree? (All (A) (RedBlackTree A))) `
>
> and
>
> `(define-predicate RBTree? (RedBlackTree Any)) `
>
> but none of them seem to work. even if I could get it to work,
> I still like Matthias' suggestion because I wouldn't need to create
> another module.
>
> cheers,
>
> -- bruno cuconato
>
> On Tuesday, August 8, 2017 at 8:17:11 PM UTC-3, Sam Tobin-Hochstadt wrote:
>>
>> One other suggestion: you can use `define-predicate` in a Typed Racket
>> module to create a predicate for any type that can be checked
>> immediately. So
>>
>> ```
>> (define-predicate dist? (Discrete-Dist Your-Type-Here))
>> ```
>>
>> should define the predicate you want.
>>
>> Sam
>>
>> On Fri, Jul 28, 2017 at 10:23 AM, James Geddes > > wrote:
>> > This is likely a typed-untyped interface newbie question.
>> >
>> > Briefly, how can I write a contract that asserts that some value has a
>> type that is defined in an imported typed/racket library?
>> >
>> > In more detail, I am using the math/distributions library, which is
>> written in typed/racket. My module is written in untyped Racket, and I'm
>> figuring out how to use contacts:
>> >
>> > #lang racket
>> > (require math/distributions) ;; this is a typed/racket library
>> >
>> > (define my-dist (discrete-dist '(thing-one thing-two)))
>> >
>> > (provide (contract-out [my-dist ???]))
>> >
>> >
>> > The question is: what should ??? be?. There is a distribution? predicate
>> >
>> but I'd quite like to be more specific: namely, that my-dist is a discrete
>>
>> distribution. In the source of math/distributions, the following type is
>> defined:
>> >
>> > (define-type (Discrete-Dist A) (discrete-dist-struct A A))
>> >
>> > but I don't know how this might translate into my untyped module.
>> >
>> >
>> > Any help much appreciated!
>> >
>> > James
>> >
>> >
>> >
>> >
>> > ---
>> > James Geddes
>> >
>> > --
>> > 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...@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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/2f278821-a585-42c4-b7a4-1ade07a228f8%40googlegroups.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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAFUu9R4ok4av-xu6pDx3Pbt5Gi209580nsbLaOPCML-opiTmQw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Help: How to check a typed/racket type in an untyped Racket contract?

2019-05-17 Thread bruno cuconato
hi,

I'm trying to use a data structure defined in a typed racket module in my 
untyped code.

I'm want it to be accessible from a generic interface, so I'm using 
`define-generics`'s #:fast-defaults for
dispatching to the proper methods (this might not be the best practice 
though, and if so I welcome corrections). 
to do this I need a predicate for the type of data structure, hence my 
replying to this thread.

would Matthias' suggestion be the best long-term solution here?

> It suggests we should provide these generated contracts (or grant access 
them) via a modicum of reflection. 

I couldn't get Sam's solution to work, most likely because I haven't read 
much about typed racket yet. I tried
both

`(define-predicate RBTree? (All (A) (RedBlackTree A))) `

and

`(define-predicate RBTree? (RedBlackTree Any)) `

but none of them seem to work. even if I could get it to work, 
I still like Matthias' suggestion because I wouldn't need to create
another module.

cheers,

-- bruno cuconato

On Tuesday, August 8, 2017 at 8:17:11 PM UTC-3, Sam Tobin-Hochstadt wrote:
>
> One other suggestion: you can use `define-predicate` in a Typed Racket 
> module to create a predicate for any type that can be checked 
> immediately. So 
>
> ``` 
> (define-predicate dist? (Discrete-Dist Your-Type-Here)) 
> ``` 
>
> should define the predicate you want. 
>
> Sam 
>
> On Fri, Jul 28, 2017 at 10:23 AM, James Geddes  > wrote: 
> > This is likely a typed-untyped interface newbie question. 
> > 
> > Briefly, how can I write a contract that asserts that some value has a 
> type that is defined in an imported typed/racket library? 
> > 
> > In more detail, I am using the math/distributions library, which is 
> written in typed/racket. My module is written in untyped Racket, and I'm 
> figuring out how to use contacts: 
> > 
> > #lang racket 
> > (require math/distributions) ;; this is a typed/racket library 
> > 
> > (define my-dist (discrete-dist '(thing-one thing-two))) 
> > 
> > (provide (contract-out [my-dist ???])) 
> > 
> > 
> > The question is: what should ??? be?. There is a distribution? predicate 
> but I'd quite like to be more specific: namely, that my-dist is a discrete 
> distribution. In the source of math/distributions, the following type is 
> defined: 
> > 
> > (define-type (Discrete-Dist A) (discrete-dist-struct A A)) 
> > 
> > but I don't know how this might translate into my untyped module. 
> > 
> > 
> > Any help much appreciated! 
> > 
> > James 
> > 
> > 
> > 
> > 
> > --- 
> > James Geddes 
> > 
> > -- 
> > 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...@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/2f278821-a585-42c4-b7a4-1ade07a228f8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.