From kragen@pobox.com Fri, 6 Mar 1998 15:26:42 -0500 (EST) Date: Fri, 6 Mar 1998 15:26:42 -0500 (EST) From: Kragen kragen@pobox.com Subject: Symbolics dead again? I heard a rumor from someone at a company that uses a lot of Symbolics equipment that Symbolics is bankrupt again. He says they bought a bit of equipment from them during their brief revival, but now they're not even answering their phones when called for support. But the web site is still up. What's going on? I hope Symbolics is still alive. Kragen From pisati@nichimen.com Fri, 06 Mar 1998 12:58:57 -0800 Date: Fri, 06 Mar 1998 12:58:57 -0800 From: Luca Pisati pisati@nichimen.com Subject: Symbolics dead again? --------------9A23DE9FD0737DAF491809DF Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Kragen wrote: > I heard a rumor from someone at a company that uses a lot of Symbolics > equipment that Symbolics is bankrupt again. He says they bought a bit > of equipment from them during their brief revival, but now they're not > even answering their phones when called for support. > > But the web site is still up. > > What's going on? I hope Symbolics is still alive. > > Kragen Yes, they send an announcement on SLUG mailing list. BTW: where's the web site ? -- Luca Pisati Manager of Graphics Software Voice: (310) 577-0518 Nichimen Graphics Fax: (310) 577-0577 12555 W. Jefferson #285 EMail: mailto:pisati@nichimen.com Los Angeles, CA 90066 Web: http://www.nichimen.com --------------9A23DE9FD0737DAF491809DF Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Kragen wrote:
I heard a rumor from someone at a company that uses a lot of Symbolics
equipment that Symbolics is bankrupt again.  He says they bought a bit
of equipment from them during their brief revival, but now they're not
even answering their phones when called for support.

But the web site is still up.

What's going on?  I hope Symbolics is still alive.

Kragen

 Yes, they send an announcement on SLUG mailing list.

BTW: where's the web site ?

--
Luca Pisati
Manager of Graphics Software    Voice:  (310) 577-0518
Nichimen Graphics               Fax:    (310) 577-0577
12555 W. Jefferson #285         EMail:  mailto:pisati@nichimen.com
Los Angeles, CA 90066           Web:    http://www.nichimen.com
  --------------9A23DE9FD0737DAF491809DF-- From kragen@pobox.com Fri, 6 Mar 1998 16:09:31 -0500 (EST) Date: Fri, 6 Mar 1998 16:09:31 -0500 (EST) From: Kragen kragen@pobox.com Subject: Symbolics dead again? On Fri, 6 Mar 1998, Luca Pisati wrote: > Kragen wrote: > > I heard a rumor from someone at a company that uses a lot of Symbolics > > equipment that Symbolics is bankrupt again. > > Yes, they send an announcement on SLUG mailing list. > > BTW: where's the web site ? http://www.symbolics.com/ redirects you to the appropriate place. Kragen From cwg-dated-635361b7ee90998b@DeepEddy.Com Fri, 06 Mar 1998 15:12:08 -0600 Date: Fri, 06 Mar 1998 15:12:08 -0600 From: Chris Garrigues cwg-dated-635361b7ee90998b@DeepEddy.Com Subject: Symbolics dead again? --==_Exmh_1410900432P Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" Content-Id: <14957.889218727.0@DeepEddy.Com> ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <14957.889218727.1@DeepEddy.Com> > From: kragen@pobox.com (Kragen) > Date: Fri, 6 Mar 1998 15:26:42 -0500 (EST) > > I heard a rumor from someone at a company that uses a lot of Symbolics > equipment that Symbolics is bankrupt again. He says they bought a bit > of equipment from them during their brief revival, but now they're not > even answering their phones when called for support. > > But the web site is still up. > > What's going on? I hope Symbolics is still alive. Got this in the mail a few days ago: ------- =_aaaaaaaaaa0 Content-Type: message/rfc822 Content-ID: <14957.889218727.2@DeepEddy.Com> Content-Description: forwarded message >From cstacy@life.ai.mit.edu Tue Mar 03 20:19:17 1998 Return-Path: Delivered-To: cwg-sortedlists-edu-mit-ai-life-cstacy@DeepEddy.Com Received: (qmail 6570 invoked by uid 500); 3 Mar 1998 20:19:17 -0000 Delivered-To: cwg@DeepEddy.Com Received: (qmail 6565 invoked by uid 0); 3 Mar 1998 20:19:15 -0000 Received: from life.ai.mit.edu (128.52.32.80) by backstroke with SMTP; 3 Mar 1998 20:19:15 -0000 Received: from arl-img-9.compuserve.com (arl-img-9.compuserve.com [149.174.217.139]) by life.ai.mit.edu (8.8.8/AI1.22/ai.master.life:1.23) with ESMTP id PAA18763 for ; Tue, 3 Mar 1998 15:11:14 -0500 (EST) Received: (from root@localhost) by arl-img-9.compuserve.com (8.8.6/8.8.6/2.10) id PAA25510; Tue, 3 Mar 1998 15:10:41 -0500 (EST) Date: Tue, 3 Mar 1998 15:09:43 -0500 From: "David K. Schmidt" Subject: Status of Symbolics Sender: "David K. Schmidt" To: Lisp User Group , SLUG mail , The Usual Suspects Message-ID: <199803031510_MC2-3565-9BAB@compuserve.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline In January Symbolics laid off the last 3 employees. After 10 years with Symbolics and two unsuccessful attempts to buy the assets, I am off to other, yet to be determined, endeavors. My last year and a half as President, CEO, CFO, Director of Sales and East Coast Customer Service Engineer was without a doubt the most interesting. I want to thank all those loyal Symbolics customers who helped keep the company going well pa= st its perdicted demise. = In anticipation of a number of questions that people might have, I am providing the following information. The person or persons who made the successful offer to buy the Symbolics assets are using a Boston law firm, Ropes and Gray (617-951-7000), to handle the purchase. I have heard rumors that Andrew Topping is involve= d in the deal, but I have no information about him. I do not know what the= ir plans are and do not know whether they will offer hardware and/or softwa= re maintenance. = The Symbolics phone numbers in Chatsworth, CA are still in operation, but= no one is answering the phone and I am not sure whether anyone is checkin= g the messages. Princeton Capital Finance Co. (PrinCap), the current owner of the Symboli= cs assets, told me they were shutting down their operation on Friday, 2/27. = Their phone number (609-275-7100) is supposed to remain in service as a voice mail box. I was told that Steve Gander had been tasked by ABN-AMRO= Bank to hold Symbolics together until the purchase is closed. His curren= t E-mail address is gander@dinar.princap.com, but that will change after th= ey turn off the PrinCap computers in a month or so. The only mailing addres= s left for Symbolics is P.O. Box 389, Princeton Junction, NJ 80530 Ron Drake is the representative of ABN-AMRO Bank who is supervising the shutdown of PrinCap. He appears to have significant influence over what happens to the Symbolics assets and is directing Steve Gander on what he = is allowed to do for Symbolics maintenance customers. His number is 212-891-0621. This is the only number for the current owners where you will get a live person at the other end of the phone. Before I left, the second release of Open Genera for DEC Alpha workstatio= ns was ready to go out for CD duplication. Genera 8.5 for Ivory workstation= s was close to completion, but had a few bugs left to work out. I do not know what the future of these two products will be. For those people with hardware problems while Symbolics is in a state of limbo, I will be happy to try to assist you in any way I can. If you need= help or have other questions, please feel free to contact me by E-mail at= dkschmidt@compuserve.com or by phone at 703-455-0430. DAVID K. SCHMIDT ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <14957.889218727.3@DeepEddy.Com> -- Chris Garrigues Deep Eddy Internet Consulting +1 512 432 4046 609 Deep Eddy Avenue O- http://www.DeepEddy.Com/~cwg/ Austin, TX 78703-4513 My email address is an experiment in SPAM elimination: If it starts with cwg-dated..., it is *only* valid for 2 weeks. If it starts with cwg-sender..., *only* the person the message was intended for can reply to it. ------- =_aaaaaaaaaa0-- --==_Exmh_1410900432P Content-Type: application/pgp-signature -----BEGIN PGP MESSAGE----- Version: 2.6.2 iQB1AwUBNQBmqJaQnaaFII2dAQGgOwMAoL2x2UvF0Zgcks4Mkr+0kkg4UqElz2IK OFHUEaZZCeZQDO2pOjs9lNBTiifPXBUIq6/3KCsEs14rL2oy34Hmij9y0rdy8G61 yw/u8WJE9kV027VH9Ys+TQH0IMjtxPRx =OcJ2 -----END PGP MESSAGE----- --==_Exmh_1410900432P-- From pisati@nichimen.com Fri, 06 Mar 1998 13:19:44 -0800 Date: Fri, 06 Mar 1998 13:19:44 -0800 From: Luca Pisati pisati@nichimen.com Subject: [Fwd: Status of Symbolics] This is a multi-part message in MIME format. --------------69EAC96ADCE99C51A1F92653 Content-Type: multipart/alternative; boundary="------------18718F350A4297E914C568C5" --------------18718F350A4297E914C568C5 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Here's the announcement: -- Luca Pisati Manager of Graphics Software Voice: (310) 577-0518 Nichimen Graphics Fax: (310) 577-0577 12555 W. Jefferson #285 EMail: mailto:pisati@nichimen.com Los Angeles, CA 90066 Web: http://www.nichimen.com --------------18718F350A4297E914C568C5 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Here's the announcement:
--
Luca Pisati
Manager of Graphics Software    Voice:  (310) 577-0518
Nichimen Graphics               Fax:    (310) 577-0577
12555 W. Jefferson #285         EMail:  mailto:pisati@nichimen.com
Los Angeles, CA 90066           Web:    http://www.nichimen.com
  --------------18718F350A4297E914C568C5-- --------------69EAC96ADCE99C51A1F92653 Content-Type: message/rfc822 Content-Transfer-Encoding: 7bit Content-Disposition: inline Return-Path: Received: from marina.nichimen.com by biscayne.nichimen.com (4.1/SMI-4.1) id AA29046; Tue, 3 Mar 98 13:32:56 PST Received: from Sunset.AI.SRI.COM (Sunset.AI.SRI.COM [128.18.61.76]) by marina.nichimen.com (8.6.9/8.6.9) with ESMTP id NAA27425 for ; Tue, 3 Mar 1998 13:30:19 -0800 Received: by Sunset.AI.SRI.COM (8.8.7/SMI-4.1) id MAA25159 for slug-internal; Tue, 3 Mar 1998 12:12:17 -0800 (PST) Received: from arl-img-9.compuserve.com by Sunset.AI.SRI.COM (8.8.7/SMI-4.1) id MAA25150 for ; Tue, 3 Mar 1998 12:12:09 -0800 (PST) Received: (from root@localhost) by arl-img-9.compuserve.com (8.8.6/8.8.6/2.10) id PAA25510; Tue, 3 Mar 1998 15:10:41 -0500 (EST) Date: Tue, 3 Mar 1998 15:09:43 -0500 From: "David K. Schmidt" Subject: Status of Symbolics Sender: "David K. Schmidt" To: Lisp User Group , SLUG mail , The Usual Suspects Message-Id: <199803031510_MC2-3565-9BAB@compuserve.com> Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=ISO-8859-1 Content-Disposition: inline In January Symbolics laid off the last 3 employees. After 10 years with Symbolics and two unsuccessful attempts to buy the assets, I am off to other, yet to be determined, endeavors. My last year and a half as President, CEO, CFO, Director of Sales and East Coast Customer Service Engineer was without a doubt the most interesting. I want to thank all those loyal Symbolics customers who helped keep the company going well pa= st its perdicted demise. = In anticipation of a number of questions that people might have, I am providing the following information. The person or persons who made the successful offer to buy the Symbolics assets are using a Boston law firm, Ropes and Gray (617-951-7000), to handle the purchase. I have heard rumors that Andrew Topping is involve= d in the deal, but I have no information about him. I do not know what the= ir plans are and do not know whether they will offer hardware and/or softwa= re maintenance. = The Symbolics phone numbers in Chatsworth, CA are still in operation, but= no one is answering the phone and I am not sure whether anyone is checkin= g the messages. Princeton Capital Finance Co. (PrinCap), the current owner of the Symboli= cs assets, told me they were shutting down their operation on Friday, 2/27. = Their phone number (609-275-7100) is supposed to remain in service as a voice mail box. I was told that Steve Gander had been tasked by ABN-AMRO= Bank to hold Symbolics together until the purchase is closed. His curren= t E-mail address is gander@dinar.princap.com, but that will change after th= ey turn off the PrinCap computers in a month or so. The only mailing addres= s left for Symbolics is P.O. Box 389, Princeton Junction, NJ 80530 Ron Drake is the representative of ABN-AMRO Bank who is supervising the shutdown of PrinCap. He appears to have significant influence over what happens to the Symbolics assets and is directing Steve Gander on what he = is allowed to do for Symbolics maintenance customers. His number is 212-891-0621. This is the only number for the current owners where you will get a live person at the other end of the phone. Before I left, the second release of Open Genera for DEC Alpha workstatio= ns was ready to go out for CD duplication. Genera 8.5 for Ivory workstation= s was close to completion, but had a few bugs left to work out. I do not know what the future of these two products will be. For those people with hardware problems while Symbolics is in a state of limbo, I will be happy to try to assist you in any way I can. If you need= help or have other questions, please feel free to contact me by E-mail at= dkschmidt@compuserve.com or by phone at 703-455-0430. DAVID K. SCHMIDT --------------69EAC96ADCE99C51A1F92653-- From joswig@lavielle.com Fri, 6 Mar 1998 22:20:49 +0100 Date: Fri, 6 Mar 1998 22:20:49 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Symbolics dead again? At 12:58 Uhr -0800 06.03.1998, Luca Pisati wrote: > Kragen wrote: > >I heard a rumor from someone at a company that uses a lot of Symbolics >equipment that Symbolics is bankrupt again. He says they bought a bit >of equipment from them during their brief revival, but now they're not >even answering their phones when called for support. > >But the web site is still up. > >What's going on? I hope Symbolics is still alive. > >Kragen > > Yes, they send an announcement on SLUG mailing list. Let's hope that there will be another future. > >BTW: where's the web site ? -- www.symbolics.com Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From dmason@scs.Ryerson.CA Sun, 8 Mar 1998 12:07:28 -0500 Date: Sun, 8 Mar 1998 12:07:28 -0500 From: Dave Mason dmason@scs.Ryerson.CA Subject: Symbolics dead again? Kragen writes: > > > http://www.symbolics.com/ redirects you to the appropriate place. > Me either, now. They must have turned it off today. Worked for me, just now: Sunday 12:06 ../Dave From ChrisB@ThePla.net Mon, 09 Mar 1998 06:32:01 +1100 Date: Mon, 09 Mar 1998 06:32:01 +1100 From: Chris Bitmead ChrisB@ThePla.net Subject: Symbolics dead again? > What's going on? I hope Symbolics is still alive. Does it matter if Symbolics is dead, since we still have Microsoft Windows?? :-( Seriously, I keep wondering how long it is going to take the software industry to catch up to where Symbolics was many years ago. So has anybody out there done anything since this mailing list was started? -- Chris Bitmead http://www.thepla.net/~chrisb From ChrisB@Ans.Com.Au Mon, 09 Mar 1998 16:11:34 +1100 Date: Mon, 09 Mar 1998 16:11:34 +1100 From: Chris Bitmead ChrisB@Ans.Com.Au Subject: (no subject) subscribe lispos From tf@another.gun.de Mon, 9 Mar 1998 09:54:40 +0100 Date: Mon, 9 Mar 1998 09:54:40 +0100 From: Thomas Fischbacher tf@another.gun.de Subject: Symbolics dead again? On 08.03.1998 [19:32:01] [lispos-request@math.gatech.edu] wrote the following lines about "Re: Symbolics dead again?" > So has anybody out there done anything since this mailing list > was started? Yes, I'd say so. I currently have: * Some extensions for GCL for rudimentary libX11 and libXpm support, MUD-style TCP/IP servers as well as an implementation of what is called open3() in perl. * A portable C library interface in the form of a bunch of macros that expand to the corresponding interfacing mechanisms of different LISPs. (Currently supported: CMU CL / Linux and ACL / Linux) * Some networking functions on top of this. (I didn't touch that for quite some time and it's still quite buggy -- getsockopt() was the last function I implemented.) * More or less 1:1 interfaces to libX11 functions for my LISP->C package (Why this if there is CLX? Simple answer: libraries like libGL want libX11 structures.) * Rudimentary OpenGL support, also on top of my LISP->C interface. (The main problem here is to provide a more usable interface to GLX functionality than GLX itself. I've written a minimal test function that displays a lighted octahedron which can be rotated by pressing a mouse button. The fine thing is that the very same code works with ACL and CMUCL.) * A small function showing how lesstif could be used from within LISP. * Fast-fourier transformations (1d, 2d, 3d -- written last week). Most of that stuff still is in quite an early stage; there are still some bugs to be fixed, documentation is virtually nonexistent, and there are still many opportunities for performance improvements. However, if anyone wants to help me with one of those projects, feel free to send me a short message. :-) -- regards, Thomas Fischbacher - tf@another.gun.de tf@physik.tu-muenchen.de From crippenj@saturn.math.uaa.alaska.edu Mon, 16 Mar 1998 19:18:55 -0900 (AKST) Date: Mon, 16 Mar 1998 19:18:55 -0900 (AKST) From: James A. Crippen crippenj@saturn.math.uaa.alaska.edu Subject: SchemeOS I've been planning the "SchemeOS", a unix-compatible OS based around the Flux toolkit and scsh, the SCheme SHell. It looks fairly promising, but I haven't started coding anything yet. I like the idea of scheme somewhat better than Lisp because it's smaller, easier to implement, and scsh has a fairly complete POSIX-compatible set of system calls. Here's the url for scsh: http://www-swiss.ai.mit.edu/scsh/scsh.html Need more people than just me, though, so think about it, mail me with your thoughts. cheers, james -- James A. Crippen, CS/Math tenured undergrad <> \ If the future isn't what it used to be, does that mean that the past /\ is subject to change in times to come? / \ From cmh@greendragon.com Wed, 18 Mar 1998 03:31:32 -0600 Date: Wed, 18 Mar 1998 03:31:32 -0600 From: Chris Hanson cmh@greendragon.com Subject: Minimum set of primitives? What set of primitives would absolutely need to be supported for a sort of "proto-Lisp", which could be used as an implementation language for a more full-featured Lisp (for example, Scheme)? I remember something about there being seven primitives... From andrey@custis.dol.ru Wed, 18 Mar 1998 13:20:01 +0300 Date: Wed, 18 Mar 1998 13:20:01 +0300 From: Andrey Taranov andrey@custis.dol.ru Subject: Minimum set of primitives? Hello all Chris Hanson wrote: > What set of primitives would absolutely need to be supported for a sort of > "proto-Lisp", which could be used as an implementation language for a more > full-featured Lisp (for example, Scheme)? > > I remember something about there being seven primitives... That's a rather theoretical question, I suppose. If we should ever use such an approach, then we'd better look at something practical of the same flavour. As a good ("good" is my private opinion) example of such a thing you can look at the design of Scheme48. It is bootstrapped from scratch using a special subset of Scheme (not a subset strictly, because it is tailored in some way to be easily translated into C). WBR, Andrey Taranov From dmason@scs.Ryerson.CA Wed, 18 Mar 1998 08:00:04 -0500 Date: Wed, 18 Mar 1998 08:00:04 -0500 From: Dave Mason dmason@scs.Ryerson.CA Subject: Minimum set of primitives? Chris Hanson wrote: > I remember something about there being seven primitives... In terms of special forms (syntax), all of Scheme is syntactic sugar for: lambda, a conditional (case is my preference), set!, quote To create any definitions, you will have to add define. And if you want to be able to define the rest of the syntax using macros, you'll need define-macro (or equivalently, a function that returns a value that define recognizes as a macro). Some scheme compilers (including Steele's Rabbit, and my work) convert everything into this subset and then optimize the bejezuz out of it. In terms of primitive functions, there are probably at least 30, even if you were being rigidly minimalist (for very little benefit, I think). A minimum set: eq? = < + - * / quotient car cdr cons truncate set-car! set-cdr! inexact->exact (and other transformers) string functions (or a way to get inside a string) vector functions (at least a minimal subset of them) pair? list? number? procedure? (you could define most predicates in terms of a get-tag, or some-such, function) some more that I'm probably forgetting. ../Dave From davies@pobox.com Wed, 18 Mar 1998 07:31:55 -0700 Date: Wed, 18 Mar 1998 07:31:55 -0700 From: Byron Davies davies@pobox.com Subject: Minimum set of primitives? It would be hard to do without I/O and the ability to create primitive, efficient representations, such as for numbers. Byron >Chris Hanson wrote: >> I remember something about there being seven primitives... > >In terms of special forms (syntax), all of Scheme is syntactic sugar for: > lambda, a conditional (case is my preference), set!, quote > >To create any definitions, you will have to add define. And if you >want to be able to define the rest of the syntax using macros, you'll >need define-macro (or equivalently, a function that returns a value >that define recognizes as a macro). Some scheme compilers (including >Steele's Rabbit, and my work) convert everything into this subset and >then optimize the bejezuz out of it. > >In terms of primitive functions, there are probably at least 30, even >if you were being rigidly minimalist (for very little benefit, I >think). > >A minimum set: > eq? = < + - * / quotient car cdr cons truncate set-car! set-cdr! > inexact->exact (and other transformers) > string functions (or a way to get inside a string) > vector functions (at least a minimal subset of them) > pair? list? number? procedure? (you could define most predicates in > terms of a get-tag, or some-such, function) > some more that I'm probably forgetting. > >../Dave From yoda@isr.ist.utl.pt Wed, 18 Mar 1998 16:22:06 +0100 (GMT+0100) Date: Wed, 18 Mar 1998 16:22:06 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Minimum set of primitives? >>>>> "Chris" == Chris Hanson writes: Chris> What set of primitives would absolutely need to be supported for a sort of Chris> "proto-Lisp", which could be used as an implementation language for a more Chris> full-featured Lisp (for example, Scheme)? From the theoretical point of view, one can go as low as a Turing machine, and assert that a Turing machine can implement any language (in fact, any computable function). The question here is different. I believe there are several sets of primitives on top of which any lisp-like language can be implemented. For instance, you can implement an "if" construct using a "case", or a "case" using "if"'s. Of course some sets must be smaller than others, but our concern here also includes efficiency. The minimal set may not be the most efficient one. Of course it isn't. But we are not interested in a very complex set of primitives. It seems to me that the pre-scheme, on top of which scheme48 is implemented, is too complex to be easly used to build more complex languages. Simplicity and efficiency are the two main concerns here, IMHO. The resulting set may not be minimal in a strict sense. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From kragen@pobox.com Wed, 18 Mar 1998 12:40:38 -0500 (EST) Date: Wed, 18 Mar 1998 12:40:38 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Wed, 18 Mar 1998, Rodrigo Ventura wrote: > >>>>> "Chris" == Chris Hanson writes: > > Chris> What set of primitives would absolutely need to be supported for a sort of > Chris> "proto-Lisp", which could be used as an implementation language for a more > Chris> full-featured Lisp (for example, Scheme)? > > From the theoretical point of view, one can go as low as a > Turing machine, and assert that a Turing machine can implement any > language (in fact, any computable function). The lambda calculus is equivalent to a Turing machine, and it's a lot easier to use in Lisp :) The theoretical point of view is not very useful. Here's an example of why: If you have lambda, cons, car, cdr, some conditional (cond, if, what have you) and null?, (oh, and some way of defining a function -- I'll use the Scheme `define', with a single cell for either function or value) you can implement arithmetic: ; Base-1 arithmetic with the lambda calculus. Uses only cons, car, cdr, ; if, null? and define. Uses quote for the restricted purpose of quoting ; the empty list. ; Kragen Sitaker, 1998-03-18 (define nil '()) (define #f (null? (cons nil nil))) (define #t (null? nil)) (define zero nil) (define incr (lambda (x) (cons nil x))) (define decr (lambda (x) (cdr x))) (define zero? (lambda (x) (null? x)) (define plus (lambda (a b) (if (zero? a) b (plus (decr a) (incr b))))) ; doesn't work if b>a; applies cdr to (). The result of this ; depends on your Lisp/Scheme system. It's OK in Lisp (returns nil, ; which means the result is zero if b>a; Scheme forbids it. Most ; Scheme implementations will probably do the same as Lisp. ; SIOD does. (define minus (lambda (a b) (if (zero? b) a (minus (decr a) (decr b))))) (define arith-equal? (lambda (a b) (if (zero? a) (zero? b) (if (zero? b) #f (arith-equal? (decr a) (decr b)))))) (define not (lambda (a) (if a #f #t)) (define arith-greater? (lambda (a b) (if (zero? a) #f (if (zero? b) (not (zero? a)) (arith-greater? (decr a) (decr b)))))) (define arith-less? (lambda (a b) (arith-greater? b a)) (define multiply (lambda (a b) (if (zero? a) zero (plus b (multiply (decr a) b))))) etc. > Of course some sets must be smaller > than others, but our concern here also includes efficiency. The > minimal set may not be the most efficient one. Of course it isn't. Agreed! Would you really want to use a Lisp that implemented arithmetic like the above? Probably not, for two reasons: 1. It's a lot slower than the native machine methods to do the same thing. 2. Its slowness grows as the numbers get bigger. It would be better to use base-2 or something. #1 is a little disturbing. It implies that the "minimal" set depends on the machine you're using. If your machine is an i386, it has instructions to do BCD arithmetic, for example. Assuming some users of your Lisp have a use for BCD arithmetic, you really ought to provide them with access to the underlying machine's BCD arithmetic capabilities, instead of forcing them to implement their own in Lisp. (Not many people use BCD arithmetic these days, of course, but there may be other features of your processor that you need to find some way of exposing for efficiency: double-length multiply results and dividends, carry flags for multiple-precision arithmetic, vector instructions, quick multiplies and divides by powers of two, etc. There may even be features you need to find some way of exposing for expressiveness, such as SMP inter-processor synchronization facilities.) #2 is simply an accident of the particular simple example above, and is not really important for the larger discussion. OK, enough pontificating for now :) Kragen From lynbech@daimi.aau.dk Thu, 19 Mar 1998 09:16:05 +0100 (CET) Date: Thu, 19 Mar 1998 09:16:05 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Minimum set of primitives? I am not all together convinced that we (that is in the context of a lisp OS) should think about primitives such as define or case/if. In my vision, the lisp OS should provide more basic services allowing easy and efficient porting of *existing* implementations. Since CMUCL or GUILE Scheme already has done efficient implementations of all this, I see no reason to reimplement it. So what do I mean by "basic services"? Well, this is of course common infrastructure such as a filesystem, other I/O and memory management. The main challenge here would be to lay out a system that would be usefull to (and thus allow the integration of) several different implementations of different kinds of lisps. One good example will be memory management. Today, (UNIX) implementations simply requests chunks of memory and implement their own memory management. But the Truly Cool Lispos (TM) would provide a basic set of types (such as `cell', `integer', `float' and `string') and allow an environment to request for instance a single cons cell. All management (including GC) would remain the responsibility of the OS. Taking any one lisp implementation, combine it with the Fluke kit, and hack up the missing parts would probably be a rather easy road to soemthing that could boot a machine up into lisp, but to me, the real promise of a lisp *OS* would be the ability to *integrate* wildly different implementations into one coherent working environment. Perhaps I am just dreaming :-) ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From crippenj@saturn.math.uaa.alaska.edu Thu, 19 Mar 1998 04:24:00 -0900 (AKST) Date: Thu, 19 Mar 1998 04:24:00 -0900 (AKST) From: James A. Crippen crippenj@saturn.math.uaa.alaska.edu Subject: Minimum set of primitives? I was just thinking, one of the best places to see what a minimum set of primitives needed for a scheme/lispish language is the end of R4RS, in the semantic definitions. It's a bit hard if you don't understand the symbology, but get past that and you'll see the outline for the entire language is based off of several simple primitives, the rest are all syntactic extensions. It's very comprehensive. Go read the R4RS. cheers, james -- James A. Crippen, CS/Math tenured undergrad <> \ If the future isn't what it used to be, does that mean that the past /\ is subject to change in times to come? / \ From chrisb@ans.com.au Thu, 19 Mar 1998 14:08:06 +0000 Date: Thu, 19 Mar 1998 14:08:06 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? Christian Lynbech on satellite wrote: > So what do I mean by "basic services"? Well, this is of course common > infrastructure such as a filesystem, other I/O and memory > management. I personally want to see a Lisp OS without a filesystem. Every object that is created is part of the permanent state of the universe. You want to store something? Don't bother. It's stored already. Maybe behind the scenes it is implemented as an object database. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From kragen@pobox.com Thu, 19 Mar 1998 09:14:47 -0500 (EST) Date: Thu, 19 Mar 1998 09:14:47 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Thu, 19 Mar 1998, Christian Lynbech on satellite wrote: > I am not all together convinced that we (that is in the context of a > lisp OS) should think about primitives such as define or case/if. In > my vision, the lisp OS should provide more basic services allowing > easy and efficient porting of *existing* implementations. Since CMUCL > or GUILE Scheme already has done efficient implementations of all > this, I see no reason to reimplement it. I like your idea. > So what do I mean by "basic services"? Well, this is of course common > infrastructure such as a filesystem, other I/O and memory > management. I'm not convinced that a filesystem is necessary. If, instead, the OS simply lets you map disk into memory, periodically saving the entire contents of virtual memory, that would be sufficient, efficient, and much more flexible. KeyKOS worked this way. The question is, basically, what should we put in the kernel? We should put in things that it is useful to share between different programs. Memory management with garbage collection is obviously a big win to share between programs -- it lets you do IPC by simply passing a single pointer, and lets you do security by running threads in barren environments. Preemptive multithreading is obviously a big win -- it's necessary to make sure that one endless loop can't lock up the system. Secure multiplexing of I/O is a big win -- it means that your programs can access I/O devices without being worried that other threads will be accessing those devices at the same time. What else is needed? Anything? What else would be much more useful in the kernel than anywhere else? > Taking any one lisp implementation, combine it with the Fluke kit, I'm afraid I don't know what the Fluke kit is. Is this a FAQ? > and hack up the missing parts would probably be a rather easy road to > soemthing that could boot a machine up into lisp, but to me, the real > promise of a lisp *OS* would be the ability to *integrate* wildly > different implementations into one coherent working environment. That would be nice. It might not even be necessary, though. The primary usefulness of a particular implementation of Lisp is that certain Lisp programs run happily on it. If we were to build a Lisp OS that was flexible enough, we could easily implement different flavors of Lisp on top of it. What are other people's thoughts on the work involved with each approach? Kragen From chrisb@ans.com.au Thu, 19 Mar 1998 15:00:33 +0000 Date: Thu, 19 Mar 1998 15:00:33 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? > What else is needed? Anything? What else would be much more useful in the > kernel than anywhere else? Is it useful to think in terms of "in the kernel" and "out of the kernel" ? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From ggleason@tvi.cc.nm.us Thu, 19 Mar 1998 16:09:28 +0100 Date: Thu, 19 Mar 1998 16:09:28 +0100 From: Gavin E. Gleason ggleason@tvi.cc.nm.us Subject: Benevolent Dictatorship >On a purely social level, I think that any project trying to design an >operating systems from scratch over the Internet is likely to fail. >Copying an OS is simple: you know what you are trying to achieve and you >just argue about the ways to achieve it. Designing one is probably next >to impossible, unless the group has a "benevolent dictator" that just >says: "decision made, move on to the next question." Even so, the >dictator's view of the "perfect operating system" will probably turn off >hundreds of potential volunteers. It is much better to clone something >that someone else has already designed (as in Linux). > Paul Prescod - http://itrc.uwaterloo.ca/~papresco Well that certainly is encouraging! :) You do have a point though. There is no current precedent for a project such as this. The thing that comes closest is probably the GNU HURD (which has taken a decade to become a useable system). Even then there is a formal organization that is supporting it. I suppose even Mnemonic (the web browser project) might be classified in this "novel" internet project catagory. Maybe that means that we must also take a radical approach to the way in which we co-ordinate our project. From what I've seen so far there is not a massive divergence in ideas about "what" should be in the lisp OS. Most of the divergence is in the "how". We will need some way of deciding how to procede given disagreement as to the next step if we cannot agree unanimously. I think that it is possible that the need/want for a lisp OS will supercede our ideas about the "best" way to proceed. Maybe we should use some sort of parlimentary procedure, and have an elected chairman. We could put motions on the table as to the steps as they become pertinent. Then we could vote as to which would be the best way to continue. I don't think that a dictatorship is any more neccassary in this project then it is in any government. It seems to me that this would be a rational approach to the problem. Of course all of this may be uneccassary if we can all agree. But I have a feeling that the initial stages may be the most difficult to agree opon. I have some suggestions as to the "hard" problems that need to be decided. They are as follows: 1. scheme or lisp. Yikes! Thats a dangerous one :). I don't personally care either way. Scheme is definitely cleaner, and it would seem ideal as a starting point for a clean and radically different OS. Lisp on the other hand has everything already built into the language. I'll lean whatever way seems most popular in the interest of getting this show on the road. 2. Bootstraping. This is a particularly difficult question, as the FLUX OS toolkit is unavailable. I think that we should open the table for motions on options in this catagory 3. Abstractions. Finding the most basic level of abstractions that we intend to provide in our system will be difficult because we will have to come up with a ideas that will be useful in practice. This will probably be a dynamic variable that changes as coding and practical issues arise, but we should at least have some idea of where we are going. There are certainly more, but I think that these questions should be resolved first. Unless someone can think of problems of a more pressing nature. :) Gavin E. Gleason From kragen@pobox.com Thu, 19 Mar 1998 10:35:18 -0500 (EST) Date: Thu, 19 Mar 1998 10:35:18 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Thu, 19 Mar 1998, Chris Bitmead wrote: > > What else is needed? Anything? What else would be much more useful in the > > kernel than anywhere else? > > Is it useful to think in terms of "in the kernel" and "out of the > kernel" ? Well, in some cases. For example, if we want to implement system-wide garbage collection, we have to guarantee that, at some level of granularity, all pointers between objects are known to the garbage collector. The easiest way to handle this on a fine granularity (the usual Lisp way) is to make data types `holy' and inviolable -- only special kernel code has the right to do pointer arithmetic, for instance, and no userland programs. Ideally, we could get away from this evil distinction between kernelland and userland. I don't know how, though. All I've ever seen is moving the barrier around and changing the granularity -- on a Lisp machine, if I understand correctly, the `kernel' was the hardware itself, which made sure pointers weren't stored as integers and vice versa, and did bounds-checking on arrays. (Is this correct?) When something is `in the kernel', it is something user programs cannot avoid using in some circumstances. Access to I/O and to memory are two examples. Kragen From yoda@isr.ist.utl.pt Thu, 19 Mar 1998 18:09:20 +0100 (GMT+0100) Date: Thu, 19 Mar 1998 18:09:20 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Minimum set of primitives? forget theoretica questions at this level, because here resides the bottleneck of the whole system. A LISP virtual machine is thus needed, nothing new here. I think that there must be two sub-sets of primitives: a sub-set of near-direct assembly machine instructions, like adding, multiplying, bit-manipulation, memory addressing, I/O, etc. I guess that it is unavoidable to do something like a JIT compiler. LispOS can not rely on a interpreted VM. The second sub-set contains all higher level functions, like GC, memory management, persistence of LISP objects, etc. These must be implemented as sub-rotine calls. BTW, I liked the idea of banning the filesystem. It's sort of using the physical memory as a huge cache to lisp objects all residing in disk. Of course a much more complex package system (or namespace) must be created, to incorporate all flexibility current filesystems support. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Thu, 19 Mar 1998 19:22:53 +0100 (GMT+0100) Date: Thu, 19 Mar 1998 19:22:53 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Minimum set of primitives? >>>>> "Kragen" == Kragen writes: Kragen> - nonvolatile media can be removed and moved to another machine. It's Kragen> useful if they can be read on that other machine. This means being Kragen> careful about cross-device links. This is especially useful in the Kragen> case of floppy disks, Zip disks, Jaz drives, etc., but even ordinary Kragen> hard drives are important. Hum, that gives rise to a non-trivial question: how to handle references, gc and removable media in an hybrid memory/disk system? I mean, what happens if referenced objects are lost? How "ls -la" things would work on such a system? Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From kragen@pobox.com Thu, 19 Mar 1998 14:00:12 -0500 (EST) Date: Thu, 19 Mar 1998 14:00:12 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Thu, 19 Mar 1998, Rodrigo Ventura wrote: > BTW, I liked the idea of banning the filesystem. It's sort of > using the physical memory as a huge cache to lisp objects all residing > in disk. Of course a much more complex package system (or namespace) > must be created, to incorporate all flexibility current filesystems > support. I don't think that's really necessary. All you need is a single kind of obarray that maps atoms to objects; some of the objects can be obarrays. This gives you all the flexibility of the Unix filesystem, and comsiderably more, as well, and you need to implement *some* kind of obarray anyway, in order to be able to run any programs. The use-physical-memory-as-a-huge-cache idea is quite common in self-hosted Lisp systems. It's called a `single-level store'. KeyKOS also does this. By the way, it is useful (especially with RAID systems, especially with RAID4, and especially with the large read caches that are becoming increasingly common) to make the mapping of virtual memory to disk blocks rather dynamic. This way, a particular piece of data may be stored in more than one place on the disk, which allows for atomic checkpointing -- first, write all the dirty pages, then, point the 'latest-checkpoint' pointer at the new checkpoing. Also, this improves disk performance by an order of magnitude. Some things that mar the beautiful abstraction: - nonvolatile media can be removed and moved to another machine. It's useful if they can be read on that other machine. This means being careful about cross-device links. This is especially useful in the case of floppy disks, Zip disks, Jaz drives, etc., but even ordinary hard drives are important. - garbage collection requires some care if it is to be efficient. - nonvolatile media sometimes fail. It is useful if one disk failing doesn't make the data on the rest useless. This is connected with the removability property. - some applications require durability -- that is, once they receive and acknowledge a piece of data, they're expected not to lose it, even if the machine gets unplugged immediately. The need for this is obviously strongest in the case of business applications, but it's nice even for personal-use applications. This means that applications have to have some control over when their data gets written to disk. I'm not familiar with how historical Lisp systems or KeyKOS handled these problems, but I suspect they are solved problems. Perhaps my elders here can point us at some documentation. (Well, KeyKOS handles the last one by offering a 'journal page' system call, which forces a page to be written to disk immediately. Database servers can force a write on the page containing their latest log entry after each time they make a log entry. I'm not clear on how a Lisp system could handle this.) Kragen From espinosa@kestrel.edu Thu, 19 Mar 1998 11:11:25 -0800 Date: Thu, 19 Mar 1998 11:11:25 -0800 From: David Espinosa espinosa@kestrel.edu Subject: kernel Date: Thu, 19 Mar 1998 15:00:33 +0000 From: Chris Bitmead > What else is needed? Anything? What else would be much more useful in the > kernel than anywhere else? Is it useful to think in terms of "in the kernel" and "out of the kernel" ? Great question. And what do these terms really mean? It seems that security is the fundamental issue, and most OS researchers still assume that security has to be based on a (standard kind of) kernel. David From kragen@pobox.com Thu, 19 Mar 1998 14:58:17 -0500 (EST) Date: Thu, 19 Mar 1998 14:58:17 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Thu, 19 Mar 1998, Rodrigo Ventura wrote: > Hum, that gives rise to a non-trivial question: how to handle > references, gc and removable media in an hybrid memory/disk system? I > mean, what happens if referenced objects are lost? That's hard -- I'm looking forward to seeing if the Symbolics people know the answer. I'm sure they've spent a lot of time thinking about this problem. > How "ls -la" things > would work on such a system? Oh, that's easy. (obarray-names cwd) does ls -a. (mapcar (lambda (name) (cons (typeof (obarray-lookup name cwd)) (cons name nil))) (obarray-names cwd) ) is sort of similar to ls -la, assuming that `typeof' returns some sort of information about the object, e.g. "string 120885 bytes". Kragen From papresco@technologist.com Thu, 19 Mar 1998 15:07:17 -0500 Date: Thu, 19 Mar 1998 15:07:17 -0500 From: Paul Prescod papresco@technologist.com Subject: Minimum set of primitives? On a purely social level, I think that any project trying to design an operating systems from scratch over the Internet is likely to fail. Copying an OS is simple: you know what you are trying to achieve and you just argue about the ways to achieve it. Designing one is probably next to impossible, unless the group has a "benevolent dictator" that just says: "decision made, move on to the next question." Even so, the dictator's view of the "perfect operating system" will probably turn off hundreds of potential volunteers. It is much better to clone something that someone else has already designed (as in Linux). Paul Prescod - http://itrc.uwaterloo.ca/~papresco "You have the wrong number." "Eh? Isn't that the Odeon?" "No, this is the Great Theater of Life. Admission is free, but the taxation is mortal. You come when you can, and leave when you must. The show is continuous. Good-night." -- Robertson Davies, "The Cunning Man" From kragen@pobox.com Thu, 19 Mar 1998 18:42:08 -0500 (EST) Date: Thu, 19 Mar 1998 18:42:08 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Thu, 19 Mar 1998, Gavin E. Gleason wrote: > We will need some way of deciding how to procede given > disagreement as to the next step if we cannot agree unanimously. I > think that it is possible that the need/want for a lisp OS will > supercede our ideas about the "best" way to proceed. Maybe we should > use some sort of parlimentary procedure, and have an elected > chairman. We could put motions on the table as to the steps as they > become pertinent. Then we could vote as to which would be the best > way to continue. I suggest another way: a sort of economy, like Linux. Someone -- one person, or two people in close geographic proximity -- gets something working, puts it on a web site, tells other people about it. Sort of pitches it to them, but tries to do it honestly. Other people download it, try it, make patches to it, send it back. If they don't like it, they can write their own. If they do like it, they can make it better. Instead of deciding on things by majority rule, we can decide things by trying them out and seeing what's extremely cool and what's sort of lukewarm. If someone thinks that xyz feature should be implemented a different way, they can implement it that different way, put the source on their website, and tell other people about it. It will be discussed. Some people will decide to patch their copy of xyz one way, and some the other. Eventually a consensus will arise, as most people decide to do xyz one way. Some people are likely to be more influential than others -- because they have more time to write code, because they write better code, because they make better decisions, or because they piss people off less. That's OK. > But I have a feeling that the initial stages may be the most > difficult to agree opon. I agree. I think someone needs to get *something* working and make it available *first*. Then they need to run something on it, preferably something *cool*, so other people want to run it. Maybe someone could kludge together enough of a Linux-kernel framework to use Linux's TCP/IP stack and device-driver support, put in a small Lisp VM, a read-eval-print loop, and write a simple web server. Even this small task is beyond my poor abilities, though. > 1. scheme or lisp. Yikes! Thats a dangerous one :). I don't > personally care either way. Scheme is definitely cleaner, and it > would seem ideal as a starting point for a clean and radically > different OS. Lisp on the other hand has everything already built > into the language. I'll lean whatever way seems most popular in the > interest of getting this show on the road. I suspect that this choice is inconsequential. I think it'll be fairly easy to support either Common Lisp or Scheme in the same OS framework. > 2. Bootstraping. This is a particularly difficult question, > as the FLUX OS toolkit is unavailable. I think that we should open the > table for motions on options in this catagory Someone write something. Or adapt something. FreeBSD and Linux both boot, and we could use either of their code. > > 3. Abstractions. Finding the most basic level of abstractions > that we intend to provide in our system will be difficult because we > will have to come up with a ideas that will be useful in practice. > This will probably be a dynamic variable that changes as coding and > practical issues arise, but we should at least have some idea of where > we are going. Yes, I agree. Kragen From mikemac@teleport.com Thu, 19 Mar 1998 15:51:40 -0800 (PST) Date: Thu, 19 Mar 1998 15:51:40 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Benevolent Dictatorship >From lispos-request@math.gatech.edu Thu Mar 19 15:25:36 1998 >Resent-Date: Thu, 19 Mar 1998 18:08:30 -0500 (EST) >Date: Thu, 19 Mar 1998 16:09:28 +0100 >From: "Gavin E. Gleason" >To: LispOS Mailling List >Subject: Benevolent Dictatorship >Mime-Version: 1.0 (generated by tm-edit 7.108) >Resent-Message-ID: <"kXYch3.0.5D1.jLQ4r"@math> >Resent-From: lispos@math.gatech.edu >X-Mailing-List: archive/latest/1880 >X-Loop: lispos@math.gatech.edu >Resent-Sender: lispos-request@math.gatech.edu > > >. From what I've seen so >far there is not a massive divergence in ideas about "what" should be in >the lisp OS. Most of the divergence is in the "how". Have any of you read the last 1800 messages on this list? If that doesn't convince you that there is indeed a "massive divergence" of ideas then I guess I don't know what you mean by that term! > > 1. scheme or lisp. Yikes! Thats a dangerous one :). Yikes is right. We've been over this one. Again and again and again ... > 2. Bootstraping. This is a particularly difficult question, >as the FLUX OS toolkit is unavailable. I think that we should open the >table for motions on options in this catagory That kind of leaves a stripped down Linux or BSD. And we've been over this one many a times before too. > > Gavin E. Gleason > > Mike McDonald mikemac@mikemac.com From kragen@pobox.com Thu, 19 Mar 1998 19:19:56 -0500 (EST) Date: Thu, 19 Mar 1998 19:19:56 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Thu, 19 Mar 1998, Mike McDonald wrote: > That kind of leaves a stripped down Linux or BSD. And we've been > over this one many a times before too. I guess that means no one with the ability cares enough to implement something. So there will never be a freely-available Lisp OS, unless you count GNU Emacs, which doesn't even have threads. Someone needs to write some code. It doesn't have to be perfect; it doesn't have to satisfy everyone; it just has to be exciting enough to get other people to help. Kragen From mikemac@teleport.com Thu, 19 Mar 1998 16:44:52 -0800 (PST) Date: Thu, 19 Mar 1998 16:44:52 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Benevolent Dictatorship >From kragen@dnaco.net Thu Mar 19 16:20:09 1998 >Date: Thu, 19 Mar 1998 19:19:56 -0500 (EST) >To: Mike McDonald >cc: ggleason@tvi.cc.nm.us, lispos@math.gatech.edu >Subject: Re: Benevolent Dictatorship >MIME-Version: 1.0 >From: kragen@pobox.com (Kragen) > >On Thu, 19 Mar 1998, Mike McDonald wrote: >> That kind of leaves a stripped down Linux or BSD. And we've been >> over this one many a times before too. > >I guess that means no one with the ability cares enough to implement >something. So there will never be a freely-available Lisp OS, unless >you count GNU Emacs, which doesn't even have threads. > >Someone needs to write some code. It doesn't have to be perfect; it >doesn't have to satisfy everyone; it just has to be exciting enough to >get other people to help. > >Kragen > Well, why don't you (the perverbiable you), get a copy of CMUCL, put it on Linux, and start writing something. There's tons of things to write that don't require OS kernel expertise. Things like file system browsers, enhancing Hemlock, networking utilities (gzip, ftp, tar so you can get the latest CMUCL from the net (when they're back up)), ... Anytime you have to go to a shell to run a program is a program waiting to be ported to CMUCL! Mike McDonald mikemac@mikemac.com From joswig@lavielle.com Fri, 20 Mar 1998 01:56:00 +0100 Date: Fri, 20 Mar 1998 01:56:00 +0100 From: Rainer Joswig joswig@lavielle.com Subject: path to lispos ??? At 15:07 19.03.98 -0500, you wrote: >On a purely social level, I think that any project trying to design an >operating systems from scratch over the Internet is likely to fail. >Copying an OS is simple: You could try to implement something along the lines of the Interlisp environment (this already exists as an emulation for the PC) or the Lisp machines of MIT heritage (LMI Lambda, TI Explorer, Symbolics, ...). But this is difficult. You could also look at Apple's now defunct Newton OS. >hundreds of potential volunteers. It is much better to clone something >that someone else has already designed (as in Linux). Yes, you are right on this one. But this is also one of the **************big************* weaknesses of Linux: it is just a copy. (A copy of something I'm not a particular fan of.) Some random thoughts: - make an overview of what is freely available for Lisp (implementations, GUI code, applications, tools, ...). - take care of the public available Lisp code of choice. The best start for a CL-based system currently is CMU CL, IMHO. - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! - brush up code that is available and desirable, but not actively maintained (defsystem, UIMS code, ...). - set up a web site: www.lispos.org . Don't use http://somemachine.somedepartment.someuniversity.edu//~whoever/cant-remember/obscure.html Put everything you have well documented on the web site. You can not afford to lose people by bad documentation (GUILE currently has no real documentation - a big mistake). The Symbolics Lisp machine had very good documentation. Don't care less. - identify people with time. Assign responsibilities (takes care about the docs, ensures the web site, maintains the file server, compares the implementations, ...) - write a position paper. Circulate widely. Try to get donations (machines, source, man power, ...). Provide regular updates on the project state. Remind people every month/week about this project. Every CS student should know about it. - start implementing an interface (telnet server with vtxxx, CL-HTTP access, X-based GUI (with editor, listener, inspector, command interpreter, backtrace, HTML browser, ...), ...). Maybe something along the lines of a CL-based Emacs-environment. Then the Lisp development system will also be everybody's favorite editor environment. - Implement a CL-HTTP-based chat system for the developers. - implement extensive introspective documentation access (class graphs, package overviews, method overviews, apropos, describe, documentation, ...) - what about storing and retrieving objects? - start implementing TCP/IP services -- write a mail server (SMTP, POP, IMAP). -- write a pop mail client. -- write a DNS server -- write a DNS client - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! - write a file browser (like the Mac finder, ...). - Start porting packages (SK8, ...). - implement a more sophisticated defsystem (with patches, CLOS-based, versions, access rights, web interface, ...). - Reimplement C-based software in Lisp. Make the code clearer and better documented (easy). - develop access methods to databases. - start writing a kernel. - memory allocation - process scheduling - security - develop a file system ... From chrisb@ans.com.au Fri, 20 Mar 1998 01:53:00 +0000 Date: Fri, 20 Mar 1998 01:53:00 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? > For example, if we want to implement system-wide garbage collection, we > have to guarantee that, at some level of granularity, all pointers > between objects are known to the garbage collector. The easiest way to > handle this on a fine granularity (the usual Lisp way) is to make data > types `holy' and inviolable -- only special kernel code has the right > to do pointer arithmetic, for instance, and no userland programs. > > Ideally, we could get away from this evil distinction between > kernelland and userland. I don't know how, though. All I've ever seen > is moving the barrier around and changing the granularity -- on a Lisp > machine, if I understand correctly, the `kernel' was the hardware > itself, which made sure pointers weren't stored as integers and vice > versa, and did bounds-checking on arrays. (Is this correct?) > > When something is `in the kernel', it is something user programs cannot > avoid using in some circumstances. Access to I/O and to memory are two > examples. It seems to me off hand, that the kernel then, is that which implements the Scheme (or Lisp) language. Sure, it will work differently to normal Scheme implementations, but the Scheme language doesn't give the user the ability to do nasty things like pointer arithmetic and other nasty stuff. From the users point of view, he will be merely using a Scheme implementation, albeit one that implements multiple threads and stuff. The other big question that arises is whether and how to support non-Scheme programs. That is where the debate starts as to whether UNIX should run underneath LispOS in order to support C apps (and provide a bootstrap or base system to avoid writing device drivers). -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@ans.com.au Fri, 20 Mar 1998 01:58:44 +0000 Date: Fri, 20 Mar 1998 01:58:44 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? > Hum, that gives rise to a non-trivial question: how to handle > references, gc and removable media in an hybrid memory/disk system? I > mean, what happens if referenced objects are lost? You get an exception if you try to access them. > How "ls -la" things > would work on such a system? There would be no "ls -la". Objects would be put into container objects. Of course, it might be desirable to have some containers that index things by name like a UNIX file system. In that case, if you had a container of documents called "foo", you might do something like.... (names foo) => ("doc1", "doc2", "doc3", "doc4") and to access a document by name... (find-by-name foo "doc1") => ("a document about Lisp OS....") -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@ans.com.au Fri, 20 Mar 1998 02:02:01 +0000 Date: Fri, 20 Mar 1998 02:02:01 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? > - some applications require durability -- that is, once they receive and > acknowledge a piece of data, they're expected not to lose it, even if the > machine gets unplugged immediately. The need for this is obviously > strongest in the case of business applications, but it's nice even for > personal-use applications. This means that applications have to have > some control over when their data gets written to disk. > > I'm not familiar with how historical Lisp systems or KeyKOS handled > these problems, but I suspect they are solved problems. Perhaps my elders > here can point us at some documentation. > > (Well, KeyKOS handles the last one by offering a 'journal page' system call, > which forces a page to be written to disk immediately. Database servers can > force a write on the page containing their latest log entry after each time > they make a log entry. I'm not clear on how a Lisp system could handle this.) Yes, I can't see how you can get away from the need for a "commit" function, which says to the system that the current state is a place that can be recovered from if things crash. Of course not all applications will care to use it, but some will definitely need it, maybe even most. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From moribund@netgsi.com Thu, 19 Mar 1998 21:04:53 -0500 (EST) Date: Thu, 19 Mar 1998 21:04:53 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: Benevolent Dictatorship On Thu, 19 Mar 1998, Kragen wrote: > I guess that means no one with the ability cares enough to implement > something. So there will never be a freely-available Lisp OS, unless > you count GNU Emacs, which doesn't even have threads. > Maybe so, but I think there is enough going on "here and there" to eventually come to some kind of OS. Maybe not this year...maybe not next year... I think OS is a moot point at this time. Seeing as LispOS will eventually take it over anyway...get something to work and let it grow from there. Remove the Linux-ism here, the WinNT gotcha there...it's a process but it has to start SOMEWHERE. > Someone needs to write some code. It doesn't have to be perfect; it > doesn't have to satisfy everyone; it just has to be exciting enough to > get other people to help. > Exciting? Hell, I'd settle for some that "sort of worked" at this point. :) Damond From chrisb@ans.com.au Fri, 20 Mar 1998 02:07:26 +0000 Date: Fri, 20 Mar 1998 02:07:26 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? Kragen wrote: > > On Thu, 19 Mar 1998, Rodrigo Ventura wrote: > > Hum, that gives rise to a non-trivial question: how to handle > > references, gc and removable media in an hybrid memory/disk system? I > > mean, what happens if referenced objects are lost? > > That's hard -- I'm looking forward to seeing if the Symbolics people > know the answer. I'm sure they've spent a lot of time thinking about > this problem. I don't believe Symbolics had an object file system. They just had a regular style file system. So they didn't need to deal with this. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@ans.com.au Fri, 20 Mar 1998 02:12:45 +0000 Date: Fri, 20 Mar 1998 02:12:45 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Benevolent Dictatorship Kragen wrote: > I suspect that this choice is inconsequential. I think it'll be fairly > easy to support either Common Lisp or Scheme in the same OS framework. I don't think it will be easy at all. A LispOS means an OS that is totally integrated with the language. It may well be possible, but I don't believe it will be easy to do properly. Half of the "kernel" (or whatever we call it), will be running in that language, and unlike a UNIX kernel, there won't be a very small set of kernel calls. Everything will be integrated from top to bottom. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From kragen@pobox.com Thu, 19 Mar 1998 22:52:56 -0500 (EST) Date: Thu, 19 Mar 1998 22:52:56 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Thu, 19 Mar 1998, Damond Walker wrote: > On Thu, 19 Mar 1998, Kragen wrote: > > > I guess that means no one with the ability cares enough to implement > > something. So there will never be a freely-available Lisp OS, unless > > you count GNU Emacs, which doesn't even have threads. > > Maybe so, but I think there is enough going on "here and there" to > eventually come to some kind of OS. Maybe not this year...maybe not next > year... I think OS is a moot point at this time. Well, I hope so! > Seeing as LispOS will eventually take it over anyway... Say again? > > It doesn't have to be perfect; it > > doesn't have to satisfy everyone; it just has to be exciting enough to > > get other people to help. > > Exciting? Hell, I'd settle for some that "sort of worked" at this > point. :) Having something that "sort of works" is very exciting. Maybe more than having something that works perfectly, in fact :) Kragen From kragen@pobox.com Thu, 19 Mar 1998 23:05:12 -0500 (EST) Date: Thu, 19 Mar 1998 23:05:12 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > It seems to me off hand, that the kernel then, is that which > implements the Scheme (or Lisp) language. Well, at least the primitive operations: car, cdr, aref, etc. It doesn't have to implement call/cc, define, read, print, etc. > Sure, it will work > differently to normal Scheme implementations, but the Scheme > language doesn't give the user the ability to do nasty things > like pointer arithmetic and other nasty stuff. From the users > point of view, he will be merely using a Scheme implementation, > albeit one that implements multiple threads and stuff. > > The other big question that arises is whether and how to support > non-Scheme programs. That is where the debate starts as to > whether UNIX should run underneath LispOS in order to support C > apps (and provide a bootstrap or base system to avoid writing > device drivers). See . I doubt it's anything original, but it explores the issues. I do think that avoiding writing device drivers is a *major* issue. Device drivers compose most of the Linux kernel, most of the programming effort that went into Linux, and much of the usefulness of any OS. It would be nice if we could define a `Linux device driver abstraction layer' that has a fairly-small set of primitives (kmalloc, kfree, MOD_DEC_USE_COUNT, etc.) that lets another OS use Linux device drivers. Or, from another point of view, lets you replace most of the upper layers of the Linux kernel. I do not anticipate that this will be easy. I suspect that it may require throwing together a hacked C compiler that lets us redefine the behaviors of individual objects flexibly. Another thing I've thought about is grafting LispVM capabilities onto the normal Linux kernel, similar to the way Apache has grafted a Perl VM onto itself in the form of mod_perl. It should be safe to run Lisp code inside the kernel. Random thoughts... Kragen From kragen@pobox.com Thu, 19 Mar 1998 23:16:57 -0500 (EST) Date: Thu, 19 Mar 1998 23:16:57 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > > Hum, that gives rise to a non-trivial question: how to handle > > references, gc and removable media in an hybrid memory/disk system? I > > mean, what happens if referenced objects are lost? > > You get an exception if you try to access them. How do you allocate your store so that, under normal circumstances, your second hard drive failing will not result in your system running into exceptions when trying to boot? I guess `boot' is sort of an undefined term. I think it should mean getting enough primitives and enough of the VM loaded to read, compile, and run Lisp programs. How do you make media meaningfully movable from one machine to another? I guess you need to have some sort of an `external linkage table' indicating what entry points are expected from the outside world, and what external undefined references exist. So you could have a structure like (define (fact n) (if (= n 0) 1 (* n (fact (- n 1))))) which would have a single `entry point', a pointer to the cons whose car was `define', and `exit points' for the atoms define, fact, n, if, =, *, and -. How could one go about making sure that all of these list nodes actually ended up on the same disk? If one of the disks is a floppy, it's not going to be very useful to have the cdr of the cons whose car is (fact n) pointing onto the hard disk. Kragen From kragen@pobox.com Thu, 19 Mar 1998 23:21:59 -0500 (EST) Date: Thu, 19 Mar 1998 23:21:59 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > Yes, I can't see how you can get away from the need for a > "commit" function, which says to the system that the current > state is a place that can be recovered from if things crash. Of > course not all applications will care to use it, but some will > definitely need it, maybe even most. KeyKOS got away from it for most applications by simply checkpointing the entire system periodically -- every couple of minutes. Wrote the full contents of memory, the complete states of all processes, everything. Then, if the system crashed, it's as if everything between the last full checkpoint and the reboot never happened -- it's as though the system never stopped running, from the applications' point of view. This is sufficient for most applications. It potentially has the problem that, if your OS is buggy or insecure, you can't just reboot -- you must reinstall. Solution: small, secure kernel. Kragen From kragen@pobox.com Thu, 19 Mar 1998 23:38:10 -0500 (EST) Date: Thu, 19 Mar 1998 23:38:10 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > I don't believe Symbolics had an object file system. They just > had a regular style file system. So they didn't need to deal with > this. Hmm. Interlisp? *hope* Kragen From cmh@greendragon.com Thu, 19 Mar 1998 22:47:34 -0600 Date: Thu, 19 Mar 1998 22:47:34 -0600 From: Chris Hanson cmh@greendragon.com Subject: Minimum set of primitives? Are there any set of extended design documents etc. for the MIT-derived Lisp Machines that we can plow through? A lot of the questions being asked (probably mine included) have likely already been answered by the people who built those systems. From kragen@pobox.com Thu, 19 Mar 1998 23:48:39 -0500 (EST) Date: Thu, 19 Mar 1998 23:48:39 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Fri, 20 Mar 1998, Chris Bitmead wrote: > Kragen wrote: > > > I suspect that this choice is inconsequential. I think it'll be fairly > > easy to support either Common Lisp or Scheme in the same OS framework. > > I don't think it will be easy at all. A LispOS means an OS that > is totally integrated with the language. I don't think that's necessarily the case. To me, a LispOS means an OS that is well-suited to running Lisp programs, and in which the benefits of Lisp are shared by all the objects in the system. Common Lisp and Scheme use essentially the same set of basic operations, it seems to me (from my limited acquaintance with them, having read R4RS and most of the Elisp manual, and written a few toy programs in each language.) The primary differences in the underlying VM are: 1) Can an atom have both a meaningful data value and a useful functional value? (Yes in CL, no in Scheme) 2) How are function arguments scoped? (Dynamically in CL, statically in Scheme) 3) Is general tail-call elimination required? (No in CL, yes in Scheme) There are probably numerous other differences like these, but I suspect that they can be papered over with different definitions. For example, (1) can be dealt with by having the underlying VM manage two obarrays for a CL environment, but only one for a Scheme environment. If manipulation of obarrays is possible from the language level, this shouldn't be too hard. Kragen From laheadle@midway.uchicago.edu Thu, 19 Mar 1998 22:53:44 -0600 Date: Thu, 19 Mar 1998 22:53:44 -0600 From: Lyn A Headley laheadle@midway.uchicago.edu Subject: Benevolent Dictatorship Gavin> our ideas about the "best" way to proceed. Maybe we should Gavin> use some sort of parlimentary procedure, and have an Gavin> elected chairman. We could put motions on the table as to Gavin> the steps as they become pertinent. Then we could vote as Gavin> to which would be the best way to continue. I don't think This sounds doable. We can't have general votes on everything though; some decisions should only be made by the people with intimate knowledge of the module affected. We need to compartmentalize people and define clear interactions between the modules. But sure, in the early days there should be a lot of "general" votes to hash out the overall flavor of the system. Gavin> 2. Bootstraping. This is a particularly difficult Gavin> question, as the FLUX OS toolkit is unavailable. I think Gavin> that we should open the table for motions on options in Gavin> this catagory We should wait for flux. It should be released any time now, no? There is plenty of designing to do before we write code anyway. -Lyn From laheadle@midway.uchicago.edu Fri, 20 Mar 1998 00:58:14 -0600 Date: Fri, 20 Mar 1998 00:58:14 -0600 From: Lyn A Headley laheadle@midway.uchicago.edu Subject: Benevolent Dictatorship Kragen> I suggest another way: a sort of economy, like Linux. This is a pretty pragmatic approach, and it leads to a proliferation of code, which is pretty cool, but it sure as hell doesn't lead to an elegant system. Rather, it leads to something about as elegant as Linux. I think it's critical that we *do not* start writing code yet. I mean, we can't just start hacking pieces of a system without thinking of the system as a whole. We must decide *what* we want to build before we start building it. Note that I don't think I'm being to theoretical or impractical here. I'm as much for using other people's pre-existing code as the next person. We just can't toss the code in at a moment's notice. -Lyn From chrisb@ans.com.au Fri, 20 Mar 1998 07:16:00 +0000 Date: Fri, 20 Mar 1998 07:16:00 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? Kragen wrote: > > On Fri, 20 Mar 1998, Chris Bitmead wrote: > > Yes, I can't see how you can get away from the need for a > > "commit" function, which says to the system that the current > > state is a place that can be recovered from if things crash. Of > > course not all applications will care to use it, but some will > > definitely need it, maybe even most. > > KeyKOS got away from it for most applications by simply checkpointing > the entire system periodically -- every couple of minutes. Wrote the > full contents of memory, the complete states of all processes, > everything. Then, if the system crashed, it's as if everything between > the last full checkpoint and the reboot never happened -- it's as > though the system never stopped running, from the applications' point > of view. I can't see how you can do that with even half reasonable efficiency without special hardware - i.e. involatile memory. Unless you want to stop the whole system from time to time to checkpoint everything, but don't people hate emacs when it stops to garbage collect? I can't see this as feasible. What you talk about would be great, but I can't see it being realistic. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From wolfram.rinke@kes-adaptive-systems.com Fri, 20 Mar 1998 09:10:04 +0100 Date: Fri, 20 Mar 1998 09:10:04 +0100 From: Wolfram Rinke wolfram.rinke@kes-adaptive-systems.com Subject: path to lispos ??? Your are absolute right! If LispOS wants to be successfull, do it that way. We have been working on TI Lisp machines for many years, doing customer project. This machine (like Symbolics or LMI) had/have already versions of a LispOS and LispVM implemented in microcode. ;-) If you want to have a successfull LispOS clone one of them and bring it to widespread HW platforms. Run LispOS on top of NT and UNIX. Integrate it with the WWW. Good luck! Wolfram Rinke -----Original Message----- From: Rainer Joswig [SMTP:joswig@lavielle.com] Sent: Friday, March 20, 1998 1:56 AM To: lispos@math.gatech.edu Subject: path to lispos ??? At 15:07 19.03.98 -0500, you wrote: >On a purely social level, I think that any project trying to design an >operating systems from scratch over the Internet is likely to fail. >Copying an OS is simple: You could try to implement something along the lines of the Interlisp environment (this already exists as an emulation for the PC) or the Lisp machines of MIT heritage (LMI Lambda, TI Explorer, Symbolics, ...). But this is difficult. You could also look at Apple's now defunct Newton OS. >hundreds of potential volunteers. It is much better to clone something >that someone else has already designed (as in Linux). Yes, you are right on this one. But this is also one of the **************big************* weaknesses of Linux: it is just a copy. (A copy of something I'm not a particular fan of.) Some random thoughts: - make an overview of what is freely available for Lisp (implementations, GUI code, applications, tools, ...). - take care of the public available Lisp code of choice. The best start for a CL-based system currently is CMU CL, IMHO. - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! - brush up code that is available and desirable, but not actively maintained (defsystem, UIMS code, ...). - set up a web site: www.lispos.org . Don't use http://somemachine.somedepartment.someuniversity.edu//~whoever/cant-remember/obscure.html Put everything you have well documented on the web site. You can not afford to lose people by bad documentation (GUILE currently has no real documentation - a big mistake). The Symbolics Lisp machine had very good documentation. Don't care less. - identify people with time. Assign responsibilities (takes care about the docs, ensures the web site, maintains the file server, compares the implementations, ...) - write a position paper. Circulate widely. Try to get donations (machines, source, man power, ...). Provide regular updates on the project state. Remind people every month/week about this project. Every CS student should know about it. - start implementing an interface (telnet server with vtxxx, CL-HTTP access, X-based GUI (with editor, listener, inspector, command interpreter, backtrace, HTML browser, ...), ...). Maybe something along the lines of a CL-based Emacs-environment. Then the Lisp development system will also be everybody's favorite editor environment. - Implement a CL-HTTP-based chat system for the developers. - implement extensive introspective documentation access (class graphs, package overviews, method overviews, apropos, describe, documentation, ...) - what about storing and retrieving objects? - start implementing TCP/IP services -- write a mail server (SMTP, POP, IMAP). -- write a pop mail client. -- write a DNS server -- write a DNS client - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! - write a file browser (like the Mac finder, ...). - Start porting packages (SK8, ...). - implement a more sophisticated defsystem (with patches, CLOS-based, versions, access rights, web interface, ...). - Reimplement C-based software in Lisp. Make the code clearer and better documented (easy). - develop access methods to databases. - start writing a kernel. - memory allocation - process scheduling - security - develop a file system ... From papresco@technologist.com Fri, 20 Mar 1998 04:18:24 -0500 Date: Fri, 20 Mar 1998 04:18:24 -0500 From: Paul Prescod papresco@technologist.com Subject: Benevolent Dictatorship I would say that if this LispOS project is feasible it will *just happen* at the right time. That sounds mystical but isn't: at the point where an X86 hosted Unix became feasible, somebody just picked up the ball and made it happen. I believe that this has not happend with LispOS because a) Lisp itself does not have enough of a following, b) we are SO FAR from what we want that it hurts the brain to plan a path and c) nobody is foolish enough to take that first step down that very long path. I think that the project would be more likely to succeed once those three problems have been solved. That suggests to me that the first priority should be making CMUCL a competitive, popular development environment. The second priority would be to start experimenting with editors, shells, compilers and other things that can be built without "changing the world." Changing the world in one stroke is doomed anyhow: people have work to do and they only want to move to OSes that allow them to get their work done (i.e. use Unix apps). Finally, once the critical mass has been achieved, a messiah will appear. You will recognize him or her because he/she will say: "I've got this neat little kernel I hacked up. It's compiled with CMUCL and uses EMACS as its UI. Would anyone like to work on it with me?" Paul Prescod - http://itrc.uwaterloo.ca/~papresco The United Nations Declaration of Human Rights will be 50 years old on December 10, 1998. These are your fundamental rights: http://www.udhr.org/history/default.htm From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 10:39:30 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 10:39:30 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Minimum set of primitives? >>>>> "Paul" == Paul Prescod writes: Paul> On a purely social level, I think that any project trying to design an Paul> operating systems from scratch over the Internet is likely to fail. Are you from Microsoft or something??? 8-) Now seriously, many of the *best* freeware software have been made in this medium. Do you know Linux, Emacs, GIMP, etc.? Paul> Copying an OS is simple: you know what you are trying to achieve and you Hum, aren't you really from microsoft??? Now I'm getting really suspicious... 8-) Paul> just argue about the ways to achieve it. Designing one is probably next Paul> to impossible, unless the group has a "benevolent dictator" that just Paul> says: "decision made, move on to the next question." Even so, the Paul> dictator's view of the "perfect operating system" will probably turn off Paul> hundreds of potential volunteers. It is much better to clone something Paul> that someone else has already designed (as in Linux). Ok, now seriously again, of course some leadership may be necessary at some point. But that shall not prevent us from speculating and discussing ideas. Let's just hope someone with enought expertise, lisp insight and leadership comes about. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 11:30:31 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 11:30:31 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Benevolent Dictatorship >>>>> "Mike" == Mike McDonald writes: Mike> Well, why don't you (the perverbiable you), get a copy of CMUCL, put Mike> it on Linux, and start writing something. There's tons of things to Mike> write that don't require OS kernel expertise. Things like file system Mike> browsers, enhancing Hemlock, networking utilities (gzip, ftp, tar so Mike> you can get the latest CMUCL from the net (when they're back up)), ... I guess CMUCL is a bad choice: too heavy, too big, too complex and too slow. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From lynbech@daimi.aau.dk Fri, 20 Mar 1998 11:33:09 +0100 (CET) Date: Fri, 20 Mar 1998 11:33:09 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Minimum set of primitives? >>>>> "Kragen" == Kragen writes: Kragen> I'm afraid I don't know what the Fluke kit is. Is this a FAQ? I don't think so. The Fluke tool kit is (as I understand it and from memory) a distribution of some microkernel architecture (perhaps Mach) which has been discussed as a promising starting point. I seem to remember seeing somewhere that the ML OS is based on this. One obviously has to start somewhere, and any OS needs some basic abstractions (in UNIX this is concepts like processes and files), so taking some existing microkernel which provides a minimal such set would be a reasonable way to start out. Some have argued here (again from memory) that starting with something like Linux would inevitably mean that we inherit many of the bad things from UNIX, such as the filesystem (yes, I do remember the many discussions about persistent object systems her in the beginning, and no I do not prefer UNIX files over that, I was just a little careless in my formulation) or the all powerfull root user. There should plenty of references to Fluke in the mailing list archives. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From lynbech@daimi.aau.dk Fri, 20 Mar 1998 11:38:49 +0100 (CET) Date: Fri, 20 Mar 1998 11:38:49 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Minimum set of primitives? >>>>> "Chris" == Chris Bitmead writes: Chris> The other big question that arises is whether and how to Chris> support non-Scheme programs. That is where the debate starts as Chris> to whether UNIX should run underneath LispOS in order to Chris> support C apps (and provide a bootstrap or base system to avoid Chris> writing device drivers). Oh no. A unix program needs to link against a unix runtime system. The LispOS should be the place where hello.c compiles to a 17Mb executable with abysymal performance. We want to end the footprint debate. :-) >>>>> "Chris" == Chris Bitmead writes: Chris> ... but don't people hate emacs when it stops to garbage Chris> collect? One cannot hate emacs, as we say over in alt.religion.emacs. Garbage collection is a fact of life just as the sun must set in the evening in order to rise again in the morning. :-) :-) :-) ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From joswig@lavielle.com Fri, 20 Mar 1998 14:51:09 +0100 Date: Fri, 20 Mar 1998 14:51:09 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 11:30 Uhr +0100 20.03.1998, Rodrigo Ventura wrote: >>>>>> "Mike" == Mike McDonald writes: > > Mike> Well, why don't you (the perverbiable you), get a copy of CMUCL, put > Mike> it on Linux, and start writing something. There's tons of things to > Mike> write that don't require OS kernel expertise. Things like file system > Mike> browsers, enhancing Hemlock, networking utilities (gzip, ftp, tar so > Mike> you can get the latest CMUCL from the net (when they're back up)), ... > > I guess CMUCL is a bad choice: too heavy, too big, too complex >and too slow. How about providing an overview/comparison of existing systems? Guessing might not be enough. Currently CMU CL is the only choice for a CL-based system (IMHO). It would be even better if it would run under Windows NT. Weak points of CMU CL: - not enough users (this can be changed) - hard to port - Threads and a better GC are still in development and only for Intel (AFAIK). - CLOS is slow. Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 14:57:02 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 14:57:02 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Benevolent Dictatorship >>>>> "Rainer" == Rainer Joswig writes: Rainer> How about providing an overview/comparison of existing systems? Guessing Rainer> might not be enough. I agree. My guessing comes from nothing else other than personal experience with CMUCL. I was told many times how great CMUCL was, but my personall experience told me otherwise, albeit repeated attempts to grasp any issues that might have escaped me before. I have tryed a few other freeware CL systems, and here goes my opinion: CLISP: by now, this is my favourite CL system. Very compact, useful command-line editing, reasonably fast, nice GC, very solid, but has feable support and doesn't seem to link well with external stuff. CMUCL: as I said before, I found it too heavy. Ok, it compiles directly to assembly, and this is great for speed, but the GC is too slow, it GC's too much. I think it's too huge to serve as a base for a LispOS. GCL: Lightweight system, compiles to C (and uses gcc to make .o's, which are directly and dynamically linkable to gcl, which is nice), but doesn't seem to support the standard very well -- I never liked that off-side sloop package to implement the _standard_ loop macro. And it doesn't seem to be updated much often... ECL: I'm trying that one right now, it has the flavour of gcl but seems to have more features. It also supports threads. I'm sure the survey of the comp.lang.lisp FAQ is rather complete (updated?), so what we really need is a survey under the light of the LispOS. Rainer> Currently CMU CL is the only choice for a CL-based system (IMHO). Why do you say "only"? Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From hjstein@bfr.co.il 20 Mar 1998 17:23:24 +0300 Date: 20 Mar 1998 17:23:24 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship Lyn A Headley writes: > Kragen> I suggest another way: a sort of economy, like Linux. > > This is a pretty pragmatic approach, and it leads to a proliferation > of code, which is pretty cool, but it sure as hell doesn't lead to an > elegant system. Rather, it leads to something about as elegant as > Linux. I think it's critical that we *do not* start writing code yet. I disagree on several points here (and in the related discussions): 1. Yes, in that Linux is unix, Linux isn't elegant. However, it's very elegant given the constraints, namely that it be unix and that it be coded in C. In other words, much of the particulars of the implementation are very elegant. The Linux kernel hackers work very hard to do it the "right" way. The code tends to be clever and extremely efficient. They rewrite large swaths of it when it turns out that it should have been done differently. They reject kernel changes that aren't done "correctly", or that "shouldn't" be in the kernel. This has yielded a fast, robust kernel with lots of functionality early on. The only downside has been the regular proliferation of incompatible systems (moving from a.out to ELF, & from libc to glibc, where in both cases it was a good idea to recompile everything, and periodic kernel changes which require certain binaries to be recompiled). However, the headaches of such changes can be largely mitigated for the average user by upgrading the system less frequently and by using one of the CD distributions (such as RedHat or Debian) to do complete upgrades. 2. I don't think that this is a special case. I think that using the Linux approach (also known as the Bazaar approach, see http://sagan.earthspace.net/~esr/writings/cathedral-bazaar/) will more likely yield good results than bad results. One reason a LispOs developed in this fashon will be good is that there will be people who like it, and like working on it. Any section of code that is badly designed will eventually hamper general development.At that point, one or more of the people who is dedicated to the system will take it upon themselves to rewrite it properly. Sure, there will always be poor sections laying around, but they'll all eventually be replaced when they become too much of a burden. In the mean time, at least the functionality existed. At least with the functionality in place the system can be used. That's a lot better than waiting around for a system while people thrash out the details. Another reason why the Bazaar approach works is that it's easier to see what's wrong and what's right from a working model than from a design spec. With the functionality in place it's easier to try different things and see what works. Code often makes it or breaks it based on low level particular details, details which are very hard to fully enumerate when developing a design spec. Having a working implementation in which to experiment and try different things is a major advantage. I'd contend that hacking up something that works & then rewriting sections that were done incorrectly will yield a well designed system faster than devloping a spec and then coding to the spec. 3. On the other hand, the Linux people did have a spec - namely the unix interface & the posix specs, etc. They also had a lot of preexisting artwork. Thus, I'd suggest that someone just start cloning a lisp machine - any lisp machine, in any way shape or form. This at least in some sense gives a high level spec. Once it's cloned it can be ported to other hardware, lisp compilers, and other substrates (i.e. - Flux vs Linux vs Hurd vs bare metal), redone "correctly", etc. Given all the discussion about how to do things here, it's clear that it won't be clear how to do things and what things are feasable, convenient, etc, until we have something to work with. 4. Working by consensus will obviously not work - it will just take too long to come to agreement on each design point, and some design points will never be agreed upon. It would be better to just code. That's not to say that design points shouldn't be discussed. However, the discussion will be much more productive if it's of the form "Any ideas how I should code this component", or "Here's a patch for fixing component X", etc, than when it sounds like "A LispOs shouldn't have a file system", or "We have to use cmucl/rscheme/acl on top of Flux/Linux/the bare metal". In other words, people need to put their money where their mouth is. If you want something, then code it. Trying to get someone else to code it a certain way for you is ... well, I was going to say "self righteous and arrogant", but I didn't want to say something that strong, and I can't think of a milder way of saying it, but that's the idea. 5. A benevolent dictatorship is ok, in that different people would mostly be in charge of different components, but it needs to be based on who's doing the coding. If you code a section, then you're in charge of the section until you give it up or until someone else does a better job on it, where "better job" is defined by people using the system using your implementation instead of the stock implementation. This has happened with large sections of the Linux kernel over & over again. Maybe it's not so much a benevolent dictatorship as it is a coding meritocracy. That's way too much rambling for now. I just hope someone starts coding... -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 15:28:30 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 15:28:30 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Back to Basics For a second I imagined myself using the dreamed LispOS (with some help of an now off-line Explorer Lisp machine on the corner of my eye) and wondering whether we are trying to reinvent the weel. I mean, let's imagine we are experimenting with LispOS code. Would we need to reboot the machine in order to try something out? Do we really want a LispOS that takes control over the whole machine? Wouldn't it be better to boot LispOS ontop Linux. And in the initial development stages, LispOS could be booted while Linux was running. This idea is not new, and it was discussed before in this mailing list. I think that it would be much better to work out LispOS directly ontop the Linux kernel, ie no libc, no init, no nothing. We could use Linux kernel _directly_ (which would be great since it is under high-speed development). Only that instead of running /sbin/init, our LispVM could be launched. Or better yet, maintain the old init (I suppose it comes from the kernel sources, right?), and configure the rest via /etc/inittab. A minimal binary tree of ELF executables is needed, the a.out support can be stripped out from the kernel, and once the LispVM (including the JIT compiler) has been launched, all other stuff is in LispOS bytecode. I don't have much OS code expertise, but these ideas make me entusiastic enough to think about some little experimentation to build a ultra-minimal LispOS bootstrap. And all of these without thinking about boot loaders, assembly bootstrap, serial debugging, etc... Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 15:37:04 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 15:37:04 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Minimum set of primitives? >>>>> "Paul" == Paul Prescod writes: Paul> I don't know about the GIMP, but EMACS and Linux were *not* made in this Paul> environment. Linux was started by *one man* who kept control over Paul> everything (essentially) and started the project using a (relatively) Paul> coherent existing design. Emacs is more or less the same. Neither was Paul> created by a committee of people shouting their favourite design Paul> features, and neither was *research* or *design*. They were both Paul> *implementation* efforts where the designs were more or less known Paul> already (there are lots of Unix-like operating systems and text editors Paul> to steal features from). Yeah, you are absolutely in some points. However note that Linus developed a very small Linux kernel, I guess version 0.01 was about 70k gzipped code! Nowadays it has extended beyond the 10MB! Many of the contributions were written by people other than Linus. However I believe Linux has total control about what enters and leaves the kernel. Yet, I'm sure there has been gigabytes of discussion to get it as it is now. Note also that there wasn't much to discuss at the conceptual level (as LispOS) about a UNIX kernel. Many things were established from the start, the only quesion was how to implement them, in order to have an amazing fast OS while maintaining UNIX system calls compatibility (and POSIX). >> Ok, now seriously again, of course some leadership may be >> necessary at some point. But that shall not prevent us from >> speculating and discussing ideas. Let's just hope someone with enought >> expertise, lisp insight and leadership comes about. Paul> There's nothing wrong with talking. Just don't think that we're moving Paul> forward by discussing "file system or object system" every three months. Paul> We won't move forward until someone starts coding. And you are right again. And almost everybody agrees with you. The first line of code is the more difficult one. So, I'll solve it right away: --snip-- int main( int argc, char **argv ) { --snip-- 8-)))))))))))))) What the next line shall be? Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From chrisb@ans.com.au Fri, 20 Mar 1998 14:54:37 +0000 Date: Fri, 20 Mar 1998 14:54:37 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Benevolent Dictatorship I tend to agree that 1 line of code is worth 100s of lines of discussion. One would hope that once we have something, then if it is bad, it will be replaced eventually. If we have nothing, chances are it will tend to stay nothing. Personally I would like to see something that does the main things that we want even if it is appallingly slow, and awfully ugly and riddled with hacks. Once people understand what we're aiming for they will be motivated to make it elegant/fast. But having some terribly clever and elegant ideas that aren't actually implemented, will leave us.... well where are now. In my opinion the way forward is to build it on top of Linux for now. The reason is 1) It saves enormous amounts of work that we can't afford now. 2) It allows us to ignore the compatibility issues for now. We can still run UNIX programs straight away. 3) Rebooting into a different OS that doesn't do anything isn't fun. 4) More people will try it in the initial stages if they don't have to go through the headaches of a different OS. In the future, someone will be inspired to allow removal of Linux from underneath. Personally, I'd like to see the ability to use UNIX underneath as an option that stays. We can't change the world in a day. Now, when I said I'd like to see something with the "main" things in, even if they are slow/ugly, everybody has their own idea of what is important. To me personally I think the persistent object system is key. I don't see enormous advantages to a lisp os as opposed to just running lisp on UNIX without this. I also personally want to see Scheme as the language, because I havn't come to terms with all of the Lisp language yet. Plus also I think most people agree that Scheme, in terms of it's base language is an improvment. And if we are going to try to challenge every accepted notion of what an OS should be -- well hey --, might as well go the whole hog. So, when I see a Scheme running on UNIX that has a neat object system, then I think we have a way forward. Until then it all seems too hard to co-ordinate. Just my opinion. Anything that gets started has to be good. Rainer Joswig's list of things to do would be a great start. What I think we need is one of the Scheme gurus like Paul Wilson to get interested in this project. Maybe we should use his "RScheme" as is -- it already can be used with a persistent object system, is supposed to be terribly terribly elegant, it's fast, has a true compiler. Here's a job that anybody could do, and it's not so hard. Look at all the Scheme implementations and find one that is closest to what we want, and then we should agree to just start using it. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From papresco@technologist.com Fri, 20 Mar 1998 10:09:20 -0500 Date: Fri, 20 Mar 1998 10:09:20 -0500 From: Paul Prescod papresco@technologist.com Subject: Minimum set of primitives? Rodrigo Ventura wrote: > > >>>>> "Paul" == Paul Prescod writes: > > Paul> On a purely social level, I think that any project trying to design an > Paul> operating systems from scratch over the Internet is likely to fail. > > Are you from Microsoft or something??? 8-) > > Now seriously, many of the *best* freeware software have been > made in this medium. Do you know Linux, Emacs, GIMP, etc.? I don't know about the GIMP, but EMACS and Linux were *not* made in this environment. Linux was started by *one man* who kept control over everything (essentially) and started the project using a (relatively) coherent existing design. Emacs is more or less the same. Neither was created by a committee of people shouting their favourite design features, and neither was *research* or *design*. They were both *implementation* efforts where the designs were more or less known already (there are lots of Unix-like operating systems and text editors to steal features from). > Ok, now seriously again, of course some leadership may be > necessary at some point. But that shall not prevent us from > speculating and discussing ideas. Let's just hope someone with enought > expertise, lisp insight and leadership comes about. There's nothing wrong with talking. Just don't think that we're moving forward by discussing "file system or object system" every three months. We won't move forward until someone starts coding. Paul Prescod - http://itrc.uwaterloo.ca/~papresco The United Nations Declaration of Human Rights will be 50 years old on December 10, 1998. These are your fundamental rights: http://www.udhr.org/history/default.htm From joswig@lavielle.com Fri, 20 Mar 1998 16:30:38 +0100 Date: Fri, 20 Mar 1998 16:30:38 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 14:57 Uhr +0100 20.03.1998, Rodrigo Ventura wrote: > CLISP: by now, this is my favourite CL system. Very compact, >useful command-line editing, reasonably fast, nice GC, very solid, but >has feable support and doesn't seem to link well with external stuff. CLISP is very useful. Has "only" a byte-code compiler. Really big applications might be "slow". Doesn't really try to be ANSI CL compatible. Further development is a bit slow now (Bruno Haible stepped aside)? > CMUCL: as I said before, I found it too heavy. Ok, it compiles >directly to assembly, and this is great for speed, but the GC is too >slow, it GC's too much. I think it's too huge to serve as a base for a >LispOS. People are working to improve GC (by having a generational GC). When it comes to size, I don't care about that too much nowadays. My home PC has 128 MB RAM, my next Laptop will have > 200 if possible. RAM is cheap these days. Don't waste memory if not necessary, but this is not my primary concern these days. > ECL: I'm trying that one right now, it has the flavour of gcl >but seems to have more features. It also supports threads. Seemed to be to buggy to me. > I'm sure the survey of the comp.lang.lisp FAQ is rather >complete (updated?), so what we really need is a survey under the >light of the LispOS. There was/is source for a Common Lisp system from BBN in the CMU archive. Then there is WCL (old). > Rainer> Currently CMU CL is the only choice for a CL-based system (IMHO). > > Why do you say "only"? Because it is the only system with a native code compiler. And some people are still hacking with CMU CL. But actually for applications I don't care where my stuff runs. I want it portable. I'm using Mac OS, Genera, Windows and Solaris. I want to run my code on all these platforms. ANSI CL is the language, CLIM is the UIMS and CL-HTTP is the network. I'd rather not like to write unportable code (Well, sometimes, ...). So if there is a new CL-based Emacs for example, I want it portable. A one platform only version does not make sense to me. Eventually the Lisp OS may give a nice overall integrated environment - but until this happens applications can already be written. Rainer Joswig Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From kragen@pobox.com Fri, 20 Mar 1998 10:38:26 -0500 (EST) Date: Fri, 20 Mar 1998 10:38:26 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Fri, 20 Mar 1998, Lyn A Headley wrote: > Kragen> I suggest another way: a sort of economy, like Linux. > > This is a pretty pragmatic approach, and it leads to a proliferation > of code, which is pretty cool, but it sure as hell doesn't lead to an > elegant system. Rather, it leads to something about as elegant as > Linux. I think it's critical that we *do not* start writing code yet. > I mean, we can't just start hacking pieces of a system without > thinking of the system as a whole. We must decide *what* we want to > build before we start building it. Well, this is a good thing to some point. But we should pay attention to the schedule that was planned for the GNU Hurd and the schedule that was actually implemented for it, and take a lesson from that. I suspect, though, that you have more large-system experience than I do. Perhaps you are familiar with ways to prevent this from happening. Kragen From kragen@pobox.com Fri, 20 Mar 1998 10:56:21 -0500 (EST) Date: Fri, 20 Mar 1998 10:56:21 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Paul Prescod wrote: > I don't know about the GIMP, but EMACS and Linux were *not* made in this > environment. Linux was started by *one man* who kept control over > everything (essentially) and started the project using a (relatively) > coherent existing design. Emacs is more or less the same. This is also true of the GIMP -- except it was two men instead of one. Both of them have now left the project; it stagnated for a few months, but now Quartic has pretty much taken over. Kragen From cosc19z5@Bayou.UH.EDU Fri, 20 Mar 1998 10:01:02 -0600 (CST) Date: Fri, 20 Mar 1998 10:01:02 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@Bayou.UH.EDU Subject: Lisp Machine Emulators? Hi all, Nice to see more life coming into this group. I hope it leads to something this time, but to be honest, I doubt it still. But my pessimism aside (I still think we need leadership darnit! :)), I saw reference to an Interlisp emulator for the PC? Is this a commercial product, or is it downloadable, and if so from where? I did a brief web search but found nothing. In fact, are there any lisp machine emulators out there, and if so from where may they be acquired? Apart from being able to try out a Lisp machine at home, I think this thing may give more people a better idea as to what needs to be done, and could be very inspirational. Even if the system differs from what we want to do (my understanding is that we are trying to do the same thing), at the least they can get an idea as to the pros and cons of a Lisp OS. Regards, Ahmed From kragen@pobox.com Fri, 20 Mar 1998 11:10:08 -0500 (EST) Date: Fri, 20 Mar 1998 11:10:08 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Fri, 20 Mar 1998, Chris Bitmead wrote: > Personally I would like to see something that does the main > things that we want even if it is appallingly slow, and awfully > ugly and riddled with hacks. Once people understand what we're > aiming for they will be motivated to make it elegant/fast. Well, yes. Linux 1.x was never intended to be portable. Significant parts of it were written in assembly. Lots of assumptions about the x86 architecture were embedded in it. Then folks started getting ants in their pants about porting it to the Sparc and the Alpha. Large parts of the kernel were rewritten, the source tree was reorganized, and lots of old code was thrown out. This was part of the 1.3.x development effort. (But only a part of it!) Incremental development is God in the open-source world. Kragen From kragen@pobox.com Fri, 20 Mar 1998 11:19:30 -0500 (EST) Date: Fri, 20 Mar 1998 11:19:30 -0500 (EST) From: Kragen kragen@pobox.com Subject: Benevolent Dictatorship On Fri, 20 Mar 1998, Rainer Joswig wrote: > I'd rather not like to write unportable code > (Well, sometimes, ...). So if there is a new CL-based > Emacs for example, I want it portable. Emacs is definitely worth thinking about: - It's certainly the most-widely-used Lisp VM - the elisp reference manual claims that there are only minor differences between elisp and CL, consisting mostly of CL features that don't exist in elisp (notably, there is no CLOS at all), but I am not in a position to evaluate this - there are several large applications written in it -- the "IDE", of course, several mailreaders and newsreaders, a Web browser, etc. These are more widely used than any other large Lisp applications in the world, and are accordingly succumbing to feature creep. It obviously needs some work: threads and CLOS are a minimum. JIT is probably a priority. These are big jobs. CMU CL already has them, right? (I haven't used CMU CL.) Kragen From chrisb@ans.com.au Fri, 20 Mar 1998 16:24:16 +0000 Date: Fri, 20 Mar 1998 16:24:16 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? Christian Lynbech on satellite wrote: > > >>>>> "Chris" == Chris Bitmead writes: > > Chris> The other big question that arises is whether and how to > Chris> support non-Scheme programs. That is where the debate starts as > Chris> to whether UNIX should run underneath LispOS in order to > Chris> support C apps (and provide a bootstrap or base system to avoid > Chris> writing device drivers). > > Oh no. A unix program needs to link against a unix runtime system. No it doesn't. Only if it needs to access "UNIX"y things. A scheme program wouldn't need to do these things, so it wouldn't need to link with libc. (Well depending on how things are implemented it wouldn't) > One cannot hate emacs, as we say over in alt.religion.emacs. Garbage > collection is a fact of life just as the sun must set in the evening > in order to rise again in the morning. > > :-) :-) :-) Garbage collecting is a fact of life, but stopping the universe to do it, need not. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From joswig@lavielle.com Fri, 20 Mar 1998 17:30:10 +0100 Date: Fri, 20 Mar 1998 17:30:10 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 11:19 Uhr -0500 20.03.1998, Kragen wrote: >It obviously needs some work: threads and CLOS are a minimum. JIT is probably >a priority. These are big jobs. CMU CL already has them, right? (I haven't >used CMU CL.) Erik Naggum is interested in porting Emacs to Common Lisp (starting with ACL) using CLIM. This could be a killer application - which also could be the user interface central for a LispOS. His motivation is to get rid of Emacs Lisp and its implementation. A decent version of Common Lisp would be a better base for an editor (which might not be big - just look at MCL). Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From kragen@pobox.com Fri, 20 Mar 1998 11:30:49 -0500 (EST) Date: Fri, 20 Mar 1998 11:30:49 -0500 (EST) From: Kragen kragen@pobox.com Subject: Lisp Machine Emulators? On Fri, 20 Mar 1998, cosc19z5@bayou.uh.edu wrote: > In fact, are there any lisp machine emulators out there, and > if so from where may they be acquired? Open Genera is a sort of Symbolics LispM emulator that runs on the Alpha. I don't know if it can be acquired from anyone at the moment, since Symbolics is bankrupt again. It would be nice if someone could just give me a copy, but I don't have an Alpha. I agree that this is very important. I'd sure like to get a LispM myself, but I expect that I'd need to pay someone a lot of money for it. (I don't have a Mac, so if I get a MacIvory, I'd need to get a Mac along with it :) Kragen From joswig@lavielle.com Fri, 20 Mar 1998 17:31:13 +0100 Date: Fri, 20 Mar 1998 17:31:13 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Lisp Machine Emulators? At 10:01 Uhr -0600 20.03.1998, cosc19z5@bayou.uh.edu wrote: >But my pessimism aside (I still think we need leadership darnit! :)), >I saw reference to an Interlisp emulator for the PC? Is this >a commercial product, or is it downloadable, and if so from >where? I did a brief web search but found nothing. It is(was?) a commercial product from "Venue". I guess it is difficult to get. I know someone who managed to get a copy (not me) here in Germany. >In fact, are there any lisp machine emulators out there, and >if so from where may they be acquired? Open Genera is an emulator of the Symbolics Genera OS running on DEC Alpha (under OSF/1). DEC Alphas are not very common manchines, though. >Apart from being able to try out a Lisp machine at home, >I think this thing may give more people a better idea >as to what needs to be done, and could be very inspirational. Some commercial Lisp systems are either featureful (like LispWorks under Unix) or can interface the native OS very good (like Macintosh Common Lisp). There you can get very far while staying inside Lisp. Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From kragen@pobox.com Fri, 20 Mar 1998 11:36:27 -0500 (EST) Date: Fri, 20 Mar 1998 11:36:27 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Christian Lynbech on satellite wrote: > >>>>> "Kragen" == Kragen writes: > > Kragen> I'm afraid I don't know what the Fluke kit is. Is this a FAQ? > > Some have argued here (again from memory) that starting with something > like Linux would inevitably mean that we inherit many of the bad > things from UNIX, such as the filesystem That's kind of silly. Linux lets you access block devices directly if you want without any filesystem at all. What more could you want? Well, I guess you might have to have a small filesystem to boot from, but the rest of the disk can be objects all the way. > or the all powerfull root user. Java-style security, with unforgeable capabilities, should be plenty, I think. There really isn't any way we can map that onto any set of Unix users, so we shouldn't even try. Just run the LispVM as root, or better yet, as part of the kernel. Kragen From kragen@pobox.com Fri, 20 Mar 1998 11:50:21 -0500 (EST) Date: Fri, 20 Mar 1998 11:50:21 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > Garbage collecting is a fact of life, but stopping the universe > to do it, need not. Incremental garbage collection is hard. Ever implemented it? Nevertheless, I agree that it's extremely important for some things. Kragen From hjstein@bfr.co.il 20 Mar 1998 19:55:52 +0300 Date: 20 Mar 1998 19:55:52 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship kragen@pobox.com (Kragen) writes: > On Fri, 20 Mar 1998, Chris Bitmead wrote: > > Personally I would like to see something that does the main > > things that we want even if it is appallingly slow, and awfully > > ugly and riddled with hacks. Once people understand what we're > > aiming for they will be motivated to make it elegant/fast. > > Well, yes. Linux 1.x was never intended to be portable. Significant > parts of it were written in assembly. Lots of assumptions about the > x86 architecture were embedded in it. This is sort of true. Significant parts were in assembler, but they were small parts of the whole. Lots of assumptions about x86 were embedded, but much of it was isolated from the rest of the code. Linus himself originally said that it wasn't portable. But, then some DEC guys started doing the alpha port, and had it runing on DEC alphas in a surprisingly short amount of time. It turned out that the machine dependencies weren't so hard to isolate and fix. Of course, since the system as a whole is mostly 3rd party (GNU & X), and these had been running on all sorts of systems for ages, once the kernel was ported it wasn't much additional work to get a fully running system. Most notably, there was already a native compiler. OTOH, lots of people did do lots of work initially getting all the apps configured for linux/intel, as well as configuring for all the new hardware ports, not to mention the whole XFree86 project, without which PC video cards wouldn't be supported. When you start thinking about all the piles of code needed/desired for PC hardware (ethernet cards, scsi cards, video cards, IDE, parallel port, serial port, CD players, sound cards, TV cards, scanners, all in both PCI & AT bus versions), it would sem a gargantuan task to build everything from scratch in Lisp. Hence, my tendency to agree with Chris Bitmead about building it on top of Linux. In fact, I'd go further - so as to avoid writing drivers (kernel internal & video), build it on Linux, and use X for graphics. I don't see why this will handicap the design - just treat Linux & X as 2 drivers. If you want to plug in more drivers & make the thing self hosting, then go ahead. But, that's just my opinion. He who writes the code has the say. -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From chrisb@ans.com.au Fri, 20 Mar 1998 16:59:51 +0000 Date: Fri, 20 Mar 1998 16:59:51 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Minimum set of primitives? Kragen wrote: > > On Fri, 20 Mar 1998, Chris Bitmead wrote: > > Garbage collecting is a fact of life, but stopping the universe > > to do it, need not. > > Incremental garbage collection is hard. I know. > Ever implemented it? Actually, yes. >Nevertheless, I agree that it's extremely important for some things. A bit hard to have a proper OS without it I would have thought. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From hjstein@bfr.co.il 20 Mar 1998 20:10:52 +0300 Date: 20 Mar 1998 20:10:52 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Minimum set of primitives? kragen@pobox.com (Kragen) writes: > On Fri, 20 Mar 1998, Paul Prescod wrote: > > I don't know about the GIMP, but EMACS and Linux were *not* made in this > > environment. Linux was started by *one man* who kept control over > > everything (essentially) and started the project using a (relatively) > > coherent existing design. Emacs is more or less the same. > > This is also true of the GIMP -- except it was two men instead of one. > Both of them have now left the project; it stagnated for a few months, > but now Quartic has pretty much taken over. "Control" is a strong word. Linux started as a task switcher. Versions 0.0* were written by Linus. When it progressed to where he thought he had something interesting, he put it up on the net. It was still pretty far from a unix kernel. Many people defected from minix hacking to contribute huge chunks of code (the networking support, the ext2fs file system, ...). I think Linus was pretty open about accepting such contributions. I'd consider him more as a "patch coordinator" than as a head of development who "kept control over everything". -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From kragen@pobox.com Fri, 20 Mar 1998 12:12:59 -0500 (EST) Date: Fri, 20 Mar 1998 12:12:59 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On Fri, 20 Mar 1998, Chris Bitmead wrote: > > KeyKOS got away from it for most applications by simply checkpointing > > the entire system periodically -- every couple of minutes. Wrote the > > I can't see how you can do that with even half reasonable > efficiency without special hardware - i.e. involatile memory. > > Unless you want to stop the whole system from time to time to > checkpoint everything, but don't people hate emacs when it stops > to garbage collect? I can't see this as feasible. What you talk > about would be great, but I can't see it being realistic. Well, it was used in an OS that ran mainframe OLTP applications. See for detailed information. It might be worth looking at. It's an example of how a restrictive design decision -- storing all state in one of two simple kinds of data structures -- made it possible to do something astonishing. It would not have been possible to retrofit this onto an OS after the fact. Instead of stopping the whole system completely until the checkpoint is complete, though, it simply marked all of the dirty memory as copy-on-write, allowing applications to continue to run while the actual disk writing occurred. It claims that a typical KeyKOS system checkpointed every five minutes, and the period of time in which processes are stopped is typically one second on a loaded system. The ratios between the size of a dollar of disk, a dollar of RAM, and a dollar of CPU time have changed since the early 1990s, so I don't know if this would still be true. Kragen From hjstein@bfr.co.il 20 Mar 1998 20:20:11 +0300 Date: 20 Mar 1998 20:20:11 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship hjstein@bfr.co.il (Harvey J. Stein) writes: > Linus himself originally said that it wasn't portable. But, then some > DEC guys started doing the alpha port, and had it runing on DEC alphas > in a surprisingly short amount of time. It turned out that the > machine dependencies weren't so hard to isolate and fix. I know I'm talking to myself, but to substantiate my claims, I wanted to list current linux ports (from http://sunsite.unc.edu/LDP/devel.html): Hardware Ports ARM Linux Linux/MIPS DEC Alpha (AXP) Linux/m68k (Atari and Amiga), Linux/m68k for Apple Macintosh, and Linux NeXT Cubes Linux/VME (m68k based MVME162/166/167 boards) and a MVME147 version ELKS Project (i8086 - i80286) LinuxPPC (PowerPC), Linux/PowerMac (Monolithic Linux for Apple PowerMacs) as well as LinuxPPC for Motorola PowerStack and IBM PPC Linux/AP+ (Fujitsu AP1000+) MkLinux for PowerMac (Micro Kernel Linux) Linux MCA Homepage (Micro Channel bus) SPARC/Linux Linux/sun3 VAXlinux HP PA-RISC L4Linux Linux/SGI VMELinux, Linux for VMEbus embedded systems. Of course, lots of these are in their prenatal state, but alot of them also boot & run applications. There's even a port to the PalmPilot! (see http://ryeham.ee.ryerson.ca/uClinux/). -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From hjstein@bfr.co.il 20 Mar 1998 20:29:10 +0300 Date: 20 Mar 1998 20:29:10 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Minimum set of primitives? Rodrigo Ventura writes: > >>>>> "Paul" == Paul Prescod writes: > > Paul> I don't know about the GIMP, but EMACS and Linux were *not* made in this > Paul> environment. Linux was started by *one man* who kept control over > > Yeah, you are absolutely in some points. However note that > Linus developed a very small Linux kernel, I guess version 0.01 was > about 70k gzipped code! Nowadays it has extended beyond the 10MB! Another size point - kernel .98 pl10, which was quite usable, was about 200k gzipped, if I recall correctly. BTW, this difference in source code size is largely due to drivers, which gives an idea of the amount of work necessary for supporting PC hardware, and this doesn't even count video cards! -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From hjstein@bfr.co.il 20 Mar 1998 20:31:42 +0300 Date: 20 Mar 1998 20:31:42 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship Lyn A Headley writes: > Gavin> 2. Bootstraping. This is a particularly difficult > Gavin> question, as the FLUX OS toolkit is unavailable. I think > Gavin> that we should open the table for motions on options in > Gavin> this catagory > > We should wait for flux. It should be released any time now, no? > There is plenty of designing to do before we write code anyway. My philosophy is to never wait for code. Always use what's currently available, or write it yourself. I've been burned every time I've waited for something that was supposed to be released "Real Soon". -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From ptw@pobox.com Fri, 20 Mar 1998 12:34:28 -0500 Date: Fri, 20 Mar 1998 12:34:28 -0500 From: P. T. Withington ptw@pobox.com Subject: Lisp Machine Emulators? On 3/20/98 11:30, Kragen wrote: >On Fri, 20 Mar 1998, cosc19z5@bayou.uh.edu wrote: >> In fact, are there any lisp machine emulators out there, and >> if so from where may they be acquired? > >Open Genera is a sort of Symbolics LispM emulator that runs on the >Alpha. I don't know if it can be acquired from anyone at the moment, >since Symbolics is bankrupt again. It would be nice if someone could >just give me a copy, but I don't have an Alpha. > >I agree that this is very important. There are actually a number of pieces that would be nice to recover from the Symbolics corpse that would be ideal for this project. One, Minima, is a CL implementation of an operating system with processes, networking and garbage collection that was originally developed under contract to AT&T to run on a diskless Ivory processor. The very lowest level of run time, in particular the memory management is Ivory specific, but much of the code is pure CL. I don't know if AT&T retained any rights to this work and/or if they could be persuaded to put it in the public domain. The OG emulator is written mostly in hand-tuned Alpha assembley, but there was a prototype written in C. Given a fast enough processor and clever enough C compiler, you could have a reasonably fast Ivory processor emulator. The prototype is not as faithful an implementation as the Alpha assembley version, so some work would be needed. Symbolics is currently in limbo, but it would be a great service to the Lisp community if the assets were put into the public domain. Unfortunately, the sources are the primary documentation of all the great work that went on there; there is very little written documentation about the evolution of the technology. From papresco@technologist.com Fri, 20 Mar 1998 12:39:22 -0500 Date: Fri, 20 Mar 1998 12:39:22 -0500 From: Paul Prescod papresco@technologist.com Subject: Minimum set of primitives? Harvey J. Stein wrote: > > "Control" is a strong word. Linux started as a task switcher. > Versions 0.0* were written by Linus. When it progressed to where he > thought he had something interesting, he put it up on the net. It was > still pretty far from a unix kernel. Many people defected from minix > hacking to contribute huge chunks of code (the networking support, the > ext2fs file system, ...). I think Linus was pretty open about > accepting such contributions. I'd consider him more as a "patch > coordinator" than as a head of development who "kept control over > everything". Linus did not allow things to get into Linux that he thought violated his design principles. IOW, he kept control. If someone had suggested (e.g.) a persistent object store in the kernel, Linus would not have let it in, because his goal was to copy Unix, not invent something. Paul Prescod - http://itrc.uwaterloo.ca/~papresco The United Nations Declaration of Human Rights will be 50 years old on December 10, 1998. These are your fundamental rights: http://www.udhr.org/history/default.htm From hjstein@bfr.co.il 20 Mar 1998 20:41:07 +0300 Date: 20 Mar 1998 20:41:07 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship kragen@pobox.com (Kragen) writes: > On Thu, 19 Mar 1998, Gavin E. Gleason wrote: > > Maybe we should use some sort of parlimentary procedure, and have > > an elected chairman. We could put motions on the table as to the > > steps as they become pertinent. Then we could vote as to which > > would be the best way to continue. > > I suggest another way: a sort of economy, like Linux. Some more Linux history to give people an idea of how things proceeded, - functionality, who controlled what, and the time frame involved (from http://www.acsu.buffalo.edu/~thies/Linux/Time_Line.html): Linux Time Line Unknown Dates - Please Help July 3, 1991 some device drivers, and the hard drive are now working; some basic user-level features are now being considered August 25, 1991 v0.01 is almost ready; MMU used for paging (not to disk yet) and segmentation, pseudo ttys, BSD sockets, user-mode filesystem, window size in the tty structure, systems calls are capable of supporting POSIX.1 and BSD-style filenames September 1991 Linux v0.01: no binaries are available yet, only source code; a small filesystem exists, along with a working disk-driver October 5, 1991 Linux v0.02: The first "official" version of Linux was announced. This version was able to run bash, gcc, gnu-make, gnu-sed, and compress. This version was not very usable. October 26, 1991 Linux v0.03: This version of Linux was considered usable. November, 1991 Linux v0.10 December 19, 1991 Linux v0.11: This was the first stand-alone version of Linux. There was still no SCSI support, although there were people working on it. Hardware setup for this version consisted of ISA+AT-disk. No init/login yet either, you would get bash as root upon bootup (standard in the next release as well). Partially working VM (paging to disk), but 4M was needed to be able to run the GNU binaries, especially gcc. Bootup was possible with only 2M, but you could not compile. December (Xmas) 1991 Linux v0.11+VM: Several people were trying to compile the kernel with 2M and failing, hence this version was made available to this small group of individuals that wanted to test it out. January 5, 1992 Linux v0.12: This was the first version of Linux to contain "non-essential" features. This was also the first version that Linus allowed any money to change hands due to Linux. Previously Linux had been distributed free, under a very lenient copyright owned by Linus. This previous copyright had actually been much more restrictive than the GNU copyright. March 1992 Linux v0.95 April 1992 Linux v0.96: This version of Linux was capable of running X-Windows August 7, 1992 I (Jonathan Magid) take over Linux archives from Alan Clegg and move them to sunsite.unc.edu. They had been at banjo.mcnc.org. The load on the machine was too great (according to his boss) as it was transfering 37 megabytes/day of Linux and 386BSD stuff per day. September 15, 1992 Alan Clegg submits a proposal for file system standardization on behalf of the Linux-Standards list. October 18, 1992 Linux v0.98.2: This version contained a new FPU-emulator by Bill Metzenthen. Bigger than the old one by Linus, but instead of only doing a few of the most important instructions, it emulates the whole 387 instruction set. It was also much faster than the old emulator + the soft math library. The new emulator made a separate soft-float library unnecessary, which simplified GCC distribution a bit. Minor memory management fixes: One of the minor fixes, the trapping of kernel NULL dereferences, proved to break a lot code. This proved to be very good, since many kernel or driver bugs showed up. Unfortunately, v0.98.pl2 was not usable on many computers, since the kernel bugs creep up too often. SCSI driver changes by Eric Youngdale. Mostly bug-fixes. Some TCP/IP patches. TCP/IP was still alpha, and had not been extensively tested, and hence was not up to real use yet. Psaux mouse patches by Dean Troyer. Starting with this version, Linus will no longer made bootdisks. This task was turned over to H.J. Lu and Jim Winstead. October 19, 1992 Peter Williams announced a debugged version of ed, the Unix line editor, courtesy of Bill Metzenthen. ed was used mostly by patch and shell scripts. In the early days of Unix ed was used as the primary editor. October 20, 1992 Peter MacDonald announced an update to SLS. It contained man pages that were accidentally removed in a previous release. David Black announced Pirates BBS v1.9 for Linux. It was a multiuser bulletin board system. Working kernel TCP/IP was required, and 10M of disk space was recommended. Olaf Erb announced Wampes with Linux support. The announcement didn't describe what it was. Thomas Dunbar announced a port of GNU's free-standing info file reader. This package allowed you to read the GNU on-line documentation, instead of doing it from within GNU Emacs. Also included were makeinfo and texindex, used for formatting info files from texinfo source code. October 21, 1992 Mark Becker, the author of RaWrite, announced a new version. The new version was supposed to run on ``nearly everything claiming to be compatible with the original IBM-PC''. RaWrite was an MS-DOS utility that was used to write out disk images (e.i. bootdisks) onto floppies. Under Linux the equivalent command is ``dd if=diskimage of=/dev/fd0'' (if you want to write to the first floppy). It was not possible to just copy the floppy image file to the floppy under MS-DOS, since that would require the floppy to have the DOS filesystem on it, which means that the disk would have extraneous stuff on it, not just the parts in the image file. Larry Butler announced an upload of xv 2.21 binaries. There was trouble with his first upload (compiled with debugging and hence very large binaries), but that got fixed quickly. October 23, 1992 Matthew Lewis announced an upload of dclock. October 25, 1992 Thomas Losin announced tvgalib, a graphics library for Trident 8900C cards. This was based on the vgalib library, which is for generic VGA. Neither requires or has anything to do with X or other windowing systems. October 26, 1992 Qi Xia announced a new program cksum, a (mostly) POSIX conforming checksum program (not compatible with Unix sum). Vince Skahan announced an upload of Newspak v1.0. It was a package of programs related to Usenet news ported to Linux. The included programs were: C-news (12/22/91), tin (1.1pl4), trn (2.2), smail (3.1.28). Newspak used programs from Mailpak (by Ed Carp), which provided uucp and mail for Linux. Thomas Dunbar announced TeX packaged as an SLS package. October 27, 1992 Linux v0.98.3: This version corrected most of the kernel NULL pointer reference problems. November 7, 1992 Doug Evans releases his Xenix filesystem for Linux (98p3). November 19, 1992 Fred Van Kampen releases: new enhanced version of Laurence Culhane's Slip (original released when?) ports berkeley talk/d, ftp/d, rsh/d, host, dig, telnetd, rlogind, uucpd, tftp/d, his own inetd and telnetd. November 20, 1992 Ross Biro releases port of the BSD lpr suite. November 1992 Andrew Tridgell releases an early version of a NetBios server. I believe this is the pre-origin of the Samba server. December 2, 1992 Jim Nance releases a program to let you install a linux system over the network (the first one?). February 1993 First port to non-intel systems (Amiga) begins. FAQ posted by Greg Harp. February 1993 van Kampen releases new Slip driver, using his new Device Driver interface, to keep drivers from having to break layering (slip used to muck in termio and serial layers). April 1993 van Kampen releases Net-2, which replace Biro's original TCP/IP code. The new version features: Net source layout, BSD-osh SIOCxxx ioctl calls (more BSD programs port to linux), ifconfig allows bit-wide netmasks and ip-routing, integrated Donald Beckers 8390 and plip drivers, new SLIP driver, actual /dev devices for TCP/IP, hooks for new IP router, improved ARP module. May 1993 Phil Hughes announces plans for Linux Journal. September 17, 1993 Alan Cox begins to take over networking as flamewars over Net-2 (van Kempen) vs, Net-1 (Biro) rage. He removes much of the new code for stability reasons and starts work on Net-2D (debugged). September 21, 1993 Alan Cox releases Net-2D (debugged). This is a release to provide a stable transition between Net-1 and Net-2. November 29, 1993 First Alpha release of Umsdos FS, to allow running Linux from a MS-DOS FAT partition. December 1993 Linux v0.99.14 December 15, 1993 van Kempen releases Beta-3 of Net-2E, while Johannes Stille releases his own passel of fixes to Beta-2. January 18, 1994 Peter MacDonald (SLS) releases patches agains 99p4f to make most device drivers loadable modules. This isn't the same module support that the Linux kernel now supports, though. February 5, 1994 Code Freeze for Linux v1.0 February 18, 1994 Daniel Quinlan releases 1.0 of the File System Standard. February 26, 1994 Ted Ts'o announces an Alpha release of a full-rewrite of the Linux tty driver. The two main new features: Allows new low-level drivers to be written, eliminating hard-coded TTY major numbers. Line discipline interfaces were revamped to speed TTY handling (speeding slip and ppp greatly) (FFSTND), replacing Clegg's earlier work. March 1994 Annoucement of foundation of Linux International. Its goals are: 1) encourage as many people, organizations, and communities as possible to start using Linux 2) promote the development and distribution of freely available software. April 5, 1994 First Alpha of iBCS2, which allows you to run SVr3 (including SCO) apps under Linux. April 16, 1994 Linux v1.0 May 1994 Alan Cox releases his Net-3, which is a partial re-write of Net-2. Cox more or less takes of major development of the Linux networking from van Kempen. August 4, 1994 First Beta of Redhat ships. November 3, 1994 First release of Redhat ships. Linux v1.0 - v1.0.9 March 2, 1995 Linux v1.1 1995 Linux v1.1 - v1.1.95 August 2, 1995 Linux v1.2 1995 Linux v1.2 - v1.2.13 1995 Linux v1.2.8 June 6, 1996 Linux v1.3 1996 Linux v1.3 - (pre)v2.0.14 1996 Linux v1.3.59 1996 Linux v2.0 August 11, 1997 Linux v2.1 1997 Linux v2.1 - v2.1.49 Bibliography: Aaron Thies, Linus Torvalds, Lars Wirzenius ,Mark P. Nelson, J. Richard Sladkey, Jonathan Magid -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From joswig@lavielle.com Fri, 20 Mar 1998 18:44:26 +0100 Date: Fri, 20 Mar 1998 18:44:26 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 20:20 Uhr +0300 20.03.1998, Harvey J. Stein wrote: >I know I'm talking to myself, but to substantiate my claims, I wanted >to list current linux ports (from >http://sunsite.unc.edu/LDP/devel.html): GCC plays in important role in this. Take care of your compiler! Write backends. Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From kragen@pobox.com Fri, 20 Mar 1998 12:48:24 -0500 (EST) Date: Fri, 20 Mar 1998 12:48:24 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On 20 Mar 1998, Harvey J. Stein wrote: > (the networking support, the > ext2fs file system, ...). I think Linus was pretty open about > accepting such contributions. I'd consider him more as a "patch > coordinator" than as a head of development who "kept control over > everything". He rejected some changes, though, and he maintained pretty strong control over the overall framework. He says he should have made the backspace key emit control-H instead of \x7f, and a lot of people wanted him to do that. He refused at the time. Kragen From kragen@pobox.com Fri, 20 Mar 1998 13:02:27 -0500 (EST) Date: Fri, 20 Mar 1998 13:02:27 -0500 (EST) From: Kragen kragen@pobox.com Subject: Lisp Machine Emulators? On Fri, 20 Mar 1998, P. T. Withington wrote: > Symbolics is currently in limbo, but it would be a great service to the > Lisp community if the assets were put into the public domain. > Unfortunately, the sources are the primary documentation of all the great > work that went on there; there is very little written documentation about > the evolution of the technology. It would be nice if this could have happened before they went bankrupt. Would this be legal? It might be interpreted as destruction of assets that could otherwise be used to pay off creditors. If it *is* legal, perhaps other companies could be persuaded to do this in the future. Hundreds of start-ups in Silly Valley fail every year, no? Kragen From wolfram.rinke@kes-adaptive-systems.com Fri, 20 Mar 1998 19:14:37 +0100 Date: Fri, 20 Mar 1998 19:14:37 +0100 From: Wolfram Rinke wolfram.rinke@kes-adaptive-systems.com Subject: Fw: path to lispos ??? Here it is! Jordan wrote -----Ursprüngliche Nachricht----- Von: Jordan Henderson An: Wolfram Rinke Datum: Freitag, 20. März 1998 18:02 Betreff: Re: path to lispos ??? >I agree. If Richard Coleman is still listening I would like him to >speak directly on the subject of his original goals on starting this >project. I seem to remember that the original idea was to make a freely >available system which was similar in design and usefullness to the >Symbolics/Explorer/Lambda environments. > >I'm concerned that this project has been hijacked by a lot of >competing interests that insist that there is no value in doing >a LispOS if it's not a "completely reflective" system (whatever that >really means), or doesn't have an integrated persistent object system >(whatever that really means) or it's not integrated top-to-bottom >(whatever THAT really means). > >What has worked in the past on collaborative Internet projects? >I'm not sure what has worked, but I know that endless speculation >and wrangling over features has not worked, not on the LispOS >project and not on the Tunes project. > >I feel that Rainer has listed a number of important goals and has >stated a number of clearcut sub-projects that motivated people could >start on immediately. It's not clear to anyone that the result of >executing Rainer's list would be that super academic-buzzword-compliant >ultra-flexible earth shakingly revolutionary system that some people >seem to think is the goal, but I do think that having the Infrastructure >that the execution of these sub-projects would provide would imply the >existence of an environment where more ambitious projects could thrive. > >It is surprising when someone on this list says something like "I think >we can all agree that..." and we are immediately treated to a number of >differing views which don't agree with each other, but I'm going to >make one of these far reaching statements now. I think we can all >agree that we want a better computing paradigm that discards a lot >of the baggage from historical mistakes and narrow ways of viewing >problems, we just don't agree what intermediate steps are necessary >to get there. I feel some are focused on building the "ultimate" >solution from the start, while others just want better CL tools. > >From a practical standpoint, I feel the project lacks leadership. This >leadership could come by widespread acknowledgement of authority to >establish the "benevolent dictatorship" that some are calling for, or >by the authority that comes with accomplishment (someone writing something >substantial, the Linux model). However it comes about, leadership would >help us focus our efforts. In the meantime, it wouldn't hurt to just >start on Rainer's list. > >Unfortunately, some of the more important goals (from my perspective) can't >be accomplished without leadership (who will be "officially" responsible for >maintaining lispos.org, for example). > >Can we at least agree we need someone to work on "promotional" infrastructure >(lispos.org, circulating drafts of position papers, regularly posting reminders >to the appropriate newsgroups, perhaps a project symbol that we could encourage >people to put on their web pages which links to www.lispos.org, etc.)? Or are >we concerned that if we empower someone (or some group) in this way that >the project will be driven to too lofty or too narrow goals and will not be >something we can support? > >-Jordan Henderson >jordan@neosoft.com > >> >> Your are absolute right! If LispOS wants to be successfull, do it that way. >> We have been working on TI Lisp machines for many years, doing customer >> project. This machine (like Symbolics or LMI) had/have already versions of a LispOS and LispVM >> implemented in microcode. ;-) >> >> If you want to have a successfull LispOS clone one of them and bring it to widespread HW platforms. >> Run LispOS on top of NT and UNIX. Integrate it with the WWW. >> >> Good luck! >> Wolfram Rinke >> >> -----Original Message----- >> From: Rainer Joswig [SMTP:joswig@lavielle.com] >> Sent: Friday, March 20, 1998 1:56 AM >> To: lispos@math.gatech.edu >> Subject: path to lispos ??? >> >> At 15:07 19.03.98 -0500, you wrote: >> >On a purely social level, I think that any project trying to design an >> >operating systems from scratch over the Internet is likely to fail. >> >Copying an OS is simple: >> >> You could try to implement something along the lines of the >> Interlisp environment (this already exists as an emulation >> for the PC) or the Lisp machines of MIT heritage >> (LMI Lambda, TI Explorer, Symbolics, ...). But this >> is difficult. You could also look at Apple's now defunct Newton OS. >> >> >hundreds of potential volunteers. It is much better to clone something >> >that someone else has already designed (as in Linux). >> >> Yes, you are right on this one. But this is also one of >> the **************big************* weaknesses of Linux: >> it is just a copy. (A copy of something I'm not a particular >> fan of.) >> >> Some random thoughts: >> >> - make an overview of what is freely available for Lisp >> (implementations, GUI code, applications, tools, ...). >> >> - take care of the public available Lisp code of choice. >> The best start for a CL-based system currently is CMU CL, IMHO. >> >> - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! >> >> - brush up code that is available and desirable, but not actively >> maintained (defsystem, UIMS code, ...). >> >> - set up a web site: www.lispos.org . Don't use >> http://somemachine.somedepartment.someuniversity.edu//~whoever/cant-remember /obscure.html >> Put everything you have well documented on the web site. You can >> not afford to lose people by bad documentation (GUILE currently has >> no real documentation - a big mistake). The Symbolics Lisp machine >> had very good documentation. Don't care less. >> >> - identify people with time. Assign responsibilities (takes care about the docs, >> ensures the web site, maintains the file server, compares the >> implementations, ...) >> >> - write a position paper. Circulate widely. Try to get donations (machines, >> source, man power, ...). Provide regular updates on the project >> state. Remind people every month/week about this project. Every >> CS student should know about it. >> >> - start implementing an interface (telnet server with vtxxx, CL-HTTP >> access, X-based GUI (with editor, listener, inspector, command interpreter, >> backtrace, HTML browser, ...), ...). >> Maybe something along the lines of a CL-based Emacs-environment. Then >> the Lisp development system will also be everybody's favorite >> editor environment. >> >> - Implement a CL-HTTP-based chat system for the developers. >> >> - implement extensive introspective documentation access >> (class graphs, package overviews, method overviews, apropos, >> describe, documentation, ...) >> >> - what about storing and retrieving objects? >> >> - start implementing TCP/IP services >> -- write a mail server (SMTP, POP, IMAP). >> -- write a pop mail client. >> -- write a DNS server >> -- write a DNS client >> >> - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! >> >> - write a file browser (like the Mac finder, ...). >> >> - Start porting packages (SK8, ...). >> >> - implement a more sophisticated defsystem (with patches, CLOS-based, >> versions, access rights, web interface, ...). >> >> - Reimplement C-based software in Lisp. Make the code clearer and >> better documented (easy). >> >> - develop access methods to databases. >> >> - start writing a kernel. >> - memory allocation >> - process scheduling >> - security >> >> - develop a file system >> >> ... >> >> >> > > From yoda@isr.ist.utl.pt Fri, 20 Mar 1998 19:29:36 +0100 (GMT+0100) Date: Fri, 20 Mar 1998 19:29:36 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Benevolent Dictatorship >>>>> "Rainer" == Rainer Joswig writes: >> CMUCL: as I said before, I found it too heavy. Ok, it compiles >> directly to assembly, and this is great for speed, but the GC is too >> slow, it GC's too much. I think it's too huge to serve as a base for a >> LispOS. Rainer> People are working to improve GC (by having a generational GC). Rainer> When it comes to size, I don't care about that too much nowadays. Rainer> My home PC has 128 MB RAM, my next Laptop will have > 200 if Rainer> possible. RAM is cheap these days. Don't waste memory if Rainer> not necessary, but this is not my primary concern these days. Huge RAM requirements are not satisfied with cheap RAM. Wanna see why? Well, you have Windows95 and the Office, you have Netscape, you have statically linked Motif, etc. Why are Object Oriented solutions so slow? Because they waste alot of memory, just to provide the programmer extra funconality, which becomes almost useless afterwards. What I mean is that more memory induces more CPU time browsing though it. Means more time loading, GC'ing, etc. It's not just the SIMM (or DIMM) price, but rather the whole system performance. Of course there is such thing as time-memory trade-off, but this is not the case. Rainer> Currently CMU CL is the only choice for a CL-based system (IMHO). >> >> Why do you say "only"? Rainer> Because it is the only system with a native code compiler. Rainer> And some people are still hacking with CMU CL. My opinion fall down alot when I tried a trivial factorial function, and observed CMUCL core dumping! How can a factorial function core-dump the CL system with large integers??? And when I tried a agent society simulation I developed using CLISP, it kept on GC'ing continuously, and ended-up going nowhere. Another thing I didn't like was the hard-coded directory locations. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From jordan@Starbase.NeoSoft.COM Fri, 20 Mar 1998 12:31:10 -0600 (CST) Date: Fri, 20 Mar 1998 12:31:10 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: path to lispos ??? Sorry for the duplication, I responded to Wolfram Rinke's note without copying the list and when I realized that I asked Mr. Rinke to forward it to the list, but I'd really rather have my note unquoted, because many people (at least I do) tend to skip over quoted material. I agree. If Richard Coleman is still listening I would like him to speak directly on the subject of his original goals on starting this project. I seem to remember that the original idea was to make a freely available system which was similar in design and usefullness to the Symbolics/Explorer/Lambda environments. I'm concerned that this project has been hijacked by a lot of competing interests that insist that there is no value in doing a LispOS if it's not a "completely reflective" system (whatever that really means), or doesn't have an integrated persistent object system (whatever that really means) or it's not integrated top-to-bottom (whatever THAT really means). What has worked in the past on collaborative Internet projects? I'm not sure what has worked, but I know that endless speculation and wrangling over features has not worked, not on the LispOS project and not on the Tunes project. I feel that Rainer has listed a number of important goals and has stated a number of clearcut sub-projects that motivated people could start on immediately. It's not clear to anyone that the result of executing Rainer's list would be that super academic-buzzword-compliant ultra-flexible earth shakingly revolutionary system that some people seem to think is the goal, but I do think that having the Infrastructure that the execution of these sub-projects would provide would imply the existence of an environment where more ambitious projects could thrive. It is surprising when someone on this list says something like "I think we can all agree that..." and we are immediately treated to a number of differing views which don't agree with each other, but I'm going to make one of these far reaching statements now. I think we can all agree that we want a better computing paradigm that discards a lot of the baggage from historical mistakes and narrow ways of viewing problems, we just don't agree what intermediate steps are necessary to get there. I feel some are focused on building the "ultimate" solution from the start, while others just want better CL tools. >From a practical standpoint, I feel the project lacks leadership. This leadership could come by widespread acknowledgement of authority to establish the "benevolent dictatorship" that some are calling for, or by the authority that comes with accomplishment (someone writing something substantial, the Linux model). However it comes about, leadership would help us focus our efforts. In the meantime, it wouldn't hurt to just start on Rainer's list. Unfortunately, some of the more important goals (from my perspective) can't be accomplished without leadership (who will be "officially" responsible for maintaining lispos.org, for example). Can we at least agree we need someone to work on "promotional" infrastructure (lispos.org, circulating drafts of position papers, regularly posting reminders to the appropriate newsgroups, perhaps a project symbol that we could encourage people to put on their web pages which links to www.lispos.org, etc.)? Or are we concerned that if we empower someone (or some group) in this way that the project will be driven to too lofty or too narrow goals and will not be something we can support? -Jordan Henderson jordan@neosoft.com Wolfram Rinke writes: > > Your are absolute right! If LispOS wants to be successfull, do it that way. > We have been working on TI Lisp machines for many years, doing customer > project. This machine (like Symbolics or LMI) had/have already versions of a LispOS and LispVM > implemented in microcode. ;-) > > If you want to have a successfull LispOS clone one of them and bring it to widespread HW platforms. > Run LispOS on top of NT and UNIX. Integrate it with the WWW. > > Good luck! > Wolfram Rinke > > -----Original Message----- > From: Rainer Joswig [SMTP:joswig@lavielle.com] > Sent: Friday, March 20, 1998 1:56 AM > To: lispos@math.gatech.edu > Subject: path to lispos ??? > > At 15:07 19.03.98 -0500, you wrote: > >On a purely social level, I think that any project trying to design an > >operating systems from scratch over the Internet is likely to fail. > >Copying an OS is simple: > > You could try to implement something along the lines of the > Interlisp environment (this already exists as an emulation > for the PC) or the Lisp machines of MIT heritage > (LMI Lambda, TI Explorer, Symbolics, ...). But this > is difficult. You could also look at Apple's now defunct Newton OS. > > >hundreds of potential volunteers. It is much better to clone something > >that someone else has already designed (as in Linux). > > Yes, you are right on this one. But this is also one of > the **************big************* weaknesses of Linux: > it is just a copy. (A copy of something I'm not a particular > fan of.) > > Some random thoughts: > > - make an overview of what is freely available for Lisp > (implementations, GUI code, applications, tools, ...). > > - take care of the public available Lisp code of choice. > The best start for a CL-based system currently is CMU CL, IMHO. > > - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! > > - brush up code that is available and desirable, but not actively > maintained (defsystem, UIMS code, ...). > > - set up a web site: www.lispos.org . Don't use > http://somemachine.somedepartment.someuniversity.edu//~whoever/cant-remember/obscure.html > Put everything you have well documented on the web site. You can > not afford to lose people by bad documentation (GUILE currently has > no real documentation - a big mistake). The Symbolics Lisp machine > had very good documentation. Don't care less. > > - identify people with time. Assign responsibilities (takes care about the docs, > ensures the web site, maintains the file server, compares the > implementations, ...) > > - write a position paper. Circulate widely. Try to get donations (machines, > source, man power, ...). Provide regular updates on the project > state. Remind people every month/week about this project. Every > CS student should know about it. > > - start implementing an interface (telnet server with vtxxx, CL-HTTP > access, X-based GUI (with editor, listener, inspector, command interpreter, > backtrace, HTML browser, ...), ...). > Maybe something along the lines of a CL-based Emacs-environment. Then > the Lisp development system will also be everybody's favorite > editor environment. > > - Implement a CL-HTTP-based chat system for the developers. > > - implement extensive introspective documentation access > (class graphs, package overviews, method overviews, apropos, > describe, documentation, ...) > > - what about storing and retrieving objects? > > - start implementing TCP/IP services > -- write a mail server (SMTP, POP, IMAP). > -- write a pop mail client. > -- write a DNS server > -- write a DNS client > > - document. Document. DOCUMENT. ****DOCUMENT****!!!!!! > > - write a file browser (like the Mac finder, ...). > > - Start porting packages (SK8, ...). > > - implement a more sophisticated defsystem (with patches, CLOS-based, > versions, access rights, web interface, ...). > > - Reimplement C-based software in Lisp. Make the code clearer and > better documented (easy). > > - develop access methods to databases. > > - start writing a kernel. > - memory allocation > - process scheduling > - security > > - develop a file system > > ... > > > From hjstein@bfr.co.il 20 Mar 1998 21:47:27 +0300 Date: 20 Mar 1998 21:47:27 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Benevolent Dictatorship Rainer Joswig writes: > At 20:20 Uhr +0300 20.03.1998, Harvey J. Stein wrote: > >I know I'm talking to myself, but to substantiate my claims, I wanted > >to list current linux ports (from > >http://sunsite.unc.edu/LDP/devel.html): > > GCC plays in important role in this. Take care of your > compiler! Write backends. Absolutely. I mentioned somewhere that there was substantially less work necessary because of the existence of GNU & X, most notably having gcc (or some other C compiler) either running on the target systems or capable of cross compiling for the target systems. Not to mention the hordes patching & reconfiguring said free software for Linux. -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From dtillman@cannonexpress.com Fri, 20 Mar 1998 13:31:45 -0600 Date: Fri, 20 Mar 1998 13:31:45 -0600 From: David Tillman dtillman@cannonexpress.com Subject: Benevolent Dictatorship >>>> Chris Bitmead > In my opinion the way forward is to build it on top of Linux for > now. The reason is > 1) It saves enormous amounts of work that we can't afford now. > 2) It allows us to ignore the compatibility issues for now. We > can still run UNIX programs straight away. > 3) Rebooting into a different OS that doesn't do anything isn't > fun. > 4) More people will try it in the initial stages if they don't > have to go through the headaches of a different OS. Yup. I am not opposed to LispOS running on top of Linux for these very reasons. Linux is popular enough that there will always be many hands to write a driver for that latest whiz-bang ISDN card. Linux could be viewed as another level of abstraction or as an API to hardware, for short term anyway... > I also personally want to see Scheme as the language, because I > havn't come to terms with all of the Lisp language yet. Plus also > I think most people agree that Scheme, in terms of it's base > language is an improvment. And if we are going to try to > challenge every accepted notion of what an OS should be -- well > hey --, might as well go the whole hog. Yup again. I have some worry that LispOS development resources will be split between A "heavy" Lisp version and a "light" Scheme version. > Here's a job that anybody could do, and it's not so hard. Look at > all the Scheme implementations and find one that is closest to > what we want, and then we should agree to just start using it. So far I have been liking MzScheme. It has non-OS based threads and an object system. I haven't messed with the object system yet so I can't report on its quality. -Dave -- David Tillman : dtillman@xevious.ml.org LISP email list : lisp-request@xevious.ml.org MzScheme email list : mzscheme-request@xevious.ml.org From vfr750@netcom.com Fri, 20 Mar 1998 11:49:48 -0800 (PST) Date: Fri, 20 Mar 1998 11:49:48 -0800 (PST) From: Will Hartung vfr750@netcom.com Subject: EMACS First? (Was: Benevolent Dictatorship) (Rainer, I accidently R)eplied this to you and not the list...) Rainer wrote: > > > Erik Naggum is interested in porting Emacs to Common Lisp > (starting with ACL) using CLIM. This could be a killer application - > which also could be the user interface central for a LispOS. > His motivation is to get rid of Emacs Lisp and its implementation. > A decent version of Common Lisp would be a better base for an > editor (which might not be big - just look at MCL). How does one, as a USER, distinguish that one is running on any specific OS? How many folks here log in to their X-Terminals, Windows, or terminal sessions, and immediatly fire up a screen encompassing EMACS window, and rarely, if ever, leave it? I'm not a fluent EMACS user...Heck, I'm not even a conversational EMACS user. I stumble about in it and keep banging my head on sharp corners. What are the consequences of starting from the top of the LispOS environment and working down towards a kernel versus starting from the kernel up? When Linux was being developed, once they started to get a kernel functional, their next primary step was to get GCC compiled and running on that kernel. Once they had GCC running, they started working on EMACS and BASH. Once those were accomplished, the floodgates opened and they started heaping and porting the gigs of C-source available from GNU and BSD to recreate their UNIX environment. If LispOS was able to get a kernel up and bootable, then what? The Lisp community doesn't really have access to the source base that the UNIX community does. However, how does ones LispOS experience appear to anyone, sans the kernel hackers, different than if someone went into Linux, and crafted the inittab to launch nothing but , for example the current iteration of ACL that Franz is kindly loaning out. Wouldn't that be "exciting" for most people? What if you turned on your computer, it whirred and buzzed, and up popped an Emacs display with a Lisp listener? Isn't that the fantasy of the first step? How will a first generation LispOS be more efficient than an EMACS built in to an ACL image on top of a Linux kernel? How long were GCC and EMACS around before Linux? How about the GNU file utilities? How much of the evnironment of what we now know as Linux was there BEFORE a kernel was even started or imagined? And how much of that does the Lisp community have to leverage a LispOS kernel once it appears? You want to bootstrap this project from "how abouts" and "what ifs" and "if only" to "Wow!" "Cool!" "Hey, check this out", then I think porting EMACS to CL is the first step. EMACS is the kernel of an exciting LispOS environment that most folks would be happy with, inittially, and would bring a LOT of applications with it. Lisp is the King of incremental development. Get EMACS into CL, and running in an image of SOME kind (ACL is just handy right now, though it isn't as portable because of licensing) is an enabler. But, CL is CL is CL (knock on wood), once EMACS and its minions have been ported, it provides a target and goal for CMUCL or whatever to run toward. "You want your environment to be cool? You gotta run EMACS-CL well." Make EMACS-CL the "Flight Simulator" of early "PC Compatibles". No GUI, no OOFS, none of those. Not yet. But LispOS needs a "bootstrap" monitor, and EMACS is probably the best candidate for such a monitor. Since 90% of the folks on this list are NOT OS or Kernel or Persistent Store or File systems hackers, getting this monitor up gives everyone an environment that can accelerate this whole process while the propeller beanie headed crowd huddle in their damp basements forging a kernel to support the juggernaut that is being formed one S-expression at a time. Regards, Will Hartung (vfr750@netcom.com) From ptw@pobox.com Fri, 20 Mar 1998 15:04:43 -0500 Date: Fri, 20 Mar 1998 15:04:43 -0500 From: P. T. Withington ptw@pobox.com Subject: Lisp Machine Emulators? On 3/20/98 13:02, Kragen wrote: >On Fri, 20 Mar 1998, P. T. Withington wrote: >> Symbolics is currently in limbo, but it would be a great service to the >> Lisp community if the assets were put into the public domain. >> Unfortunately, the sources are the primary documentation of all the great >> work that went on there; there is very little written documentation about >> the evolution of the technology. > >It would be nice if this could have happened before they went >bankrupt. Would this be legal? It might be interpreted as destruction >of assets that could otherwise be used to pay off creditors. It would be legal for someone to buy them and put them in the public domain. The creditors might be happy to take a few cents on the dollar. There was talk of any or all of MIT, Franz, Harlequin doing just this, but currently another party who is interested in the assets has them frozen. (This is what I hear through the rumor mill). From joswig@lavielle.com Fri, 20 Mar 1998 21:05:44 +0100 Date: Fri, 20 Mar 1998 21:05:44 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 19:29 20.03.98 +0100, Rodrigo Ventura wrote: >>>>>> "Rainer" == Rainer Joswig writes: > Huge RAM requirements are not satisfied with cheap RAM. Wanna >see why? Well, you have Windows95 and the Office, you have Netscape, >you have statically linked Motif, etc. Why are Object Oriented >solutions so slow? Because they waste alot of memory, just to provide >the programmer extra funconality, which becomes almost useless >afterwards. Real object oriented systems with reuse are not wasting that much space (best example the Newton OS - which is a lot like a Lisp OS and has tiny memory requirements). > What I mean is that more memory induces more CPU time browsing >though it. That's why better Lisp systems have a generational GC. Keeps the area to scan frequently small. Some have also an ephemeral GC, which looks for very short living objects. The Symbolics also does copying (wasting even more address room) of objects. This can help in preserving locality of objects. > Rainer> Currently CMU CL is the only choice for a CL-based system (IMHO). > >> > >> Why do you say "only"? > > Rainer> Because it is the only system with a native code compiler. > Rainer> And some people are still hacking with CMU CL. > > My opinion fall down alot when I tried a trivial factorial >function, and observed CMUCL core dumping! How can a factorial >function core-dump the CL system with large integers??? I don't know. If that happens, this looks like a bug to me. How did the CMUCL maintainers reacted to your bug report? > And when I >tried a agent society simulation I developed using CLISP, it kept on >GC'ing continuously, and ended-up going nowhere. The trick to make CMU CL useable is to increase the heap and make GC occur less often. Applications will need more space but will GC less frequent. Adding a generational/ephemeral GC would get rid of this. Improve CMU CL! > Another thing I >didn't like was the hard-coded directory locations. Sure. Ask the CMUCL maintainers about it. Make a proposal. Better send source code. Atleast complain. From mikemac@teleport.com Fri, 20 Mar 1998 12:11:05 -0800 (PST) Date: Fri, 20 Mar 1998 12:11:05 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Benevolent Dictatorship >From lispos-request@math.gatech.edu Fri Mar 20 11:49:10 1998 >Resent-Date: Fri, 20 Mar 1998 14:27:48 -0500 (EST) >Date: Fri, 20 Mar 1998 19:29:36 +0100 (GMT+0100) >From: Rodrigo Ventura >To: LispOS Mailling List >Subject: Re: Benevolent Dictatorship >Mime-Version: 1.0 (generated by tm-edit 7.95) >Resent-Message-ID: <"J_Mnc1.0.dF7.pCi4r"@math> >Resent-From: lispos@math.gatech.edu >X-Mailing-List: archive/latest/1942 >X-Loop: lispos@math.gatech.edu >Resent-Sender: lispos-request@math.gatech.edu > >>>>>> "Rainer" == Rainer Joswig writes: > > Rainer> Currently CMU CL is the only choice for a CL-based system (IMHO). > >> > >> Why do you say "only"? > > Rainer> Because it is the only system with a native code compiler. > Rainer> And some people are still hacking with CMU CL. > > My opinion fall down alot when I tried a trivial factorial >function, and observed CMUCL core dumping! How can a factorial >function core-dump the CL system with large integers??? And when I >tried a agent society simulation I developed using CLISP, it kept on >GC'ing continuously, and ended-up going nowhere. Another thing I >didn't like was the hard-coded directory locations. > Did you report the bug in CMUCL? Mike McDonald mikemac@mikemac.com From papresco@technologist.com Fri, 20 Mar 1998 16:31:46 -0500 Date: Fri, 20 Mar 1998 16:31:46 -0500 From: Paul Prescod papresco@technologist.com Subject: path to lispos ??? Jordan Henderson wrote: > > Can we at least agree we need someone to work on "promotional" infrastructure > (lispos.org, circulating drafts of position papers, regularly posting reminders > to the appropriate newsgroups, perhaps a project symbol that we could encourage > people to put on their web pages which links to www.lispos.org, etc.)? Or are > we concerned that if we empower someone (or some group) in this way that > the project will be driven to too lofty or too narrow goals and will not be > something we can support? I don't think what this project needs is promotion. Probably hundreds of individuals have posted messages about it. They just have no direction. Running code promotes itself. Paul Prescod - http://itrc.uwaterloo.ca/~papresco The United Nations Declaration of Human Rights will be 50 years old on December 10, 1998. These are your fundamental rights: http://www.udhr.org/history/default.htm From vogt@computer.org Fri, 20 Mar 1998 16:27:29 -0600 Date: Fri, 20 Mar 1998 16:27:29 -0600 From: Christopher J. Vogt vogt@computer.org Subject: Lisp Machine Emulators? At 2:04 PM -0600 3/20/98, P. T. Withington wrote: >On 3/20/98 13:02, Kragen wrote: > >>On Fri, 20 Mar 1998, P. T. Withington wrote: >>> Symbolics is currently in limbo, but it would be a great service to the >>> Lisp community if the assets were put into the public domain. >>> Unfortunately, the sources are the primary documentation of all the great >>> work that went on there; there is very little written documentation about >>> the evolution of the technology. >> >>It would be nice if this could have happened before they went >>bankrupt. Would this be legal? It might be interpreted as destruction >>of assets that could otherwise be used to pay off creditors. > >It would be legal for someone to buy them and put them in the public >domain. The creditors might be happy to take a few cents on the dollar. >There was talk of any or all of MIT, Franz, Harlequin doing just this, >but currently another party who is interested in the assets has them >frozen. (This is what I hear through the rumor mill). I have this vague recolection that the original license that Symbolics (and LMI and TI) had with MIT was such that any improvements (whatever that means) to the original MIT Lisp code was to be available to be passed back to MIT. So maybe MIT has, or has a right to, Genera? And if MIT has it, maybe they could/would make it available cheaply/free? Christopher (Chris) J. Vogt mailto:vogt@computer.org Omaha, NE http://members.home.com/vogt/ From laheadle@midway.uchicago.edu Fri, 20 Mar 1998 16:32:20 -0600 Date: Fri, 20 Mar 1998 16:32:20 -0600 From: Lyn A Headley laheadle@midway.uchicago.edu Subject: scheme vs common lisp A consensus seems to have emerged that we need to be practical. We all want to beg, borrow and steal whatever code we can, right? With this in mind, I propose that we can *significantly* increase our productivity by standardizing on RScheme as our implementation language of choice. RScheme is quite simply a kickass language implementation under very active development. Features extremely relevant to this project include: hard real-time GC, Modules, a persistent object store (already done!), Threads, an object system, a C interface, and good performance (compiles to C *or* bytecodes). Anyone who hasn't seriously checked out the language, go to www.rscheme.org (at least check out the /intro.html page which lists the main features). They have done so much of the work for us! As soon as somebody pops that sucker into Linux, the fun can really begin. RScheme's main competition from the CL folks seems to be CMUCL whose main strength, from what I gather, is that it is really fast. I also _hear_ (please correct me if I am wrong) that the implementation is huge and slow-compiling with a GC that we would eventually want to rip out altogether. It is also barely supported. The choice seems almost obvious to me. *opens the flood gates.* Let CMUCL die and embrace the wonderful world of RScheme. But I can hear the rumbles already. Shut up and write some code, Lyn. After all, the *only* true measure of success is in how much code has been written. (ok pretend like that was a segue back into the whole democracey/benevolent dictator thing.) I think people are right that we can't just keep exchanging emails filled with wild speculation. But I also think it's quite important to be able to measure the group's momentum/opinions/community spirit. Has anybody ever written a web-based tool by which a community can hash out issues? I've been thinking a little about it and I think it would be extremely useful to have a site which maintained bunches of current "issues," maybe with a list of proposed solutions to each issue and a tally of how the community felt about the issue at a certain time. You'd just need a server with names/passwords for each member, and people could change their vote whenever. It would be like an instant "snapshot" of the group's state of mind. That way people wouldn't just go out and hack something totally random without at least having some idea in advance how the group would react. does this sound cool to people? -Lyn From mikemac@teleport.com Fri, 20 Mar 1998 15:47:19 -0800 (PST) Date: Fri, 20 Mar 1998 15:47:19 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: scheme vs common lisp >From: Lyn A Headley >To: lispos@math.gatech.edu >Subject: scheme vs common lisp >Date: Fri, 20 Mar 1998 16:32:20 -0600 > > >A consensus seems to have emerged that we need to be practical. We >all want to beg, borrow and steal whatever code we can, right? > >RScheme's main competition from the CL folks seems to be CMUCL whose >main strength, from what I gather, is that it is really fast. I also >_hear_ (please correct me if I am wrong) that the implementation is >huge and slow-compiling with a GC that we would eventually want to rip >out altogether. It is also barely supported. > I don't know where people get this idea that CMUCL is "barely" supported. I'm on the cmucl-imp mailing list and there's always work going on. Granted, most of the new work starts under Linux (We're complaining about that????) but it does find its way into the other ports, with Solaris usually first. (Lot's of new developement takes place under Solaris too.) Sure, recompiling CMUCL is a daunting task best left to the foolish. I mean brave! But you don't need to be doing that either unless you're rewriting the GC or something. > >The choice seems almost obvious to me. *opens the flood gates.* >Let CMUCL die and embrace the wonderful world of RScheme. > Gag me with a spoon! Mike McDonald mikemac@mikemac.com From mikemac@teleport.com Fri, 20 Mar 1998 17:03:53 -0800 (PST) Date: Fri, 20 Mar 1998 17:03:53 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: scheme vs common lisp >From: Mike McDonald >Date: Fri, 20 Mar 1998 15:47:19 -0800 (PST) >To: laheadle@midway.uchicago.edu, lispos@math.gatech.edu >Subject: Re: scheme vs common lisp > > I don't know where people get this idea that CMUCL is "barely" >supported. I'm on the cmucl-imp mailing list and there's always work >going on. Granted, most of the new work starts under Linux (We're >complaining about that????) but it does find its way into the other >ports, with Solaris usually first. It's been pointed out to me that the two main developers prefer FreeBSD over Linux. The point remains the same however. CMUCL is under active developement. [Heck, I'm working on the HPUX port. If they've got me working on it, EVERYONE must be involved! :-) ] Mike McDonald mikemac@mikemac.com From laheadle@midway.uchicago.edu Fri, 20 Mar 1998 19:57:08 -0600 Date: Fri, 20 Mar 1998 19:57:08 -0600 From: Lyn A Headley laheadle@midway.uchicago.edu Subject: scheme vs common lisp >>>>> "Mike" == Mike McDonald writes: Mike> I don't know where people get this idea that CMUCL is Mike> "barely" supported. I got the idea from the announcement for CMUCL 17f, at http://www.cs.cmu.edu/afs/cs.cmu.edu/local/mosaic/common/omega/Web/groups/AI/lang/lisp/impl/cmucl/announce.txt Although the group lives on (and is working on Dylan/Gwydion), the CMU Common Lisp project is no longer funded, so only minimal CL support is being done at CMU. >place under Solaris too.) Sure, recompiling CMUCL is a daunting task >best left to the foolish. I mean brave! But you don't need to be doing >that either unless you're rewriting the GC or something. We don't want a compiler we can't hack. We do want incremental GC. >> The choice seems almost obvious to me. *opens the flood >> gates.* Let CMUCL die and embrace the wonderful world of >> RScheme. >> Mike> Gag me with a spoon! threads. persistence. a runtime system second to none. I think it's great that you love CMUCL so much. I'm sure it's a fine system and I wish you good luck with your HPUX port. However, it is a less appropriate choice for crafting a lisp OS than RScheme. www.rscheme.org -Lyn From davies@pobox.com Fri, 20 Mar 1998 20:37:55 -0700 Date: Fri, 20 Mar 1998 20:37:55 -0700 From: Byron Davies davies@pobox.com Subject: LM software ownership >I have this vague recolection that the original license that Symbolics (and >LMI and TI) had with MIT was such that any improvements (whatever that >means) to the original MIT Lisp code was to be available to be passed back >to MIT. So maybe MIT has, or has a right to, Genera? And if MIT has it, >maybe they could/would make it available cheaply/free? > >Christopher (Chris) J. Vogt Here's what I believe about the ownership of Lisp Machine intellectual property, after spending most of 1997 trying to get a new Lisp Machine company started: 1. Symbolics: As you know, the original Symbolics went bankrupt a few years ago. The assets of Symbolics were purchased by the new company, Symbolics Technology, which in turn went bankrupt this year. As recently as September 1997, it seemed as if the asset transfer from Symbolics to Symbolics Technology had not been legally completed, so for a time the intellectual property rights were up in the air. I don't know what has happened since then. After Symbolics Technology acquired the assets, MIT gave up its royalties from the Symbolics software, although I'm sure they still retain a proprietary interest. 2. TI: TI exited the Lisp Machine business several years ago. When I talked with them last April, there was one employee remaining who seemed to know something about the former Explorer business, but by the time I recontacted him in May, not only had he been laid off but -- according to the security guard on the phone -- his entire division had been laid off. Further investigation through the TI Intellectual Property office revealed that the Computer Systems Division, which included the Lisp Machine group, had been sold to HP in 1993, and that TI's remaining software assets were sold to Sterling Software in early 1997. No one at TI seemed to know whether the LM software license was included in either of these sales, but they were willing to investigate further if we would pay high hourly rates for their intellectual property lawyers. (It's interesting to think that HP may own the TI Explorer software.) Afterwards, I learned from a former Stanford employee that TI, on exiting the business, had sold all of its remaining Lisp Machines to Swiss Air -- but I don't know what kind of a license Swiss Air owns to the software. 3. LMI: LMI went bankrupt, but was not acquired by anyone, so its intellectual property may still be in the hands of the bankruptcy court. "ET", an LMI founder, tells the story of how he acquired the physical assets of LMI from a Cambridge electronics surplus dealer, but that transfer -- as I understand the law -- did not legally include the intellectual property. Anything to add, ET? 4. Mystech and the U.S Army: both these organizations are rumored to have complete source licences to Symbolics software. When the original Symbolics went bankrupt, it is possible that both Mystech and the Army gained additional rights to the code (software contracts are often worded this way). I don't know if the sources could be pried out of the U.S. Army under the Freedom of Information Act, nor what this would mean as far as intellectual property rights. Anybody know anything contrary or additional? Byron From mikemac@mikemac.com Fri, 20 Mar 1998 20:07:26 -0800 Date: Fri, 20 Mar 1998 20:07:26 -0800 From: Mike McDonald mikemac@mikemac.com Subject: scheme vs common lisp >To: lispos@math.gatech.edu >Subject: Re: scheme vs common lisp >Date: Fri, 20 Mar 1998 19:57:08 -0600 >From: Lyn A Headley > >>>>>> "Mike" == Mike McDonald writes: > > > Mike> I don't know where people get this idea that CMUCL is > Mike> "barely" supported. > >I got the idea from the announcement for CMUCL 17f, at > >http://www.cs.cmu.edu/afs/cs.cmu.edu/local/mosaic/common/omega/Web/groups/AI/lang/lisp/impl/cmucl/announce.txt > >Although the group lives on (and is working on Dylan/Gwydion), the CMU Common >Lisp project is no longer funded, so only minimal CL support is being done at >CMU. Try www.cons.org. >I think it's great that you love CMUCL so much. I'm sure it's a fine >system and I wish you good luck with your HPUX port. However, it is >a less appropriate choice for crafting a lisp OS than RScheme. That's why we still have a "massive divergence" of options. Mike McDonald mikemac@mikemac.com From coleman@math.gatech.edu Fri, 20 Mar 1998 23:25:11 -0500 Date: Fri, 20 Mar 1998 23:25:11 -0500 From: Richard Coleman coleman@math.gatech.edu Subject: path to lispos ??? > I agree. If Richard Coleman is still listening I would like him to > speak directly on the subject of his original goals on starting this > project. I seem to remember that the original idea was to make a freely > available system which was similar in design and usefullness to the > Symbolics/Explorer/Lambda environments. I'm sorry I've been so quiet in this discussion. I've busy recently (I'm getting married tomorrow, and will be on my honeymoon all next week). Although I got sidetracked on another project, I still have plans for the lispos project. I'll say more about it when I return, but it is essentially the same as I said a few months back. My plans are to start with CMUCL running on FreeBSD. Initially, you will need a FreeBSD machine in order to cross-compile the source. Those are my plans. If anyone is interested in this, there will be plenty to do. I'll say more when I get back. -- Richard Coleman coleman@math.gatech.edu From mbpomije@inav.net Fri, 20 Mar 1998 23:47:03 -0600 Date: Fri, 20 Mar 1998 23:47:03 -0600 From: Martin B. Pomije mbpomije@inav.net Subject: path to lispos ??? Richard Coleman wrote: > > > I agree. If Richard Coleman is still listening I would like him to > > speak directly on the subject of his original goals on starting this > > project. I seem to remember that the original idea was to make a freely > > available system which was similar in design and usefullness to the > > Symbolics/Explorer/Lambda environments. > > I'm sorry I've been so quiet in this discussion. I've busy recently > (I'm getting married tomorrow, and will be on my honeymoon all next > week). > > Although I got sidetracked on another project, I still have plans > for the lispos project. I'll say more about it when I return, > but it is essentially the same as I said a few months back. > > My plans are to start with CMUCL running on FreeBSD. Initially, > you will need a FreeBSD machine in order to cross-compile the source. > > Those are my plans. If anyone is interested in this, there will > be plenty to do. I'll say more when I get back. > > -- > Richard Coleman > coleman@math.gatech.edu I'd like to help out anyway that I can. (Unfortuneatly not much right now!) I think that the world needs an alternative to Gates and Co. The only OSs that can comptete with NT, have similar features, and are in the same price range are Linux and FreeBSD. Of course these are variants of Unix, and I really don't think that Unix will ever be a popular OS among average users because of its terrible user interface. You can read what I had to say on comp.lang.lisp about how cheap solutions almost always win out. (I'd be glad to forward it to any you if you are interested.) Unfortuneatly, I'm not a very experienced Lisp programmer. I'm teaching myself Common Lisp out of "ANSI Common Lisp" by Paul Graham and Scheme out of "Structure and Interpretation of Computer Programs" by Abelson and Sussmen. I plan on acquiring a MacIvory by the end of the month. I'd appreciate any suggestions of how I could increase my skill level so I could contribute. Thanks. -- ********************************************* Semi-encrypted email address: m_b_p_o_m_i_j_e_ a_t_ i_n_a_v_ d_o_t_ n_e_t_ All non-solicited commercial email will be billed $1,000. From jordan@Starbase.NeoSoft.COM Sat, 21 Mar 1998 08:21:18 -0600 (CST) Date: Sat, 21 Mar 1998 08:21:18 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: path to lispos ??? Paul Prescod writes: >I don't think what this project needs is promotion. Probably hundreds of >individuals have posted messages about it. They just have no direction. >Running code promotes itself. I agree that this is true. I certainly don't think that ALL this project needs is promotion. I was commenting on Rainer's goal of having a single "rallying point" web presence address and also his comment that every CS student should know about this project. I think those two things would go a long way to gathering the project momentum. If running code exists on a machine that nobody knows about is it running code? -Jordan Henderson jordan@neosoft.com From chrisb@Ans.Com.Au Sat, 21 Mar 1998 15:10:42 +0000 Date: Sat, 21 Mar 1998 15:10:42 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: scheme vs common lisp Lyn A Headley wrote: > With this in mind, I propose that we can *significantly* increase our > productivity by standardizing on RScheme as our implementation > language of choice. RScheme is quite simply a kickass language > implementation under very active development. Features extremely > relevant to this project include: hard real-time GC, Modules, a > persistent object store (already done!), Threads, an object system, a > C interface, and good performance (compiles to C *or* bytecodes). > Anyone who hasn't seriously checked out the language, go to > www.rscheme.org (at least check out the /intro.html page which lists > the main features). They have done so much of the work for us! As > soon as somebody pops that sucker into Linux, the fun can really > begin. I always knew RScheme was good (which was why I suggested it the other day), but I hadn't realised how far it had come of late until you pointed out this URL. Hey, the thing now appears to be well documented. That used to be the main problem with RScheme. Hey everyone, I SERIOUSLY suggest you check out RScheme. I reckon it is probably THE state of the art Lisp-like language implementation out there now. For me this now looks like a no-brainer. We should just go and use RScheme. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From yoda@isr.ist.utl.pt Sat, 21 Mar 1998 17:41:00 +0100 (GMT+0100) Date: Sat, 21 Mar 1998 17:41:00 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Benevolent Dictatorship >>>>> "Rainer" == Rainer Joswig writes: >> My opinion fall down alot when I tried a trivial factorial >> function, and observed CMUCL core dumping! How can a factorial >> function core-dump the CL system with large integers??? Rainer> I don't know. If that happens, this looks like a bug to me. Rainer> How did the CMUCL maintainers reacted to your bug report? Hum, I guess I considered myself humble enought to do not dare pointing a bug in the claimed "best CL system". I probably did something wrong. But as I was evaluating several CL systems, I simply passed on to the next one. >> And when I >> tried a agent society simulation I developed using CLISP, it kept on >> GC'ing continuously, and ended-up going nowhere. Rainer> The trick to make CMU CL useable is to increase the heap and make Rainer> GC occur less often. Applications will need more space but will Rainer> GC less frequent. Adding a generational/ephemeral GC Rainer> would get rid of this. Improve CMU CL! Increase the heap size???? Well, when I did a "ps ux" I noticed that CMUCL was using about 22MB of virtual memory! 22MB!!! There were times when a PC with 10MB hard drive was a luxury! The CMUCL system is far from 22MB, so why so much waste space (yeah, I know, Linux do not actually allocates thatg space on swap space, but rather marks its use until needed). Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From papresco@technologist.com Sat, 21 Mar 1998 13:43:46 -0500 Date: Sat, 21 Mar 1998 13:43:46 -0500 From: Paul Prescod papresco@technologist.com Subject: path to lispos ??? Jordan Henderson wrote: > > If running code exists on a machine that nobody knows about is it running > code? I just don't see any need to promote LispOS *before* there is running code. The last time we did that we started this list and in truth it's been more wasted time than anything. It would have been better if someone had said: "I've got this neat running kernel and I've set up a list for anyone who wants to help me with it." Then the infrastructure could be built. I'm wasting time even now, in this email. :) Paul Prescod - http://itrc.uwaterloo.ca/~papresco The United Nations Declaration of Human Rights will be 50 years old on December 10, 1998. These are your fundamental rights: http://www.udhr.org/history/default.htm From joswig@lavielle.com Sat, 21 Mar 1998 19:46:27 +0100 Date: Sat, 21 Mar 1998 19:46:27 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Benevolent Dictatorship At 17:41 21.03.98 +0100, Rodrigo Ventura wrote: > Hum, I guess I considered myself humble enought to do not dare >pointing a bug in the claimed "best CL system". I probably did >something wrong. But what? > But as I was evaluating several CL systems, I simply >passed on to the next one. Without bug reports software will never improve. Without complaining about software documentation, installation and usage instruction software will never improve. Currently there are not too much Lisp users and developers. Vendors have some excellent systems. But on the free software side we are not seeing too many Lisp applications (besides some University stuff) that can be compared to existing C/Perl/whatever based software. >From people here on this list, who are interested in having something that does not exist (besides on some exotic platforms), I would expect also that they are willing to contribute time (e.g. real lines of code and documentation). > Rainer> The trick to make CMU CL useable is to increase the heap and make > Rainer> GC occur less often. Applications will need more space but will > Rainer> GC less frequent. Adding a generational/ephemeral GC > Rainer> would get rid of this. Improve CMU CL! > > Increase the heap size???? Well, when I did a "ps ux" I >noticed that CMUCL was using about 22MB of virtual memory! 22MB!!! Seems not too much for a CL system. Was it on a SPARC? When I load MCL with my usual software I start it with 30 MB on my laptop. It can be used with 5 MB, though. Lispworks on my PC currently has (... looking ...) 46MB after some usage. I'm starting my Symbolics (Lisp based Genera is the OS) with some 200-300 MB virtual memory. Sometimes when I'm doing some log analysis my Lisp Machine gets 600 MB VM. Doing a full GC then takes a long time (30 minutes and more). But usually you don't need it very often (once a week?), due to the other GC mechanism available. The basic Symbolics Genera image file is around 50 MB on disk. The machines from 1990 with the Ivory chip (comparable in many ways to a 40-50 Mhz 68030) were very usable. A Lisp OS on todays machines would be very^h^h^h^h^hextremely fast. The all in Lisp approach makes it unnecessary to have too many software layers (-> interpreting/translating/converting) which are slowing things down. >There were times when a PC with 10MB hard drive was a luxury! When was it? Before or after the stone age? ;-) Have you looked lately how much disk space current development environments need (Visual C++, Codewarrior, ...)? If you are a developer for Oracle they'll send you a package of 50+ CDROMs (removing the duplicates for different platforms brings it down to 30+). The Genera OS from Symbolics is really tiny compared to those systems. An image, much of the source code of the OS, and the documentation would spread to (just a guess), say, 150 MB. My Symbolics 3640 from 1985 got in 1988 a 600 MB drive!!! We are living ten years later. It is hard to get drives with less than 2 GB. Typical laptops have disks between 2-5 GB. If you want a reasonable Lisp environment or a usable Lisp OS with GC and all the fun stuff (GUI, mailer, command interpreter, documentation, browsers, editor, backup software, web server, web browser, software distribution system, versioned file system, etc.) be prepared that you will need more than 22 MB. Actually I don't care that much about space nowadays. Our own time is much more valuable than a few MB of RAM chips. From gilham@csl.sri.com Sat, 21 Mar 1998 11:05:10 -0800 Date: Sat, 21 Mar 1998 11:05:10 -0800 From: Fred Gilham gilham@csl.sri.com Subject: CMUCL (was Re: Benevolent Dictatorship) My experience with CMUCL has been very positive. I've done a lot of benchmarking, comparing it to ACL 4.3 running under Linux, and CMUCL is as fast, or sometimes faster, in almost every area. CMUCL has improved a lot over the last few years. The one place where CMUCL falls down is in instance-creation under CLOS. Note that most CLOS operations besides this one are as fast or faster in CMUCL as in ACL. The reason CLOS instance-creation is slow under CMUCL is that it uses the generic PCL code. There's some discussion of how to fix this kind of thing in a brief paper by D. Scott Cyphers and David A. Moon that I ran across called ``Optimizations in the Symbolics CLOS Implementation''. I've appended their comments about make-instance to the end of this message. The enhancements they describe are compiler dependent but there's already support for them in the PCL code. Anyone interested in this should take a look at the file `construct.lisp' in the PCL code. It describes the idea and gives the hooks that would allow implementing the optimizations necessary to speed up make-instance. I guess one would have to understand both CMUCL's compiler and CLOS to do it. This is from the paper I mentioned: MAKE-INSTANCE The example implementation of MAKE-INSTANCE given in the CLOS specification is highly interpretive, and therefore slow. The following operations can be eliminated or optimized: mapping a class name to a class object, receiving keyword arguments, checking for invalid keyword arguments, defaulting unsupplied initialization arguments, evaluating slot initforms, and initializing slots from initialization arguments and slot initforms. The necessary operations of allocating storage and calling user-supplied initialization methods can be streamlined. Mapping a constant class name to a constant class object is ordinary constant-folding. A call to MAKE-INSTANCE with a constant class and constant keywords is optimized into a call to an automatically generated constructor function that specializes in creating objects of that class with those initialization arguments. This eliminates class lookup and all keyword argument processing (positional arguments are used), and simplifies defaulting of initialization arguments since the supplied/unsupplied status of each initialization argument is fixed. Other calls to MAKE-INSTANCE still call the MAKE-INSTANCE generic function, but dispatch to an automatically generated constructor method that specializes in creating objects of that class. Keyword argument processing and defaulting are still necessary in this case. The constructor function or method uses inlining of initforms, inlining of system-defined method bodies, direct calls to user-defined method functions, loop unrolling, elimination of redundant slot-boundp tests, and minimized instruction sequences for storing into slots. Since the system-defined methods called by MAKE-INSTANCE are highly interpretive (they get the list of slot-descriptions, iterate over them, check if the slot has any initargs, etc.) the inlining is not done by analyzing the body of the real method, but instead by a specialized generator function for each method. The generator functions are similar to macros, but have access to the class definition and to the sets of initialization arguments that are known to be supplied, defaulted, or might be either supplied or defaulted. These optimizations eliminate all run-time references to the class and slot-definition metaobjects. The information contained in those objects has been converted into compiled code instructions. With these optimizations, MAKE-INSTANCE on Ivory is slightly faster than MAKE-ARRAY and almost as fast as MAKE-LIST, measured for two slots or elements. Some care is required to regenerate the automatically generated constructor functions and methods if the class is redefined, and to arrange to generate them at load-time rather than at run-time so that the first instantiation of each class is not slowed down by calling the constructor generator and the compiler. From dtc@scrooge.ee.swin.oz.au Sun, 22 Mar 1998 11:01:58 +1000 (EST) Date: Sun, 22 Mar 1998 11:01:58 +1000 (EST) From: Douglas Thomas Crosher dtc@scrooge.ee.swin.oz.au Subject: scheme vs common lisp > Hey everyone, I SERIOUSLY suggest you check out RScheme. I reckon > it is probably THE state of the art Lisp-like language > implementation out there now. > > For me this now looks like a no-brainer. We should just go and > use RScheme. Some of the RScheme features look quite interesting, a few points: * if you're serious about writing an OS based on either RScheme or CMUCL you'll probably want to rewrite the thread and garbage collection implementations anyway to exploit better integration with the OS. * having a compiler you can hack on, as for CMUCL, may help in exploiting a tight coupling between the various subsystems. * One strong point of CMUCL is the potential of its object represention scheme to perform well at basic list allocation and garbage collection. Do you know the memory allocation overhead for a basic cons object in RScheme, which is 8 bytes in CMUCL? Just out of curiosity how does RScheme currently perform on a test of basic list allocation and garbage collection such as that below which completes in 16 seconds on CMUCL x86. Regards Douglas Crosher -=-=- (defvar *a* nil) (defvar *b* nil) (defun tst () (dotimes (i 20) (declare (fixnum i)) (setf *b* nil) (dotimes (j 500000) (declare (fixnum j)) (push (+ i j 1.2345d0) *b*)))) From davies@pobox.com Sat, 21 Mar 1998 18:11:17 -0700 Date: Sat, 21 Mar 1998 18:11:17 -0700 From: Byron Davies davies@pobox.com Subject: The Cathedral and the Bazaar In case anyone hasn't read this article about the general principles behind Linux's success, it's now been published online (prettified) by First Monday at http://www.firstmonday.dk/issues/issue3_3/raymond/index.html. Byron From davies@pobox.com Sat, 21 Mar 1998 18:26:13 -0700 Date: Sat, 21 Mar 1998 18:26:13 -0700 From: Byron Davies davies@pobox.com Subject: Crossing the Chasm & Gothic Cathedrals During the past year, while a partner and I were trying to start up a new Lisp company, I gave a lot of thought to what might make Lisp "cross the chasm" into the mainstream of computing. My conclusion was, "It's the apps, stupid", but we were too focused on the technology -- which we didn't own -- to make use of the conclusion. The notion of "crossing the chasm" came from Geoffrey Moore's book of that title, which I recommend heartily. The book is about taking a high-tech product into the mainstream by paying attention to principles of technology diffusion. The basic idea is that adopters of a new technology form a bell curve, with innovators and early adopters at one end, the mass market in the middle, and late adopters at the other end. The chasm that companies fall into is between early adopters and the mass market: they've got a product that the innovators (the "techies") and the early adopters have fallen in love with, but they can't get a critical mass of customers to buy the product. The generic solution is to define a niche market for which you develop a "whole product", and use this as a lever into the mainstream, much as Apple did with desktop publishing. Moore's second book, "Inside the Tornado", talks about what a company should do once it crosses the chasm and its product starts selling like hotcakes ("just ship"). His third book, which I haven't seen yet, is "The Gorilla Game: An investor's guide to picking winners in high technology". All this serves as an introduction to the following message, from the "Crossing the Chasm" discussion list. The thread it refers to began with a flame against existing email solutions. The message itself has an interesting discussion about products ("Gothic cathedrals") that die because they start out with TOO MANY features. Relevant? Byron ========== Date: Sat, 21 Mar 1998 08:59:50 -0700 From: Bill Meade To: "CROSSING THE CHASM discussion list" Reply-To: CROSSING THE CHASM discussion list List-Subscribe: This thread on email has gotten me thinking about 2 things. First, the idea of "universal inbox" has a strong case of creeping elegance. Creeping elegance: A couple years ago I worked as a marketing director at an email software company that had a product (that won Comdex's best product award) that was a "universal inbox" because ... it could download email from any (AOL, Compuserve, Prodigy, etc.) online service. Clearly a different paradigm than the Netscape/Cooltalk or MS Netmeeting paradigm that has been evoked in response to Chris O'Leary's musings. What changed the paradigm? I had an experience when working with an engineer friend that gave me a clue. While we were using Cooltalk's white-board, I became bored in about 5 minutes. I said "This isn't as useful as email." to which my friend replied "Whaaaaaaaaat are you talking about!" And from there we drilled into why I was bored and why he was thrilled and how both could happen on the same internet connection. Bottom line: working style. I'm an asynchronous person. I want to think up, write down, send, and forget. My friend on the other hand, is from a long tradition of engineers arguing while they scribble equations or technical diagrams on the same piece of paper. In short my friend's working style is very synchronous. Email is what bores him. I think this is a clue in addition to Chris O'Leary's observation that the frictions are so great that drawings are practically impossible to use in the email paradigm. What we have here are requirements without a burning mission critical business process to serve as a poster child for a solution. The internet may be the doorway to friction-free capitalism, but on the way to the net we have to deal with myriad small frictions with computers (Get a Mac!), applications software (email), and probably worst of all communications demons. Anyone else ever had a modem that isn't demon possessed? So what? This makes me think of the second idea harping back to my pocket theory of gothic cathedrals. The thumbnail of this pocket is that because market requirements are for fully transformed products, and because designers must iterate toward redefinition by successive stepping-stone approximations, initial introductions are usually overly complicated (i.e., designers are in denial about not knowing true requirements) gothic cathedrals of functionality. Favorite examples are Lotus Agenda. The world's most overcomplicated PIM. The thing was so powerful that it collapsed of its own weight once you had about 2 years worth of contacts in it. After the gothic cathedrals like Newton, come the "cherry picking" designs like the PalmPilot. After Agenda came Lotus Organizer (bought from outside because Lotus was in denial about the gothic cathedral being too complicated). The big implications of gothic cathedrals in general are that: (1) Cathedrals crush all competitive architectures. No cherry-picker product can be developed IN THE SAME ORGANIZATION as a gothic cathedral. (2) If cathedral products are not managed into cherry-picking products they ruin the market. This is what happened to pen-based computing. In particular, premature declaration of a mass market will set up a gothic cathedral to be gradually killed (death from 1000 cuts) by a cynical media. It is not pricing that ruins high-tech markets it is promising. (3) The only people who learn from the experimental trials of a gothic cathedral are the cathedral's competitors. The organization putting the cathedral out (and this may be an object-oriented proof of predestination) will ALWAYS be too much in denial to learn. Perhaps because there will be so much interpersonal turbulence that nobody dares collaborate for fear of backstabbing. *Note* Once you've worked in a company with this turbulence you too will spell backstabbing as one word. ;-) (4) Creative people won't stay at companies selling gothic cathedrals because the turbulence and denial are effective innoculants against creativity being harnessed, appreciated, or condoned. Hello Chris! (5) Investors hate gothic cathedrals because they want to fund cherry-pickers but don't know them when they see them. So, gothic cathedrals get funded by people that hate them ... and it shows. This is the true cultural confict of capitalism. (6) People with gothic cathedral products love to read Geoffrey Moore because they hope to recombine the building blocks they've opened veins to develop. The dream is to "get it right" and come "roaring back" into a tornado. I've never seen this happen though it does seem possible and if I had a gothic cathedral product I'd fall into the same death magnet. I think that if you've opened a vein to develop a product, it can become a family member and no decent parent will cut an arm off one child and stitch it onto another. The market however, waits for the whole product. Closing: Now I think that email has a bunch of gothic cathedrals right now. CC:Mail (which looks dormant and unrevised) is one. IMAP is another which nobody with an installed base who paid, has endorsed. Eudora is becoming a gothic cathedral (anyone sent voice email lateley?). It seems like every new internet capability like HTML and RealAudio gets nominated as "the missing link" between where email is today and the whole product that will come roaring back into a tornado. However, given the synchronous/async way people work and the fact that functions we know belong (like drawing) are not expressive options, I'm guessing that we won't see a cherry-picking product for a while. Why? Because there is no burning mission-critical business process to motivate the amputation of the false arms and legs that email packages have grown. Bill Meade bill@ecatalyst.com (208) 938-0272 H (208) 396-3145 O *** To subscribe to chasmlist email requests@ecatalyst.com a message with no subject and a one line message that says: subscribe chasmlist From davies@pobox.com Sat, 21 Mar 1998 19:24:27 -0700 Date: Sat, 21 Mar 1998 19:24:27 -0700 From: Byron Davies davies@pobox.com Subject: scheme vs common lisp Has anyone ever developed compiler declarations for Scheme? FYI, MCL 4.0, on a 200 MHz 604E, takes 25+ seconds and allocates 24 bytes per double-float cell. Byron >Just out of >curiosity how does RScheme currently perform on a test of basic list >allocation and garbage collection such as that below which completes >in 16 seconds on CMUCL x86. > >Regards >Douglas Crosher > >-=-=- > >(defvar *a* nil) >(defvar *b* nil) > >(defun tst () > (dotimes (i 20) > (declare (fixnum i)) > (setf *b* nil) > (dotimes (j 500000) > (declare (fixnum j)) > (push (+ i j 1.2345d0) *b*)))) From chrisb@ans.com.au Sun, 22 Mar 1998 05:29:55 +0000 Date: Sun, 22 Mar 1998 05:29:55 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: scheme vs common lisp > * One strong point of CMUCL is the potential of its object > represention scheme to perform well at basic list allocation and > garbage collection. Do you know the memory allocation overhead for a > basic cons object in RScheme, which is 8 bytes in CMUCL? Just out of > curiosity how does RScheme currently perform on a test of basic list > allocation and garbage collection such as that below which completes > in 16 seconds on CMUCL x86. > > (defvar *a* nil) > (defvar *b* nil) > > (defun tst () > (dotimes (i 20) > (declare (fixnum i)) > (setf *b* nil) > (dotimes (j 500000) > (declare (fixnum j)) > (push (+ i j 1.2345d0) *b*)))) I'd be happy to run this on RScheme if someone could convert it to scheme. Admittedly my lisp is rather poor compared to my Scheme, but the above code doesn't make any sense to me. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From dtc@scrooge.ee.swin.oz.au Sun, 22 Mar 1998 20:07:20 +1000 (EST) Date: Sun, 22 Mar 1998 20:07:20 +1000 (EST) From: Douglas Thomas Crosher dtc@scrooge.ee.swin.oz.au Subject: scheme vs common lisp > * One strong point of CMUCL is the potential of its object > represention scheme to perform well at basic list allocation and > garbage collection. Do you know the memory allocation overhead for a > basic cons object in RScheme, which is 8 bytes in CMUCL? After reading the implementation notes for RScheme; every object in RScheme has a two word header so a cons object uses 16 bytes of memory or twice as much as CMUCL, although CMUCL instances similarly have an effective word header. Chapter 5 of the implementation notes of RScheme regarding the use of safe points suggests this may need a rethink for a higher performance base: "In principle, safe points probably slow a system down significantly. ... For a system like RScheme which is not likely to every be that fast, the overhead is not that great." CMUCL does need to execute some code atomically which has some overhead but by appropriate code generation and a tight coupling with the garbage collector it is possible to GC at most points. Regards Douglas Crosher From chrisb@ans.com.au Sun, 22 Mar 1998 11:50:34 +0000 Date: Sun, 22 Mar 1998 11:50:34 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: scheme vs common lisp > After reading the implementation notes for RScheme; every object in > RScheme has a two word header so a cons object uses 16 bytes of memory > or twice as much as CMUCL, although CMUCL instances similarly have an > effective word header. Why 16 bytes, and not 12 bytes? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@ans.com.au Sun, 22 Mar 1998 14:04:03 +0000 Date: Sun, 22 Mar 1998 14:04:03 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Let's begin SchemeOS Well I've decided I'm going to do some real work on a Scheme OS, and I invite anybody with the same vision to help me. This is my vision. If you like my vision, join me. This is my project plan.... --Step 1-- As I've said before, I can't see enormous point in a Scheme OS without a Persistent store replacing the file system. That is where major, order of magnitude increases in productivity are going to occur. This is where the superiority of the system will make UNIX/Windows junkies sit up and take notice. It removes the need for programs to continually convert everything from disk to memory representation, but more importantly, it allows a user of the system to easily write cute little Scheme scripts that do incredibly powerful things. Whereas on UNIX you now need sophisticated packages like procmail to say filter your mail, instead with Scheme OS you would write a few little obvious Scheme statements that could do the same thing. It is cute LITTLE things like this which will make SchemeOS great. Little bits of code that people will contribute that will solve big problems through pure elegance. It therefore follows, that STEP 1 for this Scheme OS, is to design an initial object model for the things in the operating system. The design phase will answer questions like... What sort of hierarchy will be in the persistent store? What sort of object will store an email message? What sort of object will store a text file? How to store executable bits of code? Should there be objects to represent versions? What objects do we need to implement security? An example of what comes out of this might be that we have mail folders which are collections of mail objects. Mail objects might consist of a FROM text member, a TO text member, a Subject text member and a mail text member. I'll leave you to speculate on what object methods the mail object and mail collection objects might have. The end result will be a huge object model. Even if the project ends here, I think we will have left something useful for some future effort to start from. --Step 2-- But of course, we don't want it to stop there. Once the object model is done, the basic object structure can be coded in Scheme (Probably RScheme, since it already works with a persistent store). Once that's done, then a framework is in place, that lots of people can come along and do little bits and pieces without being overwhelmed. Like someone with a couple of hours to spare can write some Scheme to convert a UNIX mail file into a Scheme mail object in the persistent store. I like the functional programming model, so the object model will be designed to not conflict with the functional programming paradigm as much as is reasonable. The system shall be implemented on top of UNIX, for all the reasons previously mentioned. Personally I shall be using Linux. Therefore, the initial bits of code written will be done to hide the UNIX view of the universe, and to instead provide a view of things which is ideal to SchemeOS. Things like code to convert UNIX mail files to SchemeOS mail objects. That way code built on top will not be aware that underneath it all it is really UNIX that is delivering email. At some future time, some people may want to provide ways to remove UNIX all together. That is too far in the future to contemplate at this stage. What we need now is something that proves the concept, rather than trying to re-invent everything from the ground up. Lets get the basic object interfaces right, and implement those interfaces in whatever way gets things working fast. --Step 3-- Once all the basic objects are in place and doing basic things. To use the email example again... Once we have a email object that delivers your mail (behind the scenes via UNIX), then basic apps can start to evolve. Like UNIX history, these apps will start off with basic apps, which will slowly evolve into more sophisticated apps. UNIX started with the basic "mail" program, which then evolved to elm, pine etc etc. Unlike others, I'm not overly concerned about getting emacs working. The reason is that current implementations of Emacs, are very much devoted to the UNIX view of the universe. That is, everything is a text file, and everything is stored in a UNIX file system. That means porting emacs straight out is not terribly useful. Eventually however, a good deal of Emacs may be able to be ported to SchemeOS, albeit working quite a lot differently. In any case, text files will be much less important in Scheme OS, and therefore Emacs will be quite a lot less important too, since it is primarily a text editing tool. Until SchemeOS gets it's own text editor, we can use a UNIX editor, and write a Scheme program to import the UNIX text file into a Scheme text object. I've never used a Structure editor, so I don't know how good they can be, but maybe SchemeOS might have very little need indeed for text editors, if we decide a structure editor is a better way to write Scheme. --Step 4-- Once we have implemented enough of the system that we have proved the concept to ourselves, only then we shall tackle the hard technical issues. Issues like whether RScheme is the right scheme to use, whether the persistent store we are using is good enough for our purposes. Whether the thread model we choose will work well with multiple users. Whether SchemeOS should be able to work without UNIX. Whether we can get Lisp and Scheme to work together. All these issues are too hard to tackle right at the beginning. We need to have something now that is very clear in it's goals, and very functional in what it gets done. People will rise up later to tackle these things. Expert people who are inspired by our vision, and skilled enough to implement it right. -- What to do now-- I don't know if it appropriate to continue to use this mailing list or not. Since isn't a lot else is going on, I would hope so and presumably everyone else might find the discussion useful, even if they ultimately intend to build a LispOS of some other vision. If it is not considered appropriate to use this mailing list some other host will need to be found. The first step then is to put forward a list of objects that we need to design. Objects to hold all the important sorts of data that UNIX would store in text files, and objects to organise those other objects. Once we have that list of objects, we shall design interfaces. Then we shall code the basic structure of the objects. Then we shall implement them. Then we shall build apps that use them. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From papresco@technologist.com Sun, 22 Mar 1998 10:30:56 -0500 Date: Sun, 22 Mar 1998 10:30:56 -0500 From: Paul Prescod papresco@technologist.com Subject: Let's begin SchemeOS Chris Bitmead wrote: > > As I've said before, I can't see enormous point in a Scheme OS > without a Persistent store replacing the file system. That is > where major, order of magnitude increases in productivity are > going to occur. This is where the superiority of the system will > make UNIX/Windows junkies sit up and take notice. It removes the > need for programs to continually convert everything from disk to > memory representation, but more importantly, it allows a user of > the system to easily write cute little Scheme scripts that do > incredibly powerful things. Well, it doesn't make sense to go into this whole debate again, but I think you've misplaced the "blame" for Unix's hassles. The problem is not that Unix has a filesystem, but that software usually stores information in that filesystem in random, incompatible file formats with no natural mapping to memory objects. On a system with a file system where the files are persistent objects, I can do this: (define bad-guys (read-file "/etc/bad.lsp")) (define users (read-file "/etc/passwd.lsp")) (write-file (filter (lambda (x) (member x bad-guys))) "/etc/passwd.lsp") Even Unix allows this! Paul Prescod - http://itrc.uwaterloo.ca/~papresco "I want to give beauty pageants the respectability they deserve." - Brooke Ross, Miss Canada International From chrisb@ans.com.au Sun, 22 Mar 1998 16:09:09 +0000 Date: Sun, 22 Mar 1998 16:09:09 +0000 From: Chris Bitmead chrisb@ans.com.au Subject: Let's begin SchemeOS > Well, it doesn't make sense to go into this whole debate again, but I > think you've misplaced the "blame" for Unix's hassles. The problem is > not that Unix has a filesystem, but that software usually stores > information in that filesystem in random, incompatible file formats with > no natural mapping to memory objects. On a system with a file system > where the files are persistent objects, I can do this: > > (define bad-guys (read-file "/etc/bad.lsp")) > (define users (read-file "/etc/passwd.lsp")) > (write-file > (filter > (lambda (x) (member x bad-guys))) > "/etc/passwd.lsp") > > Even Unix allows this! If you do the above, then I guess you have an object file system, albeit one that is a) inefficient - presumably the .lsp files are ascii text b) not at all transparent. Every load and store has to be explicit, which kinda defeats the purpose. Say goodbye to all that elegance. c) Not very practical - you can't have object references that cross the boundary between one file and another file. This is a big killer. d) Not convenient. You would have to decide on some arbitrary break down on how much to store in one file. Your above example in SchemeOS with persistent store file system would look something like this I guess... (set! *user-list* (filter (lambda (x) (member (name x) *bad-guys))) *user-list)) Even just this one example shows the amount of unnecessary crud that can be gotten rid of. Once you realise that everything should be a lisp object (you seem to have realised that already), there becomes this arbitrary problem of which objects to store in which file when using a UNIX file system. If you have a mail folder with mail messages, do you store each message in a separate file, or lots of them together in one file? What if you want a mail message in two different folders, but you don't want to duplicate it? In Unix, you can't do it. Inevitably, if you tried to use UNIX files for storing data, you would end up storing everything in one file to avoid breaking links, and not all of the links that will eventuate can be planned in advance. And if you're going to store everything in one file, then it has to be a real persistent store. You can't be re-writing 100 Meg just because you changed one object. If a SchemeOS had something equivilent to a /etc/password it wouldn't be just a lame structure of various strings. There would be a collection of user objects. Each user object would have a reference to some kind of root object for that user (like a home directory) You could directly navigate from the user object to their personal objects. Those objects might include say a document whose author points back to the global user object. Refererences criss-cross the universe allowing direct navigation everywhere. The whole deal with the persistent store is about object orientation. That is storing the code that manipulates data with the data itself. If there was a /etc/password equivilent it would be a collection with methods appropriate for managing users. I must ask you... Why would you want to muck around with a conventional UNIX file system at all given all its disadvantages? Just for backward compatibility perhaps? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From kragen@pobox.com Sun, 22 Mar 1998 16:12:45 -0500 (EST) Date: Sun, 22 Mar 1998 16:12:45 -0500 (EST) From: Kragen kragen@pobox.com Subject: scheme vs common lisp On Sun, 22 Mar 1998, Chris Bitmead wrote: > > After reading the implementation notes for RScheme; every object in > > RScheme has a two word header so a cons object uses 16 bytes of memory > > Why 16 bytes, and not 12 bytes? One word is 32 bits on most modern machines. Thus, one word for the car, one word for the cdr, two words for the header -- total four words. 32 bits is 4 bytes, thus 16 bytes per cons. Kragen From lynbech@daimi.aau.dk Sun, 22 Mar 1998 22:30:18 +0100 (CET) Date: Sun, 22 Mar 1998 22:30:18 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Let's begin SchemeOS >>>>> "Chris" == Chris Bitmead writes: Chris> Unlike others, I'm not overly concerned about getting emacs Chris> working. The reason is that current implementations of Emacs, Chris> are very much devoted to the UNIX view of the universe. That Chris> is, everything is a text file, and everything is stored in a Chris> UNIX file system. This, I guess, depends on your point of view (fanatism warning: I *love* emacs). While emacs does have a number of filesystem oriented functions, these a by no means essential. The basic structure is the `buffer' which basically just is a string with associated information (with the concept of buffer local variables probably being the most important). Chris> In any case, text files will be much less important in Scheme Chris> OS, and therefore Emacs will be quite a lot less important too, Chris> since it is primarily a text editing tool. Well, text remains an important part of users life, no matter how it is stored, and it would takes something of a hack to beat emacs at editing text. Chris> Until SchemeOS gets it's own text editor, we can use a UNIX Chris> editor Then why not simply use UNIX emacs? Chris> I've never used a Structure editor, so I don't know how good Chris> they can be I have somewhere some references to a couple of articles written by Richard Stallmann and (I think) Erik Sandewall in ACM Computing Surveys (I think) discussing the pros and cons of structure editors. I can try to dig them up if you like. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From rideau@ens.fr Mon, 23 Mar 1998 01:45:41 +0100 (CET) Date: Mon, 23 Mar 1998 01:45:41 +0100 (CET) From: Fare Rideau rideau@ens.fr Subject: Let's begin SchemeOS >>: Paul Prescod >: Chris Bitmead >> The problem is not that Unix has a filesystem, >> but that software usually stores information in that filesystem >> in random, incompatible file formats with no natural mapping >> to memory objects. "Natural mapping to memory objects" sounds wrong to me (at least in the context of a "standard encoding"), but maybe that's just because I'm interested in heterogeneous distributed systems, and also because I think that memory and disk have different enough space/time constraints, so that they require altogether different encodings if performance means anything. >>[Follows example of lisp script to access a SEXP encoded /etc/passwd.lsp] > If you do the above, then I guess you have an object file system, > albeit one that is > > a) inefficient - presumably the .lsp files are ascii text > b) not at all transparent. Every load and store has to be > explicit, which kinda defeats the purpose. Say goodbye to all > that elegance. > c) Not very practical - you can't have object references that > cross the boundary between one file and another file. This is a > big killer. > d) Not convenient. You would have to decide on some arbitrary > break down on how much to store in one file. > And you forget, which is most important: e) not consistent with respect to concurrent access and/or power failures. A *major* advantage of a system-managed object-based persistent store is that you no longer have to emulate complicated unenforcable locking mechanisms (or forget them and be suffer someday). These are transparently managed by the meta-object protocol, and from the user point of view, modifying the /etc/passwd will be an atomic transaction (or part of a larger transaction). > (set! *user-list* (filter (lambda (x) (member (name x) *bad-guys*)) > *user-list*)) > > Even just this one example shows the amount of unnecessary crud > that can be gotten rid of. Also, a system-managed object store has a great advantage, that makes possible lots of things just unimaginable with a filesystem: f) since there is no need for a low-level standard representation, data can be made of high-level objects instead, and new fields/annotations can be dynamically added to them, so that the user "list" can be a high-level extensible knowledge base instead of a mere clumsy statically-defined ground-level database. g) Another advantage of the absence of low-level standard representation is precisely that the actual representation might be dynamically selected by the system for maximal space/size performance depending on the intended use instead of having to comply to a stubborn static compromise between space, size, and human readability. Note that these last two points are about high-level standards allowing metaprogramming and reflection, as opposed to low-level standards tying you down to one implementation with static definitions. I agree with the rest of Chris' remarks (as well as with most of what he posts here). > I must ask you... Why would you want to muck around with a > conventional UNIX file system at all given all its disadvantages? > Just for backward compatibility perhaps? As an aside, and even though I hate all this cruft, I do think backward compatibility should be some of a concern, be it only to transfer data to and from the LispOS, until we can fully migrate all our data toward a trusted LispOS, PS: * I still think that there is room for several LispOS projects, and since we obviously can't agree on a unified project anyway, we can at least agree to disagree on what to do next: using Scheme, ANSI CL, or another dialect, basing implementation on RScheme or CMUCL, hosting on self (or Flux) or Linux/BSD, starting from the application or system side, storing objects with a filesystem or a persistent store. * As for my personal opinion on what *I* am going to do, I have an article underway about what a Reflective Architecture is; but everyone should be doing what *one* thinks is best that one can contribute to. When some code eventually appears and gets to be used, the path to a unified projet might (or not) be clearer. * As for getting code available, would it be possible that we, as a consortium of users, convince (with words and/or money) whoever still owns Lisp Machine code (Symbolics successors, Xerox, TI, HP, MIT, etc) to make it publically available? I am ready to participate financially in such an operation. Maybe the demise of Symbolics is an occasion to buy their assets for cheap!? Else, when will some/all of this code become public domain anyway? US Legal affairs are sure not *my* specialty... ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## "I think sex is better than logic, but I can't prove it." From papresco@technologist.com Sun, 22 Mar 1998 21:33:59 -0500 Date: Sun, 22 Mar 1998 21:33:59 -0500 From: Paul Prescod papresco@technologist.com Subject: Let's begin SchemeOS Chris Bitmead wrote: > > If you do the above, then I guess you have an object file system, > albeit one that is > > a) inefficient - presumably the .lsp files are ascii text No, they are whatever is the "standard file format" for the operating system. > b) not at all transparent. Every load and store has to be > explicit, which kinda defeats the purpose. Say goodbye to all > that elegance. You think that this is a flaw, but it is actually a strength. People don't want a "transparent" file system: * they want to know when something is saved (the word "saved" has its root the word "safe") * they want to know *what drive* something is on (for reasons of storage size, portability, security, and physical locality) * they want to name their data objects * they want to group those data objects with hierarchical names (at least) > c) Not very practical - you can't have object references that > cross the boundary between one file and another file. This is a > big killer. That isn't true. HTML, SGML and "OLE" objects have references that cross boundaries between files all of the time. Managing those links is a hard problem, whether you have a hierarchical file system or an "object file system", because files disappear, drives are removed, and so forth. > d) Not convenient. You would have to decide on some arbitrary > break down on how much to store in one file. This break-down may not be convenient for programmers, but it is very convenient for users. It is this breakdown that allows me to move a particular "file" to a floppy disk or send it to a friend across the Internet. > Your above example in SchemeOS with persistent store file system > would look something like this I guess... > > (set! *user-list* (filter (lambda (x) (member (name x) > *bad-guys))) *user-list)) Egad. I don't even want to *know* the number of variables defined in your top level namespace! You'll notice that my examples were in /etc/. The equivalent in your model is probably something like: (cadr (assoc 'user-list (cadr (assoc 'etc *root*))) That's not so much more convenient, and as soon as you make a syntax for shortening it, you are essentially reinventing the hierarchical path system. > Once you realise that everything should be a lisp object (you > seem to have realised that already), there becomes this arbitrary > problem of which objects to store in which file when using a > UNIX file system. If you have a mail folder with mail messages, > do you store each message in a separate file, or lots of them > together in one file? Probably one per file so that they can be moved and deleted independent of each other. Mobility defines granularity. > What if you want a mail message in two > different folders, but you don't want to duplicate it? In Unix, > you can't do it. You make a link. In UNIX you *can* do it, if folders are directories. If folders are files, then you make a hypertext link (using XML, OLE or any other linking technology). > The whole deal with the persistent store is about object > orientation. That is storing the code that manipulates data with > the data itself. If there was a /etc/password equivilent it would > be a collection with methods appropriate for managing users. That sounds good, but a bug in that software will render your /etc/passwd inoperable -- like a bug in Word renders a .doc file inoperable. That's exactly what we should be running away from. Important data should live in well documented data formats accessible to any program that wants access to it. > I must ask you... Why would you want to muck around with a > conventional UNIX file system at all given all its disadvantages? > Just for backward compatibility perhaps? I haven't advocated a UNIX file system. I advocated a *file system* -- e.g. a user-level concept of persistent store distinct from RAM where objects can be moved around, deleted and otherwise managed indepedent of the code that created them. Paul Prescod - http://itrc.uwaterloo.ca/~papresco "I want to give beauty pageants the respectability they deserve." - Brooke Ross, Miss Canada International From chrisb@Ans.Com.Au Mon, 23 Mar 1998 04:12:18 +0000 Date: Mon, 23 Mar 1998 04:12:18 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Let's begin SchemeOS Paul Prescod wrote: > > b) not at all transparent. Every load and store has to be > > explicit, which kinda defeats the purpose. Say goodbye to all > > that elegance. > > You think that this is a flaw, but it is actually a strength. > > People don't want a "transparent" file system: > > * they want to know when something is saved (the word "saved" has its > root the word "safe") I tend to agree that people want to know when things are saved. But why on earth is that an argument against an object file system????? > * they want to know *what drive* something is on (for reasons of > storage size, portability, security, and physical locality) I tend to agree. But why on earth is that an argument against an object file system????? > * they want to name their data objects They most definitely don't want to name every object in the system, from every cons cell, number, collection etc. Only a very limited number of objects need a name. A word document is actually a big collection of OLE objects in a proprietry format. But you don't want to name every object within there. > * they want to group those data objects with hierarchical names (at > least) They want to group things hierarchially, but NOT JUST hierachially. Tree hierachies are only a subset of the infinite ways people would like to group, index and link their data. A conventional UNIX style file system is merely a very small subset of an object file system. > > c) Not very practical - you can't have object references that > > cross the boundary between one file and another file. This is a > > big killer. > > That isn't true. HTML, SGML and "OLE" objects have references that cross > boundaries between files all of the time. Managing those links is a hard > problem, whether you have a hierarchical file system or an "object file > system", because files disappear, drives are removed, and so forth. Yes, it is a hard problem. That is why these links need to be managed as automatically as possible. Objects shouldn't just "disappear", but yes when drives are moved that needs to be catered for, and an object file system can do that just fine. > > d) Not convenient. You would have to decide on some arbitrary > > break down on how much to store in one file. > > This break-down may not be convenient for programmers, but it is very > convenient for users. It is this breakdown that allows me to move a > particular "file" to a floppy disk or send it to a friend across the > Internet. It's not very convenient for users at all. Like when Word documents have links to external things, the user never knows what to do and the recipient of the Word doc is inevetiably missing things. With an object file system, this can be made much more automatic. Just say copy this object and anything that is directly or indirectly linked to it onto a floppy. There is no problem here. > (cadr (assoc 'user-list > (cadr (assoc 'etc *root*))) > > That's not so much more convenient, and as soon as you make a syntax for > shortening it, you are essentially reinventing the hierarchical path > system. I don't much care at the moment whether they are global things or assoc lists or whatever. Yeah sure, hierarchies are pretty important structures. Nobody wants to throw out hierarchies all together. The point is tha hierarchies are much too limiting. They are just a mere subset of what can be done. > > Once you realise that everything should be a lisp object (you > > seem to have realised that already), there becomes this arbitrary > > problem of which objects to store in which file when using a > > UNIX file system. If you have a mail folder with mail messages, > > do you store each message in a separate file, or lots of them > > together in one file? > > Probably one per file so that they can be moved and deleted independent > of each other. Mobility defines granularity. Then eventually you get to the stage of having one object per file, even down to one cons cell per file, because you never can be sure what you want people to have external links to. > > What if you want a mail message in two > > different folders, but you don't want to duplicate it? In Unix, > > you can't do it. > > You make a link. In UNIX you *can* do it, if folders are directories. If > folders are files, Ok, you have hard links all over the place. Put one object in each file, and that might be one way to implement a true object database. A very inefficient one if it's based on a UNIX file system. If you're talking about some other, to-be-built file system, that works like this with one object per file, then you are talking about an object database. Make the path names transparent and we are talking about the same thing. > then you make a hypertext link (using XML, OLE or any > other linking technology). I can only assume you havn't ever used an object database very much??? > That sounds good, but a bug in that software will render your > /etc/passwd inoperable -- like a bug in Word renders a .doc file > inoperable. That's exactly what we should be running away from. > Important data should live in well documented data formats accessible to > any program that wants access to it. You've got to be joking!!!!! If every man and his dog knows the format of an important file/object, then everybody will write their own code to update it and potentially stuff it up. If updating important data is hidden behind well defined and debugged interfaces, updating it can be made safe. That is the whole point of OO, to stop people updating data in ways they shouldn't. Instead make methods to update things the right way. The vipw, was an extremely crude program made to do this on UNIX with /etc/passwd, but it was never enforced. > > I must ask you... Why would you want to muck around with a > > conventional UNIX file system at all given all its disadvantages? > > Just for backward compatibility perhaps? > > I haven't advocated a UNIX file system. I advocated a *file system* -- > e.g. a user-level concept of persistent store distinct from RAM where > objects can be moved around, deleted and otherwise managed indepedent of > the code that created them. Being able to manipulate data apart from the code that relates to them is the antithesis of OO. I suggest you read some basic OO stuff first. All I am advocating is removing limitations of conventional style file systems. You can use an OO file system just like UNIX if you want to, it's just that you're not limited to that. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Mon, 23 Mar 1998 04:27:42 +0000 Date: Mon, 23 Mar 1998 04:27:42 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Let's begin SchemeOS Christian Lynbech on satellite wrote: > > >>>>> "Chris" == Chris Bitmead writes: > > Chris> Unlike others, I'm not overly concerned about getting emacs > Chris> working. The reason is that current implementations of Emacs, > Chris> are very much devoted to the UNIX view of the universe. That > Chris> is, everything is a text file, and everything is stored in a > Chris> UNIX file system. > > This, I guess, depends on your point of view (fanatism warning: I > *love* emacs). While emacs does have a number of filesystem oriented > functions, these a by no means essential. Well yes. I imagine that SchemeOS would end up with something fairly Emacs like, if not Emacs itself. Whatever editors people like enough, they will take the time to port. > Chris> In any case, text files will be much less important in Scheme > Chris> OS, and therefore Emacs will be quite a lot less important too, > Chris> since it is primarily a text editing tool. > > Well, text remains an important part of users life, no matter how it > is stored, and it would takes something of a hack to beat emacs at > editing text. That's fine. I use emacs myself. But you might be surprised how much text editing can be elimitated. > Chris> Until SchemeOS gets it's own text editor, we can use a UNIX > Chris> editor > > Then why not simply use UNIX emacs? Sure, use whatever you like. > Chris> I've never used a Structure editor, so I don't know how good > Chris> they can be > > I have somewhere some references to a couple of articles written by > Richard Stallmann and (I think) Erik Sandewall in ACM Computing > Surveys (I think) discussing the pros and cons of structure editors. I > can try to dig them up if you like. Yeah, that might be interesting. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From cmh@greendragon.com Mon, 23 Mar 1998 00:25:49 -0600 Date: Mon, 23 Mar 1998 00:25:49 -0600 From: Chris Hanson cmh@greendragon.com Subject: Pre-Scheme -> assembly? I've been looking at Scheme48, and I also read Kelsey's paper on its use of Pre-Scheme for implementing the Scheme48 VM. How hard would it be to get the Pre-Scheme compiler to emit assembly rather than C? How hard would it be to eliminate OS dependencies from the generated code so it could (for example) be run on the metal? From yoda@isr.ist.utl.pt Mon, 23 Mar 1998 12:04:28 +0100 (GMT+0100) Date: Mon, 23 Mar 1998 12:04:28 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Let's begin SchemeOS >>>>> "Paul" == Paul Prescod writes: Paul> You think that this is a flaw, but it is actually a strength. Paul> People don't want a "transparent" file system: Paul> * they want to know when something is saved (the word "saved" has its Paul> root the word "safe") Paul> * they want to know *what drive* something is on (for reasons of Paul> storage size, portability, security, and physical locality) Paul> * they want to name their data objects Paul> * they want to group those data objects with hierarchical names (at Paul> least) I may be right as far as old-fashion computational people's desires are. But what we are proposing here is _not_ a replacement for UNIX. It is LispOS, with a bunch of new compuitational concepts that go beyond the old-fashioned shell-program-disk design. Do you know what your words make me remind of? When multitasking OS's appeared, and people prefered older ones, because "they wanted to know in what memory address a program started". They didn't liked code relocation, neither virtual memory, because in that way they didn't knew whenever data were in memory or in disk. What we want is to dettach from old computational paradigms and start riding towards a new one. Doesn't it sound sexy? Let me now answer how this new paradigm can answer your questions: * There is a fsync() syscall to assure all cached data is saved. In the same fashion, a sync-like function could exist to assure that all objects are saved on disk; * Explicit drive specification could be attained as needed. Otherwise, let the system organize itself. Wouldn't it be great, to have several disks and letting the system take care of distributing them? * Any object can be bounded to a symbol (actually, the symbol is bound to that object); * Hierarchy of objects is crucial for LispOS. The old package system must be improved. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Mon, 23 Mar 1998 12:18:57 +0100 (GMT+0100) Date: Mon, 23 Mar 1998 12:18:57 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Release 0.01 of LispOS Hi. As I posted before, and generally anyone agrees, experimental code is needed to get LispOS started. I've done some experimenting with some concepts that were discussed before. Here's what I got: I think that the best plataform to begin with is a bare Linux kernel. So, I compiled a bare-bones, minimal Linux kernel (about 200k compressed kernel vmlinuz) and a minimal filesystem with just /dev and corresponding generic devices (MAKEDEV generic). Next, a lisp virtual machine that dialogs directly with the kernel. So, I picked scheme48 and statically compiled with. Ok, it still uses libc statically, but that could be stripped of later, and replaced for a scheme interface to the linux syscalls -- a generic way of making this interface is needed. Maybe something like parsing the *.h files and translating it into a module structure. But right now, it's just a statically linked scheme48 without dynamic linking (modify a #define in some .h file). Then I put the vm and the bootstrap image on /lispos, and configured lilo to boot with init=/lispos/scheme48vm. The thing is, it boots ok, and starts scheme48 right away! (what a surprise 8-). Anyway, this is a minimal LispOS 8-) What remains to be done? Well, everything I guess. My first needs were: * adjust the keymap to pt; * readline facility would be great; * an editor is required -- something like emacs? * a scheme to save stuff other than the bulk image dump; * and of course, ways to mount stuff, put the / writtable, etc. I'm curious about RScheme, but I wonder whenever it is as easy to dettach from the rest of UNIX as scheme48 was. From what was here discussed, I find RScheme much more appealing. Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From joswig@lavielle.com Mon, 23 Mar 1998 13:42:51 +0100 Date: Mon, 23 Mar 1998 13:42:51 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Let's begin SchemeOS At 12:04 Uhr +0100 23.03.1998, Rodrigo Ventura wrote: > Let me now answer how this new paradigm can answer your >questions: > * There is a fsync() syscall to assure all cached data is >saved. In the same fashion, a sync-like function could exist to assure >that all objects are saved on disk; > * Explicit drive specification could be attained as >needed. Otherwise, let the system organize itself. Wouldn't it be >great, to have several disks and letting the system take care of >distributing them? > * Any object can be bounded to a symbol (actually, the symbol >is bound to that object); > * Hierarchy of objects is crucial for LispOS. The old package >system must be improved. > > Regards, How an OS with persistent objects and without files can be seen from the (now defunct) Newton OS. - basic storage mediums are memory cards. - you can use more than one memory card plus internal memory. - cards are being formatted to carry a bunch of soups. - a soup has a name. - soups on different storage locations with the same soup name will be merged. - you can store frames in those soups. - you can move data from on storage location to another within the same merged soup. - data put in the soup will be automatically indexed and compressed. - you can build any kind of access mechanisms (by date, name, content, hierarchical, etc.) on top of that. - you can remove and soups to a running system. This all fits very well into an elegant architecture (frames, ...). I'm not sure if a Lisp OS should use it as a primary method for storing data, but atleast it is a possibility. Rainer Joswig Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From chrisb@Ans.Com.Au Mon, 23 Mar 1998 13:03:14 +0000 Date: Mon, 23 Mar 1998 13:03:14 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Let's begin SchemeOS Well I've done a little bit of thinking and I've written a few ideas down. At least it's a place to start discussions. If you agree with me that a SchemeOS is all about object modelling and persistent stores, then I invite comments. If you don't like persistent stores, hit delete now. My main concern is that I am still thinking in too much of a UNIX way, No doubt some more lateral thinkers may be able to put forward more elegant things. But we need to start somewhere. The following are object definitions in what is, as far as I can make out, RScheme's class definition style. As a quick overview, the syntax is (define-class () slot... ) where a slot is either just or (name :type ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; The root object of the whole persistent store (define-class () (users :type ) ; The users on the system (devices :type )) ; devices on the system ; A collection of all the users on the system (define-class () ) ; class definition ; This class gives the basic information about a user (define-class () id ; login id name ; name (threads ) (mail-box :type ) ; The user's incoming mail box (root :type )) ; A storage area for the user's persistent objects. ; class definition ; This holds a collection of mail items (define-class () ) ; class definition ; Yeah sure, the traditional UNIX idea of a directory which ; is a map between strings and objects is still a useful idea. ; Just not as useful as it was previously. (define-class ()) (define-method insert ((directory ) (key string) object) (insert directory (make map-item :key string :object object))) ; class definition ; A letter is an piece of email ; It is basicly a text document with some header information. (define-class () (headers :type ) ; A map between header keys and values. (attachments :type )) ; class definition ; This class holds a traditional ascii text file ; Each line is an item in the collection. (define-class ()) ; class definition ; General purpose collection class, that can hold groups of objects. (define-class () a-list) ; class definition ; general purpose collection that indexes keys to objects (define-class ()) (define-class () key object) ; class definition ; stores general information about a thread running in the system (define-class () (user :type ) ; owner of thread priority) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;EXAMPLES;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Kill all the threads started by chrisb (for-each kill (threads (get-user-by-id (user *root*) "chrisb"))) ; let's view every object in a directory. In true OO style, it doesn't matter ; if some things in the directory are text, some are emails, some are folders, some ; are html documents. A different viewer will be started to view different types of ; files. (for-each view (collection->list some-directory)) ; send some email (send (make-letter :to "lispos@lispos.org" :subject "Do Code" (make-text-from-stdin))) Please write some code please everybody ^D ; let's do a mail merge and store a copy ourselves in a private mail ; folder for the corresponding person too. (set! *friends* '("bill@foo.com", "jim@bar.com", "jane@baz.org")) (set! *form-letter* (make-text-from-stdin)) Hi! I've changed my email address! ^D (for-each (lambda (person) (let ((letter) (make-letter :to person :subject "change of address" *form-letter*)) (insert-mail-items (item *mail-folders* person) letter) (send letter))) *friends*) ;Now we might implement a crude implementation of UNIX style grep like this... (define-method grep ((pattern string) (text )) (list->text (filter (lambda (line) (regexp-match? pattern line)) (text->list text)))) (define *file1* (make-text "line1a" "line2b" "line3a")) (print-text (grep "a" *file1*)) line1a line3a (print-text (grep "1" *file1*)) line1a ; Now to move all the lispos mailing list messages from your main mail ; box into a lispos mail box... (insert-mail-items *lispos-mail-box* (remove-items *mail-box* (lambda (letter) (regexp-match? (get-item (headers letter) "From") "lispos")))) (commit) ; Backup the files of all the users whose name is between A-K. (backup (tape-drive (devices *root*)) (filter (lambda (user) (regexp-match? "^a-k" (name user))) (root (users *root*)))) ; Change the system time (set-date "20 Mar 1998" (clock (devices *root*))) -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From davies@pobox.com Mon, 23 Mar 1998 07:19:36 -0700 Date: Mon, 23 Mar 1998 07:19:36 -0700 From: Byron Davies davies@pobox.com Subject: CL functionality in SchemeOS A persistent Scheme on Linux would be a great move forward. One of the things that made the Linux effort work was the vast amount of GNU software that RMS and the Free Software Foundation had already created. The Linux kernel plus GNU software quickly became a complete Unix system. Linux without the GNU software would probably have been just another toy operating system. As a long-time Common Lisp user, I think SchemeOS without most of the functionality embodied in CLtL2, would be just another toy operating system. Perhaps CMUCL can serve the role of GNU. Independent of the "kernel" work on persistence, others could move forward with the conversion of CMUCL functionality to Scheme. Perhaps the work could be divided up by the chapters of CLtL2: an individual or team could take responsibility for one or more chapters. Byron From ggleason@tvi.cc.nm.us Mon, 23 Mar 1998 18:26:32 +0100 Date: Mon, 23 Mar 1998 18:26:32 +0100 From: Gavin E. Gleason ggleason@tvi.cc.nm.us Subject: Lisp vs. Scheme > Then why pick Scheme?? If you want CL functionality, pick CL! > > > Mike McDonald > mikemac@mikemac.com Good question. I've been looking at different scheme object systems, and have really been disapointed. The ones I've looked at (MzScheme's and Rscheme's), are toy object systems that don't come close to the power of CLOS. The argument that scheme is small and clean is not realistic. Every "usefull" scheme that I've used has all kinds of non-standard cruft in an attempt to make it a "real world" system. LISP has already gone through this evolution, and most stuff has been standardized (notibly sockets and foriegn function interfaces haven't been). Aside from this CL has a huge code base of very complicated and powerful programs that are largely portable between systems. PLOB is a persistant object system already writen for CLOS. There are also a number of non-standard Object systems writen for CL that are by no means "toys". KR (for garnet) and LOOM come to mind. So even if you don't like CLOS you could find something in CL. CMUCL also has an emacs-clone that has already been writen, Hemlock. Seems to me you could save a heck of a lot of time just extending and integrating CMUCL. I'm by no means a CL-fanatic. I do lots of scheme programming (probably as much as in CL), but I think that a schemeOS project is doomed to reinvent lots of the stuff that is already present in lisp. Gavin E. Gleason From lynbech@daimi.aau.dk Mon, 23 Mar 1998 21:32:26 +0100 (CET) Date: Mon, 23 Mar 1998 21:32:26 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: CL functionality in SchemeOS >>>>> "Byron" == Byron Davies writes: Byron> As a long-time Common Lisp user, I think SchemeOS without most Byron> of the functionality embodied in CLtL2, would be just another Byron> toy operating system. I absolutely agree, though I think that SLIB (a scheme library) goes some of the distance of bringing CL functionality to scheme. Wrt. OO there is also a number of implementations available. Byron> Perhaps the work could be divided up by the chapters of CLtL2: Byron> an individual or team could take responsibility for one or more Byron> chapters. Some of Mark Kantrowitzs portable packages (such as defsystem and xref) should also be considered. Not because these facilities necessarily are The Right Solution (TM) but because metaprogramming is pretty much lacking in the scheme world (AFAIK). ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From mikemac@teleport.com Mon, 23 Mar 1998 14:20:31 -0800 (PST) Date: Mon, 23 Mar 1998 14:20:31 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: CL functionality in SchemeOS >From lispos-request@math.gatech.edu Mon Mar 23 13:10:05 1998 >Resent-Date: Mon, 23 Mar 1998 15:42:50 -0500 (EST) >From: lynbech@daimi.aau.dk (Christian Lynbech on satellite) >Date: Mon, 23 Mar 1998 21:32:26 +0100 (CET) >MIME-Version: 1.0 >Content-Transfer-Encoding: 7bit >To: LispOS@math.gatech.edu >Subject: Re: CL functionality in SchemeOS >Comments: Hyperbole mail buttons accepted, v03.19.08. >Resent-Message-ID: <"Bsz2r1.0.a43.9bi5r"@math> >Resent-From: lispos@math.gatech.edu >X-Mailing-List: archive/latest/1987 >X-Loop: lispos@math.gatech.edu >Resent-Sender: lispos-request@math.gatech.edu > >>>>>> "Byron" == Byron Davies writes: > >Byron> As a long-time Common Lisp user, I think SchemeOS without most >Byron> of the functionality embodied in CLtL2, would be just another >Byron> toy operating system. > >I absolutely agree, though I think that SLIB (a scheme library) goes >some of the distance of bringing CL functionality to scheme. > >Wrt. OO there is also a number of implementations available. > >Byron> Perhaps the work could be divided up by the chapters of CLtL2: >Byron> an individual or team could take responsibility for one or more >Byron> chapters. > >Some of Mark Kantrowitzs portable packages (such as defsystem and >xref) should also be considered. Not because these facilities >necessarily are The Right Solution (TM) but because metaprogramming is >pretty much lacking in the scheme world (AFAIK). > > >---------------------------+-------------------------------------------------- >Christian Lynbech | Telebit Communications A/S > | Fabrikvej 11, DK-8260 Viby J >Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk >---------------------------+-------------------------------------------------- >Hit the philistines three times over the head with the Elisp reference manual. > - petonic@hal.com (Michael A. Petonic) > Then why pick Scheme?? If you want CL functionality, pick CL! Mike McDonald mikemac@mikemac.com From cosc19z5@bayou.uh.edu Mon, 23 Mar 1998 19:14:05 -0600 (CST) Date: Mon, 23 Mar 1998 19:14:05 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: CL functionality in SchemeOS [Snip -- discussions of ways to reinvent the wheel in Scheme rather than use CL and save the wasted work] > >Some of Mark Kantrowitzs portable packages (such as defsystem and > >xref) should also be considered. Not because these facilities > >necessarily are The Right Solution (TM) but because metaprogramming is > >pretty much lacking in the scheme world (AFAIK). [Snip] > > Then why pick Scheme?? If you want CL functionality, pick CL! > That's what I was thinking. I mean here people are, talking about ways to leverage existing code, and to write as little as possible, and then when it really matters, at the very first step, they pick a language with little functionality just so they can waste time working on it to make it look like another language that already exists! What is wrong with this picture? As far as I can tell, there are 2 reasons I've seen people use to justify Scheme: 1) It is elegant. 2) It is small. For #1, elegance does not mean _CRAP_ if you can't get the job done. Pascal was elegant but it was utterly useless and it died the embarassing death deserving of a toy language. Scheme isn't as useless as Pascal, but it is very low on functionality. As much as I like Scheme's syntax and better treatment of functions, and more consistent (and logical) naming conventions, I would not even consider using it for real world work because it is too weak. I use Common Lisp instead -- it gets the job done. And for #2, Scheme is small because it is lacking in functionality. Once you start hosing, patching, and munging to make it look like Common Lisp, it's gonna be a hell of a lot bigger. So why bother? I agree, use Common Lisp instead. It will save us work and headaches. Of course, to play devil's advocate, somebody did take a step with Scheme, and given the way this list has operated in the past, unless we get up off our butts and do something, the idea will die again. So we get up, use Scheme since some kind of foundation has been built, ignore everything I said about leadership, because I doubt this will happen and actually accomplish something for a change rather than exchange big (and soon to be forgotten) ideas. And now for the "do what I say, not what I do" segment. I say this knowing that now I probably will not be able to contribute anything in the way of code. Since everyone is geared up to use Linux, that leaves me out since I do not have Linux, and have no intention of putting it on my hard drive any longer. I've had enough of Unix at work, and I like to go home and see something other than segmentation violations and ridiculously awful user interfaces. Granted Win95 is no masterpiece, but then it's better than X (but then, what isn't?). If there's some way I can assist while using Win95, I'm here. Otherwise, it's been real (I will keep an eye on this list). > > Mike McDonald > mikemac@mikemac.com > Regards, Ahmed From chrisb@Ans.Com.Au Tue, 24 Mar 1998 01:54:09 +0000 Date: Tue, 24 Mar 1998 01:54:09 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Lisp vs. Scheme Gavin E. Gleason wrote: > Aside from this CL has a huge code base of very complicated > and powerful programs that are largely portable between systems. PLOB > is a persistant object system already writen for CLOS. There are also > a number of non-standard Object systems writen for CL that are by no > means "toys". KR (for garnet) and LOOM come to mind. So even if you > don't like CLOS you could find something in CL. CMUCL also has an > emacs-clone that has already been writen, Hemlock. Seems to me you > could save a heck of a lot of time just extending and integrating CMUCL. > I'm by no means a CL-fanatic. I do lots of scheme programming > (probably as much as in CL), but I think that a schemeOS project is > doomed to reinvent lots of the stuff that is already present in lisp. There is no need to reinvent it. All we have to do is steal it! If any of us really cared about "huge code bases", we would be hacking C under MS-Windows. If you are happy with these CL apps that already exist, then I can't see why you care about LispOS. Just run these apps on whatever OS you have available now. IMHO, LispOS is all about what can be done by building lots of little modules on top of each other and integrating, integrating, integrating to remove the monolithic nature from the conventional way of doing things. Instead of having one hugh MS word app, there are lots of little modules that build upon one another. While I'm sure there are a few CL bits of code lying around that can fit in this paradigm, I'd say a lot of the code has a different mind-set anyway. Those "very complicated and powerful" programs for instance. The limitations of Scheme and Lisp can be fixed, and would need to be to get everything just right. But personally I think a Scheme system would end up being better in the end. And it's not clear that using Lisp would be a faster means to that end anyway. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From cosc19z5@bayou.uh.edu Mon, 23 Mar 1998 19:58:50 -0600 (CST) Date: Mon, 23 Mar 1998 19:58:50 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Lisp vs. Scheme > > Then why pick Scheme?? If you want CL functionality, pick CL! > > > > > > Mike McDonald > > mikemac@mikemac.com > > Good question. > I've been looking at different scheme object systems, and have > really been disapointed. The ones I've looked at (MzScheme's and > Rscheme's), are toy object systems that don't come close to the power > of CLOS. Not to mention the fact that they aren't standard. CLOS is. > The argument that scheme is small and clean is not realistic. > Every "usefull" scheme that I've used has all kinds of non-standard > cruft in an attempt to make it a "real world" system. LISP has > already gone through this evolution, and most stuff has been > standardized (notibly sockets and foriegn function interfaces haven't > been). Not to mention that Common Lisp wins hands down on popularity, which is important if we want people to try out this OS. > Aside from this CL has a huge code base of very complicated > and powerful programs that are largely portable between systems. PLOB > is a persistant object system already writen for CLOS. There are also > a number of non-standard Object systems writen for CL that are by no > means "toys". KR (for garnet) and LOOM come to mind. So even if you > don't like CLOS you could find something in CL. CMUCL also has an > emacs-clone that has already been writen, Hemlock. Seems to me you > could save a heck of a lot of time just extending and integrating CMUCL. The only CMUCL system I used was one that seems to have been last touched in '94, so I am not qualified to say much about it (except that I hate that version). > I'm by no means a CL-fanatic. I do lots of scheme programming > (probably as much as in CL), but I think that a schemeOS project is > doomed to reinvent lots of the stuff that is already present in lisp. Well, if the SchemeOS project gets started, it would have achieved something that A CommonLispOS project hasn't -- results. We're spinning our gears, and someone has already taken a step towards making SchemeOS a reality. I think that just tipped the scales in favor of Scheme :). > > Gavin E. Gleason > Regards, Ahmed From wlewis@mailbag.com Mon, 23 Mar 1998 20:16:05 -0600 Date: Mon, 23 Mar 1998 20:16:05 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: CL functionality in SchemeOS Mainly, because too many are infatuated with the pretty picture of academic scheme... Yep that's a bit inflammatory... Yes, I have things about CL I don't like; OTOH, it does things, now, that scheme only dreams of. In the end, much as VI only exists to edit your emacs make file on a new unix, scheme only exists to bootstrap something like BBN's CL code in scheme. (Now if this don't get ya screaming, yer all brain dead!?!?!?!!!) William cosc19z5@bayou.uh.edu wrote: > [Snip -- discussions of ways to reinvent the wheel in Scheme rather > than use CL and save the wasted work] > > > >Some of Mark Kantrowitzs portable packages (such as defsystem and > > >xref) should also be considered. Not because these facilities > > >necessarily are The Right Solution (TM) but because metaprogramming is > > >pretty much lacking in the scheme world (AFAIK). > > [Snip] > > > > > Then why pick Scheme?? If you want CL functionality, pick CL! > > > > That's what I was thinking. I mean here people are, talking > about ways to leverage existing code, and to write as little > as possible, and then when it really matters, at the very first > step, they pick a language with little functionality just so > they can waste time working on it to make it look like another > language that already exists! > > What is wrong with this picture? > > As far as I can tell, there are 2 reasons I've seen people use > to justify Scheme: > 1) It is elegant. > 2) It is small. > > For #1, elegance does not mean _CRAP_ if you can't get the job > done. Pascal was elegant but it was utterly useless and it > died the embarassing death deserving of a toy language. > > Scheme isn't as useless as Pascal, but it is very low on > functionality. As much as I like Scheme's syntax and better > treatment of functions, and more consistent (and logical) > naming conventions, I would not even consider using it for > real world work because it is too weak. I use Common Lisp > instead -- it gets the job done. > > And for #2, Scheme is small because it is lacking in functionality. > Once you start hosing, patching, and munging to make it look like > Common Lisp, it's gonna be a hell of a lot bigger. So why bother? > > I agree, use Common Lisp instead. It will save us work and > headaches. > > Of course, to play devil's advocate, somebody did take a step > with Scheme, and given the way this list has operated in the > past, unless we get up off our butts and do something, the > idea will die again. > > So we get up, use Scheme since some kind of foundation has > been built, ignore everything I said about leadership, because > I doubt this will happen and actually accomplish something > for a change rather than exchange big (and soon to be forgotten) > ideas. > > And now for the "do what I say, not what I do" segment. I say > this knowing that now I probably will not be able to contribute > anything in the way of code. Since everyone is geared up to use > Linux, that leaves me out since I do not have Linux, and have no > intention of putting it on my hard drive any longer. I've had > enough of Unix at work, and I like to go home and see something > other than segmentation violations and ridiculously awful > user interfaces. Granted Win95 is no masterpiece, but then > it's better than X (but then, what isn't?). > > If there's some way I can assist while using Win95, I'm here. > Otherwise, it's been real (I will keep an eye on this list). > > > > > Mike McDonald > > mikemac@mikemac.com > > > > Regards, > Ahmed From mikemac@teleport.com Mon, 23 Mar 1998 18:37:01 -0800 (PST) Date: Mon, 23 Mar 1998 18:37:01 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Lisp vs. Scheme >From: "cosc19z5@bayou.uh.edu" >Subject: Lisp vs. Scheme >To: lispos@math.gatech.edu >Date: Mon, 23 Mar 1998 19:58:50 -0600 (CST) >We're spinning our gears, and someone has already taken a step >towards making SchemeOS a reality. I think that just tipped >the scales in favor of Scheme :). What step? I hope you're refering to more than staticly linking some implementation of Scheme! The only step I've seen is to argue the same issues over and over. Mike McDonald mikemac@mikemac.com From cosc19z5@bayou.uh.edu Mon, 23 Mar 1998 21:31:01 -0600 (CST) Date: Mon, 23 Mar 1998 21:31:01 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Lisp vs. Scheme > >We're spinning our gears, and someone has already taken a step > >towards making SchemeOS a reality. I think that just tipped > >the scales in favor of Scheme :). > > What step? I hope you're refering to more than staticly linking some > implementation of Scheme! The only step I've seen is to argue the same > issues over and over. Hey it's a small step, but considering how little has come from this list, it's as good as climbing Mount St. Helens as far as I'm concerned. Think about it this way -- somebody _DID_ something! Not talked about something. Not argued about something. Not recorded something. _DID_ something. It's a momentous occasion! Of course other people have done other things too, so maybe I'm getting a little carried away, but a step, no matter how small is still a step. > > > Mike McDonald > mikemac@mikemac.com > Regards, Ahmed From cosc19z5@bayou.uh.edu Mon, 23 Mar 1998 21:38:36 -0600 (CST) Date: Mon, 23 Mar 1998 21:38:36 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: CL functionality in SchemeOS > Mainly, because too many are infatuated with the pretty picture of academic > scheme... > > Yep that's a bit inflammatory... But perfectly accurate and in line. What I've been saying about Scheme hasn't exactly been tactful either, but let's face it; so many of Scheme's advocates have their heads so up in the cloud about Scheme's small size that none of them seem to wake up to the fact that Scheme is small for the same reason a "Hello World" program is small -- it isn't very useful! I say this while being a fan of Scheme's elegance and simplicity. Yes, Scheme is clean, yes Scheme is tail recursive, yes Scheme is better in many ways, but face it, as long as it is anemic it will never match Common Lisp in power OR respect. Languages need 2 things to be truly good: 1) Flexibility of Syntax (Scheme has this) 2) Functionality (Scheme does not have this) Until Scheme gains both features, I will never understand what anyone sees in it. > > Yes, I have things about CL I don't like; OTOH, it does things, now, that > scheme only dreams of. In the end, much as VI only exists to edit your emacs > make file on a new unix, scheme only exists to bootstrap something like > BBN's CL code in scheme. I fully agree on the vi part (I tend to use pico if available), but I think Scheme is a little more useful than that. It's pretty good for toying around with new concepts and for teaching purposes, but that's about as far as it goes. > > (Now if this don't get ya screaming, yer all brain dead!?!?!?!!!) :) Strong emotions, that's what we need. Hey Schemers, prove us wrong -- start work in earnest on a SchemeOS. Common Lispers, prove that the Schemers are the academic propeller-heads you've always known them to be -- implement a Common Lisp OS before they finish their SchemeOS (you know you can do it)! Hell pleas haven't worked, maybe some insults and competition will :). > > William > > Regards, Ahmed From chrisb@Ans.Com.Au Tue, 24 Mar 1998 03:52:10 +0000 Date: Tue, 24 Mar 1998 03:52:10 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: CL functionality in SchemeOS cosc19z5@bayou.uh.edu wrote: > What I've been saying about Scheme hasn't exactly been tactful > either, but let's face it; so many of Scheme's advocates have > their heads so up in the cloud about Scheme's small size that > none of them seem to wake up to the fact that Scheme is small > for the same reason a "Hello World" program is small -- it isn't > very useful! I would never say Scheme is good because it is small. > Languages need 2 things to be truly good: > 1) Flexibility of Syntax (Scheme has this) > 2) Functionality (Scheme does not have this) Scheme has plenty of functionality in things like slib. What is the problem? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From wlewis@mailbag.com Mon, 23 Mar 1998 21:57:59 -0600 Date: Mon, 23 Mar 1998 21:57:59 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: Lisp vs. Scheme They key is, when will someone be able to say, hey I've got code that can _do_ anything Genera or Allegro or "X" can do. Not, I've gotr schem X Y or Z statically loading on some *nix kernel. Been there, done that, got the ugly t-shirt... William (PS Scheme48 the last time around on this list, just in case you care. Couldn't _do_ squat w/it either... ) Mike McDonald wrote: > >From: "cosc19z5@bayou.uh.edu" > >Subject: Lisp vs. Scheme > >To: lispos@math.gatech.edu > >Date: Mon, 23 Mar 1998 19:58:50 -0600 (CST) > > >We're spinning our gears, and someone has already taken a step > >towards making SchemeOS a reality. I think that just tipped > >the scales in favor of Scheme :). > > What step? I hope you're refering to more than staticly linking some > implementation of Scheme! The only step I've seen is to argue the same > issues over and over. > > Mike McDonald > mikemac@mikemac.com From wlewis@mailbag.com Mon, 23 Mar 1998 22:02:34 -0600 Date: Mon, 23 Mar 1998 22:02:34 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: Lisp vs. Scheme First, this should have been to the list - I apologize. Second, at the Lisp archive (at CMU) is the BBN Butterfly CL and Scheme implementation source code. It makes for valuable reading in regards to these arguments. William Chris Bitmead wrote: > William Barnett-Lewis wrote: > > > > Again, with this point I am trying to be serious. The differesnces between scheme > > and CL are very large. Even from the POV of simply stealing ideas, I beleive > > there is more involved than you acknowledge. Read the BBN code and see what hoops > > they jumped to make a quite small subset of what most today would call CL > > available on a scheme... > > BBN? From cosc19z5@bayou.uh.edu Mon, 23 Mar 1998 22:02:51 -0600 (CST) Date: Mon, 23 Mar 1998 22:02:51 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: CL functionality in SchemeOS > cosc19z5@bayou.uh.edu wrote: > > > What I've been saying about Scheme hasn't exactly been tactful > > either, but let's face it; so many of Scheme's advocates have > > their heads so up in the cloud about Scheme's small size that > > none of them seem to wake up to the fact that Scheme is small > > for the same reason a "Hello World" program is small -- it isn't > > very useful! > > I would never say Scheme is good because it is small. But many do. One of the things I see flaunted as a benefit of Scheme by so many is the small size. Even the FAQ makes mention of this in stating that scheme advocates are amused to point out that the entire Scheme standard is shorter than the index to CLtL2 (or something like that). > > > Languages need 2 things to be truly good: > > 1) Flexibility of Syntax (Scheme has this) > > 2) Functionality (Scheme does not have this) > > Scheme has plenty of functionality in things like slib. What is > the problem? The problem is that all these "things" are not standard, while Common Lisp is. Why would anyone want to hobble around the net, mixing and matching various non-standard extension packages when the same functionality is already available in Common Lisp? This is effort wasted, that could be better spent on working on the OS/Applications Suite proper. You sent me email about what you believed were advantages to using Common Lisp (it would have been good had you also posted it to the list for some debate), but I still cannot see any reasonable justification for using Scheme. As far as I'm concerned it's nothing more than a burden. > > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au > Regards, Ahmed From wlewis@mailbag.com Mon, 23 Mar 1998 22:10:22 -0600 Date: Mon, 23 Mar 1998 22:10:22 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: CL functionality in SchemeOS Try "maxima" or "garnet" in scheme... William Chris Bitmead wrote: > cosc19z5@bayou.uh.edu wrote: > > > What I've been saying about Scheme hasn't exactly been tactful > > either, but let's face it; so many of Scheme's advocates have > > their heads so up in the cloud about Scheme's small size that > > none of them seem to wake up to the fact that Scheme is small > > for the same reason a "Hello World" program is small -- it isn't > > very useful! > > I would never say Scheme is good because it is small. > > > Languages need 2 things to be truly good: > > 1) Flexibility of Syntax (Scheme has this) > > 2) Functionality (Scheme does not have this) > > Scheme has plenty of functionality in things like slib. What is > the problem? > > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Tue, 24 Mar 1998 04:17:47 +0000 Date: Tue, 24 Mar 1998 04:17:47 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: CL functionality in SchemeOS > The problem is that all these "things" are not standard, while > Common Lisp is. Why would anyone want to hobble around the > net, mixing and matching various non-standard extension > packages when the same functionality is already available > in Common Lisp? Because Scheme has things that CL can't and won't have no matter how much you "hobble around the net". Anyway, just pick up a copy of slib and quit hobbling. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From mikemac@mikemac.com Mon, 23 Mar 1998 21:42:58 -0800 Date: Mon, 23 Mar 1998 21:42:58 -0800 From: Mike McDonald mikemac@mikemac.com Subject: Lisp vs. Scheme >Date: Mon, 23 Mar 1998 21:57:59 -0600 >From: William Barnett-Lewis >To: "lispos@math.gatech.edu" >Subject: Re: Lisp vs. Scheme > >They key is, when will someone be able to say, hey I've got code that can >_do_ anything Genera or Allegro or "X" can do. Not, I've gotr schem X Y >or Z statically loading on some *nix kernel. Been there, done that, got >the ugly t-shirt... > >William > >(PS Scheme48 the last time around on this list, just in case you care. >Couldn't _do_ squat w/it either... ) Heck, I've had an account on my linux machine for 6 months called lispm. It brings up X with one xterm running ACL in it when you login. I guess I've had "LispOS" installed for half a year and didn't know it! (Not to make to much fun of Rodrigo Ventura. What he did is a FIRST step afterall. Now, if he can get rid of libc, then I'll think the Schemers are getting started! I plan on doing the same with CMUCL someday. But not first. First I have to get back to CLIM.) Mike McDonald mikemac@mikemac.com From cmh@greendragon.com Tue, 24 Mar 1998 00:53:40 -0600 Date: Tue, 24 Mar 1998 00:53:40 -0600 From: Chris Hanson cmh@greendragon.com Subject: CL functionality in SchemeOS Perhaps use Scheme as a systems programming language and implement a full CL on top of it? Or for bootstrap purposes... From cosc19z5@bayou.uh.edu Tue, 24 Mar 1998 07:53:45 -0600 (CST) Date: Tue, 24 Mar 1998 07:53:45 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: CL functionality in SchemeOS > > The problem is that all these "things" are not standard, while > > Common Lisp is. Why would anyone want to hobble around the > > net, mixing and matching various non-standard extension > > packages when the same functionality is already available > > in Common Lisp? > > Because Scheme has things that CL can't and won't have no matter > how much you "hobble around the net". Things which do not compensate for its weakness as a language. I've used Scheme, and what it has that CL does not have only makes CL a bit of an annoyance, whereas what CL has that Scheme does not have makes Scheme weak. > > Anyway, just pick up a copy of slib and quit hobbling. I have Common Lisp, so I don't need SLIB. > > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au > Regards, Ahmed From cosc19z5@bayou.uh.edu Tue, 24 Mar 1998 09:30:47 -0600 (CST) Date: Tue, 24 Mar 1998 09:30:47 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: CL OS Approach In the spirit of the renewed discussion on this list, I will propose some ideas about a LispOS. Many of these ideas may have already been suggested by others, so my apologiesi n advance if I cover any old ground. Also, I make these suggestions while admitting that I am no expert in Common Lisp or O/S design, and I have never used a Lisp Machine before. Furthermore, some of the terms I use will be inexact, and any code I include will be more like Lisp psuedocode, so forgive errors in syntax, names, etc... Now, on to the good stuff :) The first step to starting a LispOS is creating a Common Lisp Shell. This will be much easier to implement at first, and can serve as a good prototype for concepts for the O/S, and give people something to use and look at. The shell's purpose should be to map the entire O/S (resources, files, directories, etc...) into Common Lisp objects. The Common Lisp listener should be all that a user needs to do ALL hir work. Checking files, executing files, creating files, programming, scripting, etc... should all be executable within the listener, and EVERYTHING should look like a simple Common Lisp system, rather than "system" calls. Here is an example: Executable files (whether they be shell scripts or binaries created by compilation) should be directly runnable by calling them as functions. Data files will be symbols. The entire hierarchal file system should appear as a hierarchal module. Commands like ls, rm, etc... should be renamed to something less file specific (and sensible) and should return objects. The pretty printer should be modified to display these objects in a more human readable format and offer support for pagination. Remember, that all these guys are lisp objects, and hence have all the capabilities, uses, and limitations that lisp objects have. This way, these very same commands can be used directly in other functions which will use their results. Common Lisp will be a metaphor for _EVERYTHING_. As an example of what I'm talking about, here are some sample sessions (Note that I may get the names of some functions wrong and the syntax of modules wrong, but I think my point is clear nonetheless). Descriptions of what is being done will be in comments (;;). Commands that are typed in will have a ">" in front of them (this is the prompt), and the output will be directly beneath, without a prompt. ;; Get a list of the objects in the current module (equivalent to ;; ls in the current directory). Notice how executables appear as ;; functions and data files as symbols. ;; > (objects) (#'emacs #'gcc makefile) ;; To see a list of objects in a submodule, we pass the module ;; of interest as a symbol (equivalent to listing files in another ;; directory). ;; > (objects 'usr:bin:games) (#'chess #'zork #'nettrek readme) ;; To run an executable, we merely call it as a function. ;; > (chess) ... ;; Sometimes though, we may have an exectuable with the same name as ;; a built in function. When this happens, the built in function ;; gets called, but we can force a call of the executable in question ;; by fully qualifying the call with the module, ie: ;; > (usr:bin:games:chess) ;; Since data files are merely symbols, we can simply enter the ;; name by itself, and its value (the contents) will be displayed. ;; We will rely on the pretty printer to paginate and display this in ;; some kind of reasonable format. ;; > readme ... ;; Again to disambiguate, we can do: ;; > usr:bin:games:readme ;; Creating a new file is done by interning a new symbol. Now this ;; symbol is part of our object system and will persist so that if we ;; quit and come back, we will find it still there. ;; > (intern 'bugs_in_chess) ;; To give this symbol a value, we merely use setq as we would with any ;; variable. (editor) calls the editor and returns the text entered ;; by the user, or 'nil if save was not selected. ;; > (setq bugs_in_chess (editor)) ;; To make new executables, we will intern a symbol, then use defun ;; on it. For better editing capabilities we may pass an option to ;; the editor, or simply create it via an editor and then set it as an ;; executable object. Possibly (setq checkers (function checkers))? ;; > (intern 'checkers > (defun checkers () (...) And so on. Notice how the Lisp system is always in control. It isn't like the Lisp system provides an interface to the O/S, to the user, the Lisp system takes care of EVERYTHING. This is the way it should (ideally) be. The user can do everything s/he needs within the Lisp system. It goes beyond being an O/S, it's more like a persistent complete programmable environment. The user should NEVER have to leave the listener. There are snags however. Some of them are: 1) Since this will be initially implemented on top of an O/S, there will inevitably be conflicts between our way of doing things, and the OS's way. One particular issue will be Unix's annoying habit of being case sensitive. We can get around all that by using strings or '|| for symbols, but that takes away from the cleanliness, and IMO hurts our abstraction. We could try pretending that the problem doesn't exist and use case insensitivity (match the first file), since we will eventually dump Unix anyway. Remember, a high level view of objects (files) is that they are simply names, so if they are spelled the same, they are the same. This maps directly onto the concept of symbols, and I would like to preserve this concept if at all possible. 2) Having things like editors return their text and then having the pretty printer display it can be pretty annoying. One option is to allow suppression of the pretty-printer so that programs for which this makes sense can use or avoid it. This will also make it easy for programs which wish to use their own display formats to do so. The values returned will still be the same, they will merely be suppressed. Of course this opens the door to program output not matching displayed output... 3) Efficiency. If we have programs returning all their output and assigning them to variables, this could really slow things down. We might be able to get around this by using temporary files and simply renaming them to the interned symbols. One way or another, we will have to be cautious about this. Advantages to this approach are: 1) We can develop what appears to the end user to be a full fledged LispOS with relative ease. Developing this would consist of finding a pre-existing powerful lisp system with O/S interface capabilities and using Lisp's introspection capabilities to modify the read/eval/print loop to do our bidding. 2) We have a (IMO) better metaphor for persistent storage than traditional files. Files are now nothing more than symbols in a particular module, and reading a file is as easy as evaluating the symbol. Writing it is as easy as using setq on the symbol (if the file exists) or interning a new symbol and using setq on it (if it doesn't). 3) Lisp becomes in control of everything. It is now our scripting, applications, and command-line language, and all the benefits that come from using lisp will now apply to these domains. Code can be developed free of the compile-link cycle, yet can be run as easily as a native code program. Programs can be written to generate code to manipulate the "O/S" or vice versa and the very "O/S" may be easily altered by third parties. 4) Lisp concepts become O/S concepts, so there's less to learn. Now, I have not done any work to test out these concepts so there could be other snags/practicalities that I am not taking into account, and other issues that I may have forgotten to mention, so please be as critical as you like. This should be the first step. The other steps (in order) should be: 1) Developing a decent (ie: not X, or Winblows) windowing system. Again, this system should have lisp objects at its heart and should work solely in terms of these objects. 2) Rewriting certain applications to work in terms of the Common Lisp metaphor, and eventually rewriting other applications to take advantage of this metaphor. 3) Writing a "real" O/S that is friendly to our metaphor. All comments are welcome. Please don't hesitate to rip holes in this framework if you really think it's that bad. Any suggestions for improvements, additions, implementation strategies, misc. comments, etc... are also greatly welcome. Regards, Ahmed From lynbech@daimi.aau.dk Tue, 24 Mar 1998 20:59:44 +0100 (CET) Date: Tue, 24 Mar 1998 20:59:44 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: CL OS Approach I see some neat ideas in this. One of the particular nice sides to this is that it seem relatively straightforward to get of the ground. I would suggest you check out the `schsh' (SCHeme SHell) project run by Olin Shivers. Allthough that is done in scheme, he has spent some time thinking about how to map OS abstraction into scheme. It is rather UNIXoid in its orientaton, but I still think there are usefull lessons to be learned. More should be found at http://www.ai.mit.edu/%7Eshivers/, otherwise check some of the LISP/Scheme FAQs. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From lynbech@daimi.aau.dk Tue, 24 Mar 1998 21:17:36 +0100 (CET) Date: Tue, 24 Mar 1998 21:17:36 +0100 (CET) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: My path to lispos (was Re: CL functionality in SchemeOS) >>>>> "Mike" == Mike McDonald writes: Mike> Then why pick Scheme?? If you want CL functionality, pick CL! I will (pick CL that is). I am not much of a fan of the scheme philosophy. I only wanted to point out that SLIB is a usefull startingpoint for the schemers. I believe that I personally will follow the path of installing GNU HURD and then porting CMUCL to that environment. This will then be my laboratory for moving services out of the CMUCL core and into dedicated servers, which hopefully will usefull to prts of other lisp implementations Though Mach (the basis of HURD) has come some way from being a microkernel (as I hear it), it seems a reasonably starting point, supporting stuff such as threads, user space servers and a quite generic security mechanism. UNIX will be there along with all the familiar UNIX programs such as emacs and gcc right from the beginning, but as addons. Rather than being the foundation, UNIX will be just another server. I believe that the ability to run *different* implementations of lisp (be it CMUCL, GUILE Scheme, Scheme Tk, emacs lisp or whatever) is important. What will matter to users will be the ability to run their favorite programs, which often will require not only a specific dialect but also a specific implementation, so the idea of providing the One True Dialect does not seem feasible to me. The main problem will be what to name such a beast, since the two obvious candidates `MachLispOS' or `ML-OS' sort of has some problems :-) ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From gilham@csl.sri.com Tue, 24 Mar 1998 14:58:54 -0800 Date: Tue, 24 Mar 1998 14:58:54 -0800 From: Fred Gilham gilham@csl.sri.com Subject: Why LispOS? Perhaps this has been discussed before, but I'm curious about why people want LispOS. What do we expect it to do for us that just running some lisp system on unix won't? My own interests are for a more integrated lisp development environment. For example, I still remember using Masterscope on the Dandelion; I could display a function call tree, click on the nodes and get source, do all kinds of queries as to who called or used what, and so on. But this doesn't require LispOS. I'm also interested in a top-to-bottom environment that exposes more of the machine at the lisp level. This does seem to be something that LispOS is needed for. Another question that arises is whether there's anyone with the time and desire to actually code this up. Personally I have neither (because I'm currently not interested in groveling around operating system internals and such). I'm more interested in working at a higher level, perhaps working on Masterscope-like tools. I'm also limited in time---if I really get going I can spend 3 or 4 hours a week. I'd love to be able to slip a CD in my Intel box and an hour later have a Symbolics look-alike. But I can get along with what I have. Is there anyone on this list who is just foaming at the mouth :-) to create the Symbolics look-alike? -Fred Gilham gilham@csl.sri.com From friedman@splode.com Tue, 24 Mar 1998 15:26:03 -0800 (PST) Date: Tue, 24 Mar 1998 15:26:03 -0800 (PST) From: Noah Friedman friedman@splode.com Subject: Why LispOS? >I'm also interested in a top-to-bottom environment that exposes more >of the machine at the lisp level. This does seem to be something that >LispOS is needed for. That's why I want a LispOS. From mikemac@teleport.com Tue, 24 Mar 1998 16:16:58 -0800 (PST) Date: Tue, 24 Mar 1998 16:16:58 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Why LispOS? >To: lispos@math.gatech.edu >Subject: Why LispOS? >Date: Tue, 24 Mar 1998 14:58:54 -0800 >From: Fred Gilham >Perhaps this has been discussed before, but I'm curious about why >people want LispOS. What do we expect it to do for us that just >running some lisp system on unix won't? Well, I think people have gotten carried away with the OS part. There's a belief that memory management and scheduler HAVE to be written in Lisp for a "LispOS". Sure, given time and EXPERIENCE, that'd be nice. But I think a whole lot can be down running on top of an existing OS, be it some Unix derivitive or even some version of WinDoze. Or all of the above! From the user's environment point of view, it should NOT matter what the underlying OS is. Abstract it and wrap into oblivion! >I'd love to be able to slip a CD in my Intel box and an hour later >have a Symbolics look-alike. But I can get along with what I have. >Is there anyone on this list who is just foaming at the mouth :-) to >create the Symbolics look-alike? > >-Fred Gilham gilham@csl.sri.com > That's what some of us old farts are interested in. Unfortunately, very few on this list have ever seen a Symbolics let alone used one. So most people don't understand when we reminisce about the glories of Genera! Mike McDonald mikemac@mikemac.com From wlewis@mailbag.com Tue, 24 Mar 1998 18:58:17 -0600 Date: Tue, 24 Mar 1998 18:58:17 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: Why LispOS? Mike McDonald wrote: > >To: lispos@math.gatech.edu > >Subject: Why LispOS? > >Date: Tue, 24 Mar 1998 14:58:54 -0800 > >From: Fred Gilham > > >Perhaps this has been discussed before, but I'm curious about why > >people want LispOS. What do we expect it to do for us that just > >running some lisp system on unix won't? > > Well, I think people have gotten carried away with the OS > part. There's a belief that memory management and scheduler HAVE to be > written in Lisp for a "LispOS". Sure, given time and EXPERIENCE, > that'd be nice. But I think a whole lot can be down running on top of > an existing OS, be it some Unix derivitive or even some version of > WinDoze. Or all of the above! From the user's environment point of > view, it should NOT matter what the underlying OS is. Abstract it and > wrap into oblivion! > I think that my problem with the above is that you can only abstract so much of the OS away. Look at the Squeak project; a very portable smalltalk VM that is written in smalltalk and then translated into C for speed. Versions exist for just about every OS around and the code runs the same on all of them... almost. Every so often little OS "features" bit one in the butt. The differing file name conventions for example, or worse, is a directory separator a / a \ a : or something else?Don't even think about versioning... > >I'd love to be able to slip a CD in my Intel box and an hour later > >have a Symbolics look-alike. But I can get along with what I have. > >Is there anyone on this list who is just foaming at the mouth :-) to > >create the Symbolics look-alike? > > > >-Fred Gilham gilham@csl.sri.com > > > > That's what some of us old farts are interested in. Unfortunately, > very few on this list have ever seen a Symbolics let alone used > one. So most people don't understand when we reminisce about the > glories of Genera! > Or even more obscurely when a few of us mutter about the glories of Interlisp on an 1186... OTOH if anyone has an Open Genera Source License they'd care to accidently spill onto an FTP site... Nah, I didn't say that... ;> > Mike McDonald > mikemac@mikemac.com William Barnett-Lewis wlewis@mailbag.com From cosc19z5@bayou.uh.edu Tue, 24 Mar 1998 19:21:40 -0600 (CST) Date: Tue, 24 Mar 1998 19:21:40 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? > Perhaps this has been discussed before, but I'm curious about why > people want LispOS. What do we expect it to do for us that just > running some lisp system on unix won't? I like this question. If for nothing else it will get people to look at what they want, and what they expect. This will help form a goal for the ultra-rare possibility that a LispOS (from this mailing list) will become a reality. I've posted some ideas about what a first step should be (the topic was "CL OS Ideas" or something similar). I think reading that message will give you my answer to your question. To summarize it however, what I expect a LispOS to give me that a standard Lisp system on Unix won't is a completely Lisp-Centric view of the computing environment. I want Lisp for commands, Lisp for the application/scripting language, I want Lisp objects for the "file system", I want "files" to consist of Lisp objects. "Files" (or rather Persistent Storage Objects (PSOs)) would ideally be structured so that more sense can be made of them and to ease in their manipulation (makes things higher level). I want Lisp objects to be the result of all commands, so that I can use, parse, and evaluate them as I would any Lisp objects. I want the equivalent of "ls" to give me a list that I can happily use. THAT is what I want a LispOS to give me. True, that this can be accomplished by a Lisp shell riding on top of Unix, or Winblows or whatever. When I turn on my computer, I want to do everything I need to do without ever resorting to anything other than Lisp. This is my dream. > > My own interests are for a more integrated lisp development > environment. For example, I still remember using Masterscope on the > Dandelion; I could display a function call tree, click on the nodes > and get source, do all kinds of queries as to who called or used what, > and so on. As part of the LispOS/LispShell project this would definitely be a priority in my ideal world. Having the entire computing environment in Lisp would be just one step -- enhanced tools for Lisp development would be implemented. > > But this doesn't require LispOS. No, but having a bona fide Lisp-friendly kernel could make things more efficient. Maybe. Having a LispOS/LispShell (something that appears like an O/S to the end user anyway) would fit in very nicely with such tools. Your computing environment is your development environment. I like the idea. The distinction between application/scripting/ Commands is blurred. Whether you are writing a simple shell automation script, entering a command, or writing a videogame, the process is the same -- it appears like you are programming in the native O/S language. Not some low level machine code, or a third rate excuse for a "structured" language. No, a language that is the essence of your operating environment. Add in some other niceties, like maybe a Lisp-isized database query language (one that you can load into the environment and use from the command line or within your own code) and I see a computing environment that can't be beat. A nice, intelligently designed, Lisp-Centric windowing system would do great. No one would have anything on us then! Of course, the ability to run other programs is important, and if this is simply a shell, then compiled code can be run, but it can be made to fit as seamlessly as possible in the shell. Ideally, applications will eventually be re-written/modified to be as lisp-centric as possible. Lisp will be all that there is. > > I'm also interested in a top-to-bottom environment that exposes more > of the machine at the lisp level. This does seem to be something that > LispOS is needed for. Again, as part of a shell project, an API would be provided. Everything that can be accessed from the O/S / Hardware will have a Lisp-friendly wrapper. Lisp will ideally do EVERYTHING you need. > > Another question that arises is whether there's anyone with the time > and desire to actually code this up. Personally I have neither > (because I'm currently not interested in groveling around operating > system internals and such). I'm more interested in working at a > higher level, perhaps working on Masterscope-like tools. I'm also > limited in time---if I really get going I can spend 3 or 4 hours a > week. I would not mind working on this, but there are a few problems involved: 1) I am not using a Unix system at home, and I have no desire to change. Since many people seem to think that Linux or FreeBSD should be used, this may knock me out of the running (before I've started I would say!). 2) I know nothing about O/S internals, and I have no desire to code in anything other than Lisp. Be it Common Lisp (preferably) or Scheme. I do not want to soil myself by hacking C or C++ or assembly. I used to be willing to do this, but frankly I'm more sick of C and C++ than I ever was. 3) My time is limited, but I will happily give what time I can over to this project. > I'd love to be able to slip a CD in my Intel box and an hour later > have a Symbolics look-alike. But I can get along with what I have. > Is there anyone on this list who is just foaming at the mouth :-) to > create the Symbolics look-alike? If I knew what Symbolics was like, maybe I'd be foaming right about now :). From all the praise I've heard heaped upon this system, I would be very interested in seeing a Symbolics clone and would happily try it out (if a demo were available). > > -Fred Gilham gilham@csl.sri.com > Regards, Ahmed From cosc19z5@bayou.uh.edu Tue, 24 Mar 1998 19:24:40 -0600 (CST) Date: Tue, 24 Mar 1998 19:24:40 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? [Snip] > Well, I think people have gotten carried away with the OS > part. There's a belief that memory management and scheduler HAVE to be > written in Lisp for a "LispOS". Sure, given time and EXPERIENCE, > that'd be nice. But I think a whole lot can be down running on top of > an existing OS, be it some Unix derivitive or even some version of > WinDoze. Or all of the above! From the user's environment point of > view, it should NOT matter what the underlying OS is. Abstract it and > wrap into oblivion! While I wholeheartedly agree that implementing a LispOS as a shell that rides on an existing O/S and gives a Lisp-Centric view of the computing environment is a good idea, I also think that eventually writing a kernel from scratch might help performance a bit if the kernel is made Lisp friendly. But for a first concrete goal, and something that others can use, I agree with you. [Snip] > Mike McDonald > mikemac@mikemac.com > Regards, Ahmed From mikemac@teleport.com Tue, 24 Mar 1998 17:41:49 -0800 (PST) Date: Tue, 24 Mar 1998 17:41:49 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Why LispOS? >Date: Tue, 24 Mar 1998 18:58:17 -0600 >From: William Barnett-Lewis >MIME-Version: 1.0 >To: Mike McDonald , > "lispos@math.gatech.edu" >Subject: Re: Why LispOS? >Mike McDonald wrote: >> Well, I think people have gotten carried away with the OS >> part. There's a belief that memory management and scheduler HAVE to be >> written in Lisp for a "LispOS". Sure, given time and EXPERIENCE, >> that'd be nice. But I think a whole lot can be down running on top of >> an existing OS, be it some Unix derivitive or even some version of >> WinDoze. Or all of the above! From the user's environment point of >> view, it should NOT matter what the underlying OS is. Abstract it and >> wrap into oblivion! >> > >I think that my problem with the above is that you can only abstract so >much of the OS away. Look at the Squeak project; a very portable >smalltalk VM that is written in smalltalk and then translated into C for >speed. Versions exist for just about every OS around and the code runs >the same on all of them... almost. Every so often little OS "features" >bit one in the butt. The differing file name conventions for example, or >worse, is a directory separator a / a \ a : or something else?Don't even >think about versioning... Well, when you get to the point where you have experience with what the OS abstractions should be and those OS "features" are too much to bear, THEN implement an OS in whatever your favorite language of the day happens to be. Until then, I think you'd be just adding more "features"! As for / or \, everyone knows the proper one is ;! (http://www.harlequin.com/education/books/HyperSpec/Body/sec_19-3-1.html) Mike McDonald mikemac@mikemac.com From hjh@best.com Tue, 24 Mar 1998 19:29:13 -0800 (PST) Date: Tue, 24 Mar 1998 19:29:13 -0800 (PST) From: J. Han hjh@best.com Subject: Why LispOS? To Old Timers: I have been meaning to ask this question and present discussion seems to be a good place to ask it: What is it like using a Lisp Machine? I have read a few AI Lab memos and seen Genera screenshots, but I still don't have concrete feel for a Lisp Machine. I usually live inside Emacs but of course it's not quite the Real McCoy, is it? I bet many people who have never seen a live LispM would like to hear the answer, too. Old timers: it's an open invitation to tell your stories. Spill all the juicy details! [If you can post a ftpable mpeg showing a short presentation of Genera, that would be great. I guess the presentation script should be tight and concise to keep the length and mpeg size manageble. Hmm, I wonder how big is a 10 minuite mpeg (800x600)? Even more I am willing to fork over small sum of money for a videotape demonstration...] Never mind mpeg. Write and write and write. Let's read something concrete on this list. best, J Han -- "The whole point of Lisp is that it _is_ a machine, not a language!" -- Henry Baker From chrisb@Ans.Com.Au Wed, 25 Mar 1998 03:43:06 +0000 Date: Wed, 25 Mar 1998 03:43:06 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: CL functionality in SchemeOS > Things which do not compensate for its weakness as a language. > > I've used Scheme, and what it has that CL does not have only > makes CL a bit of an annoyance, whereas what CL has that Scheme > does not have makes Scheme weak. > > > > > Anyway, just pick up a copy of slib and quit hobbling. > > I have Common Lisp, so I don't need SLIB. I take it then you havn't used slib? It therefore seems reasonable to assume you have no idea what Scheme is and isn't missing? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From mdulcey@bospo.caiwireless.net Tue, 24 Mar 1998 23:17:25 -0500 Date: Tue, 24 Mar 1998 23:17:25 -0500 From: Mark J. Dulcey mdulcey@bospo.caiwireless.net Subject: Why LispOS? J. Han wrote: > > To Old Timers: > > What is it like using a Lisp Machine? Background: I hacked at the AI Lab for a while, and then went to work for LMI (Lisp Machine, Inc., the main competitor of Symbolics back in the mid-1980s). So what was special about a Lisp Machine? There were a few things that were quite special then, but less so now. A full-page bitmap display (monochrome; color LispM displays existed but were rare) that was big enough to show a whole printed page worth of text. A full-blown windowing system. Multitasking and quick switching between programs. Virtual memory so you didn't have to worry about running out of space. A keyboard with enough keys to make the Emacs-like editor really sing. (Modern PC keyboards don't have quite as many keys as a LispM keyboard, but they have a lot more than typical terminal keyboards of the early 80s did.) An interface to a laser printer, so you could print out your stuff with lots of fonts and stuff. Now on to the things that really made it special. First, the main program listener (the LispM equivalent of a shell) was Lisp. No second language to learn for interaction and scripting; Lisp did it all. You had the full power of your favorite language available right there at the prompt. Second, it came with an editor (ZMacs, an Emacs-like editor written in Lisp) that really understood the language, and was fully integrated with the environment. Since the system also had a full bitmapped display, and the editor understood multiple typefaces, you could do a few tricks that Emacs can't on most platforms, including my favorite - Electric Font Lock Mode. (It automatically changed Lisp comments to a different typeface when you typed in your code.) Third, the compiler was nicely integrated with the editor. ZMacs understood what parts of your buffers had changed, and recompiled only the relevant pieces of code, so test/fix/recompile cycles were VERY fast. (And unlike most programming environments, you really did only need to recompile the functions that changed, for reasons I will detail later.) Fourth, the Lisp debugger was fully integrated and available anywhere. Error at the "shell" prompt? Hit a bug in the editor? Just want to break into the middle of the operation of some program and find out how it works? You could be right there with the same tools that you used to debug everything else. And all the source code (on the LMI systems, ALL the source code, all the way down to the microcode! Symbolics was a bit stingier, and didn't distribute the microcode source.) was available online, and functions were tagged with the path of the file they came from, so the editor could find you the source of ANYTHING. (In the early days, this was really important, because the documentation was seriously lacking, so sometimes the only you could figure out how to do something was to read the source of a program that already did it.) Fifth, it had a nice object inspector. And since the LispM was a tagged-pointer architecture (every object had an associated type code), the debugger ALWAYS knew exactly what you were looking at; confusion caused by wild pointers, as is common in other computer languages, was impossible. Sixth - this one takes a bit of explaining. I mentioned earlier that testing cycles were fast because you only had to recompile the parts of your program that actually changed. The LispM was special in this regard because it never snapped links. (Those of you who have never studed Lisp implementation technique are probably saying "Huh?" right now. Bear with me.) When compiled code is loaded, it contains references to other functions. Somewhere along the way, you have to turn these into real jumps into the code of the other function (known as "snapping links"). There are various strategies for doing that. The traditional way was to resolve all the jumps as soon as you load the code into memory. There are some economies of scale doing it all at once, and you don't need to have the linker in memory all the time. On the other hand, you waste time resolving calls that never happen (code that doesn't get exercised), and you can't change any of the code in the file without reloading all of it. More modern system with dynamic linking wait until the call actually happens. The first time a function calls some other function, the placeholder for the jump is replaced with a real jump instruction by the dynamic linker. From then on, that particular jump is hard-coded to its destination, and will continue to call the same code object even if you recompile and reload the called function. You don't waste time on calls that never get exercised; you may not even have to load some of the called code into memory at all (if the calls never happen). On the downside, you have to have the linker present all the time. In any case, Windows DLLs and Unix shared libraries both use this model. The LispM followed the extreme strategy of NEVER snapping links. Instead, it looked in the function value cell of the called symbol on every call. There was some cost to this (an extra memory reference on every function call), but it meant that you could easily replace single functions from any source and instantly change the behavior of the system. Of course, this capability was also dangerous; if you replaced some basic system function, you could completely break your system. There was a limit to how much havoc you could wreak, though. Many of the more basic functions were microcoded. When you compiled your program, the code didn't contain normal calls to those functions at all; it contained instructions that invoked the microcode. So redefining really basic stuff like "car" wouldn't have much effect - only code run in the interpreter would ever use your new version. (This was true even if you recompiled something AFTER redefining the function, by the way; the compiler didn't bother to notice your redefinition.) Finally, the LispM was thoroughly network-aware, back at a time when that was rare. It could communicate with multiple types of filesystem hosts (TOPS-20, Unix, VMS, a few different flavors of LispM-based file servers, and so on) over an Ethernet (well, originally a Chaosnet, an MIT-developed Ethernet-like network - later, a real Ethernet), and could automatically reestablish connections with systems if necessary (a trick that Windows and the Macintosh STILL can't manage). It had Telnet and FTP applications and a mail reader (ZMail, an offshoot of ZMacs with lots of special goodies for mail reading - no relation to the currently available product of the same name for PCs), so you could do all your favorite Internet stuff. Bottom line: I still miss working with the LispM. I have not yet seen another environment that can measure up to it as a fast development tool. -- Mark Dulcey mark@ziplink.net Visit my house's home page: http://www.ziplink.net/~mark/buttery/ From chrisb@Ans.Com.Au Wed, 25 Mar 1998 05:32:04 +0000 Date: Wed, 25 Mar 1998 05:32:04 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: CL OS Approach "cosc19z5@bayou.uh.edu" wrote... >The first step to starting a LispOS is creating a Common Lisp Shell. >This will be much easier to implement at first, and can serve as > good prototype for concepts for the O/S, and give people >something to use and look at. > >The shell's purpose should be to map the entire O/S (resources, >files, directories, etc...) into Common Lisp objects. One "problem" with what you propose, if you could call it that, is that what you are talking about already exists. Any implementation of Scheme or Lisp with a persistent object store does more or less what you are talking about already. Perhaps that is causing a problem with getting LispOS started... Everybody is too comfortable with the ways things work now. I would have thought there were two ways forward from what you propose... 1) Get an implementation of Lisp or Scheme with a persistent object store, and just fiddle a bit with how it works in order to make it exactly how you want it. or 2) Get an implementation of Lisp or Scheme with a persistent object store and build functionality for the basic things that people want to do. Things like creating files/objects and all those "really basic" things already exist and work similar to how you propose in persistent Lisps/Schemes. I'm talking about higher level stuff like email, editors etc. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Wed, 25 Mar 1998 05:47:34 +0000 Date: Wed, 25 Mar 1998 05:47:34 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Fred Gilham wrote: > > Perhaps this has been discussed before, but I'm curious about why > people want LispOS. What do we expect it to do for us that just > running some lisp system on unix won't? For myself, I just think it would be really neat to have an OS where there is only one sort of entity... Lisp objects. Not ascii files, not raw devices, not zillions of different file formats, configuration files formats, programming and pseudo programming/configuration languages. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Wed, 25 Mar 1998 06:09:46 +0000 Date: Wed, 25 Mar 1998 06:09:46 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? cosc19z5@bayou.uh.edu wrote: > I would not mind working on this, but there are a few problems > involved: > 1) I am not using a Unix system at home, and I have > no desire to change. Since many people seem to > think that Linux or FreeBSD should be used, this > may knock me out of the running (before I've started > I would say!). If an portable implementation of Lisp/Scheme is chosen, I don't see the problem in using Windows if you like. RScheme is supposedly extremely portable, but I don't know if that extends to Windows or not. There is talk of a Mac port at www.rscheme.org, so you'd think if it worked on a Mac it might either work, or be made to work on Windows. Portability might get a bit difficult if a gui ever came into existance though. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Wed, 25 Mar 1998 06:17:27 +0000 Date: Wed, 25 Mar 1998 06:17:27 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: CL OS Approach Christian Lynbech on satellite wrote: > I would suggest you check out the `schsh' (SCHeme SHell) project run > by Olin Shivers. Allthough that is done in scheme, he has spent some > time thinking about how to map OS abstraction into scheme. It is > rather UNIXoid in its orientaton, but I still think there are usefull > lessons to be learned. While I think it's well worth looking at scsh, in my opinion scsh is a great scheme interface to UNIX, but not terribly relevent to the LispOS way that things should be done. As I think Olin Shivers said himself, scsh is unashamedly UNIXoid, and doesn't consider the possibility that co-operating processes via pipes (UNIX) might not be the best way of doing things (like LispOS). -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From Martti.Halminen@dpe.fi Wed, 25 Mar 1998 11:27:54 +0200 Date: Wed, 25 Mar 1998 11:27:54 +0200 From: Martti Halminen Martti.Halminen@dpe.fi Subject: Why LispOS? J. Han wrote: > > To Old Timers: > > I have been meaning to ask this question and present discussion > seems to be a good place to ask it: > > What is it like using a Lisp Machine? > > I have read a few AI Lab memos and seen Genera screenshots, but > I still don't have concrete feel for a Lisp Machine. I usually > live inside Emacs but of course it's not quite the Real McCoy, is it? > > I bet many people who have never seen a live LispM would like > to hear the answer, too. Old timers: it's an open invitation to > tell your stories. Spill all the juicy details! There used to be a book about this, saw it once in a bookstore, but didn't buy as I wasn't in a position to get a LispM those days. Mostly written about Symbolics machines, IIRC. I took a look at www.amazon.com, and they still list it: Lisp Lore : A Guide to Programming the Lisp Machine by Hank Bromley, Richard Lamson List: $91.50 Our Price: $91.50 Availability: This title usually ships within 4-6 weeks. Please note that titles occasionally go out of print or publishers run out of stock. We will notify you within 2-3 weeks if we have trouble obtaining this title. 2nd Edition Hardcover Published by Kluwer Academic Pub Publication date: June 1987 ISBN: 0898382289 -- ________________________________________________________________ ^. Martti Halminen / \`. Design Power Europe Oy / \ `. Tekniikantie 12, FIN-02150 Espoo, Finland /\`. \ | Tel:+358 9 4354 2306, Fax:+358 9 455 8575 /__\|___\| Mailto:Martti.Halminen@dpe.fi http://www.dpe.fi From joswig@lavielle.com Wed, 25 Mar 1998 11:05:06 +0100 Date: Wed, 25 Mar 1998 11:05:06 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Why LispOS? At 11:27 Uhr +0200 25.03.1998, Martti Halminen wrote: >I took a look at www.amazon.com, and they still list it: > > > Lisp Lore : A Guide to Programming the Lisp > Machine You can also try to get a copy of the Symbolics Documentation. Since all of this is available online inside Genera and it uses an early hypertext system, it would be a valuable project to convert the documentation on the fly to HTML and export it via CL-HTTP. Another nice thing to have is the "Chinual", the early Lisp Machine Manual. We have a printed copy at the University. I wonder whether there is an electronic version somewhere. Rainer Joswig Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 13:27:05 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 13:27:05 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Chris" == Chris Bitmead writes: Chris> Fred Gilham wrote: >> >> Perhaps this has been discussed before, but I'm curious about why >> people want LispOS. What do we expect it to do for us that just >> running some lisp system on unix won't? Chris> For myself, I just think it would be really neat to have an OS Chris> where there is only one sort of entity... Lisp objects. Not ascii Chris> files, not raw devices, not zillions of different file formats, Chris> configuration files formats, programming and pseudo Chris> programming/configuration languages. Yeah. I'd say that the biggest challenge of LispOS is to bridge the gap between the hardware and the lower levels of LISP that interact with it. There already is lots of work about the higher levels. The challenge is indeed to make the LISP communicate with the kernel in a way at least as *simple* as the UNIX syscalls. One cannot get any simpler than the open()/read()/write()/ioctl() (IMHO this was one major factor that led to UNIX development) -- the file paradigm. One can access all kinds of different devices, from network sockets to serial ports, throught memory itself by the means of this API. A similar API is required to LispOS. May I propose an improvenemt of the file API of scheme? Is it powerful enought? BTW, I had a couple of more ideas about things LispOS could have: to have a graphical interface from the bottom-up, ie no more text-only console. This is impossible for the first stages of development, no doubt. But as we have a change of building a OS from the bottom-up, let's do something more updated (well, Symbolics always had a bitmap display). And instead of formating text straight to ASCII, using "%d" printf() or "~a" (format) sequences, why not something like LaTeX? (Am I getting crazy?) Well, a small subset of LaTeX, including \bf like commands and even font-changing ones (\tt)! All together with a PostScript display, we could get it from GNUstep. It could become quite neat. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From chrisb@Ans.Com.Au Wed, 25 Mar 1998 14:05:29 +0000 Date: Wed, 25 Mar 1998 14:05:29 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Rodrigo Ventura wrote: > The challenge is indeed to make the LISP communicate with the > kernel in a way at least as *simple* as the UNIX syscalls. One cannot > get any simpler than the open()/read()/write()/ioctl() Of course you can get simpler. You just eliminate them. > (IMHO this was > one major factor that led to UNIX development) -- the file > paradigm. One can access all kinds of different devices, from network > sockets to serial ports, throught memory itself by the means of this > API. A similar API is required to LispOS. Why? > BTW, I had a couple of more ideas about things LispOS could > have: to have a graphical interface from the bottom-up, ie no more > text-only console. No text console? Isn't that one of the fascinations of Lisp, to be able to type at a text console? > And instead of formating text straight > to ASCII, using "%d" printf() or "~a" (format) sequences, why not > something like LaTeX? (Am I getting crazy?) Well, a small subset of > LaTeX, including \bf like commands and even font-changing ones (\tt)! > All together with a PostScript display, we could get it from > GNUstep. It could become quite neat. I'm not quite sure what you've got in mind. Where would you use these TeX like APIs? LaTeX by itself is a bad tool for laying out GUIs. It is a good tool for producing documents. But I don't think you had that in mind did you? From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 16:20:54 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 16:20:54 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Let's begin SchemeOS >>>>> "Fare" == Fare Rideau writes: Fare> * I still think that there is room for several LispOS projects, Fare> and since we obviously can't agree on a unified project anyway, Fare> we can at least agree to disagree on what to do next: Fare> using Scheme, ANSI CL, or another dialect, Fare> basing implementation on RScheme or CMUCL, Fare> hosting on self (or Flux) or Linux/BSD, Fare> starting from the application or system side, Fare> storing objects with a filesystem or a persistent store. I agree with your disagreement 8-) In little words, I think that: - scheme is better because is simple enought not to be tangled with any implementation or machine perspective (or OS); - CMUCL is too heavy, RScheme is appealing, Scheme48 has great portability (virtual machine, bytecodes, etc.); A survey on scheme's has to be done; - Linux seems ok because it covers a _wide_ range of platforms. Hurd is under development, and FreeBSD is less used (I guess). Linux is a pragmatical choice, rather than a technical one -- this way we do not need to worry how to support a specifir chip on a specific ethernet board; - difficult to start from applications side without a clear view on how it will interface with the system. Do not forget that object persistence instead of file system is still an open question; - persistent store is sexier (and as you said, it cannot be easly proved 8-))). Fare> * As for getting code available, would it be possible Fare> that we, as a consortium of users, convince (with words and/or money) Fare> whoever still owns Lisp Machine code Fare> (Symbolics successors, Xerox, TI, HP, MIT, etc) Fare> to make it publically available? Fare> I am ready to participate financially in such an operation. Fare> Maybe the demise of Symbolics is an occasion to Fare> buy their assets for cheap!? Fare> Else, when will some/all of this code become public domain anyway? Fare> US Legal affairs are sure not *my* specialty... Difficult for third reasons: first, the people that enter with the money may not want to make it public, second, those old lisp os' where made too many time ago, and many new fresh ideas were developed meanwhile, and third, even if we buy it, is it legal to simply make it 100% public? Note that I'm willing to drop some money for the cause, as long as it is not too much, at least to look at the code, or use as inspiration, or even use it directly to the higher layers. It looks interesting to buy it a make it "open source" (to use a buzzword), at least for the open source cause. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 16:26:58 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 16:26:58 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Dynamic loading / vm extensions >>>>> "ecm" == Eric Marsden writes: ecm> The dynamic loading code works with Linux approximately as documented ecm> in doc/external.txt. The two differences wrt the procedure given for ecm> SunOS are different flags to ld: ecm> ld -shared test.o -o test.so ecm> and a call such as (note the "./"; the full absolute path works too) ecm> (external-call dynamic-load "./test.so") ecm> After a little playing around with the file test.c it seems that ecm> fixnums and vectors are recognized correctly (with the functions ecm> FIXNUMP() and VECTORP() respectively), while strings or floats are not ecm> recognized. The STRINGP() test fails, but forcing the extraction of ecm> the string's contents with STRING_REF and STRING_LENGTH works ecm> correctly. Yeah, I almost forgot that I did some playing around with dyn-load on scheme48. What I did was a UDP sockets API to make scheme communicate with SoccerServer. It would be cool to make a partial glue to the UNIX syscalls. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 16:47:44 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 16:47:44 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Chris" == Chris Bitmead writes: Chris> Rodrigo Ventura wrote: >> The challenge is indeed to make the LISP communicate with the >> kernel in a way at least as *simple* as the UNIX syscalls. One cannot >> get any simpler than the open()/read()/write()/ioctl() Chris> Of course you can get simpler. You just eliminate them. Baa. It is implicit one wants to simplify without affecting the functionality! Or else, there is always the trivial LispOS solution: 0 bytes!!!! >> (IMHO this was >> one major factor that led to UNIX development) -- the file >> paradigm. One can access all kinds of different devices, from network >> sockets to serial ports, throught memory itself by the means of this >> API. A similar API is required to LispOS. Chris> Why? Because simplicity (or cleaniness) of an API is usually an under-rated factor for broad acceptance. Even if a certain API is the best in some technical sense, if it is not simple, if people cannot easly grasp how it works, it becomes useless as far as broad use is concerned? Imagine for instance the Xlib API. It's fast, is flexible, but nobody uses, because everybody prefers a Motif-like API where you have widget pointers and callbacks --> simplicity! >> BTW, I had a couple of more ideas about things LispOS could >> have: to have a graphical interface from the bottom-up, ie no more >> text-only console. Chris> No text console? Isn't that one of the fascinations of Lisp, to Chris> be able to type at a text console? You mean a LISP listener. I think that a LISp listener can be more than a bi-directional stream of ASCII chars. For instance, something like curses of termcap are required to make "special effects" with this stream of ASCII chars, using escape sequences and such hacks. Why not re-engineer the shell? The shell is such a powerful tool, why not improving it instead of throwing it away and use some mac-like desktop? (very neat, but not as powerful). >> And instead of formating text straight >> to ASCII, using "%d" printf() or "~a" (format) sequences, why not >> something like LaTeX? (Am I getting crazy?) Well, a small subset of >> LaTeX, including \bf like commands and even font-changing ones (\tt)! >> All together with a PostScript display, we could get it from >> GNUstep. It could become quite neat. Chris> I'm not quite sure what you've got in mind. Where would you use Chris> these TeX like APIs? Chris> LaTeX by itself is a bad tool for laying out GUIs. It is a good Chris> tool for producing documents. But I don't think you had that in Chris> mind did you? Ok, I probably didn't explain myself good enought. This idea came up while I was thinking about whether to use (format)-like semantics or a printf()-like one. Then I had an idea: why not a much more complete and powerful semantics, for instance based on LaTeX syntax, eg "\int[5]". It's much more readable than "%5d", don't you think? And then it came up that we could extrapolate this scheme to implement font changes, size changes, and all those special effects. Another idea would be to use something like HTML, or even SGML, but I guess it is far more complex... Well, it's just a printf()-like function! But the baseline is why not dettach from the old console ASCII streams paradigm and depart to a more powerfull scheme. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From dtillman@cannonexpress.com Wed, 25 Mar 1998 10:18:38 -0600 Date: Wed, 25 Mar 1998 10:18:38 -0600 From: David Tillman dtillman@cannonexpress.com Subject: Why LispOS? >> BTW, I had a couple of more ideas about things LispOS could >> have: to have a graphical interface from the bottom-up, ie no more >> text-only console. > No text console? Isn't that one of the fascinations of Lisp, to > be able to type at a text console? One feature I would like to see is a text console that is bit-mapped. All output from the shell would be subject to the same font and color modification as you would get from your favorite editior. Also, I would like to do something like: (shutdown) and have everything frozen as it is. The next time I start the OS I want all of the windows, files, processes, etc. to be just like I left them. I realize that there is some complexity to doing this with a multiuser OS. It may be that only local sessions would have their state saved and remote sessions would have their's destroyed. I don't know how any of this relates to how real Lisp machines functioned. I have never *seen* one, let alone used one... -Dave -- David Tillman : dtillman@xevious.ml.org LISP email list : lisp-request@xevious.ml.org MzScheme email list : mzscheme-request@xevious.ml.org From chrisb@Ans.Com.Au Wed, 25 Mar 1998 16:33:00 +0000 Date: Wed, 25 Mar 1998 16:33:00 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? David Tillman wrote: > Also, I would like to do something like: (shutdown) and have > everything frozen as it is. The next time I start the OS I want > all of the windows, files, processes, etc. to be just like I left > them. Yeah, the world is long overdue to get this feature. > I realize that there is some complexity to doing this with a multiuser > OS. It may be that only local sessions would have their state saved > and remote sessions would have their's destroyed. As long as the remote system is another LispOS I reckon it should be possible. Well maybe. Speaking of networks, I'd like to see the "everything is a lisp object" extended to the network. Maybe any object can be thrown down a socket and pops out at the other end. Should be quite possible. I guess it would borrow a lot of the internal mechanisms used in the persistent store. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 17:33:17 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 17:33:17 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Chris" == Chris Bitmead writes: Chris> Rodrigo Ventura wrote: Chris> Of course you can get simpler. You just eliminate them. >> >> Baa. It is implicit one wants to simplify without affecting >> the functionality! Chris> Yeah, so what functionality are you worried to lose? I'm sorry, but I'm afraid this conversation is getting nowhere, unless there is indeed a point you are trying to make, and I was unable so far to grasp it. What is really your point? If it goes beyond LispOS, please, let's talk by emails rather than using the ml. Going to the point: if you eliminate the UNIX API, what is left? You ask what functionality am I worried to lose? Simply the possibility to access any UNIX device by the means of the syscalls API. If someones puts a new device into the machine, along with a device driver that registers a char-device, how is it supported on the LispOS side? With syscalls it becomes trivial! >> >> Because simplicity (or cleaniness) of an API is usually an >> under-rated factor for broad acceptance. Chris> So why not simplify the UNIX way, instead of wanting a "similar Chris> API in LispOS"? Yeah! That would be great! I assumed it was difficult. Do you see a way of doing that without jeopardizing all UNIX flexibility and functionality? Let's hear it. >> Even if a certain API is the >> best in some technical sense, if it is not simple, if people cannot >> easly grasp how it works, it becomes useless as far as broad use is >> concerned? Imagine for instance the Xlib API. It's fast, is flexible, >> but nobody uses, because everybody prefers a Motif-like API where you >> have widget pointers and callbacks --> simplicity! Chris> Xlib is actually quite simple. It's just that you've got to do Chris> lots and lots of stuff, just to get say a button up on the Chris> screen. I concede that Xlib can be simple after reading tons and tons of docs. And after several months without thinking about Xlib, is it possible to get back to it easly? Although I confess my ignorance on Xlib internals. >> Ok, I probably didn't explain myself good enought. This idea >> came up while I was thinking about whether to use (format)-like >> semantics or a printf()-like one. Then I had an idea: why not a much >> more complete and powerful semantics, for instance based on LaTeX >> syntax, eg "\int[5]". It's much more readable than "%5d", don't you >> think? Chris> Hmm. The whole concept of formatting strings seem a bit flawed to Chris> me. \int[5] is the invention of a sub-language that is not Chris> Lisp/Scheme. That is what I thought we are trying to avoid. Good point. To make the formating string, not a string but a list, is a neat idea! I like it! It can be some sort of sub-language, but based on lists. And it could be easly expanded. Nice idea. Really like it! Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 17:38:02 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 17:38:02 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Christopher" == "Christopher J Vogt" writes: Christopher> A side affect of all this is that you virtually never have a crash. No Christopher> system freeze, no blue screen of death, no core dump. Most people ran Christopher> their Lispm until it ran out of virtual memory space, which in my case was Christopher> between once a week and once a month. With todays gigabyte disks, I could Christopher> run for months without booting. Hum, is that really needed? You can run UNIX for years without a reboot. I assume our LispOS will have that for granted, and event not require reboot, but just a (gc). Christopher> Ever use a program and wonder how they coded it? On a lispm you could just Christopher> "break" the program and poke around. If it was system software, the Christopher> sources were included and you could m-. (edit definition) from the debugger Christopher> and be in the editor looking at the source code. Christopher> The System Constrcution Tool (SCT) was like defsystem on steroids. I still Christopher> miss the patching facility. m-x Add Patch and friends (Add Changed Christopher> Definitions etc.). That's a great feature. Can it be said that it reaches the level of changing code on-the-fly, or even build a program while running/debuging it. It could speed-up enormously development speed. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From vogt@computer.org Wed, 25 Mar 1998 11:04:10 -0600 Date: Wed, 25 Mar 1998 11:04:10 -0600 From: Christopher J. Vogt vogt@computer.org Subject: Why LispOS? At 9:29 PM -0600 3/24/98, J. Han wrote: >To Old Timers: > >I have been meaning to ask this question and present discussion >seems to be a good place to ask it: > > What is it like using a Lisp Machine? What facilities does an OS provide? File system, memory management, I/O, process management, etc. Now, imagine all of those facilities written in Lisp, running in a single address space. Don't like the file system? Write a new one. Feel the file system is missing a particular feature (like file versions maybe?) modify it to support it. Want to change the schedule, go ahead. Have some ideas about memory management, gc, etc? Code them up and try them out. You have a fully open and integrated environment. There is nothing that is off limits, no super user, no protected mode, etc. You don't need to learn a command line language, or a scripting language, because Lisp is all those things, and more. Your one programming language does what multiple languages currently do. The power and flexibility of this makes progamming life much easier and more enjoyable. I haven't enjoyed programming since I last used a Lispm. A side affect of all this is that you virtually never have a crash. No system freeze, no blue screen of death, no core dump. Most people ran their Lispm until it ran out of virtual memory space, which in my case was between once a week and once a month. With todays gigabyte disks, I could run for months without booting. The debugger had features that I still don't see. You could set a breakpoint in function foo, to only be triggered if foo was called from bar. You could monitor a variable and break only if the variable was read (or written, or bound, or unbound, or any combination of the above). Incredibly powerful debugger. Ever use a program and wonder how they coded it? On a lispm you could just "break" the program and poke around. If it was system software, the sources were included and you could m-. (edit definition) from the debugger and be in the editor looking at the source code. The System Constrcution Tool (SCT) was like defsystem on steroids. I still miss the patching facility. m-x Add Patch and friends (Add Changed Definitions etc.). I hope this gives you a flavor of what a Lispm has that other systems don't, and why it is valuable, and why us "old farts" wax nostalgic. Christopher (Chris) J. Vogt mailto:vogt@computer.org Omaha, NE http://members.home.com/vogt/ From chrisb@Ans.Com.Au Wed, 25 Mar 1998 17:07:03 +0000 Date: Wed, 25 Mar 1998 17:07:03 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Rodrigo Ventura wrote: > Chris> Of course you can get simpler. You just eliminate them. > > Baa. It is implicit one wants to simplify without affecting > the functionality! Yeah, so what functionality are you worried to lose? >> (IMHO this was >> one major factor that led to UNIX development) -- the file >> paradigm. One can access all kinds of different devices, from network >> sockets to serial ports, throught memory itself by the means of this >> API. A similar API is required to LispOS. > Chris> Why? > > Because simplicity (or cleaniness) of an API is usually an > under-rated factor for broad acceptance. So why not simplify the UNIX way, instead of wanting a "similar API in LispOS"? > Even if a certain API is the > best in some technical sense, if it is not simple, if people cannot > easly grasp how it works, it becomes useless as far as broad use is > concerned? Imagine for instance the Xlib API. It's fast, is flexible, > but nobody uses, because everybody prefers a Motif-like API where you > have widget pointers and callbacks --> simplicity! Xlib is actually quite simple. It's just that you've got to do lots and lots of stuff, just to get say a button up on the screen. > Ok, I probably didn't explain myself good enought. This idea > came up while I was thinking about whether to use (format)-like > semantics or a printf()-like one. Then I had an idea: why not a much > more complete and powerful semantics, for instance based on LaTeX > syntax, eg "\int[5]". It's much more readable than "%5d", don't you > think? Hmm. The whole concept of formatting strings seem a bit flawed to me. \int[5] is the invention of a sub-language that is not Lisp/Scheme. That is what I thought we are trying to avoid. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Wed, 25 Mar 1998 17:48:15 +0000 Date: Wed, 25 Mar 1998 17:48:15 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Rodrigo Ventura wrote: > Going to the point: if you eliminate the UNIX API, what is > left? You ask what functionality am I worried to lose? Simply the > possibility to access any UNIX device by the means of the syscalls > API. I guess the point is, why are you so concerned about accessing UNIX devices? > Yeah! That would be great! I assumed it was difficult. Do you > see a way of doing that without jeopardizing all UNIX flexibility and > functionality? Let's hear it. Well it's really the persistent object store thing again. The only thing you need is (commit), and some people reckon you might not even need that. > I concede that Xlib can be simple after reading tons and tons > of docs. And after several months without thinking about Xlib, is it > possible to get back to it easly? Although I confess my ignorance on > Xlib internals. If your aim is to draw a line or a circle on the screen, then it is simple. But is a low level abstraction. Quite a good one really, but a low level one nevertheless. > Good point. To make the formating string, not a string but a > list, is a neat idea! I like it! It can be some sort of sub-language, > but based on lists. And it could be easly expanded. Nice idea. Really > like it! Somebody also invented a list regexp language for Scheme. Can't remember if it was implemented or not. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From mikemac@mikemac.com Wed, 25 Mar 1998 09:54:16 -0800 Date: Wed, 25 Mar 1998 09:54:16 -0800 From: Mike McDonald mikemac@mikemac.com Subject: Why LispOS? >From: "J. Han" >Subject: Re: Why LispOS? >To: mikemac@teleport.com (Mike McDonald) >Date: Tue, 24 Mar 1998 19:29:13 -0800 (PST) > >To Old Timers: > >I have been meaning to ask this question and present discussion >seems to be a good place to ask it: > > What is it like using a Lisp Machine? Nirvana! :-) >[If you can post a ftpable mpeg showing a short presentation of Genera, >that would be great. I guess the presentation script should be >tight and concise to keep the length and mpeg size manageble. >Hmm, I wonder how big is a 10 minuite mpeg (800x600)? >Even more I am willing to fork over small sum of money for a videotape >demonstration...] Hmm. I used to have a copy of the Symbolics video. It was on 1/2 inch tape (from the days before BCRs). I'll have to look around and see if I can still find it. (I used to know what box it was in last fall before I moved to Oregon. Now, there's no telling!) Mike McDonald mikemac@mikemac.com From vogt@computer.org Wed, 25 Mar 1998 11:58:04 -0600 Date: Wed, 25 Mar 1998 11:58:04 -0600 From: Christopher J. Vogt vogt@computer.org Subject: Why LispOS? At 10:38 AM -0600 3/25/98, Rodrigo Ventura wrote: >>>>>> "Christopher" == "Christopher J Vogt" writes: > > > Christopher> A side affect of all this is that you virtually never >have a crash. No > Christopher> system freeze, no blue screen of death, no core dump. >Most people ran > Christopher> their Lispm until it ran out of virtual memory space, >which in my case was > Christopher> between once a week and once a month. With todays >gigabyte disks, I could > Christopher> run for months without booting. > > Hum, is that really needed? You can run UNIX for years without >a reboot. I assume our LispOS will have that for granted, and event >not require reboot, but just a (gc). I consider most of my use of UNIX as a nightmare, and as such I have attempted to not remember much of what happened then. However, I do remember booting quite requently, and further I remember lots of programs dumping core. I also remember a time at Symbolics when we were getting complaints about how long it took to boot up a machine, and somebody wrote, tongue in cheek, that the Sun they were using booted much faster than the Symbolics, and it was a good thing too, because he was rebooting multiple times a day. > > Christopher> Ever use a program and wonder how they coded it? On a >lispm you could just > Christopher> "break" the program and poke around. If it was system >software, the > Christopher> sources were included and you could m-. (edit definition) >from the debugger > Christopher> and be in the editor looking at the source code. > > Christopher> The System Constrcution Tool (SCT) was like defsystem on >steroids. I still > Christopher> miss the patching facility. m-x Add Patch and friends >(Add Changed > Christopher> Definitions etc.). > > That's a great feature. Can it be said that it reaches the >level of changing code on-the-fly, or even build a program while >running/debuging it. It could speed-up enormously development speed. Every morning when I came to work I did a (load-patches) and all the patches that had been made to all the programs I was running since I last did a (load-patches) were loaded. This included OS patches, editor patches, etc. I think most Common Lisp environments today support "changing code on-the-fly". Christopher (Chris) J. Vogt mailto:vogt@computer.org Omaha, NE http://members.home.com/vogt/ From mikemac@teleport.com Wed, 25 Mar 1998 10:33:37 -0800 (PST) Date: Wed, 25 Mar 1998 10:33:37 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Why LispOS? >Date: Wed, 25 Mar 1998 17:38:02 +0100 (GMT+0100) >From: Rodrigo Ventura >To: LispOS Mailling List >Subject: Re: Why LispOS? > Hum, is that really needed? You can run UNIX for years without >a reboot. I assume our LispOS will have that for granted, and event >not require reboot, but just a (gc). Only Unix system I've ever seen that could do that was one that was idle. (Although my old Sun 3/60 running SunOS4.3.1 came pretty close. Primarily because Sun stopped "fixing" the OS!) As for doing a gc on a lispm, NO, NEVER! It was faster to reboot the machine every couple of months than do a full gc. The only time one would do a full gc was right before dumping a world load. Now, if you make everything persistant, then I guess you'd have to do a full gc to clean things up as much as possible. I'd hate to see how long that'd take on a machine with a couple gig of memory. > > That's a great feature. Can it be said that it reaches the >level of changing code on-the-fly, or even build a program while >running/debuging it. It could speed-up enormously development speed. > > Regards, The patch system was for saving your changes away so they could be shared with others. (Or in case you wanted to reboot for some reason.) Modification of running programs was often done on the fly, including the "OS". Mike McDonald mikemac@mikemac.com From yoda@isr.ist.utl.pt Wed, 25 Mar 1998 19:47:13 +0100 (GMT+0100) Date: Wed, 25 Mar 1998 19:47:13 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Chris" == Chris Bitmead writes: Chris> Rodrigo Ventura wrote: >> Going to the point: if you eliminate the UNIX API, what is >> left? You ask what functionality am I worried to lose? Simply the >> possibility to access any UNIX device by the means of the syscalls >> API. Chris> I guess the point is, why are you so concerned about accessing Chris> UNIX devices? That is the same to ask "why do you want to access the filesystem" or "why do you want to allocate memory" or "why do you want to know the exact position of the mouse" or "why do you want to print a file to a printer" or "why do you want to display graphics" and so on and so on. In few words: it's the very reason of existence of computers -- to access the exterior. One cannot compute in a vacuum! >> I concede that Xlib can be simple after reading tons and tons >> of docs. And after several months without thinking about Xlib, is it >> possible to get back to it easly? Although I confess my ignorance on >> Xlib internals. Chris> If your aim is to draw a line or a circle on the screen, then it Chris> is simple. But is a low level abstraction. Quite a good one Chris> really, but a low level one nevertheless. Oh, no doubt about that. I love X design. It's really well designed. Although it seems very complex to me. I guess that it is inevitable at that point. The level of competence is too high -- Xserver on one machine and the client in another one. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From tf@another.gun.de Wed, 25 Mar 1998 20:42:19 +0100 Date: Wed, 25 Mar 1998 20:42:19 +0100 From: Thomas Fischbacher tf@another.gun.de Subject: Sorry to say that... Sorry, guys, but there is one point I think that should be mentioned. You know the story about the Golgafrincham-B people's attempts to invent fire? Isn't that just what's going on here? -- regards, Thomas Fischbacher tf@another.gun.de From cmh@greendragon.com Wed, 25 Mar 1998 14:27:59 -0600 Date: Wed, 25 Mar 1998 14:27:59 -0600 From: Chris Hanson cmh@greendragon.com Subject: Why LispOS? With all this talk about persistent object stores and all that, I have to say that I'd rather see a regular filesystem first. The less research and more replication of earlier work... From kragen@pobox.com Wed, 25 Mar 1998 17:44:24 -0500 (EST) Date: Wed, 25 Mar 1998 17:44:24 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, Christopher J. Vogt wrote: > I consider most of my use of UNIX as a nightmare, and as such I have attempted > to not remember much of what happened then. However, I do remember booting > quite requently, and further I remember lots of programs dumping core. Unix has improved somewhat. Most Unix machines will happily run for a week or two without rebooting; Linux machines will happily run for a year or two without rebooting. RPG was right -- we will have a decent operating system, but unfortunately it will be Unix :) Kragen From kragen@pobox.com Wed, 25 Mar 1998 18:02:13 -0500 (EST) Date: Wed, 25 Mar 1998 18:02:13 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, Mike McDonald wrote: > As for doing a gc on a lispm, NO, NEVER! It was faster to reboot the > machine every couple of months than do a full gc. The only time one > would do a full gc was right before dumping a world load. Now, if you > make everything persistant, then I guess you'd have to do a full gc to > clean things up as much as possible. I'd hate to see how long that'd > take on a machine with a couple gig of memory. Incremental GC, especially if it were running during idle time (and not just at cons time), would eliminate this problem. Unless you happened to almost fill up your disk -- which could be a bad thing. Kragen From chrisb@Ans.Com.Au Wed, 25 Mar 1998 23:07:28 +0000 Date: Wed, 25 Mar 1998 23:07:28 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? >Now, if you >make everything persistant, then I guess you'd have to do a full gc to >clean things up as much as possible. I'd hate to see how long that'd >take on a machine with a couple gig of memory. There are already commercial databases (and have been for a long long time come to that) that do gc over a very large data set, and work just fine. (Gemstone is an example). From chrisb@Ans.Com.Au Wed, 25 Mar 1998 23:14:24 +0000 Date: Wed, 25 Mar 1998 23:14:24 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Rodrigo Ventura wrote: > Chris> I guess the point is, why are you so concerned about accessing > Chris> UNIX devices? > > That is the same to ask "why do you want to access the > filesystem" or "why do you want to allocate memory" or "why do you > want to know the exact position of the mouse" or "why do you want to > print a file to a printer" or "why do you want to display graphics" > and so on and so on. In few words: it's the very reason of existence > of computers -- to access the exterior. One cannot compute in a vacuum! I consider accessing UNIX character based files and devices as the moral equivilent of you programming in Xlib compared to Motif. Yeah, it does the job, but it is a very very low level API to have to muck around using, it's slow,complicated and prone to errors to have to code. To continue the Xlib/Motif analogy, to write something in Xlib takes millions of lines of code that would take 100 lines with Motif. > > >> I concede that Xlib can be simple after reading tons and tons > >> of docs. And after several months without thinking about Xlib, is it > >> possible to get back to it easly? Although I confess my ignorance on > >> Xlib internals. > > Chris> If your aim is to draw a line or a circle on the screen, then it > Chris> is simple. But is a low level abstraction. Quite a good one > Chris> really, but a low level one nevertheless. > > Oh, no doubt about that. I love X design. It's really well > designed. Although it seems very complex to me. I guess that it is > inevitable at that point. The level of competence is too high -- > Xserver on one machine and the client in another one. > > Regards, -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From joswig@lavielle.com Thu, 26 Mar 1998 00:20:34 +0100 Date: Thu, 26 Mar 1998 00:20:34 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Why LispOS? At 17:44 25.03.98 -0500, Kragen wrote: >On Wed, 25 Mar 1998, Christopher J. Vogt wrote: >> I consider most of my use of UNIX as a nightmare, and as such I have attempted >> to not remember much of what happened then. However, I do remember booting >> quite requently, and further I remember lots of programs dumping core. > >Unix has improved somewhat. Most Unix machines will happily run for a >week or two without rebooting; Linux machines will happily run for a >year or two without rebooting. Camille is my personal MacIvory development machine: Symbolics System, FEP0:>cl-http-world.ilod.1 MacIvory model 3 Processor, 7.9M words Physical memory, 63.5M words Swapping space. Genera 8.3 Lavielle CAMILLE Type c-_ H for Help. Type Set Remote Terminal Options to set the terminal type. Warning: CAMILLE is a server machine. Please exercise caution. Command: (neti:uptime) Host Name Time up CAMILLE 15 weeks 2 days 10 hours 3 minutes 30 seconds DF 2 weeks 1 day 12 hours 41 minutes 55 seconds TLE 5 weeks 1 day 11 hours 16 minutes 46 seconds --- The host machine ( a Mac ) has been rebooted atleast 10 times in between. The Lisp Machine card will stay up. You just reconnect the Genera Macintosh application after you booted the Mac to the still running MacIvory. From joswig@lavielle.com Thu, 26 Mar 1998 00:23:38 +0100 Date: Thu, 26 Mar 1998 00:23:38 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Why LispOS? At 18:02 25.03.98 -0500, Kragen wrote: >On Wed, 25 Mar 1998, Mike McDonald wrote: >> As for doing a gc on a lispm, NO, NEVER! It was faster to reboot the >> machine every couple of months than do a full gc. The only time one >> would do a full gc was right before dumping a world load. Now, if you >> make everything persistant, then I guess you'd have to do a full gc to >> clean things up as much as possible. I'd hate to see how long that'd >> take on a machine with a couple gig of memory. > >Incremental GC, especially if it were running during idle time (and not >just at cons time), would eliminate this problem. Unless you happened >to almost fill up your disk -- which could be a bad thing. Ephemeral GC does a fine job on the Symbolics. If you need you can schedule an GC in the night. Performance would greatly increase with more RAM. Hitting the disk is always expensive. From kragen@pobox.com Wed, 25 Mar 1998 18:32:37 -0500 (EST) Date: Wed, 25 Mar 1998 18:32:37 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, Damond Walker wrote: > Hehehehe, that's pretty funny...a year or two without rebooting. > Where have you had that happen? The only system that runs a year or two > without *some* kind of reboot is a system that isn't used. I haven't had it happen myself, but I understand that there have been Linux problems with the `jiffies' counter, which is an unsigned long (32-bit number on the x86) that starts at 0 at boot time and increments 100 times a second, overflowing. Some device drivers did not handle this well. That's 497 days (one year, four months, ten days (or so)), two hours, 27 minutes, 52 seconds. Usually, I have moved more often than that, and when one moves, one normally unplugs one's computer. My best uptimes are in the range of months, not years. > Don't want to start a war or anything as I use Linux daily. It could be that your drivers or your hardware are not as stable as some people's. > Just don't like to see > unsubstantiated claims like that (hell, I have to deal with AS/400 bigots > all day long with their 99.9% uptime claims). :) Kragen From kragen@pobox.com Wed, 25 Mar 1998 18:41:48 -0500 (EST) Date: Wed, 25 Mar 1998 18:41:48 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, Chris Bitmead wrote: > Rodrigo Ventura wrote: > > Chris> I guess the point is, why are you so concerned about accessing > > Chris> UNIX devices? > > I consider accessing UNIX character based files and devices as > the moral equivilent of you programming in Xlib compared to > Motif. Yeah, it does the job, but it is a very very low level API > to have to muck around using, it's slow,complicated and prone to > errors to have to code. To continue the Xlib/Motif analogy, to > write something in Xlib takes millions of lines of code that > would take 100 lines with Motif. Well, providing a high-level interface is fine. Until Linux comes out with a new sound driver, which happens to have a new ioctl I need to use to activate a niftysupercool feature of my new sound card, but unfortunately that ioctl is not supported in your Lisp interface. I should point out that many Motif programs contain Xlib calls. We need low-level access. You can build high-level tools on a low-level substrate, but you cannot effectively do the reverse. Kragen From moribund@netgsi.com Wed, 25 Mar 1998 19:03:28 -0500 (EST) Date: Wed, 25 Mar 1998 19:03:28 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: Why LispOS? On Wed, 25 Mar 1998, Kragen wrote: > Unix has improved somewhat. Most Unix machines will happily run for a > week or two without rebooting; Linux machines will happily run for a > year or two without rebooting. > Hehehehe, that's pretty funny...a year or two without rebooting. Where have you had that happen? The only system that runs a year or two without *some* kind of reboot is a system that isn't used. Don't want to start a war or anything as I use Linux daily. Just don't like to see unsubstantiated claims like that (hell, I have to deal with AS/400 bigots all day long with their 99.9% uptime claims). > RPG was right -- we will have a decent operating system, but > unfortunately it will be Unix :) > ...and if we do it right, users won't even know Unix lay underneath. Damond From zhivago@iglou.com Wed, 25 Mar 1998 19:13:54 -0500 (EST) Date: Wed, 25 Mar 1998 19:13:54 -0500 (EST) From: BRIAN SPILSBURY zhivago@iglou.com Subject: Why LispOS? Kragen: > Well, providing a high-level interface is fine. Until Linux comes out > with a new sound driver, which happens to have a new ioctl I need to > use to activate a niftysupercool feature of my new sound card, but > unfortunately that ioctl is not supported in your Lisp interface. > > I should point out that many Motif programs contain Xlib calls. > > We need low-level access. You can build high-level tools on a > low-level substrate, but you cannot effectively do the reverse. I agree entirely, which is what allows you to write a cd-player in cmucl for example without resorting to C. Supplying interfaces to the low level posix system given that you are running over such a system really is not optional unless you want to re-implement everything all the time. The main irritation with ioctl() etc is that you need to package your data up in Cish formats. cmucl's alien support provides this nicely, and shouldn't be too hard to re-implement in other systems. Brian From mathison@sara.cpb.org Wed, 25 Mar 1998 19:19:05 -0500 (EST) Date: Wed, 25 Mar 1998 19:19:05 -0500 (EST) From: Neil T. Mathison mathison@sara.cpb.org Subject: Why LispOS? On Wed, 25 Mar 1998, Damond Walker wrote: > ...a year or two without rebooting. > Where have you had that happen? The only system that runs a year or two > without *some* kind of reboot is a system that isn't used. Here are some real stats from for some of the systems we have in my company. (Note: The desktop platforms are rebooted often by the users as a general approach to fixing a problem. With proper administration of these platforms, more uptime could be squeezed out of them I'm sure.) system OS uptime last reboot for -------------- ---------------------- --------- --------------- DEC3000/300 Digital Unix 4.0B 341 days OS upgrade - Functions as intranet server (apache), mail (pop and imap), primary DNS, primary ftp site, dhcp and samba SGI ChallengeS Irix 6.2 262 days kernel rebuild - Functions as internet web server (apache), listproc, sql DBMS for web, secondary DNS, some employee user accounts Digital 486/66 FreeBSD 2.2.1 127 days hardware upgrade - Functions as router/gateway to internal private subnet. Does ip filtering, network address translation. SGI Indy Irix 6.2 26 days swap out bad drive - Development system (photoshop, web development tools) DEC Alpha 2000 Win NT 3.51 46 days blue screened - File services, print spooling, finance dbms Digital VAX Open VMS 6.1 201 days network rewiring - runs some legacy applications Macintoshes MacOS 7.6/8.1 often performed by user WinTel Win 95 often performed by user Of course the servers do need a steady dose of massaging - eyeing the logs daily, tweeking processes, monitoring swap space, etc. Unix ain't that bad. Regards, Neil Mathison Unix Systems Administrator Corporation for Public Broadcasting From mikemac@teleport.com Wed, 25 Mar 1998 16:20:39 -0800 (PST) Date: Wed, 25 Mar 1998 16:20:39 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Why LispOS? >From kragen@dnaco.net Wed Mar 25 15:03:05 1998 >Date: Wed, 25 Mar 1998 18:02:13 -0500 (EST) >To: Mike McDonald >cc: lispos@math.gatech.edu, yoda@isr.ist.utl.pt >Subject: Re: Why LispOS? >MIME-Version: 1.0 >From: kragen@pobox.com (Kragen) > >On Wed, 25 Mar 1998, Mike McDonald wrote: >> As for doing a gc on a lispm, NO, NEVER! It was faster to reboot the >> machine every couple of months than do a full gc. The only time one >> would do a full gc was right before dumping a world load. Now, if you >> make everything persistant, then I guess you'd have to do a full gc to >> clean things up as much as possible. I'd hate to see how long that'd >> take on a machine with a couple gig of memory. > >Incremental GC, especially if it were running during idle time (and not >just at cons time), would eliminate this problem. Unless you happened >to almost fill up your disk -- which could be a bad thing. > >Kragen > I guess I wasn't clear. On a LispM, you ran the ephemeral and incremently gcs but never the full gc. The first two took care of most garabage and when you needed a full gc, you just rebooted. Mike McDonald mikemac@mikemac.com h From chrisb@Ans.Com.Au Thu, 26 Mar 1998 00:33:14 +0000 Date: Thu, 26 Mar 1998 00:33:14 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Neil T. Mathison wrote: > Here are some real stats from for some of the systems Let's face it. Any OS or program will stay up forever as long as there are no bugs. UNIX kernels are mature enough that they have few bugs. On the other hand, C and C++ are incubators for bugs and seg faults. One would hope that Lisp programs would tend to be more stable. From kragen@pobox.com Wed, 25 Mar 1998 20:59:51 -0500 (EST) Date: Wed, 25 Mar 1998 20:59:51 -0500 (EST) From: Kragen kragen@pobox.com Subject: Let's begin SchemeOS On Wed, 25 Mar 1998, Rodrigo Ventura wrote: > Difficult for third reasons: first, the people that enter with > the money may not want to make it public, second, those old lisp os' > where made too many time ago, and many new fresh ideas were developed > meanwhile, I doubt it. > and third, even if we buy it, is it legal to simply make > it 100% public? If the copyrights were bought by person X, person X would have the legal right to dedicate it to the public domain, or to license anyone to use it under, say, the GPL. Kragen From kragen@pobox.com Wed, 25 Mar 1998 21:03:24 -0500 (EST) Date: Wed, 25 Mar 1998 21:03:24 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, David Tillman wrote: > Also, I would like to do something like: (shutdown) and have > everything frozen as it is. The next time I start the OS I want > all of the windows, files, processes, etc. to be just like I left > them. A persistent store that included the OS's data structures would make this possible. > I realize that there is some complexity to doing this with a multiuser > OS. It may be that only local sessions would have their state saved > and remote sessions would have their's destroyed. Not difficult. You need only have a `broker' object that maintains state across disconnections, provides an illusion of continuous connection to your applications, and lets you connect and disconnect to it when you like. Such a thing for Unix is called `dislocate' (there are two others, `screen' and `pty') and is 340 lines long, written in Expect. If it were running on a machine with a persistent virtual memory, it would maintain state across reboots as easily as across telephone hangups. KeyKOS apparently worked this way. Kragen From kragen@pobox.com Wed, 25 Mar 1998 21:08:04 -0500 (EST) Date: Wed, 25 Mar 1998 21:08:04 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Wed, 25 Mar 1998, Rodrigo Ventura wrote: > Chris> No text console? Isn't that one of the fascinations of Lisp, to > Chris> be able to type at a text console? > > You mean a LISP listener. I think that a LISp listener can be > more than a bi-directional stream of ASCII chars. For instance, > something like curses of termcap are required to make "special > effects" with this stream of ASCII chars, using escape sequences and > such hacks. Why not re-engineer the shell? The shell is such a > powerful tool, why not improving it instead of throwing it away and > use some mac-like desktop? (very neat, but not as powerful). http://gentle.dyn.ml.org/~kragen/cli-gui/ Kragen From davies@pobox.com Wed, 25 Mar 1998 19:51:10 -0700 Date: Wed, 25 Mar 1998 19:51:10 -0700 From: Byron Davies davies@pobox.com Subject: Why, Indeed? Let's go a little deeper into the "Why LispOS?" question. As happened a year ago, the technical discussion about LispOS is not leading anywhere in particular. I think the Common Lisp/Scheme split is a little nastier this time around, but otherwise it's the same-old, same-old. There seems no more hope of reconciliation this year than last, so the best thing to do is to create a second list, SchemeOS, and separate the two sides. Kent Pitman, a key contributor to the parenthesized world, says he ignores all mail addressed to both comp.lang.lisp and comp.lang.scheme. Surely, he ignores this list too. At least with separate lists, each crowd can concentrate on technical issues, and perhaps generate more light than neat. Unfortunately, I don't think that separation will move us any closer to a new OS. Some will ask, if Linux can evolve into a serious Unix, then why can't LispOS (or SchemeOS) happen? First, no driving need. The driving need behind Linux was for a low-cost Unix -- Unix has become the standard OS for non-trivial software development, but the marketing strategies of Sun, HP, IBM, etc. didn't allow for a sub-$100 Unix. Second, no driving force. The driving force behind Linux was the determination of first Richard Stallman and then Linus Torvald to provide free competition for the proprietary Unix vendors. Third, demographics. There just aren't enough Lisp afficianados with time on their hands to make significant progress. Counterexamples, of course, may be found in the CMUCL and RScheme efforts, but their rates of progress aren't sufficient to overtake PERL much less C++ or Java. Furthermore, unless coopted to one of the LispOS/SchemeOS efforts, those groups simply serve to divide up the limited resources. How did the original LispOS, the MIT Lisp Machine system, arise? The driving need for the MIT LispM was for a larger address space for Lisp-based AI applications that were rapidly outgrowing the PDP-10's 18 bits of addressing. The driving forces behind the MIT LispM were a team of programmers with vision and extraordinary ability, and the financial resources of DARPA. The DARPA support began with the direct support of LispM development, and continued for nearly a decade by providing AI companies and AI labs within other companies with the money to buy commercial LispMs. What could drive a LispOS? Although I'm a Lisp believer -- and a 25-year Lisp user, including a heady decade with LispMs -- I don't expect to see an outcry for a Lisp-based OS, or even a freeware Lisp environment. Lisp has about as much chance in the programming language world as the Mac has in the desktop computer world, for much the same reasons: (1) it has an extreme market share disadvantage, and (2) it hasn't kept up with external advances in software technology. Lisp still has advantages over other programming languages, but they don't make up for the disadvantages -- for most people. There will always be Lisp users (and Mac users) but most of the world won't care. Something could still happen, however. For example, the leading vendor of enterprise management systems is SAP, about 25% as big as Microsoft in revenue. In order to develop their industry-leading product, R/3, they developed a CUSTOM 4GL which is only used within SAP, by about 2000 programmers. This custom programming language is one of the reasons they were able to progress so rapidly to market leadership. Some had hopes, with CL-HTTP, that Lisp would play a similar role for web-servers, but it didn't happen. For lack of marketing by MIT, no commercial entity was willing to make the investment necessary to convert CL-HTTP into a whole product. Where is the killer app that could make Lisp a winner again? Rather than aimlessly waving the technology wand, the Lisp community needs to search for markets that will sustain the ongoing effort needed to bring Lisp up to where it needs to be and keep it there. Byron From davies@pobox.com Wed, 25 Mar 1998 20:18:23 -0700 Date: Wed, 25 Mar 1998 20:18:23 -0700 From: Byron Davies davies@pobox.com Subject: Genera and GPL >... >If the copyrights were bought by person X, person X would have the >legal right to dedicate it to the public domain, or to license anyone >to use it under, say, the GPL. > >Kragen With respect to LispM software, there are several entities involved (even with LMI out of the picture). Symbolics, now bankrupt again, was until recently the only company "actively" marketing Lisp machine hardware or software. Their main creditor is a bank (ABN AMRO); their main asset is the Lisp software. Someone, purportedly a group led by an Andrew Topping, was/is interested in purchasing that software, presumably with intentions of commercializing it. A LispOS-based offer would need to beat the Topping offer or purchase the software from Topping. If someone did manage to purchase the Symbolics software, there would be two conceivable barriers to putting the software under GPL or into the public domain: MIT, since the core of the software is MIT's intellectual property, and TI, who might argue that the exclusivity of their original license with MIT would prevent such a broad relicensing. Frankly, I think MIT would actively support the GPL move, and TI (or whoever now owns the TI license) would be unlikely to oppose it (though their IP lawyers would have to approve the deal). Another possibility would be to convince TI (or whoever) to put the Explorer software under GPL. There are some who sneer at TI's Lisp software versus Genera, but there were many others -- particularly west of the Mississippi -- who thought it was better. The legal fees to find out who owns it might only amount to a few hundred or a few thousand dollars. I'd be willing to put up 10 bucks. How about you? Byron From cosc19z5@bayou.uh.edu Wed, 25 Mar 1998 22:04:54 -0600 (CST) Date: Wed, 25 Mar 1998 22:04:54 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? > > Unix has improved somewhat. Most Unix machines will happily run for a > > week or two without rebooting; Linux machines will happily run for a > > year or two without rebooting. > > I don't know what Unix machines you are using, but at work I use SunOS and SGI machines, and they require frequent rebooting, more rebooting than DOS or Win95 ever required. As a matter of fact, I will go as far as to say that the most unreliable systems I have had the misfortune of using were Unix systems. Ever see a system forget its own terminal emulation in the MIDDLE of a session? Only in Unix (SunOS in particular, a particularly nasty strain of the Unix virus). Ever see a double right mouse click consistently take an O/S down to its knees? Only in Unix (SunOS, SGI Irix 6.2 (Indigo^2)). Contrary to popular belief, Unix is NOT reliable. It is flaky and badly designed. It may be ok for batch operations, but when it comes to user interface, it is completly worthless. > > Hehehehe, that's pretty funny...a year or two without rebooting. Actually, that's very plausible... if the system was turned off. > Where have you had that happen? The only system that runs a year or two > without *some* kind of reboot is a system that isn't used. Don't want to > start a war or anything as I use Linux daily. Just don't like to see > unsubstantiated claims like that (hell, I have to deal with AS/400 bigots > all day long with their 99.9% uptime claims). > Well I have a considerably lower view of Unix than you do, but then I have a low view of just about every O/S I've used. As far as I'm concerned, all O/S'es stink. LispOS is the chance to design a decent O/S for a change. > > RPG was right -- we will have a decent operating system, but > > unfortunately it will be Unix :) > > > > ...and if we do it right, users won't even know Unix lay > underneath. Unless they double click the right mouse button :). > > Damond > Regards, Ahmed From chrisb@Ans.Com.Au Thu, 26 Mar 1998 05:46:05 +0000 Date: Thu, 26 Mar 1998 05:46:05 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why, Indeed? Byron Davies wrote: > There seems no > more hope of reconciliation this year than last, so the best thing to do is > to create a second list, SchemeOS, and separate the two sides. I suspect that reconcilliation is not the real issue. While I feel strongly about Scheme, I'd quite happily use lisp if there was anything to work with. Since there is not I promote Scheme. Separating is very premature I would think. > Kent > Pitman, a key contributor to the parenthesized world, says he ignores all > mail addressed to both comp.lang.lisp and comp.lang.scheme. Surely, he > ignores this list too. At least with separate lists, each crowd can > concentrate on technical issues, and perhaps generate more light than neat. I think it's more just plain work that needs to be done. Neither the light nor the heat actually do much, but they keep us entertained in the mean time :-) > Second, no driving force. The driving force behind Linux was the > determination of first Richard Stallman and then Linus Torvald to provide > free competition for the proprietary Unix vendors. Well that's true. I think what this list may lack is some single nerds with little to do. Am I right in saying we are all married? > Third, demographics. There just aren't enough Lisp afficianados with time > on their hands to make significant progress. Counterexamples, of course, > may be found in the CMUCL and RScheme efforts, but their rates of progress > aren't sufficient to overtake PERL much less C++ or Java. We don't need to worry about perl, C++ and Java. They can work on these languages for the next 100 years, and they still won't hold a torch to Lisp. Just look at the features of RScheme. Now show me an implementation of perl, c++ or java with all these features. There isn't one. It's seems to me the effort required to build a half decent LispOS or SchemeOS is miniscule compared to the effort that went into even one of the early versions of Linux. The only (not inconsiderable) thing going for Linux is the existing base of UNIX code. If we're smart and careful we could try to leverage as much of that code as possible without compromising the integrity of the LispOS idea. > What could drive a LispOS? Although I'm a Lisp believer -- and a 25-year > Lisp user, including a heady decade with LispMs -- I don't expect to see > an outcry for a Lisp-based OS, or even a freeware Lisp environment. Lisp > has about as much chance in the programming language world as the Mac has > in the desktop computer world, for much the same reasons: (1) it has an > extreme market share disadvantage, and (2) it hasn't kept up with external > advances in software technology. Lisp still has advantages over other > programming languages, but they don't make up for the disadvantages -- for > most people. What are those disadvantages? The only one I know of is people that don't like (s and )s. Lisp has no technological disadvantage like the Mac eventually had, nor does it have a market share disadvantage for the same reason as Mac did. I notice that almost all the programmers I have come across in the last 5 years have got Linux loaded on their PC. I don't know how many use it regularly, but it goes to show that programmers will try an OS despite that Linux isn't supposedly for "most people". A LispOS could become huge, especially I think if it allows you to continue to run apps from other OSes. But clearly it won't become huge until it exists. Yeah sure Symbolics existed at one time, but so did AT&T. But AT&T was never able to make UNIX popular. It took a free implementation that all could use from Linus. LispOS will be as popular as it is good. > Something could still happen, however. For example, the leading vendor of > enterprise management systems is SAP, about 25% as big as Microsoft in > revenue. In order to develop their industry-leading product, R/3, they > developed a CUSTOM 4GL which is only used within SAP, by about 2000 > programmers. This custom programming language is one of the reasons they > were able to progress so rapidly to market leadership. There are other examples. I think it is Ericsson (or maybe not. Some telco anyway) developed a pure functional language called E____ (can't remember), which they are doing all their development work in now. > Where is the killer app that could make Lisp a winner again? Rather than > aimlessly waving the technology wand, the Lisp community needs to search > for markets that will sustain the ongoing effort needed to bring Lisp up to > where it needs to be and keep it there. Maybe, but until we have the full blown "technology wand" built, the existance of a potential killer app won't matter. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From bertil@ioc.net Wed, 25 Mar 1998 22:24:50 -0800 Date: Wed, 25 Mar 1998 22:24:50 -0800 From: Bertil Askelid bertil@ioc.net Subject: Why, Indeed? Chris Bitmead wrote: <> There are other examples. I think it is Ericsson (or maybe not. <> Some telco anyway) developed a pure functional language called <> E____ (can't remember), which they are doing all their <> development work in now. Yes, it is Ericsson. Erlang is the language: http://www.ericsson.se/cslab/erlang/ From simon@limmat.switch.ch 26 Mar 1998 12:44:41 +0100 Date: 26 Mar 1998 12:44:41 +0100 From: Simon Leinen simon@limmat.switch.ch Subject: What it's like using a Lisp Machine [Re: Why LispOS?] At the lab where I worked we had a few Symbolics Lisp Machines and a few Unix workstations running Allegro. I always used the Unix boxes for "productive" work, probably because I never learned to use the LM's right. However, the Lisp machines were absolutely great for system programming, in particular experimenting with the networking code. For example, the system comes with complete source of its TCP/IP stack. If you want to add a feature (let's say Selective ACKnowledgement handling in TCP), you can usually do so by defining a new subclass (-flavor) of an existing system class, or by redefining a few functions/methods. The new behavior is activated as soon as you type the closing parenthesis (you don't have to type Enter :-). This is where I really saw the benefits of a radically shortened debugging cycle. Under other OSes, even if you have some kind of dynamic loading that makes it unnecessary to rebuild a kernel every time, it is usually impossible to modify the behavior of the *running* system. Of course you can shoot yourself in the foot when you do this on the LM, but the relatively well-defined semantics of class, method and function redefinition make those things feasible in many cases. For strict user-level programming, I found that a system such as Allegro Common Lisp suits me fine. It has good Emacs integration and an excellent debugger which supports "fix-and-continue" quite well (something which e.g. CMU CL isn't as good at). -- Simon. From kragen@pobox.com Thu, 26 Mar 1998 11:10:27 -0500 (EST) Date: Thu, 26 Mar 1998 11:10:27 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why, Indeed? > There are other examples. I think it is Ericsson (or maybe not. > Some telco anyway) developed a pure functional language called > E____ (can't remember), which they are doing all their > development work in now. Erlang. Yes, it's Ericsson. It's almost pure-functional; I/O is not functional in Erlang. Kragen From wlewis@mailbag.com Thu, 26 Mar 1998 10:52:19 -0600 Date: Thu, 26 Mar 1998 10:52:19 -0600 From: William A. Barnett-Lewis wlewis@mailbag.com Subject: Genera and GPL Fare, I am currently communicating with several folks at MIT in order to gain the release of the LispM sources. If you would care to, you might try sending email to the director of the AI Lab, Rod Brooks, at mailto://brooks@ai.mit.edu Thanks for any help you can give. William Barnett-Lewis wlewis@mailbag.com Fare Rideau wrote: > > [About paying to make LispM software public] > > > The legal fees to find out > > who owns it might only amount to a few hundred or a few thousand dollars. > > I'd be willing to put up 10 bucks. How about you? > > I'm ready to pay from a few bucks to a few thousand bucks, > depending on what I get back. I won't send any money to anyone > I can't trust, and as I'm in France, there are little ways I > can get to trust any lawyer in the States. > > What about contacting FSF professionals, or people from another > well-known free software organization, big enough to have lawyers? > Such people I could trust, and send them a one hundreds bucks "to see" > and one thousand "to buy"... > > ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## > ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## > ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## > "I'm going to live forever, or die trying!" -- Spider Robinson -- _______________________________________________ Live without fear; your Creator loves you as a mother. Go in peace to follow the good road and may God's blessing be with you always. St. Claire _______________________________________________ From kragen@pobox.com Thu, 26 Mar 1998 12:00:07 -0500 (EST) Date: Thu, 26 Mar 1998 12:00:07 -0500 (EST) From: Kragen kragen@pobox.com Subject: Why LispOS? On Tue, 24 Mar 1998, Mark J. Dulcey wrote: > fully integrated with the environment. Since the system also had > a full bitmapped display, and the editor understood multiple > typefaces, you could do a few tricks that Emacs can't on most > platforms, including my favorite - Electric Font Lock Mode. (It > automatically changed Lisp comments to a different typeface when > you typed in your code.) electric-*-mode and font-lock-mode are part of GNU Emacs and XEmacs now, not surprisingly. > Third, the compiler was nicely integrated with the editor. ZMacs > understood what parts of your buffers had changed, and recompiled > only the relevant pieces of code, so test/fix/recompile cycles > were VERY fast. (And unlike most programming environments, you > really did only need to recompile the functions that changed, for > reasons I will detail later.) GNU Emacs and XEmacs are almost capable of doing this now -- in Lisp interaction mode or inferior Lisp mode, you can move your cursor to the end of a defun and hit control-J, which passes the current sexp to the appropriate Lisp interpreter. In some environments, this means that the function will be redefined. A lot of folks from LMI, Symbolics, and Lucid have contributed a lot of code to GNU Emacs and XEmacs. Kragen From rideau@ens.fr Thu, 26 Mar 1998 18:11:15 +0100 Date: Thu, 26 Mar 1998 18:11:15 +0100 From: Fare Rideau rideau@ens.fr Subject: Genera and GPL [About paying to make LispM software public] > The legal fees to find out > who owns it might only amount to a few hundred or a few thousand dollars. > I'd be willing to put up 10 bucks. How about you? I'm ready to pay from a few bucks to a few thousand bucks, depending on what I get back. I won't send any money to anyone I can't trust, and as I'm in France, there are little ways I can get to trust any lawyer in the States. What about contacting FSF professionals, or people from another well-known free software organization, big enough to have lawyers? Such people I could trust, and send them a one hundreds bucks "to see" and one thousand "to buy"... ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## "I'm going to live forever, or die trying!" -- Spider Robinson From rideau@ens.fr Thu, 26 Mar 1998 18:26:52 +0100 Date: Thu, 26 Mar 1998 18:26:52 +0100 From: Fare Rideau rideau@ens.fr Subject: Make LispM code FREE Dear GNU people, I am very interested in LispMachines, and similar technology of Operating Systems based on high-level languages. However, most LispM code seems to have disappeared from existence, because of stubborn proprietary software policies. I'd like part or all of the LispM code base to be published again, now as free software, so as to port it to common hardware, but that's no task I can do myself, since I'm an isolated student in France, and the "owners" of this software are lots of US companies, or whoever bought their assets after they went bankrupt. Would it be possible that FSF lawyers, or other pro-free-software lawyers that you could point to me, try to contact the MIT, HP (who bought the TI department that did LispM), Xerox, whoever now owns Symbolics, etc, to convince them to release their code under GPL, or some other free-software license? I myself, as well as (I think) many people on the lispos@math.gatech.edu mailing-list would be glad to participate in the expenses of the operation, as well as (depending on the amount required) in buying the rights from the current owners. Of course, this operation should be done in close contact with former lispmachine experts (which I am not, but RMS no doubt knows who to ask to help you), who can say what is worth paying for or not among what's left of LispMachines. Cheerios, ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## So you think you know how to translate french into english? Now what if the french meant something completely different than what the english understood, only neither the french, nor the english, could figure out the difference? From davies@pobox.com Thu, 26 Mar 1998 10:36:13 -0700 Date: Thu, 26 Mar 1998 10:36:13 -0700 From: Byron Davies davies@pobox.com Subject: Make LispM code FREE Fare said: > Of course, this operation should be done in close contact with >former lispmachine experts (which I am not, but RMS no doubt knows >who to ask to help you), who can say what is worth paying for or not >among what's left of LispMachines. RMS is a "former lispmachine expert". As I recall, the proprietary behavior of Symbolics toward MIT's government-funded Lisp machine technology was what drove him to set up the Free Software Foundation. RMS was a major help in making LMI and TI competitive with Symbolics. Almost single-handedly, he accomplished the rapid conversion of TI/LMI software to Common Lisp, as soon as the standard was defined. Finally, however, he got so mad at the Lisp companies that he started a free Unix effort. It would be sweet indeed if RMS could now help bring LispM software out of the darkness. Byron From rideau@ens.fr Thu, 26 Mar 1998 19:12:24 +0100 Date: Thu, 26 Mar 1998 19:12:24 +0100 From: Fare Rideau rideau@ens.fr Subject: Lisp Machine code as free software Dear M. Brooks, I'm writing to you to inquire about the status of LispMachine software owned by the MIT, and the possibility of its being published under a free software license like the MIT/X, BSD, or GNU GPL. I know M. William Barnett-Lewis already contacted you on that subject. I'm sure you understand the advantages of free software for users (quicker bug reporting and fixing, better mutual trust between users and authors, hence longer life, better reliability, and better performance, etc). Since I believe the MIT's and the AI lab's interest in LispMachine software and hardware is mostly in using them, it would really be great should you publicly release LispMachine code you have. Also, I'd be glad if you could help us convince other owners of old LispMachine code to release it, since it is also their interest to have it out, as it will increase their fame, and provide them with opportunities to sell services and know-how on the subject afterwards. Thanks a lot for your attention. Regards, ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## We have not inherited the earth from our parents, we've borrowed it from our children. From ggleason@tvi.cc.nm.us Fri, 27 Mar 1998 10:56:20 +0100 Date: Fri, 27 Mar 1998 10:56:20 +0100 From: Gavin E. Gleason ggleason@tvi.cc.nm.us Subject: CLEmacs Since I know there are a lot of "old timer's" here, I thought I'd ask a question. Was CLIM the whole windowing system protocol on genera? I seem to remember some mention of Silica or something riding underneath... What did the explorers use? What about interlisp? Or the LMI's? Maybe it would be a good idea for those of us that are interested in a GUI to join the free clim mailing list (you can find a reference to it at www.cons.org) From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 11:46:31 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 11:46:31 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Kragen" == Kragen writes: Kragen> On Wed, 25 Mar 1998, Christopher J. Vogt wrote: >> I consider most of my use of UNIX as a nightmare, and as such I have attempted >> to not remember much of what happened then. However, I do remember booting >> quite requently, and further I remember lots of programs dumping core. Kragen> Unix has improved somewhat. Most Unix machines will happily run for a Kragen> week or two without rebooting; Linux machines will happily run for a Kragen> year or two without rebooting. We have a network of oldy DEC Alphas and here are some uptime's: 11:40 up 15 days, 16:10, 1 user, load average: 0.69, 0.16, 0.08 11:44 up 9 days, 1:30, 1 user, load average: 0.09, 0.05, 0.02 11:41 up 104 days, 23:24, 1 user, load average: 0.24, 0.11, 0.06 11:41 up 8 days, 19:31, 1 user, load average: 0.34, 0.09, 0.04 11:39 up 8 days, 19:31, 2 users, load average: 0.05, 0.03, 0.01 11:40 up 22 days, 2:25, 5 users, load average: 1.02, 1.08, 1.05 11:41 up 22 days, 2:35, 12 users, load average: 2.19, 2.06, 2.14 Reboots had to be made for software update reasons only. These are extremely stable machines, even with heavy utilization. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 12:06:53 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 12:06:53 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "cosc" == "cosc19z5@bayou uh edu" writes: >> > Unix has improved somewhat. Most Unix machines will happily run for a >> > week or two without rebooting; Linux machines will happily run for a >> > year or two without rebooting. >> > cosc> I don't know what Unix machines you are using, but at work I cosc> use SunOS and SGI machines, and they require frequent rebooting, cosc> more rebooting than DOS or Win95 ever required. As a matter of cosc> fact, I will go as far as to say that the most unreliable systems cosc> I have had the misfortune of using were Unix systems. ha ha ha ha!!!!!!!! REALLY??? More rebooting than UNIX? You've got to be kidding. Unless of course, no one ever uses the Windows boxes, and you always work as root under UNIX, and have little knowledge of it. The only scenario of a Windows more reliable than UNIX is that one. Ro are you working at Microsoft? I gather that a Windows95 would have extreme difficulty to work with a UNIX box. And a Windows designer as root, would probably trash the UNIX OS in seconds... cosc> Ever see a system forget its own terminal emulation in the cosc> MIDDLE of a session? Only in Unix (SunOS in particular, a cosc> particularly nasty strain of the Unix virus). That's called a BUG, not a virus! cosc> Ever see a double right mouse click consistently take an O/S cosc> down to its knees? Only in Unix (SunOS, SGI Irix 6.2 (Indigo^2)). That's also called a BUG, not a virus! Now I understand! You are indeed a Microsoft employee! Oly a Microsoft employee would not know what a bug is (they call it a "feature" instead! Marketing dept. orders!). cosc> Contrary to popular belief, Unix is NOT reliable. It is flaky cosc> and badly designed. It may be ok for batch operations, but cosc> when it comes to user interface, it is completly worthless. -- Flames ahead! -- Really??? Oops, you probably mispelled MICROSOFT withhh UNIX. Badly designed? Well, tell me that X is badly designed, and what GUI is well designed in your opinion! Windows? Oops, can't do a xemacs -display somewhere.else:0 on a windows machine... tough break! Tell me that the UNIX memory system design is flaky, and what OS has a good VM design? Windows? Oops, windows swap to a ordinary file (usually fragmented) and usually gives protection failures... tough break! Let's not start a Windows vs UNIX war, for your own sake, at least in the above points (system design). Note that the people that usually reads this mailing list have technical expertise enough to know how Windows sucks... If we want a LispOS, and are aware why that would be great, don't call us stupid by saying that Windows is more reliable than UNIX. Ok? -- End of flames -- cosc> As far as I'm concerned, all O/S'es stink. LispOS is the chance cosc> to design a decent O/S for a change. I hope you are not proposing us to use the Windows kernel instead of a UNIX one... Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 12:23:12 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 12:23:12 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Free Consulting? (oops, sorry for the subject. Hope you don't mistake it for a spam email. No, this is not a bulk email, but anywaym that's what they all say...) I've read in some posts the RMS name cited. I was wondering what you guys think about explicitly bring RMS and some GPL VIP's to this discussion, to hear what's their opinion. They already have experience on a successful free project, I doubt they would take money for some free advise 8-). In particular, RMS could give us some leads on how to get LispM proprietary stuff to GPL light. Is RMS aware of this list existence? Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From joswig@lavielle.com Fri, 27 Mar 1998 13:22:35 +0100 Date: Fri, 27 Mar 1998 13:22:35 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Why LispOS? At 12:06 Uhr +0100 27.03.1998, Rodrigo Ventura wrote: > I hope you are not proposing us to use the Windows kernel >instead of a UNIX one... Some people want a Lisp OS because Unix sucks as much as Windows. (more oil in the fire. ;-) ) Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From chrisb@Ans.Com.Au Fri, 27 Mar 1998 12:33:55 +0000 Date: Fri, 27 Mar 1998 12:33:55 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: RMS Rodrigo Ventura wrote: > > (oops, sorry for the subject. Hope you don't mistake it for a > spam email. No, this is not a bulk email, but anywaym that's what they > all say...) > > I've read in some posts the RMS name cited. I was wondering > what you guys think about explicitly bring RMS and some GPL VIP's to > this discussion, to hear what's their opinion. They already have > experience on a successful free project, I doubt they would take money > for some free advise 8-). > > In particular, RMS could give us some leads on how to get > LispM proprietary stuff to GPL light. > > Is RMS aware of this list existence? I think anybody and everybody should be told. If you think it would help to tell RMS, then by all means see what he will do. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From wlewis@mailbag.com Fri, 27 Mar 1998 06:54:01 -0600 Date: Fri, 27 Mar 1998 06:54:01 -0600 From: William Barnett-Lewis wlewis@mailbag.com Subject: [Fwd: LispM Sources] This is a multi-part message in MIME format. --------------2084C6644B3C177EA013F302 Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit This short message from Mr. Brooks says it all. Please try not to bother him about it unless you feel you have something of value to add to his decision. Thanks, William --------------2084C6644B3C177EA013F302 Content-Type: message/rfc822 Content-Transfer-Encoding: 7bit Content-Disposition: inline Received: from life.ai.mit.edu (life.ai.mit.edu [128.52.32.80]) by glacier.binc.net (8.8.6/8.8.6) with ESMTP id RAA31256 for ; Thu, 26 Mar 1998 17:57:23 -0600 Received: from [128.52.37.88] (rab-clone.ai.mit.edu [128.52.37.88]) by life.ai.mit.edu (8.8.8/AI1.22/ai.master.life:1.23) with ESMTP id SAA11220 for ; Thu, 26 Mar 1998 18:57:16 -0500 (EST) Message-Id: In-Reply-To: <3517F23F.DF07A45E@mailbag.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Thu, 26 Mar 1998 18:48:05 -0400 To: wlewis@mailbag.com From: Rodney Brooks Subject: Re: LispM Sources I am looking into this. --Rod Brooks --------------2084C6644B3C177EA013F302-- From moribund@netgsi.com Fri, 27 Mar 1998 07:55:43 -0500 Date: Fri, 27 Mar 1998 07:55:43 -0500 From: Damond Walker moribund@netgsi.com Subject: Why LispOS? >At 12:06 Uhr +0100 27.03.1998, Rodrigo Ventura wrote: > >> I hope you are not proposing us to use the Windows kernel >>instead of a UNIX one... > >Some people want a Lisp OS because Unix sucks as much as Windows. > Yes and no....but I still think that we can hide most of the cruft under LispOs such that you won't know if your running the thing on FreeBSD/Linux/WinNT... Well, you may be able to guess but it won't matter much I hope. > (more oil in the fire. ;-) ) > Oh yeah? Well I want a version of this thing to run on the AS/400!!! Hell, you want crap...ug.... Damond From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 14:44:08 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 14:44:08 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "Damond" == "Damond Walker" writes: >> At 12:06 Uhr +0100 27.03.1998, Rodrigo Ventura wrote: >> >>> I hope you are not proposing us to use the Windows kernel >>> instead of a UNIX one... >> >> Some people want a Lisp OS because Unix sucks as much as Windows. >> Damond> Yes and no....but I still think that we can hide most of the cruft under Damond> LispOs such that you won't know if your running the thing on Damond> FreeBSD/Linux/WinNT... Well, you may be able to guess but it won't matter Damond> much I hope. Yeah. That would be great. If LispOS is based on a VM, then the task gets easier (I hope). If tcl/tk, python and java are cross-platform (even with GUI's), then LispOS should also be. The only drawback is speed. The question is: is it still worthy a fairly complete LispOS system ontop a virtual machine? Is it fast enought? How complicated is to implement a JIT virtual machine for LispOS? Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 14:56:12 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 14:56:12 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Misc ideas & comments 1. I tried RScheme, but it seemed to me too complicated, at first in a first glance. After compiling everything, the whole tree ocupied about 70MB of disk space. I had some difficulty to find the main executable in the dense tree structure. I had to use "find . -perm 111 -type f" to find it! But of course, this is my ignorance speaking... The bottom line is that RScheme might be too complex to allow a fairly good degree of exploration. And by the way, does RScheme uses a virtual machine? 2. Portability is a nice feature for LispOS. The easier way to accomplish this is to make a platform-independent virtual machine. Of course there are other paths, but they seem too complex to me (gcc-like compiler). 3. Is the gcc's RTL processor-independent? If so, how about using the RTL-down part of gcc to make LispOS? What is the greatest difficulty of compiling scheme? The macro scheme? The need to stuff an eval function with the compiled code? 4. The experience I made with scheme48 ontop linux used a statically linked scheme48vm. But maybe we could use dyn-load explicitly. How about considering the dyn-linking mechanism a part of the Linux kernel? It could make things easier for LispOS. Or maybe not, because scheme linking is probably more demanding than plain C-style linking. Maybe we'll need to use a lisp-prepared dyn-loader. 5. I think that debates like CL versus Scheme are useless if they make the project stop. I don't mind switching to CL if that proves to be easier and more efficient to get LispOS started. Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From cosc19z5@bayou.uh.edu Fri, 27 Mar 1998 09:06:13 -0600 (CST) Date: Fri, 27 Mar 1998 09:06:13 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? > cosc> I don't know what Unix machines you are using, but at work I > cosc> use SunOS and SGI machines, and they require frequent rebooting, > cosc> more rebooting than DOS or Win95 ever required. As a matter of > cosc> fact, I will go as far as to say that the most unreliable systems > cosc> I have had the misfortune of using were Unix systems. > > ha ha ha ha!!!!!!!! REALLY??? More rebooting than UNIX? ^^^^^^^^^^^^^^^^^^^^^^^^^ Do you even know what you are talking about? You obviously haven't read my posting at all, or seem to have a problem with the English language. I never said "More rebooting than UNIX" anywhere in my email. > You've > got to be kidding. Unless of course, no one ever uses the Windows > boxes, and you always work as root under UNIX, and have little > knowledge of it. 1) I am not kidding. 2) I am not working as root. 3) I have been using Unix for several years and I know it very well. You obviously have no clue about Unix however, if you think that working as root and not being familiar with Unix can be blamed for a system managing to forget its own terminal emulation mid-session and crashing on a double-right mouse click. Come back when you learn something about Unix. You are obviously a Unix newbie who is overwhelmed by the heady possibilities of long file names and therefore has not had the chance to see the fundamental flaws of this system. > The only scenario of a Windows more reliable than > UNIX is that one. I see you are new to computing in general then. Reliability is a feature that is independent of the ability of the operator. System A is either more reliable than system B or it is not, regardless of the operator. Is it even worth my time to respond to your poorly coughed up "thoughts"? What the hell, I might as well finish. > Ro are you working at Microsoft? So you are working at Sun? > I gather that a > Windows95 would have extreme difficulty to work with a UNIX box. And a UNIX box would have extreme difficulty working with a horse drawn carriage. Your point? > Windows designer as root, would probably trash the UNIX OS in seconds... There is no such thing as "root" under Windows. Why don't you learn something about Windows and Unix first before you go making a fool of yourself? Buy or steal a copy of "Windows for Dummies", it was obviously written with people like you in mind. > > cosc> Ever see a system forget its own terminal emulation in the > cosc> MIDDLE of a session? Only in Unix (SunOS in particular, a > cosc> particularly nasty strain of the Unix virus). > > That's called a BUG, not a virus! You don't know anything about the English language, Operating Systems, or Sarcasm. Is there anything you do know something about??? Other than making a fool of yourself that is. > > cosc> Ever see a double right mouse click consistently take an O/S > cosc> down to its knees? Only in Unix (SunOS, SGI Irix 6.2 (Indigo^2)). > > That's also called a BUG, not a virus! See the above Einstein. > > Now I understand! You are indeed a Microsoft employee! Oly a > Microsoft employee would not know what a bug is (they call it a > "feature" instead! Marketing dept. orders!). Now I understand! You are indeed a Sun employee! Only a Sun employee would demonstrate such depressing stupidity and ignorance of common terms used within his own corporation! > > cosc> Contrary to popular belief, Unix is NOT reliable. It is flaky > cosc> and badly designed. It may be ok for batch operations, but > cosc> when it comes to user interface, it is completly worthless. > > -- Flames ahead! -- I got news for you, you've been flaming all along. > > Really??? Oops, you probably mispelled MICROSOFT withhh UNIX. Actually, misspellings seem to be your specialty (hint: look at the way you spelled "misspelled"). > > Badly designed? Well, tell me that X is badly designed, and > what GUI is well designed in your opinion! NextStep. > Windows? Oops, can't do a > xemacs -display somewhere.else:0 on a windows machine... tough break! I never said Windows was well designed. Please learn how to read, I'm getting tired of watching you act like a jackass. Furthermore, since I never had the need for remote windowing on Windows, I never tried any of the X-Winblow compatibility packages like eXcursion. Something like this may very well be possible -- I don't know, nor do I care. > Tell me that the UNIX memory system design is flaky, and what OS has a > good VM design? Windows? Oops, windows swap to a ordinary file > (usually fragmented) and usually gives protection failures... tough > break! Einstein, I said in my post, the one that you so foolishly decided to respond to without reading that as far as I was concerned, ALL the O/Ses I used stunk. Now, if you think about this for a few hours, and get your Nurse to help you with the logic, you might come to realize that this means that as far as I was concerned, Windows stinks. > > Let's not start a Windows vs UNIX war, for your own sake, at > least in the above points (system design). You're the only one fighting a Windows vs. Unix war. I said that Unix was not a good O/S, and you came to the conclusion that I was a Windows fanatic. What's more important is that you don't continue this flame war for your own sake. > Note that the people that > usually reads this mailing list have technical expertise enough to > know how Windows sucks... And technical expertise enough to know how Unix sucks... > If we want a LispOS, and are aware why that > would be great, don't call us stupid by saying that Windows is more > reliable than UNIX. Ok? I'm not calling everyone on this mailing list stupid, I am only calling you stupid, and not because you like Unix, but just because you really do seem to be stupid. You are arguing on a topic which you know nothing about ("root" on Windows? Come on!), you have not mastered the basic skills of _READING_ [your entire post would not have been written had you understood anything that I said], and you have a SERIOUS attitude problem which I intend to adjust... > cosc> As far as I'm concerned, all O/S'es stink. LispOS is the chance > cosc> to design a decent O/S for a change. > > I hope you are not proposing us to use the Windows kernel > instead of a UNIX one... You can use what you want. I have no intention of touching Unix. > > Regards, > > -- > -- > > *** Rodrigo Martins de Matos Ventura, alias > *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda > *** Instituto de Sistemas e Robotica, Polo de Lisboa > *** Instituto Superior Tecnico, Lisboa, Portugal > *** PGP Public Key available on my homepage > *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A > From zhivago@iglou.com Fri, 27 Mar 1998 10:11:07 -0500 (EST) Date: Fri, 27 Mar 1998 10:11:07 -0500 (EST) From: BRIAN SPILSBURY zhivago@iglou.com Subject: Why LispOS? Rodrigo: > Yeah. That would be great. If LispOS is based on a VM, then > the task gets easier (I hope). If tcl/tk, python and java are > cross-platform (even with GUI's), then LispOS should also be. The only > drawback is speed. > > The question is: is it still worthy a fairly complete LispOS > system ontop a virtual machine? Is it fast enought? > > How complicated is to implement a JIT virtual machine for > LispOS? Lisp is already a virtual machine in most respects, its types are definable independant of the underlying architecture, it defines a machine based on loose standards in at least most useful cases. If you merely specify a lisp system sufficiently well that it is not ambigious in definition, and such that the resulting system does not reflect the underlying system in terms of functionality then you have a virtual machine. This does not require using bytecodes or an interpreter, such as java uses. The normal lisp incremental compilation will work nicely. CL does not provide this, and I suspect that scheme does not either, but given care it should be possible to design a lisp system so that it provides a virtual machine sufficient for transparantly portable code. If you want to implement this system as an interpreter, fine, but just remember that that's not necessary. The main reason for using JVM in java is for portable binaries for transport. Brian From chrisb@Ans.Com.Au Fri, 27 Mar 1998 15:21:16 +0000 Date: Fri, 27 Mar 1998 15:21:16 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Misc ideas & comments Rodrigo Ventura wrote: > > 1. I tried RScheme, but it seemed to me too complicated, at > first in a first glance. Complicated compared to what? > After compiling everything, the whole tree > ocupied about 70MB of disk space. I had some difficulty to find the > main executable in the dense tree structure. I had to use "find > . -perm 111 -type f" to find it! Yes, I'm not sure why that isn't installed by default. > But of course, this is my ignorance > speaking... The bottom line is that RScheme might be too complex to > allow a fairly good degree of exploration. And by the way, does > RScheme uses a virtual machine? Yes. Unless of course you are using the compiler. > 3. Is the gcc's RTL processor-independent? Are you talking about glibc ? > If so, how about > using the RTL-down part of gcc to make LispOS? What is the greatest > difficulty of compiling scheme? The macro scheme? The need to stuff an > eval function with the compiled code? Well, if you could say there was something hard about compiling Scheme, it would be that the general computational model of Scheme doesn't fit that well with typical hardware architecture. Supporting things like call/cc, gc, and all those things C lacks. Eval and macros aren't a big deal. > 4. The experience I made with scheme48 ontop linux used a > statically linked scheme48vm. But maybe we could use dyn-load > explicitly. How about considering the dyn-linking mechanism a part of > the Linux kernel? It could make things easier for LispOS. Or maybe > not, because scheme linking is probably more demanding than plain > C-style linking. Maybe we'll need to use a lisp-prepared dyn-loader. Depends on whether you are taking a long term view. In the short term at least, Linux dyn linking may be a help. Not sure about the ultimate solution. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From dtillman@cannonexpress.com Fri, 27 Mar 1998 09:37:18 -0600 Date: Fri, 27 Mar 1998 09:37:18 -0600 From: David Tillman dtillman@cannonexpress.com Subject: Misc ideas & comments > 5. I think that debates like CL versus Scheme are useless if > they make the project stop. I don't mind switching to CL if that > proves to be easier and more efficient to get LispOS started. Absolutely! I love Scheme but I would rather see a Lispy OS happen rather than debate Lisp vs Scheme. It seems to me that there many things that we could be designing *now* before the core is done. For example: Assuming that the LispOS is multiuser, what structure will we use to store user info. We could use the same primitive structure as the Unix passwd file. This would seem to be a tragedy as we have the opportunity to so muh more. An Unixy type would probably look like this: ("bob" "N32FSUODn7lo2" 1004 100 "Bob Smith" "MIS Office" "x127" 'std-home 'std-shell) Perhaps a Lispy version would look like: ('bob "N32FSUODn7lo2" 'std-home 'std-shell) The symbol 'bob would be used to look up all extra info in a LDAP type structure. Comments? How did Lip machines store user info? -Dave -- David Tillman : dtillman@xevious.ml.org LISP email list : lisp-request@xevious.ml.org MzScheme email list : mzscheme-request@xevious.ml.org Linux Software Development list : lsd-request@xevious.ml.org From chrisb@Ans.Com.Au Fri, 27 Mar 1998 15:46:48 +0000 Date: Fri, 27 Mar 1998 15:46:48 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: OS Wars Let's end the OS wars right here. We are all here because we're not satisfied with any existing OS. Why to waste our time debating if VW beetle or Corolla is the ultimate super-car? All OSes have bugs. All OSes will stay up forever until you activate the bugs. And there is no such thing as UNIX. There is only Xenix, Ultrix, SunOS, Linux, BSD, OSF UNIX etc. All with different bugs and different stabilities. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From moribund@netgsi.com Fri, 27 Mar 1998 10:48:04 -0500 Date: Fri, 27 Mar 1998 10:48:04 -0500 From: Damond Walker moribund@netgsi.com Subject: Why LispOS? -----Original Message----- From: Rodrigo Ventura Date: Friday, March 27, 1998 9:57 AM > > Damond> Yes and no....but I still think that we can hide most of the cruft under > Damond> LispOs such that you won't know if your running the thing on > Damond> FreeBSD/Linux/WinNT... Well, you may be able to guess but it won't matter > Damond> much I hope. > > Yeah. That would be great. If LispOS is based on a VM, then >the task gets easier (I hope). If tcl/tk, python and java are >cross-platform (even with GUI's), then LispOS should also be. The only >drawback is speed. > How is the JOS crew coming about with their OS? I'm sure everyone isn't working with some kind of native Java compiler for their OS. Parts must be running on a VM of some sort. Is it slow? I havn't checked in on them in awhile. In the end I would love LispOs to execute natively on whatever platform we decide to move the thing to. But in the beginning if we have resort to using VM's then so be it. As long as some kind of forward progression is made.... > The question is: is it still worthy a fairly complete LispOS >system ontop a virtual machine? Is it fast enought? > In think in the beginning it wouldn't hurt that much. Some care would have to be made in the beginning such that programmers realize that someday they might be running natively... as opposed to being wrapped up in a VM. > How complicated is to implement a JIT virtual machine for >LispOS? > Doesn't have to start out JIT...could be like the JDK from Sun in the beginning. Damo From moribund@netgsi.com Fri, 27 Mar 1998 11:04:13 -0500 Date: Fri, 27 Mar 1998 11:04:13 -0500 From: Damond Walker moribund@netgsi.com Subject: OS Wars -----Original Message----- From: Chris Bitmead To: lispos@math.gatech.edu Date: Friday, March 27, 1998 11:05 AM Subject: Re: OS Wars >Let's end the OS wars right here. We are all here because we're >not satisfied with any existing OS. Why to waste our time >debating if VW beetle or Corolla is the ultimate super-car? > Amen, even though we all know the Beetle is the king of cars.... :) >All OSes have bugs. All OSes will stay up forever until you >activate the bugs. And there is no such thing as UNIX. There is >only Xenix, Ultrix, SunOS, Linux, BSD, OSF UNIX etc. All with >different bugs and different stabilities. > Oh-tay.... About this initial VM thing or not. What are some reasons to *NOT* start LispOs using a VM style architecture? I can think of several off the top of my head but what are some of the rest of the list's thoughts? I've written several chip emulators (they weren't coded down to exact times mind you but they worked, one for the 6502 [who hasn't done one of these yet], and about 25% for a VAX) and really like coding these monsters. Why shouldn't we start a VM with a Silicon chip (specifically designed to run a compiled CL app) running the show? Damond From cosc19z5@bayou.uh.edu Fri, 27 Mar 1998 11:05:19 -0600 (CST) Date: Fri, 27 Mar 1998 11:05:19 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: OS Wars [Snip] > >All OSes have bugs. All OSes will stay up forever until you > >activate the bugs. And there is no such thing as UNIX. There is > >only Xenix, Ultrix, SunOS, Linux, BSD, OSF UNIX etc. All with > >different bugs and different stabilities. > > > > > Oh-tay.... About this initial VM thing or not. What are some reasons > to *NOT* start LispOs using a VM style architecture? I can think of several > off the top of my head but what are some of the rest of the list's thoughts? Isn't this a task for another mailing list? If memory serves me correctly, this list was split awhile ago into a VM and O/S list. I wonder how the VM folks are coming along? > I've written several chip emulators (they weren't coded down to exact > times mind you but they worked, one for the 6502 [who hasn't done one of > these yet], and about 25% for a VAX) and really like coding these monsters. > Why shouldn't we start a VM with a Silicon chip (specifically designed to > run a compiled CL app) running the show? I like the idea of starting with a shell first since that would be more apparent to the user and the true power of Lisp can shine. Getting something out that we can be proud of and show off to others early on is (IMO) a good idea, for morale and possibly new recruits. > > Damond > Regards, Ahmed From aml@gia.ist.utl.pt 27 Mar 1998 17:26:24 +0000 Date: 27 Mar 1998 17:26:24 +0000 From: Antonio Leitao aml@gia.ist.utl.pt Subject: Lisp Machines Someone asked about what's like working with a Lisp Machine. I will give my experience and some considerations for a future LispOS. I worked a few years with Lisp Machines made by Texas Instruments. I also work a few hours with a Smalltalk Machine made by Tektronix. The feeling was the same. During those wonderful years, I had the chance to work on a daily basis with the Explorer, Explorer II, and Explorer II+. I will now describe these machines. The Explorer II+ had both a large color display and a B&W display. As someone said, the keyboard was something special. Very large, very comfortable, with left and right control, meta, super and hyper keys, dedicated keys for parenthesis, dedicated keys for undo, help, break, abort, etc. The B&W display was something marvelous. Extremely sharp, with a dedicated region for online documentation. The mouse was an optical one, very precise. In a word, everything was ergonomical. I find today's "ergonomical" keyboards a joke when compared with the Explorer's ones. The computer was very big. It was the size of a small fridge and the disks and fans made so much noise that was terrible to work near them. Of course, we were supposed not to do that. The connection from the input/output devices to the computer was a quite long fiber-optics cable that allowed us to put the machines in a room and work on another rooms, at a fairly large distance. The disks' size was 300MB each (or maybe 150MB, I don't remember). Each of our machines had 2 or 3 of these disks. There was also a QIC-tape per machine. All the machines were connected by a 10MBit ethernet. The first models of the Explorer had not much RAM (maybe 16 MB, can't be sure) and the GC was slow and buggy. The last model I worked with, the Explorer II+ had 128 MB of RAM and an generational GC that, as long as you did not need a full GC, was barely noticeable. In those times, the configuration described above was not at all "standard" in most computers, specially when you think that this was a single-user machine. When I talked with my friends that were working on Macintoshes (the best one at the time was the Macintosh II) and PC's (286? 386?) I felt like I was a "Top Gun". I was really driving a very special machine. Although the machines' configuration was amazing, what was really special was the fabulous CPU and the software provided. In what relates to the CPU, I'm not the best person to discuss this (people from LMI, Symbolics, Texas, please, correct me if I'm wrong) but the CPU provided a lot of help to speedup the usual Lisp operations. Just to mention a few, CDR-coding for compact list representation (although there were some disadvantages with this--but this is off-topic), hardware-assisted GC, type-checking in parallel with optimistic execution of instructions, etc. Now, let's see the software. The first machines come with ZetaLisp and a very nice object-oriented system called Flavors. When CommonLisp come out, the machines were updated to use it, but still with Flavors. I never saw CLOS on them. But more about this latter. All the software was either microcode or CommonLisp (or ZetaLisp) with Flavors. But there were other compilers or interpreters on top of this. I vaguely remember a Prolog interpreter... My main task at the time was to implement some AI algorithms, develop a lot of code for managing schedules and, specially, to deal with all the graphical interface of the application we were developing. I must say that it was a great experience. I didn't know much about software at the time (and most probably I still don't know much nowadays) but I'm sure I become a different programmer after using those machines. As someone pointed out before, you had all the source code on your hands. You could see and modify the actual code used by the machine, compile it, and the machine would behave immediately according to your modifications. Your code was on exactly the same stand as the system code. We had a lot of tools to help us dealing with the system. The editor was Zmacs, written in ZetaLisp in an Object-Oriented-way. Very modifiable. I had more productivity with it at that time than with current Emacs versions. There were an inspector, a debugger, a class and instance browser, a processes browser, a stepper and a tracer, all of them window-based. You could switch from one to the other instantaneously. There were also a lot more tools, like telnet, mail, etc, but I used this less often so I will not comment on them. Again, I want to stress that you had all the code for this at your finger-tips. Really. Is nothing like having the sources of Linux. On the Explorers (and presumably on all the other Lisp Machines) when you wanted to see what was going on, you just need to hit the break key (or select a process from the processes inspector), look at the window debugger, point at some function, edit it, read its documentation, etc. You could also modify it, compile it, restart the computation from some point, etc. You could also look at the data-structures, inspect them, modify them, look at the class hierarchy, include some extra mixins to a class definition, compile them, restart, etc, etc. The only thing I missed was a "computational undo" that I heard that existed in Interlisp. Of course, I think it would be absolutely infeasible to have this on a system with the complexity of a Lisp Machine, but "to just miss this" means a lot to the value of the system. An important point (to be discussed latter) was that the Explorers used a traditional file-system, with directories, files, ownership, etc. The code was written to files, formatted according to the user's intention. These files were just ASCII files. All the Lisp Machines shared the same file system, just like in NFS. There was a versioning system, like in VMS, where the filename had also an version number. Since all the operations of the file system were written in Lisp, you could modify the behavior of the file system in whatever ways would suit your needs. I remember a situation where we wanted to hide some files from the defsystem module to allow us to modify the code without disturbing the state of the system defined at same point. (You would use RCS or CVS for this nowadays). It was just a change on the function that returned the last version of a file. Something that you could accomplish in five minutes. I must stress that it is extremely important to have the all the code easily accessible for you to be able to do this. I rarely read a manual and that's because in Lisp the code is so self-documented that it was preferable in most cases to just browse the code. The disassembled code was also so understandable that the debugger showed it for every function you were inspecting. As a side-story, I remember we were using an very nice knowledge representation tool (which I will not tell you the name for reasons that will be apparent latter) and I found a bug in one function of that tool. The bug occurred because the function was recursive (tail-recursive, actually) and we were using some very unusually deep class hierarchies and the stack blowed up. Note that there were no hard-limits on the stack size (AFAIK), but the system warned you when the stack reached some pre-defined limits. You could just tell the system to increase the stack size and continue the operation (really, it was just a sort of yes-or-no question, either abort or continue with a larger stack) but this was not very practical from the standpoint of the user of our software, so I decided to correct the bug. Meta-Control-w (If I remember correctly) and there I was looking at the marvelous window debugger, seeing the stack, the local variables, the objects, everything that I wanted. Note that the tool we were using _didn't_ come with sources. Of course, nothing prevented us to look at the disassembled code, so that's what I did. This disassembly was so clear, so documented, that I could generate a copy of the original function within minutes. Well, at least, it compiled to exactly the same code. With that copy, it was now very simple to convert it to an iterative loop, compile it again, restart it, and there it was, the knowledge representation tool resumed its working without any problems. It was like if the bug never happened. Well, the moral is this: I can't imagine this story happening in current operating systems. Nowadays, when the software that I use has a bug (be it X-windows, Linux, Netscape, whatever) well, it just crashes and that's all. Of course, usually, I don't even understand the bug ("Bus error" is not very informative), I don't even think about looking at the source (usually, I don't have it and probably it is written in C or even worse), much less to modify it (probably, even if I looked at the source I would not understand it well enough to be able to modify it) and, after all, I cannot restart my work where it was before the bug, so what's the point? It's much faster to start all over again and hope that the bug will not show up this time. Of course, there are some exceptions. Emacs is one. I'm constantly using emacs. I would say that 99% of my time is spend using Emacs. When you have a bug in Emacs packages you can at least try to solve the problem because Emacs contains some of the functionality of a Lisp Machine. You have all the source, you can modify and recompile functions at any time, you have a limited but helpful debugger and you have an excellent (really!) stepper. Unfortunately, a big part of Emacs is written in C and when there is a bug on that part, you're out of luck. Now, I would like to enter in some details about an hypothetical LispOS. Everybody would agree that the Lisp Machine way was a better way, but is it really necessary these days? We must remember that Lisp Machines were used to run software that run for days and weeks (most AI problems need huge amounts of processing) so, if a bug showed up after a week of running time, you didn't want to start all over again. You really wanted to correct the bug and continue the computation from some safe point. Do we still need this feature? I know I need (and I still use it with Allegro CL), but I think that most of the people that use Windows (and even Linux) do not need it. I don't expect to see a secretary, or a doctor, or a lawyer using Word and, upon discovering a bug, entering a window-debugger to correct it. Not even the final users of the software that we developed for Lisp Machines would do this. There is a fundamental difference between a user and a programmer, IMHO. >From what I saw in this mailing list, it looks like some of the participants pretend that the Lisp OS could replace Windows or MacOS. I think (based on what I just said) that for the large majority of Windows or MacOS users a LispOS (similar to the one I just described) isn't useful at all. They will not be able to understand it, much less take advantage of it. These users just want to use Word or Excel or CorelDraw or PowerPoint and they definitely do not want to look at window-debuggers, much less to correct bugs. After all, these people payed for the software. Even if we consider the Linux community, I suspect that most of the users aren't really concerned about Lisp. Most of the programmers I know do not know enough about Lisp. They almost always prefer to code in C or C++. Of course, they could be convinced to look at Lisp, but from the flame wars that we sometimes see between the Lisp field and the C/C++ field, I don't believe it, at least in the near future. As a result, I think that a LispOS would be great, but almost meaningless in what accounts the number of users that can really take advantage of it. This does not mean that I'm against a LispOS. Quite the opposite. I can live almost exclusively with Emacs, Allegro, and LaTeX. Allegro, obviously, is CommonLisp. Emacs is also very close to CommonLisp. LaTeX would be great if its extension language was something Lispy-like, but I would be already happy if it was something different from TeX. So, apart from LaTeX, I could already be using a LispOS. Unfortunately, there are some rare occasions when I have to use something else, like Acrobat, or Netscape or whatever. It would be unrealistic to expect an implementation of Acrobat (or any other piece of already existent software) for a LispOS, primarily because there wouldn't be enough users that would justify such implementation and secondly because the effort needed to convert an application developed for Windows or MacOS or some sort of Unix to something so radically different as a LispOS is tremendous. But some of us really need to use these tools. As an example, since the invention of Java there is a big demand for Java programmers. Let's suppose someone asked one of us to developed something in Java. I don't like Java, probably you don't like Java, but we all need to earn some money, so we must code in Java for a while. How much time could we wait for a Java compiler for the Lisp Machine? Or do you think we should include the Java compiler as our first task to accomplish our client's needs? So, for a LispOS to be really useful, either it emulates some already popular OS, or it runs within some already popular OS. I suspect that for most Lisp purists, the first option is the best one, but unfortunately is also the most difficult one. But I think there are some advantages on the second option also. We actually have most of the work already done. We already have Allegro CL, or CMUCL or CLISP or RScheme or whatever Lisp implementation you prefer running on top of most operating systems. All these implementations lack a lot of the functionality of a Lisp Machine but why don't we develop such functionality? I remember that Allegro CL had a package called Composer that could give us some of the feeling of a Lisp Machine. Of course, we have to pay for this, but can also develop a new one from scratch. If we want to have a Lisp Machine, why not start with one that runs within Linux, for example, and implement all the functionality that we need? I must say that I think this is _not_ an extremely difficult task, at least when compared with something as hard as replacing an OS with a new one. I base my opinion in one of my last assignments on the company where I worked: to convert all the graphical interface from Explorers to Suns. In the Sun Stations, we had Allegro and Lucid. At beginning we started with Lucid because it looked faster (on our tests) but in the end Lucid went bankrupt so we changed to Allegro. Both implementations were for CommonLisp with PCL and they also had CLX. Our system run originally on CommonLisp with Flavors and the very non-standard Explorer windowing system. Well, the good news are that I managed to create a layer that isolates the underlying object system and another one that isolates the underlying windowing system. I managed to be able to run the same code on the Explorers and the Suns. This gave me the confidence to think that with some more work it would be possible to translate all the software from the Explorer environment to the Allegro/X environment. In other words, we could replicate a Lisp Machine within a Sun. Nowadays, I can say the same for Linux, of course. I'm sure some of the participants in this mailing list will complain that this isn't a genuine LispOS. I know that my particular idea of Lisp Machine doesn't use a persistent store, but neither did the Explorer. I know that it doesn't use a structured editor, but neither did the Explorer. I know that it doesn't transmit Lisp objects over the network, but neither did the Explorer. Do you think the Explorer was not a Lisp Machine? I still think this is a feasible task. Most probably, we would need to have access to the internals of the CommonLisp implementation (specially for the window debugger and inspector), so this excludes (in part only) a proprietary implementation such as Allegro CL or LispWorks. Maybe CMUCL would be a good starting point. I don't know enough about CMUCL to judge. But most of the functionality already exists, at least in a primitive form. If you take a look at the Emacs-Allegro interface that comes with Allegro CL, you will see a very primitive (and buggy) "window-debugger", but that's the idea. We just have to make it much more powerful. We would also need to convert Emacs to a truly CommonLisp implementation. This would need someone with deep knowledge of Emacs internals. All the Elisp packages would also need translation, but these are tasks that can be easily accomplished by other CommonLisp programmers like myself. If we could manage to implement this sort of Lisp Machine, then we could start thinking about was is bad in our implementation that could be better if we had the _right_ operating system. Maybe then, we can start thinking about the _right_ operating system. By then, we will know what we want and we will have the tools to develop it. Of course, this is just my opinion, anyway. Sorry for the long message. Best regards, António Menezes Leitão. From moribund@netgsi.com Fri, 27 Mar 1998 13:06:20 -0500 Date: Fri, 27 Mar 1998 13:06:20 -0500 From: Damond Walker moribund@netgsi.com Subject: OS Wars > >Isn't this a task for another mailing list? If memory serves me >correctly, this list was split awhile ago into a VM and O/S list. > I do think we should have two groups for such a thing. But I do like the idea of having a VM at the core of all this...I'd hate to write some lisp code and have it stuck under just Linux or FreeBSD or Windows because of available development tools. >I wonder how the VM folks are coming along? > Any of them on this list? > >I like the idea of starting with a shell first since that would >be more apparent to the user and the true power of Lisp can >shine. Getting something out that we can be proud of and show >off to others early on is (IMO) a good idea, for morale and >possibly new recruits. > Well, if we want to do this under Linux it's easy to get Allegro from Franz. They have a pretty open policy regarding the use of their system (basically, you can't sell the apps in a commercial environment). Or any of the CL systems available....it really doesn't matter. Lets start working on a shell then damnit! :) If someone does create a VM, we can move it then. Features of the shell? Aside from scripting and the like... Console based at the start... Damo From gadbois@cyc.com Fri, 27 Mar 1998 12:10:41 -0600 Date: Fri, 27 Mar 1998 12:10:41 -0600 From: David Gadbois gadbois@cyc.com Subject: Misc ideas & comments Date: Fri, 27 Mar 1998 09:37:18 -0600 From: David Tillman The symbol 'bob would be used to look up all extra info in a LDAP type structure. Comments? How did Lip machines store user info? Genera uses a distributed namespace database. The namespaces functions map between object classes (users, hosts, networks, sites, printers, etc) and names to objects. There is a functional interface as well as various GUI tools that let you view and edit the information. NET:FIND-OBJECT-NAMED is the major lookup function. It takes care of checking the validity of the locally-stored information against what the namespace server has and retrieving information from the server if necessary. >(net:find-object-named :user "Gadbois") # T >(describe *) #, an object of flavor NET:USER, has instance variable values: FLAVOR:PROPERTY-LIST: (:USER-PROPERTY ((:INITIALS "DGG") (:UNIX-HOME-DIRECTORY "WIGGUM:/wiggum0/home/gadbois/")) :BIRTHDAY "July 30" :MAIL-ADDRESS ("gadbois" #) :HOME-HOST # :HOME-PHONE "512 502 xxxx" :HOME-ADDRESS "" :WORK-PHONE "512 342 xxxx" :WORK-ADDRESS "" :PERSONAL-NAME "Gadbois, David" :LISPM-NAME "Gadbois") NETI:CLASS: :USER NETI:NAMES: (#) NETI:VALIDATION-TIMESTAMPS: [...] SI:PERSONAL-NAME: "Gadbois, David" SI:PERSONAL-NAME-FIRST-NAME-FIRST: "David Gadbois" # The particular implementation has a couple of shortcomings. One is that there is no meta level. You have to know the base class names, and the database has only a single level of class distinctions itself. Another is that the distributed-database aspects of it were always pretty shakey: It is a major pain to force consistency and make big changes in the database. I recall the TI implementation was much better in the latter respect. If I were redoing this sort of thing from scratch, I'd come up with some abstraction layer that could cover lispm namespaces, X.500, LDAP, NDS, UNIX /etc files, Windows registries, SNMP MIBs, DNS, WINS, and whatever Microsoft is doing with their distributed directory stuff [1]. That way, it would be easy to plug into existing environments, and you'd have an automatic application lever for sorting the current directory services mess out. --David Gadbois [1] I've probably missed a dozen others. Aren't standards fun? From mikemac@teleport.com Fri, 27 Mar 1998 10:41:16 -0800 (PST) Date: Fri, 27 Mar 1998 10:41:16 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Misc ideas & comments >Date: Fri, 27 Mar 1998 09:37:18 -0600 >From: David Tillman >To: lispos@math.gatech.edu >Subject: Re: Misc ideas & comments >> 5. I think that debates like CL versus Scheme are useless if >> they make the project stop. I don't mind switching to CL if that >> proves to be easier and more efficient to get LispOS started. > > > Absolutely! I love Scheme but I would rather see a Lispy OS > happen rather than debate Lisp vs Scheme. > But religious arguments can be so much fun, if you don't take it too seriously. > It seems to me that there many things that we could be designing > *now* before the core is done. > > For example: Assuming that the LispOS is multiuser, what structure > will we use to store user info. I think that's a big assumption. One of the really nice things about the traditional LispMs of old was that they weren't multi user in any sense that you're talking about. The philosophy was one machine per user. By making this design decision, one didn't have to worry about separating and protecting processes from each other. That meant, if you wanted to hack the GC, go ahead. The only one you'd screw up was you. If you had multiple users, we couldn't let you because you might do something that effects the other users. > We could use the same primitive > structure as the Unix passwd file. This would seem to be a tragedy > as we have the opportunity to so muh more. > > An Unixy type would probably look like this: > > ("bob" "N32FSUODn7lo2" 1004 100 "Bob Smith" "MIS Office" > "x127" 'std-home 'std-shell) > > Perhaps a Lispy version would look like: > > ('bob "N32FSUODn7lo2" 'std-home 'std-shell) > > The symbol 'bob would be used to look up all extra info > in a LDAP type structure. I'd think something like this would be more appropriate: (defclass user (#-POS persistant-base-class) ((name :initarg :name :reader user-name) (home-dir :initarg :directory :reader user-home-directory) ... )) Mike McDonald mikemac@mikemac.com From mikemac@teleport.com Fri, 27 Mar 1998 11:05:05 -0800 (PST) Date: Fri, 27 Mar 1998 11:05:05 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Lisp Machines >To: lispos@math.gatech.edu >Subject: Lisp Machines >From: Antonio Leitao >Date: 27 Mar 1998 17:26:24 +0000 >So, for a LispOS to be really useful, either it emulates some already >popular OS, or it runs within some already popular OS. > >I suspect that for most Lisp purists, the first option is the best >one, but unfortunately is also the most difficult one. > >But I think there are some advantages on the second option also. We >actually have most of the work already done. We already have Allegro >CL, or CMUCL or CLISP or RScheme or whatever Lisp implementation you >prefer running on top of most operating systems. Being somewhat pragmatic, I'm in favor of the second option. I really don't want to have to wait for someone to write an X window server in Lisp for MY video card before I can do anything. CL using the native OS's windowing system (probably X to start with) is the place where I think we should start. Once things progress and people get experience, if someone comes up with an implementation of a "better" windowing system, great. Then I'll switch. But in the meantime, I want to be able to run those on Lisp apps in a window. >All these implementations lack a lot of the functionality of a >Lisp Machine but why don't we develop such functionality? > >I remember that Allegro CL had a package called Composer that could >give us some of the feeling of a Lisp Machine. Of course, we have to >pay for this, but can also develop a new one from scratch. If we want >to have a Lisp Machine, why not start with one that runs within Linux, >for example, and implement all the functionality that we need? > I think I'd prefer CLIM to Composer. It's more of an "open" standard than Composer is. But by no means do I think CLIM is THE windowing system. > >I'm sure some of the participants in this mailing list will complain >that this isn't a genuine LispOS. If it walks like a duck and quacks like a duck, ... >I still think this is a feasible task. Most probably, we would need >to have access to the internals of the CommonLisp implementation >(specially for the window debugger and inspector), so this excludes >(in part only) a proprietary implementation such as Allegro CL or >LispWorks. Maybe CMUCL would be a good starting point. I don't know >enough about CMUCL to judge. I think CMUCL would be the longer term base. In the meantime, use either ACL or CMUCL. A lot of the stuff that needs to be written can be done so in pure CL. >But most of the functionality already exists, at least in a primitive >form. If you take a look at the Emacs-Allegro interface that comes >with Allegro CL, you will see a very primitive (and buggy) >"window-debugger", but that's the idea. We just have to make it much >more powerful. We would also need to convert Emacs to a truly >CommonLisp implementation. This would need someone with deep >knowledge of Emacs internals. All the Elisp packages would also need >translation, but these are tasks that can be easily accomplished by >other CommonLisp programmers like myself. Have you looked into Hemlock? (comes with CMUCL.) >If we could manage to implement this sort of Lisp Machine, then we >could start thinking about was is bad in our implementation that could >be better if we had the _right_ operating system. YES!!!!! >Maybe then, we can start thinking about the _right_ operating system. >By then, we will know what we want and we will have the tools to >develop it. YES!!!!!!! Mike McDonald mikemac@mikemac.com From mikemac@teleport.com Fri, 27 Mar 1998 11:10:02 -0800 (PST) Date: Fri, 27 Mar 1998 11:10:02 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: CLEmacs >Date: Fri, 27 Mar 1998 10:56:20 +0100 >From: "Gavin E. Gleason" >To: lispos@math.gatech.edu >Subject: CLEmacs > > >Since I know there are a lot of "old timer's" here, I thought I'd ask >a question. Was CLIM the whole windowing system protocol on genera? >I seem to remember some mention of Silica or something riding >underneath... What did the explorers use? What about interlisp? Or >the LMI's? > Symbolics had a thing called Dynamic Windows. The important feature of it was a thing called Presentation Types. This is where the windowing system remembered the type of the thing being drawn on the screen. If you needed a thing of type FOO, you could type on in or point to any FOO on the screen. Think of web browsers as really dumb versions. The idea of presentation types is the part of CLIM that I want in whatever windowing system I use. >Maybe it would be a good idea for those of us that are interested in a >GUI to join the free clim mailing list (you can find a reference to it >at www.cons.org) > I don't think I've received a piece of Email from that list in a year! Mike McDonald mikemac@mikemac.com From joswig@lavielle.com Fri, 27 Mar 1998 20:29:33 +0100 Date: Fri, 27 Mar 1998 20:29:33 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Lisp Machines At 11:05 27.03.98 -0800, Mike McDonald wrote: > I think I'd prefer CLIM to Composer. It's more of an "open" standard >than Composer is. But by no means do I think CLIM is THE windowing >system. Composer is a collection of tools for the development system. > I think CMUCL would be the longer term base. In the meantime, use >either ACL or CMUCL. A lot of the stuff that needs to be written can >be done so in pure CL. At LUGM 98 Franz agreed to provide an implementation (in binary form) of CLIM 2 for Linux ACL. It will be available under the same terms as ACL for Linux (free for non commercial use). A friend of mine already got the CLIM source from Franz for doing this port to Linux (plus Motif). So Linux users will have a quality CL and CLIM implementation to start hacking applications and an environment. Others can write a free version of CLIM. Greetings, Rainer Joswig From joswig@lavielle.com Fri, 27 Mar 1998 20:51:06 +0100 Date: Fri, 27 Mar 1998 20:51:06 +0100 From: Rainer Joswig joswig@lavielle.com Subject: CLIM At 11:10 27.03.98 -0800, Mike McDonald wrote: >>Since I know there are a lot of "old timer's" here, I thought I'd ask >>a question. Was CLIM the whole windowing system protocol on genera? >>I seem to remember some mention of Silica or something riding >>underneath... CLIM is not a windowing system. It is an UIMS (User Interface Management System). It provides the programming interface for an abstract windowing system. The CLIM backend then will be attached to a particular window system (Macintosh Common Lisp uses the Mac window system with their special view classes). CLIM 2 also allows a host specific look and feel. You are writing your application and it will look according to the host window (graphics) system (X, DW, Win, Mac, (Postscript), ...). Silica is a special software layer inside of CLIM (developed by Xerox), that enables you to have an abstract way to handle window regions, their relationship, input and output in them, etc. This is an important part for a portable UIMS. CLIM does provide APIs for graphics, menus, commands, windows, application frames, presentations, redrawing, high-level input/output, formatted output, output recording, events, ... CLIM does a lot for the user. Applications can get graphical user interfaces often without changing the underlying code - thanks to the concept of presentations. See also: A general introduction into the ideas of CLIM: http://kogs-www.informatik.uni-hamburg.de/~moeller/uims-clim/clim-intro.html Simple CLIM example programs: http://kogs-www.informatik.uni-hamburg.de/~moeller/clim-examples/ Screen shots of those example programs: http://kogs-www.informatik.uni-hamburg.de/~moeller/clim-examples/clim-examples-images/screen-shots.html A concept oriented generic graphics editor in CLIM: http://kogs-www.informatik.uni-hamburg.de/~mwessel/gened.html http://kogs-www.informatik.uni-hamburg.de/~haarslev/publications/vl96/paper.html A graphical language for GIS queries, implemented with CLIM: http://kogs-www.informatik.uni-hamburg.de/~mwessel/visco.html See also the (old) CLIM archive at: ftp://ftp.digitool.com/pub/clim/ From mikemac@teleport.com Fri, 27 Mar 1998 12:03:20 -0800 (PST) Date: Fri, 27 Mar 1998 12:03:20 -0800 (PST) From: Mike McDonald mikemac@teleport.com Subject: Lisp Machines >Date: Fri, 27 Mar 1998 20:29:33 +0100 >To: lispos@math.gatech.edu >From: Rainer Joswig >Subject: Re: Lisp Machines > >At 11:05 27.03.98 -0800, Mike McDonald wrote: > >> I think I'd prefer CLIM to Composer. It's more of an "open" standard >>than Composer is. But by no means do I think CLIM is THE windowing >>system. > >Composer is a collection of tools for the development system. > Whoops! Sorry, I got confused with their Common Windows stuff. >> I think CMUCL would be the longer term base. In the meantime, use >>either ACL or CMUCL. A lot of the stuff that needs to be written can >>be done so in pure CL. > >At LUGM 98 Franz agreed to provide an implementation (in binary >form) of CLIM 2 for Linux ACL. It will be available under >the same terms as ACL for Linux (free for non commercial use). >A friend of mine already got the CLIM source from Franz >for doing this port to Linux (plus Motif). > I guess I can stop my work on implementing CLIM then. The only problem is the license for ACL for Linux has expired (even though Franz is still letting people download it). Does your friend need help porting CLIM? >So Linux users will have a quality CL and CLIM implementation >to start hacking applications and an environment. > I can't wait! >Others can write a free version of CLIM. Maybe later after I play with Franz's implementation. Mike McDonald mikemac@mikemac.com From joswig@lavielle.com Fri, 27 Mar 1998 21:14:31 +0100 Date: Fri, 27 Mar 1998 21:14:31 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Lisp Machines At 12:03 27.03.98 -0800, Mike McDonald wrote: > I guess I can stop my work on implementing CLIM then. The only problem is >the license for ACL for Linux has expired (even though Franz is still letting >people download it). The license has been updated. From ptw@pobox.com Fri, 27 Mar 1998 15:20:54 -0500 Date: Fri, 27 Mar 1998 15:20:54 -0500 From: P. T. Withington ptw@pobox.com Subject: Why LispOS? On 3/24/98 22:29, J. Han wrote: >I bet many people who have never seen a live LispM would like >to hear the answer, too. Old timers: it's an open invitation to >tell your stories. Spill all the juicy details! Just a short example of some things I miss from the LispM: My LispM had been up for about 6 months. [Gee, that in itself is something I miss. Not having to reboot because my X server leaks so badly I'm lucky if I get 6 days of uptime.] While I was away on vacation, someone used my machine which they knew had a custom compiler loaded on it. This compiler was really just the LispM compiler, but by rebinding a few hooks in the compiler, it generated overlays for the boot ROM and front-end processor, which was really just a tiny Lisp system running in a special mode of the Ivory chip. Normally, the compilation environment was dumped to a database, which allowed restoring and generating new overlays for an existing version of the ROM. But I had been lazy and was working on a development version for about 3 months without dumping out my state. When I returned from vacation, I discovered that I had lost my state, because this someone had reloaded an old environment to build an overlay. It wasn't horrible, I could recompile all my sources to reconstruct the environment, but then it occured to me: I could just scroll back my output history, and look for *FEP-COMPILER* (the variable the environment hung off of). In Genera, output in the output history is not just text, it _is_ the object the text represents (in CLOS terms, it is a presentation). So I just searched backwards for *FEP-COMPILER*, looking for the first one that was not the current broken value. I found it, did a (SETQ *FEP-COMPILER* ) and was on my way. But, just for yuks, I noticed that I had only scrolled back about 2% of my output history. I did a meta-< to go to the top of my history, and looked at the date. Gee, my LispM has been "up" for nearly 6 months! I spent a while scrolling forward, somewhat mesmerized by seeing a record of everything I had been doing for the last 6 months. Even grabbed a couple of tables I had drawn to stick into a status report. My old hand office mate was amused. His machine had been up for a year and a half (since the last power failure), but he did admit that he had cleared his output history only 2 months ago... From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 21:38:28 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 21:38:28 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? Albeit yout mail is over 200 lines long, it is easy to reply, because most of it are personal comments. Unlike you, I have some respect for the list subscribers and even you. And as you make so little on-topic issues, a short reply will come about! And BTW, no, english is not my native language. Do you really have to resort to those sort of comments to make your point? You really are out of arguments, aren't you? Anyway I'll ignore all your useless personal comments and be as cordial as possible. >>>>> "cosc" == "cosc19z5@bayou uh edu" writes: cosc> I see you are new to computing in general then. Reliability is a cosc> feature that is independent of the ability of the operator. cosc> System A is either more reliable than system B or it is not, cosc> regardless of the operator. I guess that any one with enought privileges could bring any system unusable, and therefore unreliable in your terms. Am I right? That is not a criterium. And obviously, reliability cannot be defined in terms of the operator. The reasonable middle-term seems to be that there exists a way to prevent a user (without root for instance) to be unable to bring the system down. Anyway I guess there is no clear definition of reliability is in these terms. Do you have (constructive) suggestion? >> Windows designer as root, would probably trash the UNIX OS in seconds... cosc> There is no such thing as "root" under Windows. Why don't you I appologise for my bad english. I intended to say that a person who designed windows, or that only program under the conceptual framework Windows provides, would have difficulty at coping with full access to a UNIX box. Or in other words, people used to windows have a longer learning curve than the reverse. cosc> I got news for you, you've been flaming all along. Given what you have send to the mailing list, you have no authority to talk about flaming someone. I've never insulted you personally. The reverse is not true thou... >> Badly designed? Well, tell me that X is badly designed, and >> what GUI is well designed in your opinion! cosc> NextStep. Yeah! Finally something not personal! Congrats! NeXTstep was (is?) a great system, with a great design. Although it seems to me that it has much less flexibility than X has. For instance, is it trivial to run apps on a remote server? Well, for one thing, it is not closs-platform. And NeXTstep implementations on PC's (and now in Mac) were (are not yet) as efficient as in old 68040 machines... But I guess NeXT's DSP made all the difference. And how about window managers? X supports window managers that can change radically the look and feel. Guess that doesn't happen with NeXT. In general, X seems to me much more flexible than NeXT. But I really don't have much experience on working with NeXT... cosc> You're the only one fighting a Windows vs. Unix war. I said that cosc> Unix was not a good O/S, and you came to the conclusion that cosc> I was a Windows fanatic. Well, I prefer a WINxUNIX war than insult anyone in this list! >> Note that the people that >> usually reads this mailing list have technical expertise enough to >> know how Windows sucks... cosc> And technical expertise enough to know how Unix sucks... May I ask, if you say unix sucks, what is your reference level? What OS corresponds to the level 0, below which everything "sucks". (can you elaborate more than in terms of "do/don't suck"?) cosc> I'm not calling everyone on this mailing list stupid, I am only cosc> calling you stupid, and not because you like Unix, but just because ^^^^^^^^^^^^^^^^^^ Wow, you must have some ego problem... your need to insult people you don't even know... Can't be more explicit than that, can you? cosc> said], and you have a SERIOUS attitude problem which I intend cosc> to adjust... Really??? I only hope I never get as you are. I'd be ashamed of myself if I had to insult people (eg, call them stupid) in order to make my points clear. Am I supposed to be like you? Do you consider yourself a model of netiquete? really? That's a pity, because you seem to have valid technical ideas, which I'd like to discuss, if only you didn't insult people like that! You are more intelligent than that, aren't you? Please make an effort. I guess we all would appreciate that... Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From ptw@pobox.com Fri, 27 Mar 1998 15:50:56 -0500 Date: Fri, 27 Mar 1998 15:50:56 -0500 From: P. T. Withington ptw@pobox.com Subject: Let's begin SchemeOS On 3/25/98 20:59, Kragen wrote: >On Wed, 25 Mar 1998, Rodrigo Ventura wrote: >> Difficult for third reasons: first, the people that enter with >> the money may not want to make it public, second, those old lisp os' >> where made too many time ago, and many new fresh ideas were developed >> meanwhile, > >I doubt it. Actually, there hasn't been anything new invented in operating systems since Multics. From moribund@netgsi.com Fri, 27 Mar 1998 15:59:06 -0500 Date: Fri, 27 Mar 1998 15:59:06 -0500 From: Damond Walker moribund@netgsi.com Subject: ACL License.... was Re: Lisp Machines -----Original Message----- From: Rainer Joswig To: lispos@math.gatech.edu Date: Friday, March 27, 1998 3:28 PM Subject: Re: Lisp Machines >At 12:03 27.03.98 -0800, Mike McDonald wrote: [snip] > >The license has been updated. > Yes they did...They sent me a notice via email that basically said they were renewing the license free of charge... :) Damo From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 22:23:10 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 22:23:10 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Misc ideas & comments >>>>> "David" == David Tillman writes: David> Comments? How did Lip machines store user info? I have a LispM nearby, and I'll never forget the day I installed TCP/IP and tryed to telnet from a PC to the LispM. The LispM didn't even ask for user/passwd and gave me a lisp listener. Then, for fun, I tried "(shutdown)", and it worked! That day I realized I could never leave the LispM permanently connected to the net. Anyone could telnet and do the more horrible things to it. Even at the console there were no passwd. A "(login 'username)" was enought to get into anyones account. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From yoda@isr.ist.utl.pt Fri, 27 Mar 1998 22:26:37 +0100 (GMT+0100) Date: Fri, 27 Mar 1998 22:26:37 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Why LispOS? >>>>> "cosc" == "cosc19z5@bayou uh edu" writes: >> Albeit yout mail is over 200 lines long, it is easy to reply, >> because most of it are personal comments. Unlike you, I have some >> respect for the list subscribers and even you. And as you make so >> little on-topic issues, a short reply will come about! cosc> Why not have more respect and just don't respond. I made the mistake I explained why. Because you made some technical points I'd like to address. Nothing further. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From cosc19z5@bayou.uh.edu Fri, 27 Mar 1998 16:13:30 -0600 (CST) Date: Fri, 27 Mar 1998 16:13:30 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? > Albeit yout mail is over 200 lines long, it is easy to reply, > because most of it are personal comments. Unlike you, I have some > respect for the list subscribers and even you. And as you make so > little on-topic issues, a short reply will come about! Why not have more respect and just don't respond. I made the mistake of responding to your flames and I don't intend to do so again, so if you want to play another round of "mine is bigger than yours" take it to email. I won't bother to read or respond to anything you wrote and my apologies to the list for having responded to this person in public, it was best left to email. Regards, Ahmed [Big Snip] From kragen@pobox.com Fri, 27 Mar 1998 17:16:08 -0500 (EST) Date: Fri, 27 Mar 1998 17:16:08 -0500 (EST) From: Kragen kragen@pobox.com Subject: Let's begin SchemeOS On Fri, 27 Mar 1998, P. T. Withington wrote: > On 3/25/98 20:59, Kragen wrote: > >I doubt it. > > Actually, there hasn't been anything new invented in operating systems > since Multics. Nonsense. Many new things have been invented in OSes since then. But very few of them have made it into popular OSes. I suggest that a Lisp-based OS -- either a la the old LispMs, or a la the super-fancy-new single-level-store global-garbage-collected ideas that are being thrown around -- will be light-years ahead of any other commonly available OS. Except possibly EROS. Kragen From cosc19z5@bayou.uh.edu Fri, 27 Mar 1998 16:48:28 -0600 (CST) Date: Fri, 27 Mar 1998 16:48:28 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: OS Wars > >Isn't this a task for another mailing list? If memory serves me > >correctly, this list was split awhile ago into a VM and O/S list. > > > > I do think we should have two groups for such a thing. But I do like > the idea of having a VM at the core of all this...I'd hate to write some > lisp code and have it stuck under just Linux or FreeBSD or Windows because > of available development tools. This is where my memory gets fuzzy. Was the VM project designed to produce an independent VM, or one to which the other half of the LispOS project could plug in to? The same sort of thinking may have led to the conclusion that splitting would not be a bad idea anyhow. [Snip] > > > >I like the idea of starting with a shell first since that would > >be more apparent to the user and the true power of Lisp can > >shine. Getting something out that we can be proud of and show > >off to others early on is (IMO) a good idea, for morale and > >possibly new recruits. > > > > > Well, if we want to do this under Linux it's easy to get Allegro from > Franz. They have a pretty open policy regarding the use of their system > (basically, you can't sell the apps in a commercial environment). Or any of > the CL systems available....it really doesn't matter. Lets start working on > a shell then damnit! :) If someone does create a VM, we can move it then. I've got ACL on Win95. I'm not sure what kind of licensing restrictions are in place for that particular version, and without starting another O/S war, I don't want Linux on my machine. I think I'll read the license terms more closely, and also see what sort of O/S API functions exist in that version. One thing about ACL that I'm not overly fond of (at least on the Win95 version) is the way it considers a blank line entered in response to (read) to be an EOF. The behavior was annoying enough to get me to use Harlequin's FreeLisp instead, but I may have to bite the bullet and deal with it (it may not be a big deal anyway when the smoke clears). > > Features of the shell? Aside from scripting and the like... Console > based at the start... > Well, I posted my ideas of what such a shell would encompass under a topic like "CL OS Ideas". I may still have the mail archived or the original text hanging around somewhere if you are interested. I had some pretty detailed ideas in there that I'd use as a template for that particular project. The gist of it was "Lisp first, last and always". > > Damo > Regards, Ahmed From joswig@lavielle.com Fri, 27 Mar 1998 23:51:33 +0100 Date: Fri, 27 Mar 1998 23:51:33 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Why LispOS? At 21:38 27.03.98 +0100, Rodrigo Ventura wrote: >design. Although it seems to me that it has much less flexibility than >X has. For instance, is it trivial to run apps on a remote server? My response is about Windows (not NextStep). Windows can run applications over the Network. NT 5.0 will have this. The new Javastations from SUN should be able to connect to NT servers and run Windows displays. >Well, for one thing, it is not closs-platform. Win32 implementations are available for Unix. NextStep is cross platform (OpenStep, Yellow Box). > X supports window managers that can change radically the look and feel. Well, I would say this one of the biggest flaws with X. Window managers and desktop environments in X are generally either ugly (Motif), buggy (OpenWindows), poor on user experience (Motif, CDE, ...), desintegrated, non-standard exoticly designed, ... In general you can say that a common wm and desktop environment (CDE) has come much too late. Doesn't every keypress still go over the network in X? Actually I don't care that much about X Windows, the Symbolics can deal with several window systems at the same time, including X Windows. So it is possible to use the same Genera environment from its console (whether it is a LispMachine with its native windows system or a MacIvory with a Mac OS window system) and also from multiple X displays. > Guess that >doesn't happen with NeXT. In general, X seems to me much more flexible >than NeXT. Actually the Next system has an object oriented implementation and a nice UI designer (well this one has first seen light on a Mac written in Lisp). >"sucks". (can you elaborate more than in terms of "do/don't suck"?) Newton OS has a clever design. Some Unix systems also have a better design (on top of the more traditional and ugly parts of Unix), like AIX. The revolutionary OS that provides a radically different view is needed. Unix, Windows and MacOS are architecturewise misdesigned, bloated, buggy, expensive to maintain (guess how expensive the development of a Windows NT port to a different machine is?), old fashioned (since MacOS in 1984 the MacOS UI hasn't changed substantially, ...), really complicated to program, full of obsolete "tools" which each have different UIs with duplicated functionality all over the place (Unix), ... In part I would agree that a Lisp OS might not be an end user OS (Genera never was). Still I think you can design a system with all the Lisp features and put it in the hand of end users. Best example is the Newton OS. It is like a Lisp Machine objects all the way down, a frame based object system with persistent storage, GC, builtin compiler, fully dynamic, ... Imagine you can collect your information system wide in frames and you also can modify your schemas at will. Every user action will instantly stored, indexed, compressed without the need to ever press a save button or to determine a memory location (file, directory, ...). Imagine a clever design of your subsystem as CLOS components, your OS might be able to choose alternatives from a range of implementations or services. Every component is organized in an agent like fashion. Every component can provide information about its capabilities. Querying on the net for a certain service description (who can calculate the telephone log for telephone system lav1?) gets you a collection of agents and costs for their service. Then you will invoke one of these agents, given that you have enough "money" to pay them. Imagine data mining in large collections of live objects. Imagine a system that doesn't find information in files and hierarchical directories, but as results of queries. Those results can be displayed on 3d trees, walls, timelines, . Imagine those displays being directly connected to the real data. Just by clicking on them you will get all the context specific operations no matter what global context you are in. 3d/2d from day one. Imagine a system where the documentation does not come as dead collections of prerendered HTML files (which seems to be currently envogue), but via a server that generates the presentations of the data on the fly, by taking the users interest into account (developer, OS developer, student, interested in overviews, details, additional linked data, ...). Yes you will get indexes and content overviews instantly and for free. Adding documentation is just a matter of entering documentation records. Updating is instantanious and the information is system wide available. You can view the same documentation in your editor, from your browsers, in the shell - and it always looks perfect and provides the same navigation (just click on what your are interested). Imagine having a real "command" abstraction. The command can be invoked by keyboard, clicking, dragging, event, command line, voice, gestures, whatever. Still the underlying command has only to be implemented once. Have parsers for english-like command languages (Insert User Rainer Joswig, Add Host camille to the X Access List, Run The Telephone Log Calculation For Yestersay, Where is Rome?, What Are My Appointments For Tomorrow?, ...). Have links between data items. Actually most people are too blind to see what can be done and what would be really fun, because they are bound by what they know (Windows or Unix). They think commands have to have names like "grep" and "find ./bar -name foo -print". They think they have to have grey dialogs - those will depress them even more - like in Windows. The result is that they will copy, copy, reinvent, copy, and copy. The result is that progress is incremental - if at all. I'm now typing to a text editor, which is less capable than what my Lisp machine had ten years ago. Why? From ptw@pobox.com Fri, 27 Mar 1998 17:51:55 -0500 Date: Fri, 27 Mar 1998 17:51:55 -0500 From: P. T. Withington ptw@pobox.com Subject: Let's begin SchemeOS On 3/27/98 17:16, Kragen wrote: >On Fri, 27 Mar 1998, P. T. Withington wrote: >> On 3/25/98 20:59, Kragen wrote: >> >I doubt it. >> >> Actually, there hasn't been anything new invented in operating systems >> since Multics. > >Nonsense. Many new things have been invented in OSes since then. But >very few of them have made it into popular OSes. Not complete nonesense, since as you say there is little in commercial O/S's that was not in Multics. I have a hard time thinking of an example. But perhaps I should have inserted a sarcasm mark. >I suggest that a Lisp-based OS -- either a la the old LispMs, or a la >the super-fancy-new single-level-store global-garbage-collected ideas >that are being thrown around -- will be light-years ahead of any other >commonly available OS. Except possibly EROS. I'm not familiar with EROS. Reference? I think the biggest thing that could distinguish a LispOS would be support for garbage collection in the VM system. Despite the success of some garbage collectors running over stock O/S's there is much more that could be done if the GC and VM were more tightly bound (as they were in the LispM). From joswig@lavielle.com Fri, 27 Mar 1998 23:54:24 +0100 Date: Fri, 27 Mar 1998 23:54:24 +0100 From: Rainer Joswig joswig@lavielle.com Subject: Misc ideas & comments At 22:23 27.03.98 +0100, Rodrigo Ventura wrote: >>>>>> "David" == David Tillman writes: > > David> Comments? How did Lip machines store user info? > > I have a LispM nearby, and I'll never forget the day I >installed TCP/IP and tryed to telnet from a PC to the LispM. The LispM >didn't even ask for user/passwd and gave me a lisp listener. Then, for >fun, I tried "(shutdown)", and it worked! That day I realized I could >never leave the LispM permanently connected to the net. Anyone could >telnet and do the more horrible things to it. Even at the console >there were no passwd. A "(login 'username)" was enought to get into >anyones account. You can restrict access to trusted hosts. Agreed, nowadays would would need more. From tc@gauss.muc.de 28 Mar 1998 02:13:16 +0200 Date: 28 Mar 1998 02:13:16 +0200 From: Matthias Hoelzl tc tc@gauss.muc.de Subject: Misc ideas & comments Rodrigo Ventura writes: > 1. I tried RScheme, but it seemed to me too complicated, at > first in a first glance. After compiling everything, the whole tree > ocupied about 70MB of disk space. I had some difficulty to find the > main executable in the dense tree structure. I had to use "find > . -perm 111 -type f" to find it! But of course, this is my ignorance > speaking... The bottom line is that RScheme might be too complex to > allow a fairly good degree of exploration. And by the way, does > RScheme uses a virtual machine? This is my impression as well. I looked into the RScheme sources because I was looking for a Scheme system to which I could add a nice MOP based object system. In RScheme this is somewhat tedious to do because you have to update the Scheme code and quite a lot of hand-written C as well. Furthermore my (admittedly not very thorough) experiments with RScheme 0.7.1 indicated that performance was not too hot, even for compiled code. (RScheme can compile to C via the rsc module compiler, however you have to `make rsc' in the "src" directory to generate rsc, furthermore linking modules compiled with rsc v0.7.2 to the main executable fails on my Linux/glibc system. The default is to generate interpreted byte code.) > 2. Portability is a nice feature for LispOS. The easier way to > accomplish this is to make a platform-independent virtual machine. Of > course there are other paths, but they seem too complex to me > (gcc-like compiler). > > 3. Is the gcc's RTL processor-independent? If so, how about > using the RTL-down part of gcc to make LispOS? What is the greatest > difficulty of compiling scheme? The macro scheme? The need to stuff an > eval function with the compiled code? RTL is not processor independent. However gcc has the so called "tree" data structure, a somewhat higher level interface to the back end which is the right interface to hook a new front end to. You may want to read the header files "gcc/tree.def" and "gcc/tree.h". However the tree interface is not sufficient on its own, you need to generate a moderate amount of RTL as well. But this does not seem to be the main problem. Neither do I think that macros are very difficult, because they could be handled as a source-to-source translation by the front end. I think providing `eval' in itself is not a big problem since the performance of `eval' should not matter much, however allowing `eval' to change bindings seems to make many compiler optimizations impossible or at least very tricky. For my own part, I wouldn't mind a compiler that restricts `eval' somewhat more than the R5RS report. The three most important problems that I see when trying to interface a Scheme front end to the gcc back end are 1) As far as I can see there is no simple way to generate tail calls in the front end. Gcc does some tail call elimination in the back end, but not enough to be satisfying for a Scheme compiler (as far as I can figure out it only optimizes self-tail-calls). 2) The implementation of the stack handling needed to have efficient first class continuations seems very difficult to integrate with the gcc back end. The possibilities that I see right now are a setjmp/longjmp based stack copying approach, suitable only to use continuations for error handling; or managing your own runtime stack, which would somewhat defeat the aim of using the gcc back end. The cleanest approach would probably be to define some additional tree codes with corresponding implementation in the gcc back end. However this would be a largish undertaking, and since I'm no proficient C-hacker I don't think that I can handle this without a lot of support from people more familiar with both C and the gcc back end. 3) Would it be possible to compile Scheme function calls to be compatible with C calls so that it would be easy to interface to C? I think that calling C from Scheme would not be a problem, but that it would be necessary to create stubs for Scheme functions that can be called from C because you cannot simply stack-allocate all parameters to a Scheme function. However this seems a minor problem, since nobody will be calling many very small Scheme functions from C. I will investigate these points some more and then ask the people on the egcs mailing list whether I am on the right track and whether they would be willing to help with such an undertaking, however I am a bit sceptical. Answering my (undoubtedly many) question about the gcc back end would mean spending a lot of their time to help with a scheme front end to gcc and I suppose they are more interested in improving C and Fortran, since these are the languages they actually use themselves. Furthermore I am not really certain whether I want to spend that many hours writing a compiler that nobody will be interested in anyway. I'll keep you updated about the results of my inquiry and my future plans if you are interested. Note that these are the problems that I see specifically for writing a gcc front end; all the other hard problems in compiling Scheme or Common Lisp to efficient machine code remain, of course. Actually compiling Scheme is rather easy, a simple Scheme compiler written in Scheme is pretty straightforward (see SICP, ch. 5 for an example). The hard part is to compile to efficient code because you need to find out which variables do not escape so that you don't have to allocate them on the heap, which variables can only hold a certain type so that you can unbox them, which functions you can compile without templates and environment pointers, where you can lambda-lift, and so on. The problem is that many of these optimizations can only be done by a globally optimizing compiler; the good news is that the Stalin compiler demonstrates that it is indeed possible to generate good code from Scheme source. > 4. The experience I made with scheme48 ontop linux used a > statically linked scheme48vm. But maybe we could use dyn-load > explicitly. How about considering the dyn-linking mechanism a part of > the Linux kernel? It could make things easier for LispOS. Or maybe > not, because scheme linking is probably more demanding than plain > C-style linking. Maybe we'll need to use a lisp-prepared dyn-loader. Some Scheme interpreters (elk) seem to be able to get quite far with dlopen, I don't know whether it is flexible enough for all needs. However I mainly want a Lisp system that allows me to develop fast and small stand-alone-applications with easy integration with C/C++ libraries (currently I can either get fast and large by using a Common Lisp system, or small and slow by using Scheme); I realize that I am quite alone with this in the Lisp community. For my aims a batch compiler where I can link in an interpreter to do the development work and as a scripting language would be good enough. Matthias From kem@franz.com Fri, 27 Mar 1998 16:19:57 -0800 Date: Fri, 27 Mar 1998 16:19:57 -0800 From: Kelly Murray kem@franz.com Subject: Why LispOS? Yadda Yadda Yadda, Yakity Yak Yak It could go on forever, and in the end nothing has been done, and nothing has changed. I'll be unsubscribing from this list, so I don't have to be tortured any longer. As Will Hartung might have said (as was ignored), "It's the Applications, Stupid.". A CommonLisp implementation of Emacs would be at least useful. Byron Davies was also spot-on. Better technology is worthless unless it solves a real problem that creates significant value. It's the application(s) that create the real value, and AI was the application that carried Symbolics et al where they went. Remember, Symbolics tried to keep selling the "old Lisp Machine". Nobody was buying. Simply cloning it would yeild the same fate. I have personally made lots of progress towards my vision of a New Lisp Machine and the application(s) that will run on it. -Kelly Murray kem@franz.com Franz Inc P.S. I'm not at liberty to say what I've done or what I'm doing anymore. It's proprietary. :( From reti@ai.mit.edu Fri, 27 Mar 1998 20:00 -0500 Date: Fri, 27 Mar 1998 20:00 -0500 From: reti@ai.mit.edu reti@ai.mit.edu Subject: Misc ideas & comments Date: Fri, 27 Mar 1998 16:23 EST From: Rodrigo Ventura >>>>> "David" == David Tillman writes: David> Comments? How did Lip machines store user info? I have a LispM nearby, and I'll never forget the day I installed TCP/IP and tryed to telnet from a PC to the LispM. The LispM didn't even ask for user/passwd and gave me a lisp listener. For the record, this isn't quite accurate. You could alway deny any service by IP address (the concept of trusted hosts). It is true that in older releases the default was to trust anyone, but that was changed quite quickly to defaulting to trust no one. Then, for fun, I tried "(shutdown)", and it worked! That day I realized I could never leave the LispM permanently connected to the net. Anyone could telnet and do the more horrible things to it. Even at the console there were no passwd. A "(login 'username)" was enought to get into anyones account. Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From kragen@pobox.com Fri, 27 Mar 1998 21:44:25 -0500 (EST) Date: Fri, 27 Mar 1998 21:44:25 -0500 (EST) From: Kragen kragen@pobox.com Subject: Let's begin SchemeOS On Fri, 27 Mar 1998, P. T. Withington wrote: > >I suggest that a Lisp-based OS -- either a la the old LispMs, or a la > >the super-fancy-new single-level-store global-garbage-collected ideas > >that are being thrown around -- will be light-years ahead of any other > >commonly available OS. Except possibly EROS. > > I'm not familiar with EROS. Reference? EROS is an OS similar to KeyKOS. It's got security based on the same capability model, which allows very fine division of privilege, and which requires that programs state by what authority they request some action taken when they take the action. This prevents confused-deputy problems, which have been a fair majority of the problems reported on BUGTRAQ while I've been reading it. This sounds awfully slow, but KeyKOS is supposedly quite efficient; a Unix emulator built atop it in the late 80s was comparable in speed to real Unix on the same hardware, and much faster in some areas. EROS also does transparent checkpointing persistence (like KeyKOS), and has a single-level store (which means virtual memory *is* the filesystem). EROS pages are at . It will have some features that LispMs didn't have. > I think the biggest thing that could distinguish a LispOS would be > support for garbage collection in the VM system. That, and the Babel-free characteristic: every part of the system could be programmed in the same way. Input conversions? Lisp. Output conversions? Lisp. Command-lines? Lisp. Scripting? Lisp. GUI development? Lisp. Application development? Lisp. Of course, you could write other languages that compiled into Lisp, or other syntaxes for Lisp, but the Babel-free characteristic would mean that it would be possible to use them -- possibly with reasonable performance -- for anything you could use Lisp for. So the user would be in control of what language they used. Kragen From ptw@pobox.com Fri, 27 Mar 1998 22:22:25 -0500 Date: Fri, 27 Mar 1998 22:22:25 -0500 From: P. T. Withington ptw@pobox.com Subject: Misc ideas & comments On 3/27/98 20:00, Kalman Reti wrote: > Date: Fri, 27 Mar 1998 16:23 EST > From: Rodrigo Ventura [...] > I have a LispM nearby, and I'll never forget the day I > installed TCP/IP and tryed to telnet from a PC to the LispM. The LispM > didn't even ask for user/passwd and gave me a lisp listener. > >For the record, this isn't quite accurate. You could alway deny any service >by IP address (the concept of trusted hosts). It is true that in older >releases >the default was to trust anyone, but that was changed quite quickly to >defaulting >to trust no one. And, no LispM was ever infected by the Internet Worm. The day of the worm the SMTP logs showed some invalid transactions that were ignored. Nothing more. From reti@ai.mit.edu Fri, 27 Mar 1998 22:28 -0500 Date: Fri, 27 Mar 1998 22:28 -0500 From: reti@ai.mit.edu reti@ai.mit.edu Subject: Why LispOS? Date: Tue, 24 Mar 1998 19:16 EST From: Mike McDonald >To: lispos@math.gatech.edu >Subject: Why LispOS? >Date: Tue, 24 Mar 1998 14:58:54 -0800 >From: Fred Gilham >Perhaps this has been discussed before, but I'm curious about why >people want LispOS. What do we expect it to do for us that just >running some lisp system on unix won't? Well, I think people have gotten carried away with the OS part. There's a belief that memory management and scheduler HAVE to be written in Lisp for a "LispOS". Sure, given time and EXPERIENCE, that'd be nice. But I think a whole lot can be down running on top of an existing OS, be it some Unix derivitive or even some version of WinDoze. Or all of the above! From the user's environment point of view, it should NOT matter what the underlying OS is. Abstract it and wrap into oblivion! The benefit of having the OS written in Lisp is that you can extend and/or modify it as easily as anything else. I worked at several projects at Symbolics in which we had to change or tweak what would be part of an inaccessible operating system kernel (e.g. disk drivers, network drivers, scheduler). >I'd love to be able to slip a CD in my Intel box and an hour later >have a Symbolics look-alike. But I can get along with what I have. >Is there anyone on this list who is just foaming at the mouth :-) to >create the Symbolics look-alike? > >-Fred Gilham gilham@csl.sri.com > That's what some of us old farts are interested in. Unfortunately, very few on this list have ever seen a Symbolics let alone used one. So most people don't understand when we reminisce about the glories of Genera! Mike McDonald mikemac@mikemac.com From mikemac@mikemac.com Fri, 27 Mar 1998 20:02:46 -0800 Date: Fri, 27 Mar 1998 20:02:46 -0800 From: Mike McDonald mikemac@mikemac.com Subject: Why LispOS? >To: lispos@math.gatech.edu >Subject: Re: Why LispOS? >Date: Fri, 27 Mar 1998 16:19:57 -0800 >From: Kelly Murray >Byron Davies was also spot-on. Better technology is worthless >unless it solves a real problem that creates significant value. >It's the application(s) that create the real value, and AI was >the application that carried Symbolics et al where they went. >Remember, Symbolics tried to keep selling the "old Lisp Machine". >Nobody was buying. Simply cloning it would yeild the same fate. My goal doesn't care one iota whether or not a LispOS would take over the world or not. I'm interested in it for my own enjoyment, pure and simple. >I have personally made lots of progress towards my vision >of a New Lisp Machine and the application(s) that will run on it. > >-Kelly Murray kem@franz.com Franz Inc Unfortunately for this project, like Mr. Coleman, I too have been diverted from this work by a female. I'm getting hitched in October. Hmm, maybe M$ is sending women at us single guys to keep us from getting anything done! :-) >P.S. I'm not at liberty to say what I've done or > what I'm doing anymore. It's proprietary. :( > I guess we'll find out when ACL 5.0 hits the streets. Maybe? Mike McDonald mikemac@mikemac.com From cosc19z5@bayou.uh.edu Fri, 27 Mar 1998 23:46:22 -0600 (CST) Date: Fri, 27 Mar 1998 23:46:22 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Why LispOS? > >Byron Davies was also spot-on. Better technology is worthless > >unless it solves a real problem that creates significant value. > >It's the application(s) that create the real value, and AI was > >the application that carried Symbolics et al where they went. > >Remember, Symbolics tried to keep selling the "old Lisp Machine". > >Nobody was buying. Simply cloning it would yeild the same fate. > > My goal doesn't care one iota whether or not a LispOS would take > over the world or not. I'm interested in it for my own enjoyment, pure > and simple. I would enjoy working on such a project since I would get to code in Lisp, and I also would be developing something exciting and different. I would be contributing to the advancement of computing in some way. Ideas and thoughts would be made concrete by implementation, and that is tremendously gratifying. But to say that I don't care at all whether or not LispOS would take over the world would not be quite true. I would enjoy the project every bit as much, but I also would like to see others using it. I would like to see it out there influencing the course of events, and leading to other designs being based upon it. That's the second part of the joy, although the first is vastly greater. [Snip] > Unfortunately for this project, like Mr. Coleman, I too have been > diverted from this work by a female. I'm getting hitched in October. > Hmm, maybe M$ is sending women at us single guys to keep us from > getting anything done! :-) Hey, I'm single and I'm gonna write a LispOS -- do you hear me M$? Send the women c/o Ahmed, in Houston, Texas!!! :) [Snip] > Mike McDonald > mikemac@mikemac.com > Regards, Ahmed From cosc19z5@bayou.uh.edu Sat, 28 Mar 1998 00:20:51 -0600 (CST) Date: Sat, 28 Mar 1998 00:20:51 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Source Code Repository? While there isn't a concerted effort to work on a LispOS yet (and there may not be one), there do seem to be people here and there working on relevant projects. In the hopes of doing everything humanly possible to bring this dream to fruition, I was wondering if there was a site that could serve as a host to hold the results of these various projects, with descriptions, so that others can pick through them and possibly extend them, or derive inspiration from them? I don't have a web page or ftp site so I can't host it. I know that a few people volunteered to have sites hold duty rosters and what not, but this was a very long time ago, and who knows if they are even still on here. So with that said, is there such a site? Is anyone interested in maintaining such a site? I'm currently doing some prototype/proof-of-concept work that has (at least) indirect applicability to a Lisp shell, and I would be more than happy to post the results (project and notes) to such a site. Anything I do that is related to this project, or could have any sort of applicability to this project will be sent to the site. Even concrete notes (specific features and possible implementation strategies that others can try to test out with code) could be fair game. Any takers? Regards, Ahmed From davies@pobox.com Fri, 27 Mar 1998 23:28:57 -0700 Date: Fri, 27 Mar 1998 23:28:57 -0700 From: Byron Davies davies@pobox.com Subject: Netscape, GPL & Lisp The source code for Netscape Navigator turns GPL on March 31. How about reimplementing it in Common Lisp, providing a Lisp-based desktop primed for further innovation? Byron From chrisb@Ans.Com.Au Sat, 28 Mar 1998 07:49:35 +0000 Date: Sat, 28 Mar 1998 07:49:35 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Kelly Murray wrote: > > Yadda Yadda Yadda, Yakity Yak Yak > > It could go on forever, and in the end nothing has been done, > and nothing has changed. I'll be unsubscribing from this list, > > I have personally made lots of progress towards my vision > of a New Lisp Machine and the application(s) that will run on it. > > -Kelly Murray kem@franz.com Franz Inc > > P.S. I'm not at liberty to say what I've done or > what I'm doing anymore. It's proprietary. :( Yeah, well it's all very well to complain that we havn't done much and you have, when you're getting paid to develop something. Instead of whining, why don't you help with the 'net effort? Nah, you're too busy building something proprietry right? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From chrisb@Ans.Com.Au Sat, 28 Mar 1998 07:58:30 +0000 Date: Sat, 28 Mar 1998 07:58:30 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Netscape, GPL & Lisp Byron Davies wrote: > > The source code for Netscape Navigator turns GPL on March 31. Well, it doesn't actually turn GPL, but it does turn free, which is close enough. > How about > reimplementing it in Common Lisp, providing a Lisp-based desktop primed for > further innovation? If you're going to reimplement it, what does it matter if you have the source code or not (since it is written in C and C++)? -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From papresco@technologist.com Sat, 28 Mar 1998 06:57:56 -0500 Date: Sat, 28 Mar 1998 06:57:56 -0500 From: Paul Prescod papresco@technologist.com Subject: Misc ideas & comments P. T. Withington wrote: > > And, no LispM was ever infected by the Internet Worm. The day of the > worm the SMTP logs showed some invalid transactions that were ignored. > Nothing more. Well, the worm was specifically targeted at a *unix* bug. It wouldn't bother a Lisp Machine, but it wouldn't have bothered a DOS machine either. That doesn't prove anything interesting! Paul Prescod - http://itrc.uwaterloo.ca/~papresco Did you know that the Canadian government routinely acts in violation of its modern constitution and the British North America act that created it? See: http://kafka.uvic.ca/~vipirg/SISIS/Lil'Wat/treason.html From yoda@isr.ist.utl.pt Sat, 28 Mar 1998 13:38:33 +0100 (GMT+0100) Date: Sat, 28 Mar 1998 13:38:33 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Source Code Repository? At the beginnings of the project, a web page was constructed to support the projects: http://www.eval-apply.com/LispOS/ Afterwards, the list sort of died, and now is alive again. (did we all stand waiting for the never-coming flux-kit?) Regards, -- -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From chrisb@Ans.Com.Au Sat, 28 Mar 1998 13:04:32 +0000 Date: Sat, 28 Mar 1998 13:04:32 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Misc ideas & comments > And, no LispM was ever infected by the Internet Worm. The day of the > worm the SMTP logs showed some invalid transactions that were ignored. > Nothing more. In a way, that's nothing to be proud of. The internet worm was designed to exploit weaknesses in the most popular machine architectures. The fact that the Lispm wasn't one of them is more an indication that it wasn't popular enough to be bothered hacking. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From zhivago@iglou.com Sat, 28 Mar 1998 09:03:51 -0500 (EST) Date: Sat, 28 Mar 1998 09:03:51 -0500 (EST) From: BRIAN SPILSBURY zhivago@iglou.com Subject: Why LispOS? > Yeah, well it's all very well to complain that we havn't done > much and you have, when you're getting paid to develop something. > Instead of whining, why don't you help with the 'net effort? Nah, > you're too busy building something proprietry right? > > -- > Chris Bitmead This is somewhat uncalled for, kelly has contributed a lot to this list, especially last time it was active. His cynicism is well founded and does not need this kind of snide reply. Why did the list die down last time? Not because it had any different ideas to this time, but because nothing got started. People stopped talking once it was clear that nothing was happening, and either went away or went off to start something, and come back when they had a core to build upon. If you want the list to serve a purpose you'll need to get several people to agree on doing something, and co-ordinate via the list, or wait until someone who has gone away has a core they consider worthy of being built upon. Those are your two choices. Pick one. From chrisb@Ans.Com.Au Sat, 28 Mar 1998 14:30:33 +0000 Date: Sat, 28 Mar 1998 14:30:33 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? BRIAN SPILSBURY wrote: > This is somewhat uncalled for, kelly has contributed a lot to this > list, Sounds to me like he's sucked our minds for ideas, skulked off and built something proprietry, and now he's having a whinge that we havn't done anything. Maybe this is unfair, but I found it a bit offensive. > especially last time it was active. His cynicism is well founded > and does not need this kind of snide reply. > > Why did the list die down last time? Not because it had any different > ideas to this time, but because nothing got started. People stopped > talking once it was clear that nothing was happening, and either went > away or went off to start something, and come back when they had a core > to build upon. > > If you want the list to serve a purpose you'll need to get several people > to agree on doing something, and co-ordinate via the list, or wait until > someone who has gone away has a core they consider worthy of being built > upon. > > Those are your two choices. > Pick one. From jordan@Starbase.NeoSoft.COM Sat, 28 Mar 1998 08:41:29 -0600 (CST) Date: Sat, 28 Mar 1998 08:41:29 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: Why LispOS? As far as I can see, much of the advancement in every field has come from people building "something proprietary". There's a lesson here. Mr. Murray doesn't get paid to talk about his exciting vision, he's paid to implement it. > > Kelly Murray wrote: > > > > Yadda Yadda Yadda, Yakity Yak Yak > > > > It could go on forever, and in the end nothing has been done, > > and nothing has changed. I'll be unsubscribing from this list, > > > > I have personally made lots of progress towards my vision > > of a New Lisp Machine and the application(s) that will run on it. > > > > -Kelly Murray kem@franz.com Franz Inc > > > > P.S. I'm not at liberty to say what I've done or > > what I'm doing anymore. It's proprietary. :( > > Yeah, well it's all very well to complain that we havn't done > much and you have, when you're getting paid to develop something. > Instead of whining, why don't you help with the 'net effort? Nah, > you're too busy building something proprietry right? > > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au > > From moribund@netgsi.com Sat, 28 Mar 1998 09:48:06 -0500 (EST) Date: Sat, 28 Mar 1998 09:48:06 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: Source Code Repository? On Sat, 28 Mar 1998, Rodrigo Ventura wrote: > > At the beginnings of the project, a web page was constructed > to support the projects: > http://www.eval-apply.com/LispOS/ > And on a side note, the company that hosts the site is about 15 miles away from where I live...I've been meaning to give these guys a call and go visit them. Is there anything on the site talking about features of an initial shell? Damo From zhivago@iglou.com Sat, 28 Mar 1998 09:54:30 -0500 (EST) Date: Sat, 28 Mar 1998 09:54:30 -0500 (EST) From: BRIAN SPILSBURY zhivago@iglou.com Subject: Why LispOS? > BRIAN SPILSBURY wrote: > > > This is somewhat uncalled for, kelly has contributed a lot to this > > list, > > Sounds to me like he's sucked our minds for ideas, skulked off > and built something proprietry, and now he's having a whinge that > we havn't done anything. > > Maybe this is unfair, but I found it a bit offensive. He is employed to produce propriatary products. If he has gained ideas from this, then all the better. This is supposed to be an open system surely? In any case I would at credit him with more honour that you are giving him. This is off topic, and doesn't really matter, but I would rather the lisp community behaved with honour, otherwise what chance do we have? Brian From moribund@netgsi.com Sat, 28 Mar 1998 10:19:18 -0500 (EST) Date: Sat, 28 Mar 1998 10:19:18 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: Why LispOS? On Sat, 28 Mar 1998, BRIAN SPILSBURY wrote: > If you want the list to serve a purpose you'll need to get several people > to agree on doing something, and co-ordinate via the list, or wait until > someone who has gone away has a core they consider worthy of being built > upon. > Hell, I'd take a core that isn't worthy to build on at this point... Has anyone built anything that could be considered a start? And no, I don't mean that in any hurtful, harmful, or flame inducing way. I've tinkerd with some stuff but nothing beyond 10 or 20 lines here or there. Damo From jordan@Starbase.NeoSoft.COM Sat, 28 Mar 1998 09:35:02 -0600 (CST) Date: Sat, 28 Mar 1998 09:35:02 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: Netscape, GPL & Lisp > > Byron Davies wrote: > > > > The source code for Netscape Navigator turns GPL on March 31. > > Well, it doesn't actually turn GPL, but it does turn free, which > is close enough. > > > How about > > reimplementing it in Common Lisp, providing a Lisp-based desktop primed for > > further innovation? > > If you're going to reimplement it, what does it matter if you > have the source code or not (since it is written in C and C++)? > It's called design recovery. Coding is actually only a small part of implementing real world systems. Design and redesign is a more daunting task. Even if you put something out that doesn't have a lot of design thought into it up-front, it will get design time put into it as it's used and reworked (evolutionary design). One use of Netscape would be to rip out all the Javascript/Java scripting and replace it with some kind of Lisp system. Then, you'd have the start of a portable GUI for Lisp development that already supported HTML for documentation, FTP for updates and be MIME aware for everything else. > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au > > From dmason@scs.Ryerson.CA Sat, 28 Mar 1998 10:40:46 -0500 Date: Sat, 28 Mar 1998 10:40:46 -0500 From: Dave Mason dmason@scs.Ryerson.CA Subject: LISPOS: My manifesto BRIAN SPILSBURY writes: > Why did the list die down last time? Not because it had any different > ideas to this time, but because nothing got started. People stopped > talking once it was clear that nothing was happening, and either went > away or went off to start something, and come back when they had a core > to build upon. > > If you want the list to serve a purpose you'll need to get several people > to agree on doing something, and co-ordinate via the list, or wait until > someone who has gone away has a core they consider worthy of being built > upon. I think we should work in parallel as much as possible. If some people want to work in CL, cool; if some people want to get down to the silicon, cool; let them do it. I wish them good luck, and think that (at least the latter) is a fine project (but see points 5,6 of my last paragraph). But, I want to make *my* life better, as well as the maximum number of other people, within the context of what I can do. So here is what I am doing: 1) Adopting Rscheme. It has a nice object system that goes all the way down. Not full-blown CLOS, but, in the words of the prime Rscheme author, ``the closest that we know how to do efficiently, today''. It has a high-quality garbage collector. It has persistent store. It has a compiler to C, and a good byte-code compiler. It has bindings to Posix, Unix, and X11. It is under active development and support. Yes, it has a big footprint, but memory and disk is cheap, and see #7, below. 2) Adopting Unix and X11. I'll be doing my development on Linux and Solaris, but everything should be portable to other (at least Unix) platforms. X11 may not be the best, but it's certainly good enough, and it's time that the Lisp community got the message from Dick Gabriel's paper! Linux will, arguably become the #2 operating system on desk-tops over the next few years, and I want to leverage off that. Despite the contentions of one lone voice, Windows isn't a platform that *I* would even consider running on for longer than I have to, let alone develop on. I may hate Unix, but it's the best of a bad bunch. 3) I have a thesis student building a RScheme-based window manager for X11. It will be clean, flexible, and Scheme from top-to-bottom; from customization language on up. 4) I will build a RScheme-based web browser for X11. (Netscape is driving me nutty, and doesn't have the flexibility I want. IE is, of course, orders of magnitude worse.) 5) I'm planning to hire a student to work on a free CLIM port to RScheme/X11 this summer. If anyone has advice, particularly on priority items and appropriate directions, I'd be more than happy to hear them. I haven't used CLIM, but it looks like a good system and I'd rather we followed existing, good, standards than make up new ones. 6) I have some significant extensions to a HTTP server that Donovan Kolbly (the RScheme lead) started. Not quite ready for prime-time, but some very cool features. 7) My research is on whole-program-analysis compilers. I have the start of a Scheme front-end for this, and am expecting *very* high-quality results (fast/small executables) from this. This compiler is definitely in the category of slow/batch compilation at the moment, but my goal is to make the system as compatible with RScheme (especially in the area of Posix, Unix, and X11 bindings) as possible, so you can use RScheme for interactive work, then use my compiler to produce the final executable. Versions of 3,4,6 should be available by late June. 5 will be later in the summer, and 7 will be 8-12 months. Things I wish other people would do: 1) a cleaner, leaner, XEmacs, in Scheme using RScheme's objects; 2) port scsh to RScheme; 3) build utilities; 4) help write a free Scheme CLIM (The fact that there's one available for ACL is almost enough to convince me to work with CL instead of Scheme, but then I look at CL and the investment to learn all the libraries and I gag... but if it works for you, cool... regardless, I don't want to argue about it); 5) add extensions to the Linux brk system call to support better GC/VM interaction; 6) extend Linux loadable-modules to support loadable Scheme executables in the Linux kernel (this would give almost all the power I hear people wanting from a LISP-to-the-metal system, while leveraging off the billion Linux support people out there); 7) applications; applications; applications... ../Dave From cosc19z5@bayou.uh.edu Sat, 28 Mar 1998 10:40:31 -0600 (CST) Date: Sat, 28 Mar 1998 10:40:31 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: LISPOS: My manifesto [Snip] > > If you want the list to serve a purpose you'll need to get several people > > to agree on doing something, and co-ordinate via the list, or wait until > > someone who has gone away has a core they consider worthy of being built > > upon. > > I think we should work in parallel as much as possible. If some > people want to work in CL, cool; if some people want to get down to > the silicon, cool; let them do it. I wish them good luck, and think > that (at least the latter) is a fine project (but see points 5,6 of my > last paragraph). Alas, I agree. I was continuously whining about unity and leadership, and look where it got us? Nowhere. Work in parallel. Find something that interests you and work on it, and then release it for others to view and modify (GPL license?). Maybe one day, somebody will go web shopping and find all these related, yet separate projects, and decide to integrate them as hir own little project and we may have our O/S yet. Waiting for agreements is not going to work from what I've seen. I've already started some of my own work. It's trivial stuff, but it's a start, and I need it to answer some of my own issues with my idea of a Common Lisp Shell (a prototype of which is my next project). Rodrigo Ventura pointed out a site where you may upload the fruits of your labor: http://www.eval-apply.com/LispOS/ That's where I intend to release anything I do, finished or not, and if they'll accept notes as a form of work, that's where they will go. I encourage everyone to go browsing around there every so often, and work on something if you feel like it, even if you are sure your idea won't be taken up. It could form the basis for a better, new idea or may provide code that can be pulled out and integrated into another package. I intend to stop by there and look around shortly. Once we have people working all over the place, integration may eventually happen -- it's our best hope. At least we'll have the makings of some kind of foundation -- which is more than what we have now. [Snip -- list of things he's working on] I like it! You will be posting your results to the web site right? > Versions of 3,4,6 should be available by late June. 5 will be later > in the summer, and 7 will be 8-12 months. And a concrete date! Bless you man! > > Things I wish other people would do: > [Snip] > 3) build utilities; What I'm doing is prototypical, and while it may end up with enough functionality to be considered a utility, no attention to error checking or performance has been paid, hence some may regard it as a toy (and rightfully so). Still it will be out there and can be used until it is modified/re-written, or something better comes along. I also have possible plans for using it in my next project (no promises about when/if anything will be done, things are hectic around here so everything is in question). For now, everything I see myself doing in the immediate future and given the direction of this list is prototypes/toys. They will provide concrete implementations that can be used, but the only consideration will be on proving concepts and supplying functionality. Now, if the focus of the group were narrowed and a unified effort were brought about -- this might change. My development is occurring under Win95, and I'm using Harlequin's FreeLisp. Some development is occurring on an OSF/1 with a copy of CMUCL (circa 1994), so anything done in Winblows will be tested under Unix. So far I'm sticking to Common Lisp proper, and haven't moved out of the standard yet. This will most likely change when I start on the next project and that's when I'll have to break down and decide on Unix or Win, or make a concerted effort for some kind of dual functionality/portability. That is, if my attention hasn't been diverted by then. > > 4) help write a free Scheme CLIM (The fact that there's one available > for ACL is almost enough to convince me to work with CL instead of > Scheme, but then I look at CL and the investment to learn all the > libraries and I gag... but if it works for you, cool... regardless, > I don't want to argue about it); > I like CL for quite a few reasons. One feature that I'm finding particularly useful are keywords. Apart from allowing one to name arguments, they also provide the ability to mimic other syntaxes (please bear with me before you draw any conclusions). I think this idea was first brought home from this list or the scheme shell. For example, a traditional "if-then-else" construct: b then x y Can be used like: ( b :then x : y) While this may seem completely contradictory to the goal of making everything look like Lisp (rather than vice versa), it does come in handy when "Lisp-isizing" certain non-lisp applications, like SQL (my current project). For instance: select * from f where condition Can be modeled in Common Lisp by: (select '* :from f :where #'(lambda (x) (condition ...))) This construct is both familiar to users to Common Lisp, but also close enough syntactically to the SQL version to be familiar to SQL users as well. On a side note, use of the lambda in the :where adds some serious power (you now have the ability to format your tables and perform other side effecting as well as comparison operations all within the :where, and essentially for free from an implementation perspective). This is what I mean by "Lisp-isizing"; re-writing applications to take advantage of useful features of Lisp (in this case lambda expressions give "where" tremendous flexibility and power [I believe more so than the original SQL], and the price is free (CL programmers are familar with it and should be happy with it, and implementors need do almost nothing to implement it)). If applications won't benefit from Lisp-isizing, then IMO, they should be left alone (until such a time that we end up with a true O/S rather than a shell). [Snip] > 7) applications; applications; applications... Lisp-isize what can benefit from doing so, leave the others as is. Well, that may not be completely true, as one of my ideas for a Common Lisp Shell would require some measure of cooperation from the apps. But whether or not this even sees the light of day (or dies an unknown death) remains to be seen... > > ../Dave > Regards, Ahmed From cosc19z5@bayou.uh.edu Sat, 28 Mar 1998 10:43:18 -0600 (CST) Date: Sat, 28 Mar 1998 10:43:18 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Netscape, GPL & Lisp [Snip -- about Netscape] > > How about > > reimplementing it in Common Lisp, providing a Lisp-based desktop primed for > > further innovation? > > If you're going to reimplement it, what does it matter if you > have the source code or not (since it is written in C and C++)? > Well having source code may make re-doing it easier. Of course, I'm all in favor of changing the end product in the process (Lisp-isize it... I'm starting to sound like a freaking McDeath Burger commercial), and of course re-writes to take advantage of inherent Common Lisp features will diminish the value of having source, but I think it will still be a tremendous asset. > -- > Chris Bitmead > http://www.ans.com.au/~chrisb > mailto:chrisb@ans.com.au > Regards, Ahmed From davies@pobox.com Sat, 28 Mar 1998 10:32:09 -0700 Date: Sat, 28 Mar 1998 10:32:09 -0700 From: Byron Davies davies@pobox.com Subject: Netscape, GPL & Lisp [I meant to cc this to the list -- Byron] >If you're going to reimplement it, what does it matter if you >have the source code or not (since it is written in C and C++)? > >Chris Bitmead If you're saying that it would be easier to implement it from the demonstrated and documented behavior than from the C source code, you've got a point. Optimistically, I figure one could learn something from the source, even though in C, and then perhaps build on some of the classes already developed for CL-HTTP. But once again, the UI is the real problem -- unless we had Genera to start with ... Byron From coleman@math.gatech.edu Sat, 28 Mar 1998 13:12:49 -0500 Date: Sat, 28 Mar 1998 13:12:49 -0500 From: Richard Coleman coleman@math.gatech.edu Subject: LISPVM mailing list is closing down The mailing list "LISPVM@math.gatech.edu" is closing down. The mailing list "LISPOS@math.gatech.edu" will continue to operate as usual. I will announce my current plans for the lispos project in another message, probably tomorrow. -- Richard Coleman coleman@math.gatech.edu From cosc19z5@bayou.uh.edu Sat, 28 Mar 1998 12:31:29 -0600 (CST) Date: Sat, 28 Mar 1998 12:31:29 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: LISPVM mailing list is closing down > > The mailing list "LISPVM@math.gatech.edu" is closing > down. Why? [Snip] > > -- > Richard Coleman > coleman@math.gatech.edu > Regards, Ahmed From coleman@math.gatech.edu Sat, 28 Mar 1998 13:43:54 -0500 Date: Sat, 28 Mar 1998 13:43:54 -0500 From: Richard Coleman coleman@math.gatech.edu Subject: LISPVM mailing list is closing down > > > > The mailing list "LISPVM@math.gatech.edu" is closing > > down. > > Why? I'm re-targeting my current plans and aims. At least initially, this will not include the use of a separate virtual machine. I'm not saying that it is a bad idea, only that the scope of what I'm initially targeting is being narrowed. The general "lispos" mailing list will continue as usual. A few other more specialized lists will probably be created once I get a CVS tree created (hopefully within a week). I'll be announcing some initials targets tomorrow (I just got back from my honeymoon, so I'm still getting reorganized). -- Richard Coleman coleman@math.gatech.edu From mcr@wildcard.demon.co.uk Sat, 28 Mar 1998 19:17:16 +0000 Date: Sat, 28 Mar 1998 19:17:16 +0000 From: Martin Rodgers mcr@wildcard.demon.co.uk Subject: Why LispOS? At 13:22 27/03/98 +0100, Rainer Joswig wrote: >Some people want a Lisp OS because Unix sucks as much as Windows. > > (more oil in the fire. ;-) ) Then let me add some napalm. ;-) "An operating system is a collection of things that don't fit into a language. There shouldn't be one." 'Design Principles Behind Smalltalk', Daniel Ingalls, Byte August 1981 Wise words, IMHO. 16+ years later, I still agree with him. It's been 16 years of enforced compromise, but at least it gives me the "moral high ground" in OS wars. ;) This is mainly coz most OS advocates ignore users, and I make a distinction between software for my personal use (which I can choose), and software for professional use (which I cannot choose). As I said, enforced compromise. At last I'm finally beginning to build my dream machine. The 8 GB hard drive arrived yesterday, so I'm nearly there. ;) Martin Rodgers Enrapture Limited London, England -- You can never browse enough Future generations are relying on us It's a world we've made - Incubus We're living on a knife edge, looking for the ground -- Hawkwind From arthur@martigny.ai.mit.edu Sat, 28 Mar 1998 11:17:38 -0800 Date: Sat, 28 Mar 1998 11:17:38 -0800 From: Arthur A. Gleckler arthur@martigny.ai.mit.edu Subject: LISPOS: My manifesto At 10:40 AM 3/28/98 -0500, Dave Mason wrote: >Things I wish other people would do: > >1) a cleaner, leaner, XEmacs, in Scheme using RScheme's objects; Take a look at MIT Scheme's Edwin editor. It is a very accurate clone of GNU Emacs, developed just a few offices away from Stallman's office at MIT. It is written entirely in Scheme, except for a few primitives written in C, and has a much nicer, functional (in the technical sense) programming interface than Emacs. It is free -- not GPLed, but under a very nonrestrictive license. The major thing it lacks that GNU Emacs has is a huge library of packages. At one point, there was even a graduate student working on automatic translation of Emacs Lisp to Scheme for Edwin. Edwin would make an excellent starting point for such a project. From hbaker@netcom.com Sat, 28 Mar 1998 12:19:38 -0800 (PST) Date: Sat, 28 Mar 1998 12:19:38 -0800 (PST) From: Henry G. Baker hbaker@netcom.com Subject: Why LispOS? > At 13:22 27/03/98 +0100, Rainer Joswig > wrote: > >Some people want a Lisp OS because Unix sucks as much as Windows. > > (more oil in the fire. ;-) ) > > Then let me add some napalm. ;-) > "An operating system is a collection of things that don't fit into a language. > There shouldn't be one." > 'Design Principles Behind Smalltalk', Daniel Ingalls, Byte August 1981 > > Wise words, IMHO. 16+ years later, I still agree with him. > > Martin Rodgers I think that the statement "an operating system is a collection of things that don't fit into a language" actually goes back further than Dan Ingalls -- perhaps Dijkstra (??) said it?? I agree with Dan's ironic conclusion, however! The 'classic' defn of OS is that which deals with 'resources' rather than 'values'. A 'resource' is something that can't be copied and 'shared' like a 'value'. (The phrase 'sharing a resource' is a contradiction in terms; of course, the whole point of an OS is to guarantee that the resource is used mutually exclusively in time.) When languages acquire 'linear'/'unique' types as 'first-class' elements, then the distinction between language and OS can disappear. -- Henry Baker www/ftp directory URL: ftp://ftp.netcom.com/pub/hb/hbaker/home.html From vfr750@netcom.com Sat, 28 Mar 1998 20:15:17 -0800 (PST) Date: Sat, 28 Mar 1998 20:15:17 -0800 (PST) From: Will Hartung vfr750@netcom.com Subject: Why LispOS? > BRIAN SPILSBURY wrote: > > > This is somewhat uncalled for, kelly has contributed a lot to this > > list, > > Sounds to me like he's sucked our minds for ideas, skulked off > and built something proprietry, and now he's having a whinge that > we havn't done anything. > > Maybe this is unfair, but I found it a bit offensive. Ah, the only thing better than ignorance, is ignorance with a bull horn. Clearly, you weren't here. Kelly joined up to this list with the same goal as everyone else: Getting Lisp into the mainstream. Many felt a good path was via a LispOS, but Kelly thought different. His focus is more toward an advanced system Lisp Server for assorted applications, at least it was. Something that meshed with the computing world as we know it and it's assorted levels of Hell, rather than trying to supplant it entirely. While his ideas had some parallels with LispOS, it is fundamentally different. HE went off and worked on his own. He's been working on it for, what, at LEAST 6+ months. AND he's managed to convince his management that some of his time is worth the project he's working on. I'd get a lot more done on my Lisp Black project that I'm working on if I could get a few prime hours during the day when I'm conscious, than when I roll into the house at 7:30 and need to devote attentions to one of those female distractions that's been mentioned. But, my little project is going through, and I WILL get paid green backed federal reserve notes to implement my little gem in a classic Client/Server environment that had never HEARD of the word Lisp before. Kelly doesn't need me to defend him, but, frankly, you, Chris, don't have any idea what your talking about in regard to Kelly. So, please, just drop it. Regards, Will Hartung (vfr750@netcom.com) From jordan@Starbase.NeoSoft.COM Sat, 28 Mar 1998 23:04:58 -0600 (CST) Date: Sat, 28 Mar 1998 23:04:58 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: Why LispOS? Noah Friedman writes: > > >As far as I can see, much of the advancement in every > >field has come from people building "something proprietary". > > > >There's a lesson here. Mr. Murray doesn't get paid to > >talk about his exciting vision, he's paid to implement it. > > Yes, but until you actually have something to show for your work, taunting > us with "I'm working on this, but I won't tell you anything about it or > show it to you yet" makes me feel like responding with "then shut up about > it in the meantime already." Perhaps taunts will spur some to action. > > Is lispos supposed to be a vaporware product announcement mailing list, or > is it forum for people to discuss implementing a lisp OS in a more > cooperative fashion? I don't know what the lispos list is "supposed" to be, but I didn't see any product announcements, vaporware or otherwise. What I saw from Mr. Kelley was the expression of sentiments similar to those you yourself express below, along with his assertion that he'd made quite a bit of progress toward his vision, which he wasn't able to share with us due to it's proprietary nature. > And if you believe the latter isn't possible (after > reading this list silently for the last year, I'm not so convinced it is > anymore), why are you still on the list yourself? > A good question. Mr. Kelley has apparently decided to leave the list soon, as it appears that you may be doing as well. Perhaps I'm looking for something good to come out of all of this, although I'm also becoming increasingly convinced that this is not possible. -Jordan Henderson jordan@neosoft.com From friedman@splode.com Sat, 28 Mar 1998 22:44:34 -0800 (PST) Date: Sat, 28 Mar 1998 22:44:34 -0800 (PST) From: Noah Friedman friedman@splode.com Subject: Why LispOS? Jordan, I thought I'd share my opinion with you (whether you really wanted it or not) but didn't think the rest of the list really wanted to read my ranting. That's why I mailed you directly and didn't Cc the list; I'm not sure why you put the list back in when you replied. I don't "contribute" to this list very often because I'm too pressed for time to help, so talking about what I would or wouldn't like in a system, or whether other people's ideas are good or not, is not really for me to say. Whatever inability other folks may have regarding time, money, etc. to give to the project, it just seemed a slightly disingenuous to sign off the list but first taunt people with the fact that he found funding and we didn't. Great, that's a lot of help to the rest of us! But whatever. I didn't think that opinion beared sharing with anyone else. Sorry, folks. From chrisb@Ans.Com.Au Sun, 29 Mar 1998 10:35:27 +0000 Date: Sun, 29 Mar 1998 10:35:27 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: Why LispOS? Will Hartung wrote: >Ah, the only thing better than ignorance, is ignorance with a bull >horn. Clearly, you weren't here. I was here, but I don't recall you contributing anything back then. > Kelly joined up to this list with the same goal as everyone else: > Getting Lisp into the mainstream. Silly me, I thought the list was called "lispOS", no? > Many felt a good path was via a > LispOS, but Kelly thought different. His focus is more toward an > advanced system Lisp Server for assorted applications, at least it > was. Nonsense. He even contributed his own name for our project "SilkOS". >Something that meshed with the computing world as we know it and >it's assorted levels of Hell, rather than trying to supplant it >entirely. Nonsense. He told us way back that he was going to Franz management with the idea of (I quote) "define a simple lisp kernel layer" "replace UNIX cron" "replace sendmail, pop, web browser" "replace web server" If that isn't "supplanting entirely" what is there is now, then what is??? ...and that he was going to enlist the lispos mailing list people to "send me mail directly if they would like to help me work on my SilkMachine project." > you, Chris, don't > have any idea what your talking about in regard to Kelly. So, please, > just drop it. I don't think it goes against the spirit of this mailing list, set up to attempt to build a free LispOS, to state that I would have much preferred it if Kelly had taken our ideas, and built something with us (like he said he was going to do). Ok, so he has deliberately chosen not to work with us, so be it. If we all did that, then guaranteed that the free lisp OS will not be built. Then he comes back here and is surprised that nothing has been done when he has deliberately withheld his work from this project. I just find that just a tad hypocritical. No sorry, I find that very hypocritical. From mcr@wildcard.demon.co.uk Sun, 29 Mar 1998 13:59:22 +0000 Date: Sun, 29 Mar 1998 13:59:22 +0000 From: Martin Rodgers mcr@wildcard.demon.co.uk Subject: Why LispOS? At 12:19 28/03/98 -0800, "Henry G. Baker" wrote: >I think that the statement "an operating system is a collection of >things that don't fit into a language" actually goes back further than >Dan Ingalls -- perhaps Dijkstra (??) said it?? I agree with Dan's >ironic conclusion, however! I'm not at all suprised. Until now, my only information about it came from the Byte article. That's why I mentioned it here. ;) Thanks, >The 'classic' defn of OS is that which deals with 'resources' rather >than 'values'. A 'resource' is something that can't be copied and >'shared' like a 'value'. (The phrase 'sharing a resource' is a >contradiction in terms; of course, the whole point of an OS is to >guarantee that the resource is used mutually exclusively in time.) The terminology that most people use to describe such things is not always approriate. I still enjoy reading comp.os.research, of course. >When languages acquire 'linear'/'unique' types as 'first-class' >elements, then the distinction between language and OS can disappear. It would certainly be a good start. Perhaps this is the place to make it happen, but I suspect that not everyone here will agree. (There do seem to be some unsettled issues.) When this can be done, and enough of us agree that we wish to use it, and some of us actually create it (not necessarily in that order), we can move beyond the starting point. Meanwhile, I'd be happy if there was an OS written in, say, Clean. I don't know if (or how much) I'd use it, but I'd love to see it happen. I'd also love to see a LispOS happen. I'd love to use it, too. This, to me, is what distinguishes the hypothetical LispOS that we're discussing on this list from any existing LispOS, like Genera. It's possible that _this_ LispOS might run on a machine that I use. Martin Rodgers Enrapture Limited London, England -- You can never browse enough Future generations are relying on us It's a world we've made - Incubus We're living on a knife edge, looking for the ground -- Hawkwind From jordan@Starbase.NeoSoft.COM Sun, 29 Mar 1998 08:30:27 -0600 (CST) Date: Sun, 29 Mar 1998 08:30:27 -0600 (CST) From: Jordan Henderson jordan@Starbase.NeoSoft.COM Subject: Why LispOS? Noah, Sorry, that was my mistake. I didn't realize the list wasn't in on that conversation. I typically do not post private conversations to public forums. > > Jordan, > > I thought I'd share my opinion with you (whether you really wanted it or > not) but didn't think the rest of the list really wanted to read my > ranting. That's why I mailed you directly and didn't Cc the list; I'm not > sure why you put the list back in when you replied. > > I don't "contribute" to this list very often because I'm too pressed for > time to help, so talking about what I would or wouldn't like in a system, > or whether other people's ideas are good or not, is not really for me to > say. Whatever inability other folks may have regarding time, money, > etc. to give to the project, it just seemed a slightly disingenuous to sign > off the list but first taunt people with the fact that he found funding and > we didn't. Great, that's a lot of help to the rest of us! > > But whatever. I didn't think that opinion beared sharing with anyone else. > Sorry, folks. > From moribund@netgsi.com Sun, 29 Mar 1998 09:43:57 -0500 (EST) Date: Sun, 29 Mar 1998 09:43:57 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: Scsh? Has anyone looked at Scsh? It's a Unix shell, well, it's really a Scheme 48 system with hooks to the OS. You can type Scheme commands at the prompt or write scripts... The commands to launch apps seem a bit alien if your used to bash, but usable. It mostly compiles (had to comment out two lines of code...hasn't killed it yet but who knows) on RedHat 5. Could this be used as an example of where we want to go initially? Go to any search engine and look for it...infoseek returns a bunch of hits. Damond From martelli@iie.cnam.fr 29 Mar 1998 19:24:00 +0200 Date: 29 Mar 1998 19:24:00 +0200 From: Laurent Martelli martelli@iie.cnam.fr Subject: Minimum set of primitives? >>>>> "Kragen" == Kragen writes: Kragen> #1 is a little disturbing. It implies that the "minimal" set Kragen> depends on the machine you're using. If your machine is an Kragen> i386, it has instructions to do BCD arithmetic, for example. Kragen> Assuming some users of your Lisp have a use for BCD Kragen> arithmetic, you really ought to provide them with access to Kragen> the underlying machine's BCD arithmetic capabilities, instead Kragen> of forcing them to implement their own in Lisp. That's why the minimal set should be as hash lvel as possible, in order not to be machine dependent. But one could have different implementations of the min-set depending on the machine's CPU and other stuff. On a CPU with no mult instruction, the define that you gave would be a good choice. But of course if you have a mult on your CPU, you'd better take advantage of it. Ideally, we'd have several implementations for each service of the min-set. The choice of the implementation to use could be made at compile time of the kernel. We could extend the idea to non min-set services, so that an OS built on top of Unix uses the native FS (possibly to implement an object storage), whereas a from scratch version would implement its storage with the bare device. I know that you can access raw devices with Unix, but then you must have a partition for LispOS. The idea is the same as UMSDOS for linux (ext2fs on top of FAT). My dream is that you could give multiple definitions for each service, and the choive woudl be made at run time, depending on some kind of environment variables. A good compiler would be able to optimize a service implementation for the most used environments. The idea behind this is that dynamic binding is not needed all the times. I'd say that 90% of the times, static binding can be used. But one cannot determine exactly what the 90% are, so it's better to have the compiler do this. All this can be very nice if we have a well defined API. Let's say that you have written a little library management program for all the book sthat you have at home. It works pretty well because you do not have a lot of books. But if you want to use it for your university's library, a performance problem will arise. You could rewrite a part of the appli to use a database but you'd have to deal with 2 versions. You'd to do the binding at hand. Whereas with a dynamic binding, you'd just have to tell which implementation of the storage interface you want to use : high performance DB at university, poor man's FS at home. And the parts of the appli that use the storage interface don't care what implemenation will be used. Nor does the developpers. This is one way to have an open implementation. And I think that open implementation is an important issue. -- Laurent MARTELLI martelli@iie.cnam.fr http://www.iie.cnam.fr/~martelli/ From lynbech@daimi.aau.dk Sun, 29 Mar 1998 21:46:08 +0200 (CEST) Date: Sun, 29 Mar 1998 21:46:08 +0200 (CEST) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Scsh? I heard a talk with Olin Shivers about scsh, so heres a few points I picked up (and this will be as I understood it, you mileage may vary :-). Scsh is not (supposed to be) an interactive shell environment. They are looking into building that on top of it, but this is not what they consider the main point. The main point is what they call `process notation' which is a way to describe and start process handling stuff like forking and connecting input/output. It is also a philosophical project, attacking for instance the "little languages" concept of UNIX. So scsh is more like a scripting language that combine the power of scheme s a programming language with a real interface to the UNIX OS, such that one do get the power of UNIX in the scheme world. They got some nifty examples such as how to implement an awk like facility, using scheme. A good deal of work has gone into finding out what the process notation should look like and how to map UNIX abstractions (such as file handles) into a garbage collected (scheme) environment. Its pretty UNIX'oid in its view of the world but worth a study for anybody interested in integrating an OS with a highlevel language like Scheme. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From cosc19z5@bayou.uh.edu Mon, 30 Mar 1998 08:05:56 -0600 (CST) Date: Mon, 30 Mar 1998 08:05:56 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: LispOS Web Site Maintenance Hi all, With regards to the LispOS web site at: http://www.eval-apply.com/LispOS/ What is the maintenance situation on that? I ask because there is little information on there, and even that seems innaccurate/outdated. Furthermore, I seem unable to access the archive links. While I'm at it, what sort of procedures should be used for sending code to the archive (is this where we should send our work?). Do we start our own little work area or dump everything in the main area, do it by ftp, register with the maintainer, etc...? Some updates and information would be greatly appreciated. Regards, Ahmed From joswig@lavielle.com Mon, 30 Mar 1998 16:49:39 +0200 Date: Mon, 30 Mar 1998 16:49:39 +0200 From: Rainer Joswig joswig@lavielle.com Subject: LispOS Web Site Maintenance At 8:05 Uhr -0600 30.03.1998, cosc19z5@bayou.uh.edu wrote: >Hi all, > >With regards to the LispOS web site at: > http://www.eval-apply.com/LispOS/ > >What is the maintenance situation on that? I ask because >there is little information on there, and even that seems >innaccurate/outdated. Furthermore, I seem unable to >access the archive links. > >While I'm at it, what sort of procedures should be used >for sending code to the archive (is this where we should >send our work?). Do we start our own little work area >or dump everything in the main area, do it by ftp, register >with the maintainer, etc...? > >Some updates and information would be greatly appreciated. > >Regards, >Ahmed The ALU (Association of Lisp Users) is still trying to start their web site. Currently this is running on a conventional web server. They have a Linux PC, ACL and CL-HTTP. The MIT AI Lab has agreed to host the machine in their rooms. Maybe a participation can benefit both projects? I'm will try to move the www.lisp.de web site (which is hosted by us (Lavielle, on a conventional system)) to a NXP1000 with CL-HTTP as the web server. When you would like to show the usefulness of Lisp, "eat your own dog food". Which means show the benefit of a dynamic Lisp-based system. Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From hjstein@bfr.co.il 30 Mar 1998 18:06:10 +0300 Date: 30 Mar 1998 18:06:10 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Why LispOS? Kelly Murray writes: > Remember, Symbolics tried to keep selling the "old Lisp Machine". > Nobody was buying. Simply cloning it would yeild the same fate. Except that we're talking about a free version which runs on common hardware. -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From hjstein@bfr.co.il 30 Mar 1998 18:17:46 +0300 Date: 30 Mar 1998 18:17:46 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: LISPOS: My manifesto "Arthur A. Gleckler" writes: > At 10:40 AM 3/28/98 -0500, Dave Mason wrote: > > >Things I wish other people would do: > > > >1) a cleaner, leaner, XEmacs, in Scheme using RScheme's objects; > > Take a look at MIT Scheme's Edwin editor. It is a very accurate clone of > GNU Emacs, developed just a few offices away from Stallman's office at MIT. > It is written entirely in Scheme, except for a few primitives written in C, > and has a much nicer, functional (in the technical sense) programming > interface than Emacs. It is free -- not GPLed, but under a very > nonrestrictive license. The major thing it lacks that GNU Emacs has is a > huge library of packages. At one point, there was even a graduate student > working on automatic translation of Emacs Lisp to Scheme for Edwin. > > Edwin would make an excellent starting point for such a project. The Guile project was supposed to include translators from common languages, most notably elisp, to scheme. I don't know if they've gotten anywhere with that aspect, but if they have then maybe it could be used. BTW, regardless of whether the substrate is rscheme or cmucl, it'd be really cool to have both Scheme and Common Lisp support. Whichever's the substrate, we should have a reasonable implementation of the other language (not to mention elisp too). Then we can leverage off of Scheme, Common Lisp & elisp archives. -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From joswig@lavielle.com Mon, 30 Mar 1998 17:44:07 +0200 Date: Mon, 30 Mar 1998 17:44:07 +0200 From: Rainer Joswig joswig@lavielle.com Subject: LISPOS: My manifesto At 18:17 Uhr +0300 30.03.1998, Harvey J. Stein wrote: >BTW, regardless of whether the substrate is rscheme or cmucl, it'd be >really cool to have both Scheme and Common Lisp support. Whichever's >the substrate, we should have a reasonable implementation of the other >language (not to mention elisp too). For Common Lisp there is PseudoScheme (old but usable). Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From hjstein@bfr.co.il 30 Mar 1998 18:50:39 +0300 Date: 30 Mar 1998 18:50:39 +0300 From: Harvey J. Stein hjstein@bfr.co.il Subject: Misc ideas & comments tc@gauss.muc.de (Matthias Hoelzl tc) writes: > 1) As far as I can see there is no simple way to generate tail > calls in the front end. Gcc does some tail call elimination in the > back end, but not enough to be satisfying for a Scheme compiler (as far > as I can figure out it only optimizes self-tail-calls). It's not too hard if one's willing to use a different calling paradigm. I think that in C the caller sets up the stack, calls the routine, & cleans up the stack. If instead the called rtn were to clean up then it'd be easy to generate full tail-recursive code. When the caller is going to call a subroutine and just return the subroutine's return value, it could just replace its stack frame with the subroutine's stack frame and jump to the subroutine instead of calling the subroutine. You might also want to add a size into the stack to make it a little safer. Stallman had some ideas and interest regarding this. Doing it would allow more straight forward conversion of Scheme to C while preserving tail recursion. > I will investigate these points some more and then ask the people on > the egcs mailing list whether I am on the right track and whether they > would be willing to help with such an undertaking, however I am a bit > sceptical. Answering my (undoubtedly many) question about the gcc > back end would mean spending a lot of their time to help with a scheme > front end to gcc and I suppose they are more interested in improving C > and Fortran, since these are the languages they actually use > themselves. Furthermore I am not really certain whether I want to > spend that many hours writing a compiler that nobody will be > interested in anyway. I'll keep you updated about the results of my > inquiry and my future plans if you are interested. I'd encourage this. My impression is that the egcs people would be happy to have another front end integrated into the source tree. There's work on Ada and maybe even Pascal, as well as C & Fortran. > Some Scheme interpreters (elk) seem to be able to get quite far with > dlopen, I don't know whether it is flexible enough for all needs. > However I mainly want a Lisp system that allows me to develop fast and > small stand-alone-applications with easy integration with C/C++ > libraries (currently I can either get fast and large by using a Common > Lisp system, or small and slow by using Scheme); I realize that I am > quite alone with this in the Lisp community. For my aims a batch > compiler where I can link in an interpreter to do the development work > and as a scripting language would be good enough. You're not alone. I'd like it too. -- Harvey J. Stein Berger Financial Research hjstein@bfr.co.il From yoda@isr.ist.utl.pt Mon, 30 Mar 1998 16:58:59 +0100 (GMT+0100) Date: Mon, 30 Mar 1998 16:58:59 +0100 (GMT+0100) From: Rodrigo Ventura yoda@isr.ist.utl.pt Subject: Existencial problems on LispOS There have been significant postings to this group about the meaning of this project. The reason for the existence of this project is mainly based on "dreams" people have (me included) about a next-generation OS, based on some lisp dialect. But as someone pointed out previously, it is extremely difficult, if not worthless, to overcome all these year of software development based on C. The number of people interested on LispOS is also very reduced. I guess we must decide what we really want. I guess that the reasons why people believe in a LispOS are mostly passionate rather than objective ones. To illustrate this point, let me state three trends of discussion about what LispOS must become: 1. LispOS is a complete OS', and so we must start by writting a virtual machine, from scratch. This is a somehow similar approach to Java. But if we redesign the OS based on a completely different approach, then we'll have to re-write tons and tons of tools. We'll have to build at least a compiler, a user interface and a text editor, with levels of competence at least similar to Emacs. This not difficult, this is impossible! 2. We must start by picking up an existing lisp environment (CMUCL, RScheme, whatever) and start re-writting well-known tools. Someone refered porting XEmacs to scheme, and even netscape to scheme. This also seems to me virtually impossible, if we are looking for similar levels of competence. And how about the motivation? Nowadays we have XEmacs for almost any platform, it's working fine, it's an astounding piece of software. It took decades to evolve up to this present level. It's impossible to duplicate this work in an alternative platform, and how would you answer the question "why?". 3. All the current OS' sucks, and the LispOS will be our salvation. No doubt all current OS' have deficiencies, but the path to evolution is not yet clear. We can picture in our mind some ideal OS user interface, but the question is "how to do it". And is it clear that a lisp based system will accomplish this task? And reiterating the last point question: why duplicate the effort that brought current user-interfaces to today? Therefore there are two perspectives under which the LispOS project can be collocated: I. Make a LispOS from scratch -- the advantages of doing it this way must ve _very_ _clear_ from the start, and until now, only the persistent object storage is an appealing one. What are the really great features that this approach can bring, that would be impossible with another approach. The big problem of this approach is that we'll have to re-write many tools that are already written in other languages, and have been functioning for a long time now. II. Make LispOS ontop an existing platform -- so that we can use already written tools, like text editors, compilers, web browsers and a lot of other tools. The target here would be to make an extremely sofisticated desktop, that could make LispOS "not suck", using a popular expression in this list. But what are these features exactly? And isn't this a desktop environment project rather than a OS one? I appologise if this post sounds mostly a pessimistic one, but this is the way I'm viewing thing right now. It's great to discuss ideas which seem to have little contribution to the project development, but it's easy to get tired with it. And from a certain point the arguments start being repetitive. I guess the problem is that LispOS idea is so broad, it's difficult to focus into a specific project with a clear path. Regards, -- *** Rodrigo Martins de Matos Ventura, alias *** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda *** Instituto de Sistemas e Robotica, Polo de Lisboa *** Instituto Superior Tecnico, Lisboa, Portugal *** PGP Public Key available on my homepage *** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A From kragen@pobox.com Mon, 30 Mar 1998 12:11:12 -0500 (EST) Date: Mon, 30 Mar 1998 12:11:12 -0500 (EST) From: Kragen kragen@pobox.com Subject: Make LispM code FREE On Thu, 26 Mar 1998, Byron Davies wrote: > Finally, however, he got > so mad at the Lisp companies that he started a free Unix effort. > > It would be sweet indeed if RMS could now help bring LispM software out of > the darkness. In a sense, he has -- GNU Emacs and XEmacs have more users than any other Lisp system in the world, I think. Guile is beginning to be used in many places, too. Kragen From kragen@pobox.com Mon, 30 Mar 1998 12:58:48 -0500 (EST) Date: Mon, 30 Mar 1998 12:58:48 -0500 (EST) From: Kragen kragen@pobox.com Subject: Minimum set of primitives? On 29 Mar 1998, Laurent Martelli wrote: > >>>>> "Kragen" == Kragen writes: > > Kragen> #1 is a little disturbing. It implies that the "minimal" set > Kragen> depends on the machine you're using. If your machine is an > Kragen> i386, it has instructions to do BCD arithmetic, for example. > Kragen> Assuming some users of your Lisp have a use for BCD > Kragen> arithmetic, you really ought to provide them with access to > Kragen> the underlying machine's BCD arithmetic capabilities, instead > Kragen> of forcing them to implement their own in Lisp. > > That's why the minimal set should be as hash lvel As `hash lvel'? > as possible, in > order not to be machine dependent. But one could have different > implementations of the min-set depending on the machine's CPU and > other stuff. Yes, but the point of a machine-independent minimal set is to ease porting. If the `minimal' set changes from machine to machine, it doesn't ease porting. In a theoretical sense, you end up having problems defining a `minimal' set, unless you want to use arithmetic like the stuff I posted. > On a CPU with no mult instruction, the define that you > gave would be a good choice. NO NO NO NO NO it would NOT! It's linear-time in the size of one of the operands (and so is the add I posted, which makes things even worse). Look at it in C and see if you can see why this is not a good idea: int mult (int a, int b) { int tmp = 0; while (a--) { tmp += b; } return tmp; } > But of course if you have a mult on your > CPU, you'd better take advantage of it. Yes, and if you have vector multiply, you'd better take advantage of it. And if you have a two-word compare-&-swap instruction, you'd better take advantage of it. And if you have floating-point operations, you'd better take advantage of them. And if you have special fast instructions for copying known-length strings of characters, you'd better take advantage of them (REP MOVSB, etc.) And if you have special fast instructions for evaluating polynomials, you'd better take advantage of them. The trouble is that your `minimal' set ends up including essentially everything anyone's ever done hardware acceleration for. > We could extend the idea to non min-set services, so that an OS built > on top of Unix uses the native FS (possibly to implement an object > storage), whereas a from scratch version would implement its storage > with the bare device. I know that you can access raw devices with > Unix, but then you must have a partition for LispOS. With Unix, you could easily write it to take advantage of a bare device if available, and otherwise use a normal file. In fact, most Unix systems do this for swapfiles. Most of the ideas you describe are good, if obvious. I've just argued about the ones that aren't. :) Kragen From kragen@pobox.com Mon, 30 Mar 1998 15:04:46 -0500 (EST) Date: Mon, 30 Mar 1998 15:04:46 -0500 (EST) From: Kragen kragen@pobox.com Subject: Misc ideas & comments On 30 Mar 1998, Harvey J. Stein wrote: > tc@gauss.muc.de (Matthias Hoelzl tc) writes: > > > 1) As far as I can see there is no simple way to generate tail > > calls in the front end. Gcc does some tail call elimination in the > > back end, but not enough to be satisfying for a Scheme compiler (as far > > as I can figure out it only optimizes self-tail-calls). > > It's not too hard if one's willing to use a different calling > paradigm. I think that in C the caller sets up the stack, calls the > routine, & cleans up the stack. If instead the called rtn were to > clean up then it'd be easy to generate full tail-recursive code. This would result in much smaller and easier-to-read output code, which would probably be faster as well. It has two potential problems: 1) variadic functions will be a little more dangerous -- they'll have to call va_arg exactly the right number of times. To illustrate: printf("%s"); normally causes a crash. printf("%s", "Cholo\n"); normally works OK, and would continue to. printf("%s", "Cholo\n", 1); normally works OK, but would cause a crash if the called printf were to clean up the stack. 2) you won't be able to call any standard library functions without recompiling them. MSVC++ has this situation, and has about half a dozen extra, nonstandard declaration specifiers you can use to indicate that the declared function has different calling conventions: __far, __pascal, __fortran, __syscall, __fastcall, and __cdecl are some of them. In fact, it even has one for callee-stack-cleanup: __stdcall. MSVC++ __stdcall doesn't allow variadic functions. The use of these declspecs could be limited to .h files specific to your hacked-up compiler. > You might also want to add a size into the stack to make it a little safer. That is an *excellent* idea. It would solve (1) and probably further reduce the size of your emitted code, too. Kragen From cosc19z5@bayou.uh.edu Mon, 30 Mar 1998 14:22:51 -0600 (CST) Date: Mon, 30 Mar 1998 14:22:51 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: License for Code? Has everyone agreed upon a license to use for this project? When contributing code, what sort of license should be used? GPL? Regards, Ahmed From moribund@netgsi.com Mon, 30 Mar 1998 15:54:37 -0500 Date: Mon, 30 Mar 1998 15:54:37 -0500 From: Damond Walker moribund@netgsi.com Subject: License for Code? I'd hope it's some variation of the GPL or the GPL itself. From cosc19z5@bayou.uh.edu Mon, 30 Mar 1998 15:25:21 -0600 (CST) Date: Mon, 30 Mar 1998 15:25:21 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: License for Code? > I'd hope it's some variation of the GPL or the GPL itself. Yes, it would probably be best if it were. I think the GPL suits our needs, and it's in widespread use so I'd imagine any loopholes would have been reconciled (if there were any). To guarantee that everyone is on GPL who works on this project, how about setting up the archive to display a text screen to state something to the effect of code being uploaded there is automatically GPL'ed and uploading is constituted as an agreement. I don't particularly care what license we follow as long as it allows for free development and distrubution and prevents code from being "appropriated" by commercial entities who then slap their own license on the code itself. I believe that GPL did that, right? Hell, I can read the document again for myself :) > > Regards, Ahmed From dmason@scs.Ryerson.CA Mon, 30 Mar 1998 16:44:50 -0500 Date: Mon, 30 Mar 1998 16:44:50 -0500 From: Dave Mason dmason@scs.Ryerson.CA Subject: License for Code? cosc19z5@bayou.uh.edu writes: > > I'd hope it's some variation of the GPL or the GPL itself. > > I don't particularly care what license we follow as > long as it allows for free development and distrubution > and prevents code from being "appropriated" by commercial > entities who then slap their own license on the code itself. My code will not be GPL'ed. I *want* companies to be able to use my code, so that there become more systems out there that are built using Scheme and modern implementation techniques. I just don't want them to be able to appropriate my code and claim it's theirs. I've not decided finally, but I will likely use the BSD license form or the RScheme one. I'm not saying this to try to convince anyone that they shouldn't GPL their code, but simply to say that if that is a requirement of software ``provided'' to the project, it won't include my code. ../Dave From cosc19z5@bayou.uh.edu Mon, 30 Mar 1998 16:32:01 -0600 (CST) Date: Mon, 30 Mar 1998 16:32:01 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: License for Code? > cosc19z5@bayou.uh.edu writes: > > I don't particularly care what license we follow as > > long as it allows for free development and distrubution > > and prevents code from being "appropriated" by commercial > > entities who then slap their own license on the code itself. > > My code will not be GPL'ed. I *want* companies to be able to use my > code, so that there become more systems out there that are built using > Scheme and modern implementation techniques. I just don't want them > to be able to appropriate my code and claim it's theirs. I want some level of commercial use to be allowed, and like you I don't want them claiming it is theirs. Whether or not I want commercial entities to use the end product, or have license to use the code in other applications is up in the air (for me), but I can waffle either way when the time comes :). > > I've not decided finally, but I will likely use the BSD license form > or the RScheme one. > My prime concern is in third parties taking our code and claiming it is theirs. As long as that concern is addressed, I feel pretty flexible with any license. I didn't mean to sound like I was trying to ram GPL down anyone's throat. I was just suggesting one possibility. > I'm not saying this to try to convince anyone that they shouldn't GPL > their code, but simply to say that if that is a requirement of > software ``provided'' to the project, it won't include my code. Which is enough to get me to reconsider using the GPL. So, vote anyone? Since I think it's important that we all use the same license, we should agree on that right now. We definitely need to allow some commercial use, for therein lies the key to success (in terms of distribution that is). > > ../Dave > Regards, Ahmed From moribund@netgsi.com Mon, 30 Mar 1998 19:19:48 -0500 (EST) Date: Mon, 30 Mar 1998 19:19:48 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: License for Code? On Mon, 30 Mar 1998, cosc19z5@bayou.uh.edu wrote: > To guarantee that everyone is on GPL who works on this > project, how about setting up the archive to display > a text screen to state something to the effect of code > being uploaded there is automatically GPL'ed and > uploading is constituted as an agreement. > What's a license among friends? :) I had hoped that it would already of been assumed that we would be using somekind of GPL like license for any code contributed to the cause. > I don't particularly care what license we follow as > long as it allows for free development and distrubution > and prevents code from being "appropriated" by commercial > entities who then slap their own license on the code itself. > I believe that GPL did that, right? Hell, I can read the > document again for myself :) > Doesn't the GPL cover situations like that? They can do whatever they want with it as long as they distribute the source they use (in one fashion or the other). Damo From moribund@netgsi.com Mon, 30 Mar 1998 19:25:02 -0500 (EST) Date: Mon, 30 Mar 1998 19:25:02 -0500 (EST) From: Damond Walker moribund@netgsi.com Subject: License for Code? On Mon, 30 Mar 1998, Dave Mason wrote: > > I've not decided finally, but I will likely use the BSD license form > or the RScheme one. > I'm familiar with the GPL, how does the BSD license differ? Damond From lynbech@daimi.aau.dk Tue, 31 Mar 1998 06:09:36 +0200 (CEST) Date: Tue, 31 Mar 1998 06:09:36 +0200 (CEST) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: Existencial problems on LispOS My view is rather optimistic, though I do think we have a long road ahead. Like all volunteer projects, also lispos will have only slow progress, but to me this is ok. I do not want or expect to take over the world. There is no chance that we, at this early state, will be able to focus our efforts on one single common goal. People have wildly divergent views on everything from what is interesting to what the goal should be. However, given the number of lines of code written so far, this is not really a problem :-) I see as the shorter term future of the lispos project that a number of subprojects will start up, each focusing on some different aspect or using a different technology. This will be good. We will have a number of minilabs each testing out ideas and strategies. Then at some later time, it will be clearer where we are going, not from a detailed design specification, but from the golden principle of "rough consensus and working code". We ain't dead yet. Give it some time. I see evidence in the discussions that people are preparing themselves to get some work done. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From mikemac@mikemac.com Mon, 30 Mar 1998 20:11:50 -0800 Date: Mon, 30 Mar 1998 20:11:50 -0800 From: Mike McDonald mikemac@mikemac.com Subject: Sorry to say that... >From: tf@another.gun.de (Thomas Fischbacher) >To: lispos@math.gatech.edu >Subject: Sorry to say that... >Date: Wed, 25 Mar 1998 20:42:19 +0100 > > > >Sorry, guys, but there is one point I think that should be mentioned. > >You know the story about the Golgafrincham-B people's attempts to >invent fire? Isn't that just what's going on here? Nope, never heard that one. Mike McDonald mikemac@mikemac.com From lynbech@daimi.aau.dk Tue, 31 Mar 1998 06:16:36 +0200 (CEST) Date: Tue, 31 Mar 1998 06:16:36 +0200 (CEST) From: Christian Lynbech on satellite lynbech@daimi.aau.dk Subject: License for Code? I certainly understand the concern, and I do support the GPL idea. However, I also think it somewhat dangerous to start getting too formal on this issues already. I kind of think that this must be an individual decision among the subprojects for now. If we at some later point will need/want to put together some coherent OS distribution (that lisp-machine-on-a-CD someone was mentioning), we do need to agree, but given the current state of affairs, little is gained and it may drive people away. I am not really a purist when it comes to this, and we definitely need all the code we can get. ---------------------------+-------------------------------------------------- Christian Lynbech | Telebit Communications A/S | Fabrikvej 11, DK-8260 Viby J Phone: +45 8628 8176 | email: chl@tbit.dk --- URL: http://www.tbit.dk ---------------------------+-------------------------------------------------- Hit the philistines three times over the head with the Elisp reference manual. - petonic@hal.com (Michael A. Petonic) From mbpomije@inav.net Mon, 30 Mar 1998 22:24:02 -0600 Date: Mon, 30 Mar 1998 22:24:02 -0600 From: Martin B. Pomije mbpomije@inav.net Subject: License for Code? cosc19z5@bayou.uh.edu wrote: > > Has everyone agreed upon a license to use for this project? > > When contributing code, what sort of license should be used? > GPL? > > Regards, > Ahmed I would suggest the LGPL (Library General Public License - http://www.gnu.org/copyleft/lgpl.html )or the Artistic Licence ( The one good thing about Perl - http://language.perl.com/misc/Artistic.html ) I think that the GPL would be impractical for a system that was organized around similar principles as the LispM. If we want a system that is open at many levels so that a program could talk to any level that we want it to, there would probably be no commercial development of software for LispOS if we used the GPL. (Although with Netscape's recent moves this could be changing in the future.) Another thing is that some people who develop free software feel better ethically releasing under a BSD-type license. Both these groups could get by with both of these licenses. They provide a fair amount of protection from a product being "hijacked" by a company and being turned into non-free software, without the virus-like nature of the GPL (meaning that any program linked to a GPLed program must also be GPLed). I think that it is reasonable to assume that products like Netscape or Star Office would not of been released for Linux it's C library had not been GPLed. It may be true that certain types of necessary software, such as accounting, may not be done as free software in the present environment because they are not interesting enough to attract hackers. LispOS will need to overcome a lot of resistance. We need to make sure that it is at least possible to develop commercial software on it. IMNSHO, the LGPL is our best option. -- ********************************************* Semi-encrypted email address: m_b_p_o_m_i_j_e_ a_t_ i_n_a_v_ d_o_t_ n_e_t_ All non-solicited commercial email will be billed $1,000. From mbpomije@inav.net Mon, 30 Mar 1998 23:22:31 -0600 Date: Mon, 30 Mar 1998 23:22:31 -0600 From: Martin B. Pomije mbpomije@inav.net Subject: License for Code? Martin B. Pomije wrote: > (snip) > I think that it is reasonable to assume that products like Netscape or > Star Office would not of been released for Linux it's C library had not > been GPLed. It may be true that certain types of necessary software, Brain fart. The Gnu C library and the Linux C lib are LGPLed. -- ********************************************* Semi-encrypted email address: m_b_p_o_m_i_j_e_ a_t_ i_n_a_v_ d_o_t_ n_e_t_ All non-solicited commercial email will be billed $1,000. From Tomas.Kindahl@saab.se Tue, 31 Mar 1998 09:34:16 +0000 Date: Tue, 31 Mar 1998 09:34:16 +0000 From: Tomas.Kindahl@saab.se Tomas.Kindahl@saab.se Subject: Sorry to say that... --Boundary_(ID_bRQAVkQbfPprveycRhBjDQ) Content-type: text/plain; charset=iso-8859-1 Content-description: Text X-Zm-Decoding-Hint: mimencode -q -u Thomas Fischbacher> Sorry, guys, but there is one point I think that Thomas Fischbacher> should be mentioned. Thomas Fischbacher> Thomas Fischbacher> You know the story about the Golgafrincham-B people's Thomas Fischbacher> attempts to invent fire? Isn't that just what's going Thomas Fischbacher> on here? Yes and no. There is still an unstructured discussion going on, but when the separate subjects of this discussion are isolated and structured, for example the LISP vs. Scheme subject, the methodics subject, there is plenty of hope that this mailing list will be able to come to some common conclusions. (I will be back later for a proposal). Just now, there are ideas popping up, and there have to be time for that before the organiza- tion of some meeting rules. Let's call it brain storming, and be patient for a while. The AROS project debated some years before coming to a con- clusion (now they are hacking). The LispOS fans who are persistent and patient enough will remain in this mailing list, probably not as long as the AROS fans, before they will see the LispOS emerge. Just now i will recommend not to flame, not to leave the meeting with a discouraging saying "you are incompetent", to have as much facts in your postings as possible, and not give any tendentios statements like "every intelligent being can see that Scheme/LISP is superior to LISP/Scheme". The ones who think this project is not going their direction have to prove their standing points by making a kernel themselves or by giving good technical argument for their view. -- greetings (med vänliga häsningar) Tomas Kindahl -------------------------------------------------------------------------- Email: Tomas.Kindahl@saab.se Telephone: +46 13 183927 Room: 112-1306, 112 vån2 Dept: FNS-TK Snailmail: Tomas Kindahl / FNS-TK; SAAB AB; S-581 88 Linköping, SWEDEN -------------------------------------------------------------------------- Phone home: +46 13 171107 Shoe number: 43 Private URL: http://hem.passagen.se/rursus/ Homemail: Tomas Kindahl; Skrivaregatan 11; S-586 47 Linköping, SWEDEN -------------------------------------------------------------------------- --Boundary_(ID_bRQAVkQbfPprveycRhBjDQ)-- From ggleason@tvi.cc.nm.us Tue, 31 Mar 1998 12:36:56 +0200 Date: Tue, 31 Mar 1998 12:36:56 +0200 From: Gavin E. Gleason ggleason@tvi.cc.nm.us Subject: Make LispM code FREE (fwd) Damond Walker writes: > > -----Original Message----- > From: Dave Mason > To: Lisp OS project > Date: Tuesday, March 31, 1998 9:48 AM > Subject: Re: Make LispM code FREE (fwd) > > > >Rainer Joswig writes: > >> Hmm, isn't the Lisp Machine source really ancient? > >> Before 1980? Before Common Lisp? Written for > >> special hardware? Based on MacLisp (-> Lisp Machine Lisp)? > >> > >> What would you do with it? > > > >Study it? Extract snippets of code worth manually translating to > >Scheme or CL? Both seem useful to me. > > > > > Yeah, why create from scratch when there is a load of code out there > waiting to be pulled in or learned from.....? > Anyone have any experience with CLX under Allegro CL? Got it working > last night mostly (hell, it seems to work anyway) -- would it be a *bad* > thing to base some GUI stuff on CLX? > > Damond > I don't seem to have as big a problem with X as some of the people on this list. To me it seems like a reasonble low level protocol for drawing information to the screen. One interesting thing to note is that one of the objectives in the GNU manifesto was to have an X server writen in lisp. Beware though, clx is basically just lisp bindings to X. It certainly won't be easy to write any apps that look good directly in CLX. Garnet has some nice higher level abstractions for CLX but you will have to play with the code to get it to work (I tried to take over maintanence of garnet, but no one ever wrote me back???). I've heard rumors of CLIM being released for free by Franz. If this is true, CLIM would be much preferable as a substrate, as it is in wider use, and is based on CLOS instead of a seperate object system like garnet. It seems to me in a world of GUI, that one of the best things that could further the LispOS ideals would be to develop a free CLIM. This would alow us to start developing applications that people would actually use. A CL Emacs writen with a CLIM interface for instance (Idea shamelessly borrowed off of #:Erik Naggum), would be far more usefull and flexible then XEmacs, and with a elisp compatibility package could server to produce a "real" development environment for CL. So how come there is so little interest in free CLIM??? Gavin E. Gleason From kragen@pobox.com Tue, 31 Mar 1998 07:04:57 -0500 (EST) Date: Tue, 31 Mar 1998 07:04:57 -0500 (EST) From: Kragen kragen@pobox.com Subject: License for Code? On Mon, 30 Mar 1998, Damond Walker wrote: > On Mon, 30 Mar 1998, Dave Mason wrote: > > I've not decided finally, but I will likely use the BSD license form > > or the RScheme one. > > I'm familiar with the GPL, how does the BSD license differ? The GPL prohibits imposing additional licensing conditions upon people you redistribute the GPLed code to. It also prohibits linking GPLed code with code under restrictions not in the GPL. So, for example, Mozilla will not be able to incorporate any GPLed code, because Mozilla is under some restrictions not in the GPL. The BSD license basically says, "Do what you like, but give us credit, and don't advertise with our names." You could look at http://gentle.dyn.ml.org/~kragen/licences.html, but I'm sure someone has done a better job somewhere else. Kragen From rideau@ens.fr Tue, 31 Mar 1998 15:31:22 +0200 (CEST) Date: Tue, 31 Mar 1998 15:31:22 +0200 (CEST) From: Fare Rideau rideau@ens.fr Subject: Make LispM code FREE (fwd) ----- Forwarded message from Richard Stallman ----- Return-Path: rms@santafe.edu Date: Tue, 31 Mar 1998 00:26:10 -0700 Message-Id: <199803310726.AAA15938@wijiji.santafe.edu> From: Richard Stallman To: rideau@clipper.ens.fr In-Reply-To: <199803301556.KAA04274@delysid.gnu.org> (message from Fare Rideau on Thu, 26 Mar 1998 18:26:52 +0100) Subject: Re: Make LispM code FREE Reply-To: rms@gnu.org The MIT AI lab is already planning to make the MIT Lisp Machine system free--if they can find a copy of the sources. That may not be easy. I don't have a copy myself. I will forward your message to them. ----- End of forwarded message from Richard Stallman ----- ## Faré | VN: Уng-Vû Bân | Join the TUNES project! http://www.tunes.org/ ## ## FR: François-René Rideau | TUNES is a Useful, Not Expedient System ## ## Reflection&Cybernethics | Project for a Free Reflective Computing System ## A fruitful discussion is a negociation, out of which emerges meaning. Classic works are Standards, and politeness is a protocol, to ease such negociation. With a reasonable language, neither is strictly needed, but both sure do help! -- Faré From joswig@lavielle.com Tue, 31 Mar 1998 15:52:09 +0200 Date: Tue, 31 Mar 1998 15:52:09 +0200 From: Rainer Joswig joswig@lavielle.com Subject: Make LispM code FREE (fwd) At 15:31 Uhr +0200 31.03.1998, Fare Rideau wrote: >The MIT AI lab is already planning to make the MIT Lisp Machine system >free--if they can find a copy of the sources. That may not be easy. >I don't have a copy myself. > >I will forward your message to them. > >----- End of forwarded message from Richard Stallman ----- Hmm, isn't the Lisp Machine source really ancient? Before 1980? Before Common Lisp? Written for special hardware? Based on MacLisp (-> Lisp Machine Lisp)? What would you do with it? Rainer Joswig, Lavielle EDV Systemberatung GmbH & Co, Lotharstrasse 2b, D22041 Hamburg, Tel: +49 40 658088, Fax: +49 40 65808-202, Email: joswig@lavielle.com , WWW: http://www.lavielle.com/~joswig/ From dmason@scs.Ryerson.CA Tue, 31 Mar 1998 09:29:54 -0500 Date: Tue, 31 Mar 1998 09:29:54 -0500 From: Dave Mason dmason@scs.Ryerson.CA Subject: Make LispM code FREE (fwd) Rainer Joswig writes: > Hmm, isn't the Lisp Machine source really ancient? > Before 1980? Before Common Lisp? Written for > special hardware? Based on MacLisp (-> Lisp Machine Lisp)? > > What would you do with it? Study it? Extract snippets of code worth manually translating to Scheme or CL? Both seem useful to me. ../Dave From chrisb@Ans.Com.Au Tue, 31 Mar 1998 14:50:38 +0000 Date: Tue, 31 Mar 1998 14:50:38 +0000 From: Chris Bitmead chrisb@Ans.Com.Au Subject: License for Code? > My code will not be GPL'ed. I *want* companies to be able to use my > code, so that there become more systems out there that are built using > Scheme and modern implementation techniques. There are companies using Linux you know (believe it or not). > I just don't want them > to be able to appropriate my code and claim it's theirs. > > I've not decided finally, but I will likely use the BSD license form > or the RScheme one. If you really won't use GPL, DON'T use the BSD licence. Use the X11 licence. -- Chris Bitmead http://www.ans.com.au/~chrisb mailto:chrisb@ans.com.au From cosc19z5@bayou.uh.edu Tue, 31 Mar 1998 08:52:32 -0600 (CST) Date: Tue, 31 Mar 1998 08:52:32 -0600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: Sorry to say that... On Tue, 31 Mar 1998 Tomas.Kindahl@saab.se wrote: [Snip] > Thomas Fischbacher> You know the story about the Golgafrincham-B people's > Thomas Fischbacher> attempts to invent fire? Isn't that just what's going > Thomas Fischbacher> on here? > > Yes and no. There is still an unstructured discussion going on, but when > the separate subjects of this discussion are isolated and structured, for > example the LISP vs. Scheme subject, the methodics subject, there is > plenty of hope that this mailing list will be able to come to some common > conclusions. (I will be back later for a proposal). Just now, there are > ideas popping up, and there have to be time for that before the organiza- > tion of some meeting rules. Let's call it brain storming, and be patient > for a while. The AROS project debated some years before coming to a con- > clusion (now they are hacking). The LispOS fans who are persistent and > patient enough will remain in this mailing list, probably not as long as > the AROS fans, before they will see the LispOS emerge. > There's more than talk and discussion, there's coding. At least a few people are working on code relevant to this project, and from the way things are going, it looks like the bottleneck might end up being administrative issues like licenses, where to put the code, etc... > Just now i will recommend not to flame, not to leave the meeting with > a discouraging saying "you are incompetent", to have as much facts in > your postings as possible, and not give any tendentios statements like > "every intelligent being can see that Scheme/LISP is superior to > LISP/Scheme". The ones who think this project is not going their direction > have to prove their standing points by making a kernel themselves or by > giving good technical argument for their view. Full agreement. If you have an alternate vision, code it up, or do some proof of concept/prototype coding to see how feasible your concepts are. Maybe with a working model you can get others to follow your lead. > > -- > greetings (med vänliga häsningar) > > Tomas Kindahl > -------------------------------------------------------------------------- > Email: Tomas.Kindahl@saab.se Telephone: +46 13 183927 > Room: 112-1306, 112 vån2 Dept: FNS-TK > Snailmail: Tomas Kindahl / FNS-TK; SAAB AB; S-581 88 Linköping, SWEDEN > -------------------------------------------------------------------------- > Phone home: +46 13 171107 Shoe number: 43 > Private URL: http://hem.passagen.se/rursus/ > Homemail: Tomas Kindahl; Skrivaregatan 11; S-586 47 Linköping, SWEDEN > -------------------------------------------------------------------------- > Regards, Ahmed From ian.carter@burnley.ac.uk Tue, 31 Mar 1998 16:34:52 +0100 Date: Tue, 31 Mar 1998 16:34:52 +0100 From: Ian Carter ian.carter@burnley.ac.uk Subject: FORK/PROCDUP ERROR Hi My name is Ian Carter, and I work as Network Administrator for a College of Further Education in England. We have a UNIX firewall on our Intranet site, and every so often it come up with an error fork/procdup task_create failed code 0x11 I searched the internet and it came back with your email address. I was wondering if you know how to cure the problem as this is causing me great distress, and the only way I have found to stop it is shutdown the machine. The machine is a Digital Unix Workstation 255 running OSF/1 I would be grateful if you could help me at all. Ian Carter Network/Internet Administrator Burnley College Tel : +44(0)1282-711391 Mobile : +44(0)961-858497 Email : ian.carter@burnley.ac.uk From cosc19z5@bayou.uh.edu Tue, 31 Mar 1998 19:13:25 +6600 (CST) Date: Tue, 31 Mar 1998 19:13:25 +6600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: The Marketing of LispOS? > I keep seeing messages on this list which hint toward somehow convincing large > numbers of users to use LispOS. > > Whatever happened to doing something because: > > It would be way cool to hack to the metal in Lisp. This may be one of the motivations for some. Not that I'm all that fond of using Lisp to hack into the metal. I prefer more elegant abstractions... I think the term used was "Platonic Programming". > > Wouldn't it be cool to have your virtual memory be Lisp aware? Only if I can percieve it. Otherwise, what would the point be? For me, what matters is what I can see and observe directly, which is why I'm content for a CL Shell in lieu of a full fledged O/S. > Would my device driver model look radically different in Lisp? One would hope so. > > Wouldn't it be way cool to have OS MetaObjects? What would > they look like? I'd have to think about this. > How fast would that dusty 486 sitting in my closet be running > LispOS? Since I don't have a 486 in my closet, I really couldn't care less. > Or pick any one of the cool ideas that people like Rainer Joswig, > Henry Baker and others talk about. If you are interested in making a > profit out of this venture, unsubscribe from the list now, you are > pretty much wasting your time here. What makes you think that trying to get LispOS to be accepted commercially has anything to do with profit, or that it automatically discounts people enjoying the project for other reasons? It just so happens that getting LispOS in a position to be used by others for profit helps its chances to succeed that much more. As far as I'm concerned, the state of computing can be summed up as follows: 1) All mainstream operating systems suck. 2) All mainstream programming languages suck. Having a LispOS can help address these two points by providing a good operating system (or at least O/S interface) for a change, and since the programming language will naturally be Lisp based, Lisp will get to ride on its coattails. For me, this is Lisp advocacy, the attempt to bring a better O/S (both working to further the sorry state of computing), and the chance for me to work on a project that is both fun and potentially significant. Of course it could all fall flat on its face. But then that's life, and that's the risks we take. I'm taking that risk right now in more ways than one. > [...] Don't expect one red cent from anything relating > to LispOS or the applications developed to support it. That way, if > something does happen, which I doubt, it would be a plesant suprise. > Getting others to use LispOS in a commercial context does not imply that we will be making money. My attitude is to make LispOS free, and make the license flexible enough to allow commercial use. No monetary gain for me. > But, if you really have a burning need for a business model and just > can't do things because they are cool (don't you already have a job?), > here is a crazy idea. Imagine all of those old 486s that Windows 99 > runs like an old dog on. Now imagine several of them networked > together communicating with your database on your main system and each > other doing analysis of your business data in a way only Lisp lets > you. You get nice usage out of hardware which you were about to scrap > anyway and you get interesting tidbits out of your database that the > data miners may not get because they have to write a specalized app > for each business situation. > Hmmmmm, interesting. I'm already preoccupied with work related to LispOS, but I am interested in hearing more. > > -Reggie > Regards, Ahmed From cosc19z5@bayou.uh.edu Tue, 31 Mar 1998 19:18:22 +6600 (CST) Date: Tue, 31 Mar 1998 19:18:22 +6600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: LISPOS: My manifesto [Snip... Lisp-isized SQL] > If it's a traditional Scheme lambda, it's opaque to the select > function. This means that it is impossible to use indices. That is, > > (select '(name) :from users :where (lambda (x) (= (acctnum x) 44833))) > > can't use the primary-key index on users by acctnum, it has to look at > every record and call the lambda function on it. > > This means that what was originally a simple hash-table lookup and > fetch, or possibly a b-tree lookup and fetch, becomes a process that > requires fetching something like 50,000 records from disk and calling a > couple of Scheme functions for each one of them. > Given the blatant disregard (or rather complete lack of consideration) for performance I have for what is essentially a prototype for another concept entirely, I don't find this issue bothersome at all. As a matter of fact, I don't consider it an issue. > This does not meet my definition of `essentially for free'. But it meets mine. I was speaking of price from the point of view of an implementor. This is practically free for hir. Performance is a price that the user deals with -- I never mentioned that at all. > > However, I believe that you might reasonably be able to do it with > slightly different syntax. > > (select '(name) :from users :where '(acctnum = 44833)) > > This is also more readable to SQL folks. But then we lose the flexibility of a lambda expression. In that case, we might as well not bother writing this. > > > (in this case lambda expressions give "where" tremendous > > flexibility and power [I believe more so than the original SQL], > > I suspect that it is possible to incorporate lambda expressions into > where clauses and order by clauses in a reasonable way. Some compromise should be reached, because I would bitterly oppose loss of the lambda expression in the where clause at all costs -- even at the cost of the entire SQL project. If it doesn't have lambda, then it isn't worth writing. > > Kragen > Regards, Ahmed From cosc19z5@bayou.uh.edu Tue, 31 Mar 1998 21:09:14 +6600 (CST) Date: Tue, 31 Mar 1998 21:09:14 +6600 (CST) From: cosc19z5@bayou.uh.edu cosc19z5@bayou.uh.edu Subject: The Marketing of LispOS? [Snip] > > Wouldn't it be cool to have your virtual memory be Lisp aware? > > > Only if I can percieve it. Otherwise, what would the point be? For > > me, what matters is what I can see and observe directly, which is > > why I'm content for a CL Shell in lieu of a full fledged O/S. > > Let me attempt to explain a little better here. There is this > perception that Lisp is slow. Now current Lisps that run on stock > hardware interact with an underlying OS. This os, probably written in > C, has a lot of built in assumptions. I would like to know how much > these assumptions affect the Lisp system and how much difference, if > any, would you see from having Lisp assumptions there instead of C > assumptions. Well you were talking about virtual memory being Lisp aware, but what you are talking about now seems to be a bit more involved than just that. Basically, it looks like you are talking about a full fledged LispOS, or at least a Lisp kernel, written in such a way as to run Lisp code as efficiently as possible. > > I would rather work at the application level, but if the foundation is > shakey... Well, who is to say we can't work at the application level while remaining independent of the foundation? Let's say we write some portions of the O/S or applications in Lisp on stock hardware without an underlying Lisp kernel. What happens then? Well it may not run as fast as it could, but once the kernel is swapped, that will change, and all our work can be moved over verbatim. It wouldn't be like we lost anything. And if the work is of an acceptable speed, we can use what we have on stock hardware, rather than waiting for the decidedly more complex task of kernel development to complete. > > I'd have to think about this. > > I was looking at the Inside NT book and noticed that they had an > Object Manager. I was thinking that if you took the object concept all > the way down to the kernel, there are some things you would like to be > objects, but for performance reasons, they probably shouldnt have the > full CLOS machinery. But you might want a portion of that > machinery. This would probably take a couple of passes to get right. Hmmmm, wasn't this brought up before? I'm not sure what the consensus was, but I like the idea. I'm all in favor of making the O/S as high a level as possible -- this includes user view (Interface) and programmer view (API, Scripting, etc...). > > How fast would that dusty 486 sitting in my closet be running > > LispOS? > > > Since I don't have a 486 in my closet, I really couldn't care less. > > :-) Sorry, I couldn't resist :) > > It just so happens that getting LispOS in a position to be used by > > others for profit helps its chances to succeed that much more. > > It looked to me as if some people were starting to use "popularity" > and "acceptance" as design criteria. I think that there are a lot of > interesting ideas that have been presented. Well as far as popularity and acceptance go, they don't impose extra design burdens. From what I'm seeing, making a truly useful, high-quality O/S would also fulfill the requirements for "popularity" and "acceptance". The other places where the terms would come in, would be independent of the design of the O/S, and they would involve attempts at distribution/advertising and flexible licensing; basically, trying to make others notice the product we developed and consider using it. I mean there is a degree of wanting to do our own thing, after all, we are not writing a Winblows clone :) > Most of them look like > they will be portable to other Lisp environments and do not need a > from-the-metal LispOS. Definitely. I can see many of the benefits being reaped without having to do anything more than write lisp code and use the listener to good effect. > Implement things that fulfill a need or is very > interesting. Just like the mainstream wasnt really interested in > another Unix clone, its not interested in another OS written in > Lisp. But it would be cool to do anyway. > They could be interested if they liked it enough. Remember, a LispOS would be very radical. Granted, we had Lisp machines, but they are nowhere near as well known as Unix systems. Something that's powerful, high level, free, compatible with existing software, and radically different might turn enough heads. Even if there's no mainstream acceptance, it may get a few more people to take a look at Lisp, and that would be a good thing. I'm not holding on to any pipe dreams. Trying to push a new O/S through is a daunting task. Look at Linux, it's been around for a while, turned quite a few heads, but it's market share is still quite small. How many other O/Ses are under development? How many have we heard of? > > For me, this is Lisp advocacy, the attempt to bring a better O/S > > (both working to further the sorry state of computing), and the > > chance for me to work on a project that is both fun and potentially > > significant. > > I cant disagree with this. I think that there are two perspectives > here. One is to design from the top down. We develop the interfaces > and envrironment on top of Windows/Unix that allow us to interoperate, > embrace and extend. I like this idea, I have Harlequin LispWorks for > Unix and Windows so this would work for me. So do I. If given a choice, I'd pick this over the second route. I've got Harlequin FreeLisp and ACL on Win95 and have access to CMUCL 17f on Unix. > > The other is to work from the bottom up we build a small, tight kernel > of primitive lisp objects, define a device driver model, > interrupt/exception model, memory management model, object and > resource management, and other basic OS tidbits. We know this is > non-trivial. The question is, is it worth the effort? It could be if it made a noticeable performance increase in Lisp code. > If I were doing > this, I would have initially an Intel version and later an Alpha > version (would probably need to abstract the hardware). Now initially > I was not interested in this, but I started thinking about memory > management and wondered what primitives I would need to define to > work on the processor page tables from Lisp. Ive never thought about > these things before, so the bright shiny object distracted me. :-) > Hehehehehe :). It's definitely something worth considering. For the time being though, I would go for the first route. Even if it's slow, it's a concrete product and would serve as a model, a proof of concept, and it can be modified as time goes on. That's my approach. I write everything without regard for speed or error checking, but just to get a usable prototype available. If the idea is deemed worthy, then it can be beefed up. If it's deemed unworthy, the effort invested in it is minimal so there's no great loss. > > My attitude is to make LispOS free, and make the license flexible > > enough to allow commercial use. No monetary gain for me. > > I agree with this but only in the sense that if commercial interests > think I am doing something thats interesting to them, then, and only > then, would we have to talk about it. Until that time, I toil on my > pet project, ignored by the mainstream. That way my priorities are in > the correct order. Well, we do need to get this issue settled up front because this is where the licensing comes in. If folks are going to share code, then they need to do so with some kind of license in place, and the license chosen will have impacts on any potential commercial development. > > -Reggie > -- Cya, Ahmed