<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>just a quick comment. If performance is a concern (and perhaps the option of being able to run platform independent is welcome feature) the you may want to explore the OpenGL route. I am not sure what you mean with "high-quality, high-performance interactive graphics" but if you mean some kind of plotter (2D, 3D) function with potentially large numbers of lines/polygons/surfaces then the OpenGL opens up paths that are magnitudes faster than going through the Cocoa-level line graphics API. We already have some Clozure CL OpenGL interfaces. You can still work with Cocoa events etc. it is just that the drawing surface is OpenGL managed. </div><div><br></div><div>Alex</div><div><br></div><br><div><div>On Jun 27, 2008, at 11:48 PM, Rich Sutton wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>hello all,<br><br>i have recently been exploring openmcl and would like to briefly pass on my impressions and some suggestions for what they are worth.  first, about myself.  i am an artificial intelligence researcher and previous long-time user of mcl, and i have turned to openmcl (rather than, say, sbcl) primarily because of the hope of regaining the ease of access to gui features that i remember from mcl.  thus it is these features that i concentrated on in examining openmcl.  to try things out i ported some existing graphics code from mcl to openmcl, converting the quicktime calls to the appropriate calls to the cocoa bridge, and working from the example of easygui.  specifically, i revived some code for quickly throwing up simple line graphs.  here is a simple example with the screen shot showing that it works in openmcl:<br><br><span class="Apple-tab-span" style="white-space:pre">      </span><span class="Apple-tab-span" style="white-space:pre">    </span><span><quickgraph screenshot.pdf></span><br><br>resizing and minimizing work, and there are a lot of other quick graphing things you can do (see <a href="http://rlai.cs.ualberta.ca/RLAI/graphlispmanual.html)">http://rlai.cs.ualberta.ca/RLAI/graphlispmanual.html)</a>.  the code is not ready to be a contrib or anything - it is just a quick port to learn a little about openmcl and the bridge, but it may be a useful example in some respects so i will include some pointers to the code at the end of this note.<br><br>now to my impressions.  overall, they are positive.  after my week of hacking, learning about cocoa, the bridge, openmcl, everything, it seems to me that openmcl can indeed be what i am looking for -- a quality general-purpose common-lisp with high-quality, high-performance interactive graphics.  it is also pretty clear to me some of what more is needed (in the gui/graphics area), and though it will take some work, it's not a terribly big amount of work, and it can be done incrementally.  the cocoa-bridge strategy is a good one i think.  cocoa/quartz is a modern and very well thought-out gui package, and we should be leveraging off of that design rather than trying to make it all up ourselves.  but the way things stand right now there are huge hurdles to getting started.<br><br>i spent at least a week of learning cocoa, the bridge, easygui, everything, with many crashes and beachballs before i got any graphics gratification.  one simple thing i learned and i wish someone had told me was to not use the ide directly, but to go through emacs/slime.  that way at least you don't lose your edits when the beach ball happens.  my experience is that the ide is promising but not quite ready for prime time.  i ran into crashes and bugs partly for ide things, and partly because i was doing inherently dangerous things like foreign function calls and working with foreign data structures.  the latter are the main real problem;  we need to provide an additional layer to insulate the lisp user from the foreign stuff (if she so desires), as in easygui.<br><br>i would like to further development of the easygui design, as time allows.  i note that arthur has just made some new contributions in this direction.<br><br>rich sutton<br><br>----<br>to run the quick-graphing code:<br><br>start up the ide, or do (require "COCOA") and (require "easygui")<br>load the attached files, in order:<br>     (load "mclgui")<br>     (load "cclg")<br>     (load "graph-without-events")<br><br>then, e.g.,<br>(graph (list (loop for x below 8 by 0.1 collect (sin x))<br>                   (loop for x below 8 by 0.1 collect (cos x))))<br><br><span><mclgui.lisp></span>   (this is the only file with code potentially worth looking at right now)<br><br><span><cclg.lisp></span><br><br><br><span><graph-without-events.lisp></span><br><br><br><br><br><br><br><br><br><br>_______________________________________________<br>Openmcl-devel mailing list<br><a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>http://clozure.com/mailman/listinfo/openmcl-devel<br></div></blockquote></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Prof. Alexander Repenning</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px">University of Colorado</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Computer Science Department</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Boulder, CO 80309-430</p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">vCard: <a href="http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf">http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf</a></font></p><br class="Apple-interchange-newline"></span></span></span></div></span> </div><br></body></html>