#lispm — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #lispm, aggregated by home.social.
-
I couldn't find a copy of the memo named "Loop Iteration Macro" by Glenn Burke and David Moon, January 1981 (MIT/LCS/TM-169) at MIT's dSpace site, or anywhere else. So I scanned in my copy and have uploaded it to my web site.
NOTE WELL: This document was written prior to CLTL and describes a facility that was available in MACLISP and the Lisp Machine's Zetalisp. Common Lisp drew design ideas from this, but the syntax, semantics, and associated functions/macros described in this are NOT the same as what Common Lisp offers.
For example, my recollection from long ago (which I did not re-check before making this post) is that there are other differences in syntax because this earlier version of Loop was underconstrained in the ordering of the keywords in a way that let you write some expressions that the committee felt might confuse people with their results.
But also, for reasons that slip my mind, Common Lisp did not adopt the define-loop-path macro that is described starting on page 19.
http://nhplace.com/kent/History/maclisp/MIT-LCS-TM-169-Loop-Iteration-Macro.pdf
#lisp #maclisp #loop #iteration #ComputerHistory #KentsHistoryProject #lisp #LispM #Zetalisp #CommonLisp
cc @screwlisp
-
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
You can pick up the document 'Signalling and Handling Conditions' from this index page:
It was longer than I thought it would be, but I think you'll find it interesting to see what the Zetalisp condition system (which inspired the Common Lisp condition system) looked like.
In spirit, it was much the same. The biggest differences are:
* The CL system has 'active' restarts, where the ZL system had a passive thing where you returned a value to the case context and hoped that it would do the thing you wanted. It felt quite a bit more error-prone (if you'll pardon the reuse of 'error' here, maybe I should say 'mistake-prone').
* The ZL condition system offers a lot of really low-level stuff that did not seem proper for CL.
* The set of operations offered in ZL was richer, but also a lot more complicated, I thought, and I worried people would not really see what it was trying to do.
* Obviously, the ZL system was based on Flavors, not CLOS, and made reference to a lot of LispM-specific packages.
* The document was published in January, 1983 and identifies itself as part of Symbolics Release 4.0.
There are other differences as well.
#Zetalisp #LispMachine #LispMachines #Symbolics #LispM
#ConditionHandling #ConditionSystem #ErrorSystem #ErrorHandling #CommonLisp #CL #Flavors #CLOS #History #ComputerHistory
#InternetArchive #Bitsavers -
@weekend_editor @charliemac @symbolics @restorante @crandel @Zenie @weavejester correct, I do recall, ‘sheet’ was the core abstraction in the #LispM window system. #CLIM made that a first-class concept, and #McCLIM still carries it forward today
-
@weekend_editor @charliemac @[email protected] @restorante @crandel @Zenie @weavejester correct, I do recall, ‘sheet’ was the core abstraction in the #LispM window system. #CLIM made that a first-class concept, and #McCLIM still carries it forward today
-
@weekend_editor @charliemac @symbolics @restorante @crandel @Zenie @weavejester correct, I do recall, ‘sheet’ was the core abstraction in the #LispM window system. #CLIM made that a first-class concept, and #McCLIM still carries it forward today
-
@weekend_editor @charliemac @symbolics @restorante @crandel @Zenie @weavejester correct, I do recall, ‘sheet’ was the core abstraction in the #LispM window system. #CLIM made that a first-class concept, and #McCLIM still carries it forward today
-
@weekend_editor @charliemac @symbolics @restorante @crandel @Zenie @weavejester correct, I do recall, ‘sheet’ was the core abstraction in the #LispM window system. #CLIM made that a first-class concept, and #McCLIM still carries it forward today
-
CREF appears to be related (maybe just a little) to semantic networks.
(With regards to SUMMARIZES and SUMMARIZED-BY.) -
That's distinguished from the CREF editor that I wrote in 1984, while on leave from my work on the Programmer's Apprentice to do a summer's work at the Open University.
CREF (the Cross-Referenced Editing Facility) was basically made out of spare parts from the Zwei/Zmacs substrate but did not use the editor buffer structure of Zmacs per se. If you were in Zmacs you could not see any of CREF's structure, for example. And the structure that CREF used was not arranged linearly, but existed as a bunch of disconnected text fragments that were dynamically assembled into something that looked like an editor buffer and could be operated on using the same kinds of command sets as Zmacs for things like cursor motion, but not for arbitrary actions.
It was, in sum, a hypertext editor though I did not know that when I made it. The term hypertext was something I ran into as I tried to write up my work upon return to MIT from that summer. I researched similar efforts and it seemed to describe what I had made, so I wrote it up that way.
In the context of the summer, it was just "that editor substrate Kent cobbled together that seemed to do something useful for the work we were doing". So hypertext captured its spirit in a way that was properly descriptive.
This was easy to throw together quickly in a summer because other applications already existed that did this same thing. I drew a lot from Converse ("CON-verse"), which was the conversational tool that offered a back-and-forth of linearly chunked segments like you'd get in any chat program (even to include MOO,), where you type at the bottom and the text above that is a record of prior actions, but where within the part where you type you had a set of Emacs-like operations that could edit the not-yet-sent text.
In CREF, you could edit any of the already-sent texts, so it was different in that way, and in CREF the text was only instantaneously linear as you were editing a series of chunks, but some commands would rearrange the chunks giving a new linearization that could again be edited. While no tool on the LispM did that specific kind of trick, it was close enough to what other tools did that I was able to bend things without rewriting the Zwei substrate. I just had to be careful about communicating the bounds of the region that could be editing, and about maintaining the markers that separated the chunks as un-editable, so that I could at any moment turn the seamed-together text back into chunks.
Inside CREF, the fundamental pieces were segments, not whole editor buffers. Their appearance as a buffer was a momentary illusion. A segment consisted of a block of text represented in a way that was natural to Zwei, and a set of other annotations, which included specifically a set of keywords (to make the segments easier to find than just searching them all for text matches) and some typed links that allowed them to be connected together.
Regarding links: For example, you could have a SUMMARIZES link from one segment to a list of 3 other segments, and then a SUMMARIZED-BY link back from each of those segments to the summary segment. Or if the segments contained code, you could have a link that established a requirement that one segment be executed before another in some for-execution/evaluation ordering that might need to be conjured out of such partial-order information. And that linkage could be distinct from any of several possible reading orders that might be represented as links or might just be called up dynamically for editing.
In both cases, the code I developed continued to be used by the research teams I developed it for after I left the respective teams. So I can't speak to that in detail other than to say it happened. In neither case did the tool end up being used more broadly.
I probably still have the code for CREF from the time I worked on it, though it's been a long time since I tried to boot my MacIvory so who knows if it still loads. Such magnetic media was never expected to have this kind of lifetime, I think.
But I also have a demo of CREF where took screenshots at intervals and hardcopied them and saved the hardcopy, and then much later scanned the hardcopy. That is not yet publicly available, though I have it in google slides. I'll hopefully make a video sometime of that just for the historical record.
3/n
-
Back in the 1980s, when my then-office-mate was developing the Japanese product for the Symbolics lisp machine, we had an electronic version of this.
It was a big pad, about 50cm x 50cm, with a stylus to pick out individual characters. This was for kanji; the hiragana and katakana were handled separately.
To watch him use it was amazing... and slow.
-
The most well known #lispm designs like Symbolics Genera employs incremental GC likely because their processors can do "single core" multithreading and GC runs on a regular thread, an earlier design by Guy Steel Jr. uses multi-processors and synchronization between them to perform parallel GC, as it has already shown before parallel GC is possible in an Exercise problem in #TAOCP volume 1, inspired many later high performance GC algorithms.
-
I'm also going to tie in:
- #gopherMOO #VirtualReality (&lineage) as the present and pragmatic way of programmingYou can find gopherMOO at https://larrymasinter.net/ ( @masinter )
- #climate predictability as a requirement for future planning and bits an arguement I was having with @HeavenlyPossum et al about the possibility or impossibility of project management
- My #vhdl is aimed at @amszmidt #lispm but I'm not sure he's sure we are converging yet (no fear).
-
034/ #100daystooffload #phloggersgarage small vignette on #lispm #lisp and #microcode d #fpga s. Not pictured is me poking through journals for some inspiration, nor that I think I will do a fresh #dragonflybsd install to the host llvm- #ghdl . @amszmidt
advice/commentary plz<3
#gopher
gopher://tilde.club/0/~screwtape/synthember-100days-tooffload/034-lispm-and-microcode.txt
gopher://tilde.club/1/~screwtape/synthember-100days-tooffload/
web proxy
https://gopher.tildeverse.org/tilde.club/0/~screwtape/synthember-100days-tooffload/034-lispm-and-microcode.txt
https://gopher.tildeverse.org/tilde.club/1/~screwtape/synthember-100days-tooffload/ -
Doug Lenat died. RIP. #cyc #lispm #lispmachines #ai #commonlisp #cycorp
He started the Cyc project, using Lisp Machines as a development environment. The project is roughly since 40 years ongoing. Cyc was the dream of a large-scale knowledge base of common sense knowledge. One that has many ways of reasoning and making inferences. It used SubL a variant of Common Lisp.
Here is an old screen shot...
-
@kentpitman
Music will be @psf 's #CC0 #electronicMusic #gopherhole ! #gopher
Show Art by old computer challengeist @prahou
The #lispm resurrection by @amszmidt https://tumbleweed.nu/lm-3/
#ZMacs #emacs
- What #'ED does is incredible on the MIT-CADRMore #OldComputerChallenge rs and #gopher s:
@solene @praetor @ksaj @matto ; Maybe @jwh @trurl @ffogplease tell me here that I missed you
the link above will help you #phlog your #occ
#aNONradio: https://anonradio.net:8443/anonradio