[plt-scheme] (Newbie) MrEd modues using Emacs Quack

From: Robby Findler (robby at cs.uchicago.edu)
Date: Wed May 7 12:15:23 EDT 2008

Well, that's just a piece of functionality that is in DrScheme but
isn't implemented in Quack, I guess.

You can approximate drscheme by using require, but that won't expose
the bindings in the module to the REPL, it will only evaluate the main
module.

I believe others have contributed libraries that you can use to do
this, but I can't recall what they are. I think they've been discussed
on this mailing list, however.

Robby

On Wed, May 7, 2008 at 9:42 AM, Andrei Stebakov <lispercat at gmail.com> wrote:
> Thank you, Benjamin, Robby.
> Robby, I am using (current-eventspace (make-eventspace)) and my question was
> not about blocking the thread (yes, without running (current-eventspace
> (make-eventspace)) it's not even possible to develop anything
> interactively).
>  My question was why evaluating the module top form (where the module is
> defined) doesn't execute the (main) function. Without module definition, I
> can evaluate all the forms and it works.
> As per what Benjamin responded, I'll wait for the next v4 release of MrEd.
> And yes, I updated to the latest Quack.
>
> Andrew
>
>
>
> On Wed, May 7, 2008 at 6:55 AM, Robby Findler <robby at cs.uchicago.edu> wrote:
> > 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
> > >
> >
>
>


Posted on the users mailing list.