Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plots have become unusable on the latest version #185

Closed
Metaxal opened this issue Jan 19, 2018 · 9 comments
Closed

Plots have become unusable on the latest version #185

Metaxal opened this issue Jan 19, 2018 · 9 comments

Comments

@Metaxal
Copy link
Contributor

Metaxal commented Jan 19, 2018

In the interaction window:
(require plot)
Then make a few plots like
(plot (function exp 1 2))
Try to click, zoom, etc.

Drracket becomes sluggish and the gc is working full time for several seconds after each action.

I also managed to get the following error at some point but couldn't reproduce it:

get-extent: broke its own contract
  promised: a procedure that accepts 4 non-keyword arguments
  produced: #<procedure:get-extent method in clickable-string-snip%>
  get-extent method in clickable-string-snip% accepts: 10 arguments
  in: the get-extent method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      the previous method in
      a part of the or/c of
      the range of
      (->*
       ((recursive-contract
         (or/c
          (listof Treeof187)
          nonrenderer?
          renderer2d?)
         #:flat))
       (#:bgcolor
        (or/c
         (or/c Integer String Symbol)
         (cons/c
          Real
          (cons/c Real (cons/c Real '())))
         (recursive-contract
          g2084
          #:impersonator))
        #:fgcolor
        (or/c
         (or/c Integer String Symbol)
         (cons/c
          Real
          (cons/c Real (cons/c Real '())))
         (recursive-contract
          g2084
          #:impersonator))
        #:height
        Positive-Integer
        #:legend-anchor
        (or/c
         'top-left
         'top
         'top-right
         'left
         'center
         'right
         'bottom-left
         'bottom
         'bottom-right)
        #:lncolor
        (or/c
         (or/c Integer String Symbol)
         (cons/c
          Real
          (cons/c Real (cons/c Real '())))
         (recursive-contract
          g2084
          #:impersonator))
        #:out-file
        (or/c Path Output-Port String #f)
        #:out-kind
        (or/c
         'auto
         'png
         'jpeg
         'xbm
         'xpm
         'bmp
         'ps
         'pdf
         'svg)
        #:title
        (or/c String #f)
        #:width
        Positive-Integer
        #:x-label
        (or/c String #f)
        #:x-max
        (or/c Real #f)
        #:x-min
        (or/c Real #f)
        #:y-label
        (or/c String #f)
        #:y-max
        (or/c Real #f)
        #:y-min
        (or/c Real #f))
       (or/c
        #<void>
        (recursive-contract g580 #:impersonator)))
  contract from: 
      <pkgs>/plot-gui-lib/plot/private/gui/plot2d.rkt
  contract on: plot
  blaming: <pkgs>/plot-gui-lib/plot/private/gui/plot2d.rkt
   (assuming the contract is correct)
  at: <pkgs>/plot-gui-lib/plot/private/gui/plot2d.rkt:18.9
  context...:
   /usr/share/racket-6.12.0.1/collects/racket/contract/private/blame.rkt:163:0: raise-blame-error16
   /usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1685:6: for-loop
   /usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1593:0: make-wrapper-class
   /usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1265:4
   /usr/share/racket-6.12.0.1/collects/racket/contract/private/arrow-higher-order.rkt:146:21
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/text.rkt:3768:4: loop
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1077:26: loop
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1063:4: find-up-sexp method in ...k/private/racket.rkt:434:2
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:562:4: core1285
   ...t/private/kw.rkt:764:9
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:812:4: insert-return method in ...k/private/racket.rkt:434:2
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:736:2: core502
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
   [repeats 1 more time]
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:496:4: for-loop
   /usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
   ...

@Metaxal
Copy link
Contributor Author

Metaxal commented Jan 19, 2018

DrRacket's synthesized information:

Version:
6.12.0.1--2018-01-18(8eb9285116/a)

Environment:
unix "Linux lorseau.lon.corp.google.com 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux" (x86_64-linux/3m) (get-display-depth) = 32

Human language:
english

Memory use:
608404544

Recent internal errors:
Saved 3 internal errors:

get-extent: broke its own contract
promised: a procedure that accepts 4 non-keyword arguments
produced: #<procedure:get-extent method in clickable-string-snip%>
get-extent method in clickable-string-snip% accepts: 10 arguments
in: the get-extent method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
(->*
((recursive-contract
(or/c
(listof Treeof187)
nonrenderer?
renderer2d?)
#:flat))
(#:bgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:fgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:height
Positive-Integer
#:legend-anchor
(or/c
'top-left
'top
'top-right
'left
'center
'right
'bottom-left
'bottom
'bottom-right)
#:lncolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:out-file
(or/c Path Output-Port String #f)
#:out-kind
(or/c
'auto
'png
'jpeg
'xbm
'xpm
'bmp
'ps
'pdf
'svg)
#:title
(or/c String #f)
#:width
Positive-Integer
#:x-label
(or/c String #f)
#:x-max
(or/c Real #f)
#:x-min
(or/c Real #f)
#:y-label
(or/c String #f)
#:y-max
(or/c Real #f)
#:y-min
(or/c Real #f))
(or/c
#
(recursive-contract g580 #:impersonator)))
contract from:
/plot-gui-lib/plot/private/gui/plot2d.rkt
contract on: plot
blaming: /plot-gui-lib/plot/private/gui/plot2d.rkt
(assuming the contract is correct)
at: /plot-gui-lib/plot/private/gui/plot2d.rkt:18.9
context...:
/usr/share/racket-6.12.0.1/collects/racket/contract/private/blame.rkt:163:0: raise-blame-error16
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1685:6: for-loop
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1593:0: make-wrapper-class
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1265:4
/usr/share/racket-6.12.0.1/collects/racket/contract/private/arrow-higher-order.rkt:146:21
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/text.rkt:3768:4: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1077:26: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1063:4: find-up-sexp method in ...k/private/racket.rkt:434:2
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:562:4: core1285
...t/private/kw.rkt:764:9
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:812:4: insert-return method in ...k/private/racket.rkt:434:2
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:736:2: core502
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
[repeats 1 more time]
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:496:4: for-loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
...

get-extent: broke its own contract
promised: a procedure that accepts 4 non-keyword arguments
produced: #<procedure:get-extent method in clickable-string-snip%>
get-extent method in clickable-string-snip% accepts: 10 arguments
in: the get-extent method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
(->*
((recursive-contract
(or/c
(listof Treeof187)
nonrenderer?
renderer2d?)
#:flat))
(#:bgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:fgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:height
Positive-Integer
#:legend-anchor
(or/c
'top-left
'top
'top-right
'left
'center
'right
'bottom-left
'bottom
'bottom-right)
#:lncolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:out-file
(or/c Path Output-Port String #f)
#:out-kind
(or/c
'auto
'png
'jpeg
'xbm
'xpm
'bmp
'ps
'pdf
'svg)
#:title
(or/c String #f)
#:width
Positive-Integer
#:x-label
(or/c String #f)
#:x-max
(or/c Real #f)
#:x-min
(or/c Real #f)
#:y-label
(or/c String #f)
#:y-max
(or/c Real #f)
#:y-min
(or/c Real #f))
(or/c
#
(recursive-contract g580 #:impersonator)))
contract from:
/plot-gui-lib/plot/private/gui/plot2d.rkt
contract on: plot
blaming: /plot-gui-lib/plot/private/gui/plot2d.rkt
(assuming the contract is correct)
at: /plot-gui-lib/plot/private/gui/plot2d.rkt:18.9
context...:
/usr/share/racket-6.12.0.1/collects/racket/contract/private/blame.rkt:163:0: raise-blame-error16
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1685:6: for-loop
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1593:0: make-wrapper-class
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1265:4
/usr/share/racket-6.12.0.1/collects/racket/contract/private/arrow-higher-order.rkt:146:21
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/text.rkt:3768:4: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1077:26: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1063:4: find-up-sexp method in ...k/private/racket.rkt:434:2
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:562:4: core1285
...t/private/kw.rkt:764:9
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:784:13: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:783:11
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:736:2: core502
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
[repeats 1 more time]
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:496:4: for-loop
...

get-extent: broke its own contract
promised: a procedure that accepts 4 non-keyword arguments
produced: #<procedure:get-extent method in clickable-string-snip%>
get-extent method in clickable-string-snip% accepts: 10 arguments
in: the get-extent method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
the previous method in
a part of the or/c of
the range of
(->*
((recursive-contract
(or/c
(listof Treeof187)
nonrenderer?
renderer2d?)
#:flat))
(#:bgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:fgcolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:height
Positive-Integer
#:legend-anchor
(or/c
'top-left
'top
'top-right
'left
'center
'right
'bottom-left
'bottom
'bottom-right)
#:lncolor
(or/c
(or/c Integer String Symbol)
(cons/c
Real
(cons/c Real (cons/c Real '())))
(recursive-contract
g2084
#:impersonator))
#:out-file
(or/c Path Output-Port String #f)
#:out-kind
(or/c
'auto
'png
'jpeg
'xbm
'xpm
'bmp
'ps
'pdf
'svg)
#:title
(or/c String #f)
#:width
Positive-Integer
#:x-label
(or/c String #f)
#:x-max
(or/c Real #f)
#:x-min
(or/c Real #f)
#:y-label
(or/c String #f)
#:y-max
(or/c Real #f)
#:y-min
(or/c Real #f))
(or/c
#
(recursive-contract g580 #:impersonator)))
contract from:
/plot-gui-lib/plot/private/gui/plot2d.rkt
contract on: plot
blaming: /plot-gui-lib/plot/private/gui/plot2d.rkt
(assuming the contract is correct)
at: /plot-gui-lib/plot/private/gui/plot2d.rkt:18.9
context...:
/usr/share/racket-6.12.0.1/collects/racket/contract/private/blame.rkt:163:0: raise-blame-error16
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1685:6: for-loop
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1593:0: make-wrapper-class
/usr/share/racket-6.12.0.1/collects/racket/private/class-c-old.rkt:1265:4
/usr/share/racket-6.12.0.1/collects/racket/contract/private/arrow-higher-order.rkt:146:21
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/text.rkt:3768:4: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1077:26: loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:1063:4: find-up-sexp method in ...k/private/racket.rkt:434:2
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:562:4: core1285
...t/private/kw.rkt:764:9
/usr/share/racket-6.12.0.1/pkgs/gui-lib/framework/private/racket.rkt:812:4: insert-return method in ...k/private/racket.rkt:434:2
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:736:2: core502
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
[repeats 1 more time]
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:496:4: for-loop
/usr/share/racket-6.12.0.1/pkgs/gui-lib/mred/private/wxme/keymap.rkt:508:2: chain-handle-key-event method in keymap%
...

@jbclements
Copy link
Contributor

Yay! I'm glad I'm not the only one that noticed this. I reported this in

racket/gui#86

... and I believe it's now resolved for the release candidate. Though, to be honest, I haven't yet checked it.

@Metaxal
Copy link
Contributor Author

Metaxal commented Jan 19, 2018

Unfortunately, I downloaded a nightly build this morning and I think this version post-dates the fix for 3 day ago.

My version:
6.12.0.1--2018-01-18(8eb9285116/a) [3m].

@pnwamk
Copy link
Member

pnwamk commented Jan 19, 2018

The fix that was recently merged looks like it may only touch functions used by plot3d and not plot2d.

Just a guess.

@alex-hhh
Copy link

alex-hhh commented Feb 4, 2018

I have just noticed this issue, and wanted to say that I had performance issues with typed plot snips since 6.3 or 6.4. My use case is that I use the plot-snip function to obtain the snip and add it to an editor-canvas% in un-typed Racket. Performance was terrible and the application was unusable. My workaround for this issue was to write a wrapper as shown below:

https://github.com/alex-hhh/ActivityLog2/blob/master/rkt/plot-hack.rkt

Not sure if this is the same or a different problem, but for me, this workaround fixed the performance problem and have been using it ever since.

@stamourv
Copy link
Contributor

stamourv commented Feb 4, 2018

@alex-hhh: Is your workaround still necessary in 6.12?

@Metaxal: AIUI, this issue has been resolved in 6.12. Can you confirm that this is indeed the case?

@Metaxal
Copy link
Contributor Author

Metaxal commented Feb 4, 2018

That looks good in 6.12 (snapshot) indeed, thanks everyone for solving this!

@Metaxal Metaxal closed this as completed Feb 4, 2018
@alex-hhh
Copy link

alex-hhh commented Feb 5, 2018

Hi @stamourv , it seems that my code works fine without the workaround using Racket 6.12

@stamourv
Copy link
Contributor

stamourv commented Feb 5, 2018

Great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants