[plt-dev] update on reimplementing MrEd

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Jan 28 08:57:06 EST 2010

At Fri, 30 Oct 2009 15:17:31 -0600, Matthew Flatt wrote:
> I can imagine releasing Phase 2 sometime early next year. That is, we'd
> throw out all the C++ code for drawing that's in MrEd, and we'd instead
> use Scheme+FFI code that draws via Cairo+Pango. (A canvas window would
> still be implemented by the current GUI binding, at first, but the
> canvas's DC would point back to the Scheme world.)

When I experimented with that conversion, it looked like too much work.
The old GUI toolkit relies on the old drawing toolkit in many small
ways. Instead of spending time on an intermediate combination, I've
moved on to phase 3.

So far, I have MrEd's graphical REPL window mostly working. That
includes `frame%', `panel%', and `editor-canvas%', at least as much as
they are used for the REPL. The code is in


I've been working with Cocoa and Gtk. If Gtk works well enough for
Windows, those two variants will be enough.

Filling out the `button%', `choice%', etc. widgets should be easy. But
there are issues with callbacks like `pre-on-event' and `on-demand' and
the way that they interact with event handling and multiple
eventspaces. I'm not yet sure how to fix those problems, but I'm now
fairly certain that it involves using multiple OS-level threads (so
maybe the solution builds on Kevin's work for places).

Overall, there's progress, but I'm not sure when it will be done. My
best guess is May.

Posted on the dev mailing list.