[plt-scheme] (Newbie) MrEd modues using Emacs Quack
There's been a little more information about this topic in the more
distant past. Here's a shortcut:
evaluate (current-eventspace (make-eventspace))
in the REPL and then the GUI callbacks and the REPL evaluations will
happen on different threads and avoid blocking each other.
Of course, this is probably not what you want, since it can introduce
threading bugs into your program. But it may be enough to tide you
over to v4.
The proper fix (which is what v4 will do) is to have the
read-eval-print-loop create a separate thread that blocks on reads,
keeping the eventspace main thread free to handle events during that
time. Then, when it gets an expression, it should send the expression
off to the eventspace main thread for evaluation.
Robby
On Wed, May 7, 2008 at 5:41 AM, Benjamin L. Russell
<dekudekuplex at yahoo.com> wrote:
> Hi Andrei,
>
> Apparently, according to the post by Robby Findler in the thread "[plt-scheme] Interactive gui development in Emacs with MrEd" (http://list.cs.brown.edu/pipermail/plt-scheme/2008-May/024528.html), MrEd needs to be updated to v4 before the implementation of -z will "do the right thing"; i.e., put up a GUI window with the label "Hello!" upon evaluation of your module "test mzscheme."
>
> Also, per the post by Neil Van Dyke (http://list.cs.brown.edu/pipermail/plt-scheme/2008-May/024530.html) in the same thread, you also need to update quack.el (at http://www.neilvandyke.org/quack/) from version 0.30 to version 0.31 (it was last updated on 2008-05-03).
>
> After updating quack.el to version 0.31, then once MrEd is updated to v4, you should be able to evaluate your module "test mzscheme" in Emacs Quack mode with "mred.exe -z" running, and it should put up a GUI window with the label "Hello!"
>
> However, according to the post by Matthias Felleisen (http://list.cs.brown.edu/pipermail/plt-scheme/2008-May/024547.html) in the thread "[plt-scheme] release of 4.0," "Due to (un)foreseen problems that crept into the release process, [the developers] are postponing the release of version 4.0 until early/mid June."
>
> I.e., just stay tuned until then.
>
> Benjamin L. Russell
>
> --- On Wed, 5/7/08, Andrei Stebakov <lispercat at gmail.com> wrote:
>
> > From: Andrei Stebakov <lispercat at gmail.com>
> > Subject: [plt-scheme] (Newbie) MrEd modues using Emacs Quack
> > To: plt-scheme at list.cs.brown.edu
> > Date: Wednesday, May 7, 2008, 3:20 AM
>
>
> > If I load this code in DrScheme and select Language
> > (module...) and hit the
> > run button it works (shows the window with the message):
> > (module test mzscheme
> > (require (lib "class.ss") (lib
> > "mred.ss" "mred"))
> > (define
> > (main)
> > (letrec ((frame-155
> > (new
> > frame%
> > (parent #f)
> > (alignment '(center top))
> > (stretchable-height #t)
> > (min-width 0)
> > (style '())
> > (label "test")
> > (width 146)))
> > (message-156
> > (new
> > message%
> > (parent frame-155)
> > (label "Hello!")
> > (style '()))))
> > (send frame-155 show #t)))
> > (main))
> >
> > Now, if I load the same code in Emacs quack mode with
> > "mred.exe -z" running,
> > there is now way I can make it show the window using the
> > code as is (I tried
> > to evaluate all region, or the last s-exp, nothing helps).
> > If I remove the "(module test mzscheme " wrapping
> > and start evaluate top
> > level forms one after another, then by the time I evaluate
> > (send frame-155
> > show #t) it will run the window without any problem.
> > My question is how can I develop a module like above in the
> > quack mode
> > incrementally (adding/removing UI elements)?
> > Basically, what the best practice of developing MrEd UI in
> > Quack
> > incrementally?
> >
> > Thank you,
> > Andrew_________________________________________________
> > For list-related administrative tasks:
> > http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>