-
-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mention the role of LOOPS among Lisp object systems #1850
Comments
Comments on CLOS and CommonLoops:
|
I think we can tell our story without slagging other systems. CLOS (like so much else in CL) is what it is due to the requirement to be portable and because one or two people drove the effort to implement that component and so drove that vision for what it would look like. |
I think things are a bit more complicated than this. LOOPS (from distant memory, but the manual seems to agree with this) was message-based as an object-oriented system and thus was more restrictive than CLOS, as you can't have CLOS's dispatch on multiple arguments. But LOOPS also had all the rule-based stuff which isn't in CLOS at all, as well as the active value things which CLOS sort-of can have, and probably other things I forget.CommonLoops had as one of its implementations (its only implementation?) PCL which essentially was CLOS. Most early CLOS implementations were PCL-based I think, at least some still have major traces of PCL in them. So CommonLoops was not an implementation of LOOPS for CL, I think, but rather its own thing which, really, was what became CLOS. One of the useless shards of information in my head is the name of the machine you fetched PCL from: arisia.xerox.com. What was 'arisia'? I've also realised I can reconstruct a list of all the PCL release names from the archive at CMU.--timOn 11 Oct 2024, at 11:53, skaisler ***@***.***> wrote:
Comments on CLOS and CommonLoops:
CLOS is an object-based system (just like C++) and is pale shadow of the expressive power embedded in LOOPS.
CommonLoops, as I understand it, is a CommonLisp based rwrite of LOOPS.
Neither shoulld be mentioned in the same breadth as LOOPS since this is about Medley Interlisp.
At best, a separate mention of CommonLoops re Medley could be maded although I have not yet worked with it.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
All:
Will need some more research in CLOS although I di use it years ago when I
was writing in CommonLisp from Allegro (old Franz).
Need to find some good documentation on CommonLoops and play with it a bit.
My comments regarding being mentioned with LOOPS still stand since we are
talking solely about Medley Interlisp.
When we get to a point that we can discuss XCL better, then we can mention
ClOS with it, and perhaps, CommonLOOPS.
Steve K.
On Fri, Oct 11, 2024 at 1:16 PM Tim Bradshaw ***@***.***>
wrote:
… I think things are a bit more complicated than this. LOOPS (from distant
memory, but the manual seems to agree with this) was message-based as an
object-oriented system and thus was more restrictive than CLOS, as you
can't have CLOS's dispatch on multiple arguments. But LOOPS also had all
the rule-based stuff which isn't in CLOS at all, as well as the active
value things which CLOS sort-of can have, and probably other things I
forget.CommonLoops had as one of its implementations (its only
implementation?) PCL which essentially was CLOS. Most early CLOS
implementations were PCL-based I think, at least some still have major
traces of PCL in them. So CommonLoops was not an implementation of LOOPS
for CL, I think, but rather its own thing which, really, was what became
CLOS. One of the useless shards of information in my head is the name of
the machine you fetched PCL from: arisia.xerox.com. What was 'arisia'?
I've also realised I can reconstruct a list of all the PCL release names
from the archive at CMU.--timOn 11 Oct 2024, at 11:53, skaisler
***@***.***> wrote:
Comments on CLOS and CommonLoops:
CLOS is an object-based system (just like C++) and is pale shadow of the
expressive power embedded in LOOPS.
CommonLoops, as I understand it, is a CommonLisp based rwrite of LOOPS.
Neither shoulld be mentioned in the same breadth as LOOPS since this is
about Medley Interlisp.
At best, a separate mention of CommonLoops re Medley could be maded
although I have not yet worked with it.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are
receiving this because you are subscribed to this thread.Message ID:
***@***.***>
—
Reply to this email directly, view it on GitHub
<#1850 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ARRPGX5NXDNLSXAZXJZWLJ3Z3ABYFAVCNFSM6AAAAABPYTFLYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXHAZDONJWGA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
I don’t think there is a CommonLoops to play with. CommonLoops evolved into Portable CommonLoops, which evolved into CLOS (though Gregor repeatedly stated that PCL was not CLOS), which is already in Medley(*). The functionality described in the ’86 paper is quite different to what is currently in CLOS, and bears little resemblance to LOOPS.
Tim’s got it right. The various releases were named after holidays (Victoria day, Cinco de Mayo, etc). Most implementation (like ours) started with PCL, and then evolved it. Bob had a document that listed the differences between Medley and CLtL2 that he was using to implement. Moon had a document that described the differences between PCL’s MOP and CLOS that he sent to the X3J13 mailing list that all the various implementations were working through. Using the “two-working-implementations” rule, it was already in place in Lucid release 4.0 and Genera 8.0.
Loops is a message-based OOPL, and included data oriented and rules-based programming. CLOS is based on generic functions, you can do data-oriented programming with accessors on slot-value (or if you want to get really fancy via the MOP), and has no rules-based stuff at all. CLOS also has a MOP which is how you bootstrap it and then you can extend it in interesting ways.
Loops also included UI stuff like the class browser, inspector, language-specific editor functionality, and some added UI elements like gauges. The Medley implementation of CLOS includes the first 3, but none of the added UI elements. None of the UI stuff is portable across CL implementations, and is not part of the spec. Aria was supposed to implement that, but portability was not a goal and it was based on CLIM, which had its own set of issues.
Arisia was the PARC public FTP server. There was also a mailing list for discussions, which we gatewayed at OSU to usenet’s comp.lang.clos. Gregor initially ran the mailing list but eventually we moved that over to OSU too.
(*) The CLOS in Medley is really an interim state version, because Medley is CLtL1. The closer-to-final version requires CLtL2 and will not build in the current Medley.
… On Oct 11, 2024, at 1:58 PM, skaisler ***@***.***> wrote:
All:
Will need some more research in CLOS although I di use it years ago when I
was writing in CommonLisp from Allegro (old Franz).
Need to find some good documentation on CommonLoops and play with it a bit.
My comments regarding being mentioned with LOOPS still stand since we are
talking solely about Medley Interlisp.
When we get to a point that we can discuss XCL better, then we can mention
ClOS with it, and perhaps, CommonLOOPS.
Steve K.
On Fri, Oct 11, 2024 at 1:16 PM Tim Bradshaw ***@***.***>
wrote:
> I think things are a bit more complicated than this. LOOPS (from distant
> memory, but the manual seems to agree with this) was message-based as an
> object-oriented system and thus was more restrictive than CLOS, as you
> can't have CLOS's dispatch on multiple arguments. But LOOPS also had all
> the rule-based stuff which isn't in CLOS at all, as well as the active
> value things which CLOS sort-of can have, and probably other things I
> forget.CommonLoops had as one of its implementations (its only
> implementation?) PCL which essentially was CLOS. Most early CLOS
> implementations were PCL-based I think, at least some still have major
> traces of PCL in them. So CommonLoops was not an implementation of LOOPS
> for CL, I think, but rather its own thing which, really, was what became
> CLOS. One of the useless shards of information in my head is the name of
> the machine you fetched PCL from: arisia.xerox.com. What was 'arisia'?
> I've also realised I can reconstruct a list of all the PCL release names
> from the archive at CMU.--timOn 11 Oct 2024, at 11:53, skaisler
> ***@***.***> wrote:
> Comments on CLOS and CommonLoops:
>
> CLOS is an object-based system (just like C++) and is pale shadow of the
> expressive power embedded in LOOPS.
> CommonLoops, as I understand it, is a CommonLisp based rwrite of LOOPS.
> Neither shoulld be mentioned in the same breadth as LOOPS since this is
> about Medley Interlisp.
> At best, a separate mention of CommonLoops re Medley could be maded
> although I have not yet worked with it.
>
>
> —Reply to this email directly, view it on GitHub, or unsubscribe.You are
> receiving this because you are subscribed to this thread.Message ID:
> ***@***.***>
>
> —
> Reply to this email directly, view it on GitHub
> <#1850 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ARRPGX5NXDNLSXAZXJZWLJ3Z3ABYFAVCNFSM6AAAAABPYTFLYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXHAZDONJWGA>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
There's a paper linked from here which talks about the state of CommonLoops in 1986 (this is three years before I knew about PCL) which is recognisably CLOSoid in a way LOOPS isn't – it has multimethods for instance – but defmethod is defmeth and defclass is defstruct with extra options. I'd really like to know what the history was from LOOPS to that and then from that to the PCL I knew. Perhaps it's not really recoverable now.I just looked up 'arisia': it seems to be taken from the Lensman series. I don't know what made me not look it up until now!--timOn 11 Oct 2024, at 22:14, Arun Welch ***@***.***> wrote:
I don’t think there is a CommonLoops to play with. CommonLoops evolved into Portable CommonLoops, which evolved into CLOS (though Gregor repeatedly stated that PCL was not CLOS), which is already in Medley(*). The functionality described in the ’86 paper is quite different to what is currently in CLOS, and bears little resemblance to LOOPS.
Tim’s got it right. The various releases were named after holidays (Victoria day, Cinco de Mayo, etc). Most implementation (like ours) started with PCL, and then evolved it. Bob had a document that listed the differences between Medley and CLtL2 that he was using to implement. Moon had a document that described the differences between PCL’s MOP and CLOS that he sent to the X3J13 mailing list that all the various implementations were working through. Using the “two-working-implementations” rule, it was already in place in Lucid release 4.0 and Genera 8.0.
Loops is a message-based OOPL, and included data oriented and rules-based programming. CLOS is based on generic functions, you can do data-oriented programming with accessors on slot-value (or if you want to get really fancy via the MOP), and has no rules-based stuff at all. CLOS also has a MOP which is how you bootstrap it and then you can extend it in interesting ways.
Loops also included UI stuff like the class browser, inspector, language-specific editor functionality, and some added UI elements like gauges. The Medley implementation of CLOS includes the first 3, but none of the added UI elements. None of the UI stuff is portable across CL implementations, and is not part of the spec. Aria was supposed to implement that, but portability was not a goal and it was based on CLIM, which had its own set of issues.
Arisia was the PARC public FTP server. There was also a mailing list for discussions, which we gatewayed at OSU to usenet’s comp.lang.clos. Gregor initially ran the mailing list but eventually we moved that over to OSU too.
(*) The CLOS in Medley is really an interim state version, because Medley is CLtL1. The closer-to-final version requires CLtL2 and will not build in the current Medley.
On Oct 11, 2024, at 1:58 PM, skaisler ***@***.***> wrote:
All:
Will need some more research in CLOS although I di use it years ago when I
was writing in CommonLisp from Allegro (old Franz).
Need to find some good documentation on CommonLoops and play with it a bit.
My comments regarding being mentioned with LOOPS still stand since we are
talking solely about Medley Interlisp.
When we get to a point that we can discuss XCL better, then we can mention
ClOS with it, and perhaps, CommonLOOPS.
Steve K.
On Fri, Oct 11, 2024 at 1:16 PM Tim Bradshaw ***@***.***>
wrote:
> I think things are a bit more complicated than this. LOOPS (from distant
> memory, but the manual seems to agree with this) was message-based as an
> object-oriented system and thus was more restrictive than CLOS, as you
> can't have CLOS's dispatch on multiple arguments. But LOOPS also had all
> the rule-based stuff which isn't in CLOS at all, as well as the active
> value things which CLOS sort-of can have, and probably other things I
> forget.CommonLoops had as one of its implementations (its only
> implementation?) PCL which essentially was CLOS. Most early CLOS
> implementations were PCL-based I think, at least some still have major
> traces of PCL in them. So CommonLoops was not an implementation of LOOPS
> for CL, I think, but rather its own thing which, really, was what became
> CLOS. One of the useless shards of information in my head is the name of
> the machine you fetched PCL from: arisia.xerox.com. What was 'arisia'?
> I've also realised I can reconstruct a list of all the PCL release names
> from the archive at CMU.--timOn 11 Oct 2024, at 11:53, skaisler
> ***@***.***> wrote:
> Comments on CLOS and CommonLoops:
>
> CLOS is an object-based system (just like C++) and is pale shadow of the
> expressive power embedded in LOOPS.
> CommonLoops, as I understand it, is a CommonLisp based rwrite of LOOPS.
> Neither shoulld be mentioned in the same breadth as LOOPS since this is
> about Medley Interlisp.
> At best, a separate mention of CommonLoops re Medley could be maded
> although I have not yet worked with it.
>
>
> —Reply to this email directly, view it on GitHub, or unsubscribe.You are
> receiving this because you are subscribed to this thread.Message ID:
> ***@***.***>
>
> —
> Reply to this email directly, view it on GitHub
> <#1850 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ARRPGX5NXDNLSXAZXJZWLJ3Z3ABYFAVCNFSM6AAAAABPYTFLYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXHAZDONJWGA>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***>
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
As noted in PR #244, the Interlisp.org website should mention the role of LOOPS compared to other Lisp object systems like CLOS and CommonLoops. The mention may go under the Documentation page, or better yet somewhere under History such as History of Lisp or Development of Medley.
The text was updated successfully, but these errors were encountered: