Re: [racket-dev] weird (memory?) bug using (dis)similar require mechanisms

2011-09-12 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Matthew,

On 09/10/11 22:49, Matthew Flatt wrote:
 At Fri, 09 Sep 2011 12:29:13 +0200, Marijn wrote:
 this racket bug was discovered when I was trying out geiser
 which starts programs in a way that exposes this bug. The program
 starts correctly but none of the buttons work (or only reserve
 screen space) and it is hard to terminate the program.
 
 I think this is now fixed. For me, the GUI worked until I clicked
 a button that needed to grow the frame, at which point it got stuck
 due to competing callbacks with different opinions on the frame
 height. (One of those callbacks was wrong.)

Seems to work for me too now. The only thing I'm left wondering is why
starting the program in ways that I would mentally classify as exactly
the same turned out to differ in such a way. Would appreciate if you
could shed some light on that.

Thanks,

Marijn
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5ttKsACgkQp/VmCx0OL2xo+wCgxTQiEkn7+o4q+KM8//3Wnhlq
2woAoKg/mwc3nFj8doocwwp7IMW24i0c
=qo0A
-END PGP SIGNATURE-
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] weird (memory?) bug using (dis)similar require mechanisms

2011-09-10 Thread Matthew Flatt
At Fri, 09 Sep 2011 12:29:13 +0200, Marijn wrote:
 this racket bug was discovered when I was trying out geiser which
 starts programs in a way that exposes this bug. The program starts
 correctly but none of the buttons work (or only reserve screen space)
 and it is hard to terminate the program.

I think this is now fixed. For me, the GUI worked until I clicked a
button that needed to grow the frame, at which point it got stuck due
to competing callbacks with different opinions on the frame height.
(One of those callbacks was wrong.)

Although it's not directly related, I also changed the way `on-size'
and `on-move' callbacks are queued to put them at the right priority. I
think that change will solve the problem that Neil has long reported,
where DrRacket would take a long time to catch up if you dragged a
resize border around a lot.

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


[racket-dev] weird (memory?) bug using (dis)similar require mechanisms

2011-09-09 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi list,

this racket bug was discovered when I was trying out geiser which
starts programs in a way that exposes this bug. The program starts
correctly but none of the buttons work (or only reserve screen space)
and it is hard to terminate the program. I got the impression that a
lot of memory was being allocated in a loop.

The bug manifests itself when starting racket from the command line
and copying into the resulting repl (require ./test1.rkt). But doing
either of:
$ racket -e '(require ./test1.rkt)'
$ racket  '(require ./test1.rkt)'
works fine.

Test program to exhibit the bug:

#lang racket/gui

(define f (new frame% [label List Editor]))

(define items (new vertical-pane% (parent f)))

(define (create-item val parent)
  (define v (new vertical-panel% (parent parent)))
  (define ins (new button% (parent v) (label insert)
   (callback (λ (b e) (create-item 0 items))) ))
  (define h (new horizontal-pane% (parent v)))
  (define t (new text-field% (parent h) (label ) (init-value val)))
  (define del (new button% (parent h) (label del)
   (callback (λ (b e) (send parent delete-child v))) ))
  v)

(for-each (λ (v) (create-item v items)) '(1 2 3))

(new button% (parent f) (label append) (callback (λ (b e)
(create-item 0 items

(send f show #t)

Marijn
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5p6nkACgkQp/VmCx0OL2zqKACeK7P3FAQFTZ1aEd+O+X+/wWWA
QtAAoKgi7zNggcdW8zLC0+YXpmX6l4Bh
=yfHI
-END PGP SIGNATURE-
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev