[plt-scheme] Announce: mzgtk2 release 2 version 2.6.10.002

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sat Jan 6 14:37:29 EST 2007

On Jan 6, 2007, at 2:24 PM, Corey Sweeney wrote:

> One quick follow up.  to see what i'm talking about, you can see a  
> mrdead screenshot at:
>
> http://students.depaul.edu/~csweeney/mrdead-screenshot.png
>
> Corey

Corey,

just to make sure we understand each other, a p.s. from my side.

Everyone here likes the idea that people are creating extensions of  
PLT Scheme, especially bindings to GtK and other "standard" tool  
kits. I love the MrDead screenshots, though I wish you had chosen a  
different name. (There is a reason why we went away from the deadhead  
logo in 1995.) And I sincerely hope that you guys continue you this  
work.

In general, we will need to find an even better way to integrate your  
efforts into the overall project, that is, we need to combine  
sourceforge with planet so that contributors have an easy time  
getting things going and consumers have an easy time getting them  
onto their box.

Thanks! -- Matthias








>
> On 1/6/07, Corey Sweeney <corey.sweeney at gmail.com> wrote: Since  
> hans seems busy, I'll write up a answer for this.  Everyone feel  
> free to throw in corrections wherever I make a mistake.
>
>
> mzgtk2 is based on gtk (obviously).  It is basically just access to  
> the gtk2 procedures.  (plus you can use hans's objects which wrap  
> the procedures).  GTK2 is very pretty, is themable, and has all the  
> widgets you will probalby ever want.  GTK is the closest thing to a  
> standard GUI for scheme, as many other schemes implement GTK...  
> however each implementation probably uses a differnt syntax.  not  
> sure.  gtk is available on linux/unix/windows & mac (not sure how  
> the mac version works, but I know that mac has X11 support so has  
> to be able to run it)
>
> Mred is based on wx-windows.  Actually, it's based on a old version  
> of wx-windows.  It's slower then GTK2, and for todays standards,  
> it's ugly.  It's not themeable, and it lacks, many, many, widgets.   
> *however* there is a reason to use it.  From what I've read, Mred  
> is continuation safe.  mzgtk2 is not continuation safe.  This means  
> that trying to use continuations that interact with the gtk2 calls,  
> can result in badness.  I'm not certain to the nature of the  
> badness, as I havn't tried it, but i can imagine it being bad, as  
> mzgtk2 is not in scheme during the gtk2 calls.  I'm not certain on  
> this, but I've speculated that making Mred continuation safe might  
> be part of why it's slower then gtk2.
>
> There is another differnce.  mzgtk2 uses hans own OO system.  Mred  
> uses the  plt-standard object system.  (it's standard to plt, there  
> is not scheme standard for a object system).  All the tools,  
> including drscheme use the Mred interface.  This also includes  
> GUIbuilder  (and the other builder project (mred-designer?))
>
> There was also project called "mzgnome", which was similar in  
> nature to mzgtk2, except it was just the raw gtk2 calls.  It is no  
> longer supported, and gave way to mzgtk2.
>
> However on top of the gtk2 calls in mzgnome, we wrote "Mrdead".   
> Mrdead is a bunch of plt-standard objects that wrap the mzgnome gtk  
> commands to exactly match the Mred interface.  I.E.  It was  
> possible to write a program that workd with Mred, or gtk, depending  
> on which module you "(require " 'd.   This was ideal cause it  
> allowed use of the current tools, and at the developers option, you  
> could use either the continuation safe version (if you wanted to  
> use continuations), or the pretty version (if you wanted to use  
> themes or whatever).  Also this make gtk work with GUIbuilder,  
> which as pretty cool.
>
> MrDead is just a bunch of classes that act as a wrapper using  
> mzgnome commands.  It should be fairly easy to replace the mzgnome  
> parts with whatever gtk syntax you want, and get it working with  
> mzgtk2, but to the best of my knowledge, this was never done.
>
>
> Corey
>
> On 1/6/07, Hans Oesterholt-Dijkema < hdnews at gawab.com> wrote:
> Dear Chongkai,
>
> I'll do that some time in the future, but it has no priority at the  
> moment
> I'm too busy working on a homeopathy program, using mzgtk2.
>
> The main reason I started the project some years ago, was because
> I wanted a solid portable widget for a GUI for bigloo. In the
> process I switched to PLT Scheme, mainly because it implements
> the R5RS standard much better and macro support is fabulous.
>
> I did look a littlebit to MrEd. Not in depth however. I still wanted
> a solid widget base that is constantly under development and that
> is portable enough for Windows/Linux/UNIX/Mac OS. Gtk
> provided me with what I wanted, so I went with that.
>
> The binding code for MzGtk2 is also based on ROOS, an OO
> system that is very similar to perl's OO system. I always liked
> perl's OO system for its simplicity.
>
> --Hans
>
> Chongkai Zhu schreef:
>> Hi Hans,
>>
>> Would you please discuss the difference between MzGtk2 and MrEd
>> (and any other GUI toolkits for MzScheme)?
>> Thanks.
>>
>> Chongkai
>>
>> ----- Original Message -----
>> From: "Hans Oesterholt-Dijkema" <hdnews at gawab.com>
>> To: "mzscheme Mailing List" <plt-scheme at list.cs.brown.edu>
>> Sent: Saturday, January 06, 2007 7:24 AM
>> Subject: [plt-scheme] Announce: mzgtk2 release 2 version 2.6.10.002
>>
>>
>>> Dear All,
>>>
>>> I've released mzgtk2, subversion 002, based on the header files of
>>> Gtk+ 2.10.6. You should be able to compile mzgtk2 for Gtk+ 2.4.x
>>> and up.
>>>
>>> Changes:
>>>
>>> Added support for PLT Scheme threads in the MzGtk2 distribution.
>>> What MzGtk2 does is install a timer function in the event loop of
>>> Gtk+-2.x which runs about every millisecond. This function calls
>>> scheme_use_fuel() to give PLT Scheme the oppertunity to run threads.
>>>
>>> More information on:
>>>
>>> http://www.elemental-programming.org/wiki/mzgtk2-mzgtk2-making.html
>>>
>>>
>>> Screenshots:
>>>
>>> http://www.elemental-programming.org/wiki/mzgtk2-screenshots.html
>>>
>>> Changelog:
>>>
>>> http://www.elemental-programming.org/wiki/mzgtk2-ChangeLog.html
>>>
>>> Best wishes,
>>>
>>> Hans Oesterholt-Dijkema
>>>
>
>
> _________________________________________________
>  For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
>
>
>
> -- 
> ((lambda (y) (y y)) (lambda (y) (y y)))
>
>
>
> -- 
> ((lambda (y) (y y)) (lambda (y) (y y)))
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.