[plt-scheme] (Newbie) MrEd modues using Emacs Quack
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
> > >
> >
>
>