[Openmcl-devel] Graphical User Interface

Walker Sigismund w.sigismund at btinternet.com
Sun Apr 18 23:37:20 PDT 2021

Seems like several of us work on older machines for the advantages of a stable platform and in my case powerful graphics and FRED found in MCL.  

Since several of you are worried about your old machines breaking down I thought I would share that I have been running MCL on SNOW LEOPARD SERVER in Parallels on a 2019 MacBook Pro (modern i7 chips) and the performance and experience is similar to running on a 2010 MacBook Pro (with the original i7 chip) on most tasks.  I use CCL-1.11 on the virtual machine as well, or CCL-1.12 on the recent MacBook.  Details below.  

But I really want to find out... 


I can supply an extensive library of graphical routines written in LISP.  But to run in CCL they would require something similar to the GUI offered by MCL based on quickdraw.  More specifically, I use standard features like create a window, put one or more simple-views in that window, then use routines like draw-string, draw-line or paint-polygon, and may add menu items or check-boxes to offer the user some control through the GUI.  I also use the spreadsheet widget to display and edit the data in the matrix when needed.  

Is there some collection of CCL users and DEVELOPERS that are close too having that functionality working that can add to the project?

Are there users that can fund it?


The rest of this message you may or may not find of interest so skip sections as needed.


I have never really moved to CCL from MCL due to the extensive advantages of  my Graphic routines— which cover an enormous selection of charting features, 3D analysis, and trees of data, mostly binomial trees—and FRED, the editor, which makes writing and debugging code so easy. 

I began to write the graphics in 1985 on a Symbolics machine at Palladian while a student at MIT, well before EXCEL existed.  Through constant development they still have all the features EXCEL has plus more.  There are many advantages to using the library over EXCEL as a result, but it is also pretty easy to copy and paste data to EXCEL for debugging, error checking or sharing data with others.     

At entry level, the graphic routines generally take an array of data along with various optional things like titles and instructions for what type of chart, which columns, and how the data should be formatted on the axes, for example as a date or percent.   There are dozens of options available using keys.  The chart can be flipped and turned in all 8 possible X-Y orientations.  One can use all four axes.  One can transform the data using logs or other routines.  It can be presented stacked, or as a percent and so on and so forth.  

The graphics are all written in MCL using standard features like create a window, put one or more simple-views in that window, then draw-string, draw-line or paint-polygon, and add these menu items or check-boxes.  I also use the spreadsheet widget to display and edit the data in the matrix when needed.  From there one can also select columns to chart or run a regression or do frequency analysis.

All calculations and data-structures required are written in LISP and extensively debugged.

In sum all these features make it worthwhile to work in MCL rather than move to CCL and trying to develop the foundation layer all on my own.  Upon occasion I have also looked at Lispworks and Allegro-Common-Lisp, but their foundation layers seem only a small step ahead (of CCL) so also not worthwhile.  They also do not compile easily as even things like (Full-pathname ) shared between MCL and CCL have to be redefined in these other LISPS.

;;;;;;;;;;;;;;;;;;  PARALLELS WORKS WELL with a few odd behaviours

Once your old Mac dies, or if you do not have an old Mac that runs Snow Leopard, you may like to know (be reminded) that you can run MCL perfectly well in Parallels using a commercial copy of Snow Leopard Server.  It has to be a commercial boxed version, unfortunately not one that came with your old Mac unfortunately.  This is the vital component that you should be able to find on eBay if you do not have one.

You would mainly want to do this, if like me you have extensive GRAPHICAL routines (I use them constantly for data analysis) and/or because FRED is still the best editor in my view.  Together it is a great LISP environment.

In 2010 when it became apparent that MCL might not be developed—and it became apparent that CCL would not have any comparable graphics capability or FRED any time soon—I bought three Macs so that I could continue to run MCL for a long time.  Over time I upgraded all three machines with SSD drives for speed and slightly cooler running.  All three are still working.  The mac-mini spent some time in the repair shop when it stopped working, but was revived with some fresh heat-sink paste on the main chip.   Now the iMac is starting to show signs that it may crater out soon, which would leave me with two old working Macs.  

Meanwhile in 2014 I found I could use Parallels to run MCL in Snow Leopard Server but there were no particular advantages in doing so.  However for the last year I have been running MCL in parallels on a 2019 MacBook Pro with the most recent intel i7 chip, which seems after emulation comparable to my old Mac book with one of the first intel i7 chips in it.  

Be sure to install the Parallels Toolbox INSIDE THE VIRTUAL MACHINE as that will then allow you to use a 4K monitor at any scale you choose.  

'There are a couple odd things about Parallels.  Firstly you probably do not want to use any APPLE mouse as Parallels interprets swiping sideways by even the slightest amount as a signal to change from the virtual to the host machine.  So use a ’normal’ mouse.  Next, mouse-copy works most off the time but stops working from time to time then restarts.  

I have also discovered that Parallels occasionally hangs in the middle of shredding files repetitively (whether using MCL or CCL111)  then restarts, presumably after doing some housekeeping or resetting something.  Finallky I find Preview, the Mac application does not work properly in Parallels.  For example when making a snapshot of a screen or copying graphics to Preview, PNG files are visible only as thumbnails but not in the main window.  They can however still be copy and pasted from there into other applications on the virtual or real machine.  Parallels say this is due to APPLE not releasing the APIs for graphic hardware acceleration.

All told, the Parallels setup is roughly as good on most tasks as using a real 2010 Mac.  It is slower on disk intensive tasks  (whether using MCL or CCL111) by about half I find.  I can usually live with that delay, but if not I switch to a real (old or new) machine and shred using CCL.

On most data analysis projects I work entirely in MCL due to the overwhelming advantages of  my Graphic routines and FRED, the editor. 

;;;;;;;;;;;;;;;;;;  MCL 5.2B and MCL 6.0 both work well

You may recall that MCL5.2 is the latest in most respects as MCL 6.0 was forked from an earlier version.  I use both interchangeably in Parallels (or on my older Macs).  I believe that MCL 6.0 has a couple bugs whereby it attempts to draw some view components before the view has a WPTR to a window. Here is a snippet of my fix.

;; in MCL 6.0 when creating complex spreadsheet widgets components are drawn by set-view-container before the subviews obtain a wptr
;; this is patched by install-view-in-window *ALIE-SEQUENCE-DIALOG-ITEM* as well as by this
(defmethod view-focus-and-draw-contents :around ((GrundView *Grouped-ARRAY-Item*) &optional visrgn cliprgn)
  (when (and GrundView (wptr GrundView))

 I have had to add similar routines for several dialog-items in MCL 6.0.  This is not a problem in MCL 5.2 (But I would need to track down all compiler switches to make sure).  As a result I now usually run in MCL5.21b or whatever it is.  
;;;;;;;;;;;;;;;;;;;;;;;;;;  SIZE REMINDER

Reminder first thing you want to do is save the original application with as much memory as you can alot.  

In RMCL  [521] Try This

(save-application "RMCL-521-BIGGER”  :size  1026313016  )	

After reLaunch I get

Welcome to Macintosh Common Lisp Version 5.2.1!
? (room)
                 Total Size                Free                   Used
Lisp Heap:   981014528 (935.6 MB)   977383600 (932.1 MB)     3630928 (3.463 MB)
Stacks:       13377196 (12.76 MB)    13373636 (12.75 MB)        3560 (3 kB)
Static:           5400 (5 kB)               0 (0)               5400 (5 kB)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20210419/ede2e81d/attachment.htm>

More information about the Openmcl-devel mailing list