#errorsystem — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #errorsystem, aggregated by home.social.
-
In going through some old papers, I ran across these very interesting documents from long ago that I can't seem to find public reference to. They seem to offer some important historical insight about the Dylan language. This is from back when Dylan was called Ralph as a working title. In those days, the still-being-designed Lisp-like language had not yet moved to an infix syntax, and it looked and acted more like Scheme with an object system similar in spirit to CLOS (the Common Lisp Object System).
My understanding is that there were some fairly deliberate choices made to NOT target the Lisp or Scheme community as users, which is part of why the move to infix. I think they wanted to appeal to a disaffected C++ crowd, but ultimately lost out to Java for that bid, and then having left the Lisp user base behind, ended up with a very small community as a result.
But I still think there could be things the Scheme community would want to glean from this snapshot of history.
I've included a scan of an email proposal I got from Dave Moon while he and I were at Symbolics, with his proposal for how to add conditions to the language. Note that Dylan did eventually go public and did have a condition system, so you could also just study that design directly. But what's useful here is to see how all that looked syntactically in a Scheme-like syntax. But, in that regard, I recommend starting by looking at the language itself.
[0] Ralph: A Dynamic Language with Efficient Application Delivery, by Andrew LM Shalit, July 25, 1991.
https://nhplace.com/kent/History/dylan/ralph-1991-07-25.pdf[1] Ralph Conditions (part 1 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-1-of-2-1991-08-14.pdf[2] Ralph Conditions (part 2 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-2-of-2-1991-08-14.pdfcc @sigue @ramin_hal9001 @screwlisp
#DylanLang #RalphLang #ComputerHistory #Harlequin #Lisp #CommonLisp #ConditionSystem #ConditionHandling #ErrorSystem #Scheme #SchemeLang #CLOS #AppleHistory #KentsHistoryProject
-
In going through some old papers, I ran across these very interesting documents from long ago that I can't seem to find public reference to. They seem to offer some important historical insight about the Dylan language. This is from back when Dylan was called Ralph as a working title. In those days, the still-being-designed Lisp-like language had not yet moved to an infix syntax, and it looked and acted more like Scheme with an object system similar in spirit to CLOS (the Common Lisp Object System).
My understanding is that there were some fairly deliberate choices made to NOT target the Lisp or Scheme community as users, which is part of why the move to infix. I think they wanted to appeal to a disaffected C++ crowd, but ultimately lost out to Java for that bid, and then having left the Lisp user base behind, ended up with a very small community as a result.
But I still think there could be things the Scheme community would want to glean from this snapshot of history.
I've included a scan of an email proposal I got from Dave Moon while he and I were at Symbolics, with his proposal for how to add conditions to the language. Note that Dylan did eventually go public and did have a condition system, so you could also just study that design directly. But what's useful here is to see how all that looked syntactically in a Scheme-like syntax. But, in that regard, I recommend starting by looking at the language itself.
[0] Ralph: A Dynamic Language with Efficient Application Delivery, by Andrew LM Shalit, July 25, 1991.
https://nhplace.com/kent/History/dylan/ralph-1991-07-25.pdf[1] Ralph Conditions (part 1 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-1-of-2-1991-08-14.pdf[2] Ralph Conditions (part 2 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-2-of-2-1991-08-14.pdfcc @sigue @ramin_hal9001 @screwlisp
#DylanLang #RalphLang #ComputerHistory #Harlequin #Lisp #CommonLisp #ConditionSystem #ConditionHandling #ErrorSystem #Scheme #SchemeLang #CLOS #AppleHistory #KentsHistoryProject
-
In going through some old papers, I ran across these very interesting documents from long ago that I can't seem to find public reference to. They seem to offer some important historical insight about the Dylan language. This is from back when Dylan was called Ralph as a working title. In those days, the still-being-designed Lisp-like language had not yet moved to an infix syntax, and it looked and acted more like Scheme with an object system similar in spirit to CLOS (the Common Lisp Object System).
My understanding is that there were some fairly deliberate choices made to NOT target the Lisp or Scheme community as users, which is part of why the move to infix. I think they wanted to appeal to a disaffected C++ crowd, but ultimately lost out to Java for that bid, and then having left the Lisp user base behind, ended up with a very small community as a result.
But I still think there could be things the Scheme community would want to glean from this snapshot of history.
I've included a scan of an email proposal I got from Dave Moon while he and I were at Symbolics, with his proposal for how to add conditions to the language. Note that Dylan did eventually go public and did have a condition system, so you could also just study that design directly. But what's useful here is to see how all that looked syntactically in a Scheme-like syntax. But, in that regard, I recommend starting by looking at the language itself.
[0] Ralph: A Dynamic Language with Efficient Application Delivery, by Andrew LM Shalit, July 25, 1991.
https://nhplace.com/kent/History/dylan/ralph-1991-07-25.pdf[1] Ralph Conditions (part 1 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-1-of-2-1991-08-14.pdf[2] Ralph Conditions (part 2 of 2)
https://nhplace.com/kent/History/dylan/ralph-moon-conditions-proposal-v1.1-part-2-of-2-1991-08-14.pdfcc @sigue @ramin_hal9001 @screwlisp
#DylanLang #RalphLang #ComputerHistory #Harlequin #Lisp #CommonLisp #ConditionSystem #ConditionHandling #ErrorSystem #Scheme #SchemeLang #CLOS #AppleHistory #KentsHistoryProject
-
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