Macintosh Allegro Common Lisp
111 points
by tosh
10 days ago
| 5 comments
| macintoshrepository.org
| HN
lisper
8 days ago
[-]
MCL lives on today as Clozure Common Lisp:

https://ccl.clozure.com/

reply
kalleboo
8 days ago
[-]
This actually seems like a more interesting link than the OP https://ccl.clozure.com/history.html

Although if anyone wants to run it, you could download it from the op and drop the file onto one of the emulators on https://infinitemac.org (they run directly in your browser, no download needed)

reply
msephton
8 days ago
[-]
You can search Macintosh Garden directly within Infinite Mac. No need to download anything outside of that environment. https://blog.persistent.info/2024/11/infinite-mac-macintosh-...
reply
p_l
7 days ago
[-]
In my experience emulators do not run MCL properly
reply
msephton
7 days ago
[-]
In what way?
reply
p_l
7 days ago
[-]
MCL crashing on startup, whether 68k or PPC versions, have yet to test 68k on popular ppc mac emulators.

I expect that running MCL on QEMU emulating PPC Mac running MacOS 8 or 9 should work, however.

reply
msephton
7 days ago
[-]
Thanks!
reply
nxobject
8 days ago
[-]
Watch out, though - I think running MCL crashes some emulators like Mini vMac the last time I checked.
reply
kazinator
8 days ago
[-]
Clozure Common Lisp is excellent. It generates fast code and small images.

I used Clozure Common Lisp for the Tankan kanji learning program, which uses a browser interface to a service application, the latter being written in CCL.

I used MS Visual C++ to make the system notification are ("tray") icon program to control the service.

The licensing back-end runs on CLISP as a CGI interface, and the same server-side program also serves as an administrative command-line utility, where I can manipulate the the license database.

reply
bifftastic
8 days ago
[-]
Anyone know the latest on the Apple Silicon port of CCL? The new mailing list doesn't seem to have a publicly-accessible archive.
reply
diskzero
7 days ago
[-]
You can see the Github issue covering this here: https://github.com/Clozure/ccl/issues/356

There was quite a bit of discussion about this a couple of years ago. OpusModus[1] investigated supporting CCL on M1, but wasn't confident that it could be accomplished, and instead ported their product to LispWorks.

1. https://opusmodus.com

reply
lisper
7 days ago
[-]
That effort is somewhere between stalled and dead. Matt Emerson was funded to work on it, but that funding fell through a few months ago. I made him an offer to resume the work but he hasn't accepted it and hasn't said why. So unless there is someone else out there who is capable of doing this, it's not looking good.
reply
bifftastic
7 days ago
[-]
Thank you for your reply. It's quite a sad situation.
reply
mark_l_watson
7 days ago
[-]
I didn’t think an Apple Silicon port would ever happen.

I would love to be wrong about that!

reply
behnamoh
8 days ago
[-]
The closest thing to image based programming in Common Lisp (which doesn't exist as such in Clojure, Scheme, etc.) is having a tmux session with ipython open! I can save the session and come back to it later with the state of the program still correctly loaded. It's fantastic.

Jupyter Notebooks should have this feature because loading huge datasets upon loading a ipynb really doesn't make sense, but alas...

reply
Y_Y
8 days ago
[-]
Could you say how you save the ipython sessions? I'm aware of dill.dump_session but haven't tried it. I also would love to use something like CRIU, but find it doesn't play well with external accelerators like GPUs.

For the moment I'm stuck opening lots of tmux sessions and just re-running from history if I mess up the state.

reply
behnamoh
7 days ago
[-]
I save the tmux session using ctrl-a,ctrl-s and it automatically saves the ipython state as well as my neovim.
reply
opan
7 days ago
[-]
This sounds like tmux-resurrect and not a built-in feature. Similarly, C-a is the default GNU screen prefix, C-b is the default prefix for tmux (though this is a fairly common rebind for people who wanted it to work more like screen).
reply
behnamoh
7 days ago
[-]
I remapped ctrl-b to ctrl-a, and yes, I use tmux-resurrect.
reply
Y_Y
7 days ago
[-]
Thank you for that necessary context.
reply
lelanthran
7 days ago
[-]
I use a terminal split in vim which runs in screen.

Same effect, except that I can send various commands from the other vim split to the terminal using slime.

Started working like this when i was writing and prototyping a lot of SQL code... ran SQL in the terminal split and used the other split for the SQL file.

reply
baq
8 days ago
[-]
Python is a lisp just lists are replaced with dicts, after all ;)

I wonder if an AWS elastic lisp image service would be something lispers would use. Probably won’t live to see anything like it.

reply
pjmlp
7 days ago
[-]
It is only missing having proper lambdas instead of one liners, JIT compilation, redo code after breaking into debugger, saving REPL into an image, ...

Julia is more Lispy than Python will ever be.

Ironically what AWS nowadays offers for Java and .NET based lambdas (SnapStart) is something similar to Smalltalk/Common Lisp images, yet another thing that traces back to their roots (Java being influenced by Objective-C/Smalltalk, and .NET origins due to J++ lawsuit).

reply
Iwan-Zotow
7 days ago
[-]
> proper lambdas instead of one liners

that has simple solution - walrus thingy

reply
behnamoh
7 days ago
[-]
In that case Elixir is also a Lisp where you use do-end instead of parentheses :)

heck, any language that has an AST would be a Lisp according to your definition..

reply
musicale
7 days ago
[-]
Though it's easy to write a tiny Lisp interpreter in ~100 lines of Python (or JavaScript, etc.):

http://norvig.com/lispy.html

reply
hilldude
8 days ago
[-]
reply
mark_l_watson
7 days ago
[-]
After using my Xerox 1108 Lisp Machine for several years, I gave it away to someone else where I worked when I was able to put a faster Motorola processor in my 1984 Mac, bought Macintosh Allegro Common Lisp, and ported utilities like ISI Grapher that I needed. Great programming environment that I used for many practical projects that were financially impactful for my company.
reply
ralphc
7 days ago
[-]
The conventional wisdom around here is that Lisp (and Smalltalk) are looked upon so fondly because they were so far ahead of what else we had back then, both in terms of the language and development environments, but other languages have caught up over the years.

Do you think there is a modern non-Lisp language and environment that gives you something close to the productivity you had with Common Lisp back then?

reply
mark_l_watson
7 days ago
[-]
Because of modern library and infrastructure improvements, I would say most modern programming languages.
reply
JKCalhoun
8 days ago
[-]
I wonder if any 68K Mac apps written in Lisp were shipped in the day.
reply
mark_l_watson
7 days ago
[-]
Not MACL, but I shipped a million dollar in sales product using ExperLisp that I wrote for the original Mac.

Using MACL: when I was on a DARPA Neural Network Tools Advisory panel, I did all my NN prototyping in Common Lisp with Macintosh Allegro Common Lisp. Resulting code, that I converted to C and C++ was used in the bomb detector we built for the FAA, and became a commercial product.

reply
p_l
7 days ago
[-]
Non trivial amount, though usually niche ones AFAIK.

Some, like Piano (aircraft analysis suite) moved to other platforms when OSX essentially forced a rewrite anyway

reply