* Re: [9fans] How can I shift a variable other than ? @ 2007-03-10 12:32 erik quanstrom 2007-03-10 17:30 ` Kris Maglione 0 siblings, 1 reply; 23+ messages in thread From: erik quanstrom @ 2007-03-10 12:32 UTC (permalink / raw) To: 9fans On Sat Mar 10 00:17:12 EST 2007, bsdaemon@comcast.net wrote: > On Fri, Mar 09, 2007 at 11:46:46PM -0500, erik quanstrom wrote: > >why wouldn't it be backwardly compatable? > >"(a b) = $*" is currently an error in rc. and i don't > >believe i've ever seen an rc script that depends on > >this error. > > The problem is that then new scrips wouldn't be portable. ya. right. is this this the same reason i should check my c code with the johnson c compiler (being very careful to not use function prototypes) to make sure it works everwhere? of course my code will probablly still be broken with the c73 compiler. hope nobody's still running that. and now that we've thought of it, we can't fix any rc bugs. since scripts that rely on fixed bugs won't run everwhere. c'mon. what kind of dusty-deck thinking is this? > but in that case, you may as well just use Inferno's sh doesn't run on plan 9. it's written in limbo and depends on features of inferno that are not part of plan 9. > or port es(1) es hasn't been maintained in a dozen years. there is a reason for this. while es has some great ideas and paul haahr did a really nice job with it. it seems to me that let and bindings make the shell harder to use. es implements a lot of functonality in es (and still breaks 10kloc of c). here's the definition of cd. es% whatis cd @ dir{if {~ <={%count $dir} 1} {$&cd $dir} {~ <={%count $dir} 0} {%seq {if {%not {~ <={%count $home} 1}} {throw error cd <={if {~ <={%count $home} 0} {result 'cd: no home directory'} {result 'cd: home directory must be one word'}}}} {$&cd $home}} {throw error cd 'usage: cd [directory]'}} - erik ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-10 12:32 [9fans] How can I shift a variable other than ? erik quanstrom @ 2007-03-10 17:30 ` Kris Maglione 2007-03-10 21:20 ` Dan Cross 0 siblings, 1 reply; 23+ messages in thread From: Kris Maglione @ 2007-03-10 17:30 UTC (permalink / raw) To: 9fans [-- Attachment #1: Type: text/plain, Size: 1422 bytes --] On Sat, Mar 10, 2007 at 07:32:30AM -0500, erik quanstrom wrote: >> The problem is that then new scrips wouldn't be portable. >ya. right. is this this the same reason i should check my c code >with the johnson c compiler (being very careful to not use function >prototypes) to make sure it works everwhere? I never suggest such things. >and now that we've thought of it, we can't fix any rc bugs. since >scripts that rely on fixed bugs won't run everwhere. > >c'mon. what kind of dusty-deck thinking is this? The difference here is that there has always been one rc (ignoring the UNIX version, which is gratuitously incompatible), unlike the bourne shells. One of the great things about it has always been that you could write rc scripts and know that they'd work on rc wherever they were run. If you start extending the spec, then things start to suck, truly. >doesn't run on plan 9. it's written in limbo and depends on >features of inferno that are not part of plan 9. It runs on Inferno, which runs on Plan 9. You can script for Plan 9 in Inferno's sh. You can even script for UNIX in it. I've done both. It works. It's not even ugly. At any rate, someone might write a new shell which is neither es nor Inferno's shell, which is designed to run on Plan 9. I'd still rather just use Inferno's shell, myself. -- Kris Maglione A fool and his money soon go partying. [-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-10 17:30 ` Kris Maglione @ 2007-03-10 21:20 ` Dan Cross 2007-03-10 21:53 ` Kris Maglione 0 siblings, 1 reply; 23+ messages in thread From: Dan Cross @ 2007-03-10 21:20 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/10/07, Kris Maglione <bsdaemon@comcast.net> wrote: > The difference here is that there has always been one rc (ignoring the > UNIX version, which is gratuitously incompatible), unlike the bourne > shells. One of the great things about it has always been that you could > write rc scripts and know that they'd work on rc wherever they were run. > If you start extending the spec, then things start to suck, truly. Nonsense. You think rc has never changed before? There have been plenty of non-backwards compatible changes in Plan 9. Plan 9 is a research system; it should be unfettered by the demands of backwards compatibility with itself (within reason). Taking your argument to its logical conclusion, we should all be using VT220's (or better yet, DECwriter III's) on a VAX running 7th edition Unix. But I'd rather incorporate good ideas for change than remain stuck in the past. In this environment, I think innovation is worth more than some minimal amount o backwards compatibility. Besides, one doesn't even know how used this feature would be; it may come to pass that the vast, vast majority of sites are totally unaffected. Besides, there are sufficiently few sites running Plan 9 that, when confronted with script breakage, it is not an unreasonable answer to say, ``upgrade your shell.'' There are times when forward progress demands a break from established convention. Sometimes, this buys you nothing, but that does not mean that every proposed change is bad. Certainly, without deciding to break backwards compatibility with Unix, Plan 9 would never have come about. > >doesn't run on plan 9. it's written in limbo and depends on > >features of inferno that are not part of plan 9. > > It runs on Inferno, which runs on Plan 9. You can script for Plan 9 in > Inferno's sh. You can even script for UNIX in it. I've done both. It > works. It's not even ugly. Have to incorporate all of the Inferno machinery into a system just to run a shell script is way too much to ask of most people. Certainly, more than asking them to upgrade their shell interpreter from sources. > At any rate, someone might write a new shell which is neither es nor > Inferno's shell, which is designed to run on Plan 9. I'd still rather > just use Inferno's shell, myself. Then by all means, port over the Inferno shell. - Dan C. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-10 21:20 ` Dan Cross @ 2007-03-10 21:53 ` Kris Maglione 2007-03-10 22:20 ` Dan Cross 2007-03-11 12:12 ` matt 0 siblings, 2 replies; 23+ messages in thread From: Kris Maglione @ 2007-03-10 21:53 UTC (permalink / raw) To: 9fans [-- Attachment #1: Type: text/plain, Size: 1716 bytes --] On Sat, Mar 10, 2007 at 04:20:22PM -0500, Dan Cross wrote: >Nonsense. You think rc has never changed before? There have been >plenty of non-backwards compatible changes in Plan 9. You miss the point entirely. I agree that things shouldn't stay the same simply for the sake of compatibility. Plan 9 threw away a bunch of UNIX crud in the begining, and was not set in stone from the begining. I have no desire to add teletypes and ioctls to be compatible with UNIX. The point is that rc(1) has been rc since the begining. It's rc everywhere. If you write an rc script, you can expect it work wherever you send it. The one infuriating exception which I've run across is the UNIX port, which I have to worry about being in peoples' PATHs on UNIX, rather than the Plan 9 version. If there are to be changes, there's no reason to make those changes to rc. It would be best to create a new shell that deals with the shortcomings of rc, rather than adding features and cruft. That is how UNIX got to be so cruddy to begin with. The reason that sh(1) and Plan 9 are so nice is because they reevaluated and threw away most of what came before them. >>It runs on Inferno, which runs on Plan 9. You can script for Plan 9 in >>Inferno's sh. You can even script for UNIX in it. I've done both. It >>works. It's not even ugly. Then perhaps, as has been said for ages, it is best to make the integration between Inferno and Plan 9 more seemless, and the installation easier. It would, indeed, be nice to include Inferno in Plan 9 by default. -- Kris Maglione The one ingredient you made a special trip to the store to get will be the one thing your guest is allergic to. [-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-10 21:53 ` Kris Maglione @ 2007-03-10 22:20 ` Dan Cross 2007-03-11 12:12 ` matt 1 sibling, 0 replies; 23+ messages in thread From: Dan Cross @ 2007-03-10 22:20 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/10/07, Kris Maglione <bsdaemon@comcast.net> wrote: > On Sat, Mar 10, 2007 at 04:20:22PM -0500, Dan Cross wrote: > >Nonsense. You think rc has never changed before? There have been > >plenty of non-backwards compatible changes in Plan 9. > > You miss the point entirely. I agree that things shouldn't stay the same > simply for the sake of compatibility. Plan 9 threw away a bunch of UNIX > crud in the begining, and was not set in stone from the begining. I have > no desire to add teletypes and ioctls to be compatible with UNIX. > > The point is that rc(1) has been rc since the begining. It's rc > everywhere. If you write an rc script, you can expect it work wherever > you send it. The one infuriating exception which I've run across is the > UNIX port, which I have to worry about being in peoples' PATHs on UNIX, > rather than the Plan 9 version. > > If there are to be changes, there's no reason to make those > changes to rc. It would be best to create a new shell that deals with > the shortcomings of rc, rather than adding features and cruft. That is > how UNIX got to be so cruddy to begin with. The reason that sh(1) and > Plan 9 are so nice is because they reevaluated and threw away most of > what came before them. No, I didn't miss the point, which, if carried to its logical conclusion would imply that we should just write a new operating system whenever we want to add something new. There's nothing set in stone about any system; the problems you describe come when people start believing that there is. The proliferation of shells under Unix could have been avoided by carefully re-evaluating the existing offers and making appropriate changes. Instead, we ended up with Shell Soup. Rc is just a program; yes, a pretty good one, but it is not a religious document: it is open to interpretation, re-evaluation and change. Put another way, one of the reasons Plan 9 has remained so nice over the years is because the folks primary responsible for it have been open to making reasonable changes where appropriate. > >>It runs on Inferno, which runs on Plan 9. You can script for Plan 9 in > >>Inferno's sh. You can even script for UNIX in it. I've done both. It > >>works. It's not even ugly. > > Then perhaps, as has been said for ages, it is best to make the > integration between Inferno and Plan 9 more seemless, and the > installation easier. It would, indeed, be nice to include Inferno in > Plan 9 by default. You're replying to yourself there. - Dan C. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-10 21:53 ` Kris Maglione 2007-03-10 22:20 ` Dan Cross @ 2007-03-11 12:12 ` matt 2007-03-11 20:23 ` Kris Maglione 1 sibling, 1 reply; 23+ messages in thread From: matt @ 2007-03-11 12:12 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs > You miss the point entirely. This might be petty but, no Kris, you missed the point. If you want further proof, see rc(1) BUGS Your broken rc will not interpret scripts intended for the One True rc When you've got ghosts in /bin, who you gonna call ? ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 12:12 ` matt @ 2007-03-11 20:23 ` Kris Maglione 2007-03-11 22:11 ` erik quanstrom ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Kris Maglione @ 2007-03-11 20:23 UTC (permalink / raw) To: 9fans [-- Attachment #1: Type: text/plain, Size: 877 bytes --] On Sun, Mar 11, 2007 at 12:12:57PM +0000, matt wrote: > > You miss the point entirely. > >This might be petty but, no Kris, you missed the point. > >If you want further proof, see rc(1) BUGS I never said that rc(1) was perfect. I'm all for rewriting it, and fixing bugs. I'm not for breaking its syntax, though. It makes far more sense to leave rc as rc(1) and to write a new shell which deals with the shortcomings of rc. This is not comprable to writing a new os, and it gives us far more freedom. If the Inferno people had decided to 'update' mash instead of writing sh(1), it would have been grossly unfortunate, because Inferno's shell is probably the best shell I've come across. And if rc is to have such a massive revamping, there's no good reason to keep calling it rc. -- Kris Maglione The faster the plane, the narrower the seats. [-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 20:23 ` Kris Maglione @ 2007-03-11 22:11 ` erik quanstrom 2007-03-11 23:14 ` Martin Neubauer 2007-03-12 13:39 ` Dan Cross 2007-03-13 14:59 ` rog 2 siblings, 1 reply; 23+ messages in thread From: erik quanstrom @ 2007-03-11 22:11 UTC (permalink / raw) To: 9fans On Sun Mar 11 15:28:11 EST 2007, bsdaemon@comcast.net wrote: > I never said that rc(1) was perfect. I'm all for rewriting it, and > fixing bugs. I'm not for breaking its syntax, though. It makes far more > sense to leave rc as rc(1) and to write a new shell which deals with the > shortcomings of rc. rc is not the unchanging point at the center of a circle you think it is. <> redirection and $" are not in the original rc paper. and more to the point, there have been no ideas yet that would break older rc scripts nor change the grammer or lexemes. even list assignment would be a matter of handling a case that currently gives an error. the grammer supports it. the things i've added experimentally are 1. support for history. 2. a break statement. 3. a fix to make wait reliable as per the december discussion. 4. subscript ranges -- $fu(n-m) of these, only break even goes so far as to add a keyword. - erik ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 22:11 ` erik quanstrom @ 2007-03-11 23:14 ` Martin Neubauer 2007-03-12 8:50 ` Kris Maglione 0 siblings, 1 reply; 23+ messages in thread From: Martin Neubauer @ 2007-03-11 23:14 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs * erik quanstrom (quanstro@coraid.com) wrote: > and more to the point, there have been no ideas yet that would > break older rc scripts nor change the grammer or lexemes. even list > assignment would be a matter of handling a case that currently gives > an error. the grammer supports it. Specifically, there are two arguments supporting the change. First, it isn't really a new feature -- it just makes one already present more general (with a striking resemblance to the for loop.) Second, it doesn't break scripts in a harmful way (old scripts still run, new scripts run in an old rc abort -- if a correctly written script runs successfully it does what was intended in either case.) Martin ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 23:14 ` Martin Neubauer @ 2007-03-12 8:50 ` Kris Maglione 2007-03-12 12:26 ` erik quanstrom 0 siblings, 1 reply; 23+ messages in thread From: Kris Maglione @ 2007-03-12 8:50 UTC (permalink / raw) To: 9fans [-- Attachment #1: Type: text/plain, Size: 1545 bytes --] On Mon, Mar 12, 2007 at 12:14:08AM +0100, Martin Neubauer wrote: >Specifically, there are two arguments supporting the change. First, it isn't >really a new feature -- it just makes one already present more general (with >a striking resemblance to the for loop.) Second, it doesn't break scripts in a >harmful way (old scripts still run, new scripts run in an old rc abort -- if >a correctly written script runs successfully it does what was intended in >either case.) This is entirely beside the point. Breaking old scripts is the least of the issues. The point is that there's little value in altering rc, compared to writing a new shell. Compare mash and sh on Inferno and you'll see what I mean, as I've said. If mash had simply been extended, there would be either a slightly more or sligtly less crufty mash, instead of sh. If rc is to be updated, it should simply be replaced with something better. If Plan 9 is a research OS, as has been suggested in this thread, then why are we to add features to an old shell, rather than rethinking it? The former has nothing to do with research. I'm too tired to argue saliently, but the point is that if rc is lacking, we've been shown better ways already, and they should be instrumented or improved upon properly, not simply hacked onto old cruft. Again, this is exactly how UNIX ended up how it is today, and why Plan 9 is not UNIX. -- Kris Maglione An easily-understood, workable falsehood is more useful than a complex, incomprehensible truth. [-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-12 8:50 ` Kris Maglione @ 2007-03-12 12:26 ` erik quanstrom 2007-03-12 13:37 ` Anthony Sorace 0 siblings, 1 reply; 23+ messages in thread From: erik quanstrom @ 2007-03-12 12:26 UTC (permalink / raw) To: 9fans On Mon Mar 12 03:51:10 EST 2007, bsdaemon@comcast.net wrote: > On Mon, Mar 12, 2007 at 12:14:08AM +0100, Martin Neubauer wrote: > This is entirely beside the point. Breaking old scripts is the least of > the issues. The point is that there's little value in altering rc, > compared to writing a new shell. Compare mash and sh on Inferno and > you'll see what I mean, as I've said. If mash had simply been extended, > there would be either a slightly more or sligtly less crufty mash, > instead of sh. you've said this multiple times, and we still disagree. > > If rc is to be updated, it should simply be replaced with something > better. If Plan 9 is a research OS, as has been suggested in this > thread, then why are we to add features to an old shell, rather than > rethinking it? The former has nothing to do with research. I'm too tired > to argue saliently, but the point is that if rc is lacking, we've been > shown better ways already, and they should be instrumented or improved > upon properly, not simply hacked onto old cruft. it sounds like you're the right man for the job. why don't you get started? i'll be happy to test it when it has a manual page and the silly bugs knocked out. - erik ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-12 12:26 ` erik quanstrom @ 2007-03-12 13:37 ` Anthony Sorace 0 siblings, 0 replies; 23+ messages in thread From: Anthony Sorace @ 2007-03-12 13:37 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs what's being proposed here for addition to rc is totally different from the mash/inferno-sh case. in the inferno case, we had two different authors with some substantial differences in ideas for constructing shells, in terms of syntax, semantics, and features. you're correct that trying to add rog's (right?) ideas into mash would've been a disaster, and i think everyone here would agree that we shouldn't try to cram that sort of difference in the fundamentals of building shells into rc. but that simply isn't what's being proposed. the feature to be added is entirely in line with rc's existing grammar and design principles. it's a much more incremental type of growth, and is an equally valid result of research. i understand that your position does leave room for moving off vt220s, but it does seem to imply that we shouldn't add new kernel devices without scrapping plan9 and starting over. i also find it bizarre that you can call rc "old cruft"... anthony ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 20:23 ` Kris Maglione 2007-03-11 22:11 ` erik quanstrom @ 2007-03-12 13:39 ` Dan Cross 2007-03-12 15:22 ` Russ Cox 2007-03-13 14:59 ` rog 2 siblings, 1 reply; 23+ messages in thread From: Dan Cross @ 2007-03-12 13:39 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/11/07, Kris Maglione <bsdaemon@comcast.net> wrote: > [...] > > And if rc is to have such a massive revamping, there's no good reason to > keep calling it rc. I think the point you keep missing is that this isn't such a massive revamping. It's a simple change that doesn't break any existing scripts; the worst thing that could happen is that new scripts don't run on the old shell, in which case one can update the shell. This really isn't that big of a deal. You're making a mountain out of a molehill. As for your point about writing a new shell. Well, go do it, then. - Dan C. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-12 13:39 ` Dan Cross @ 2007-03-12 15:22 ` Russ Cox 2007-03-12 17:05 ` Dan Cross 0 siblings, 1 reply; 23+ messages in thread From: Russ Cox @ 2007-03-12 15:22 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Everyone has said their piece, and opinions have stopped changing. Let's move on. Russ ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-12 15:22 ` Russ Cox @ 2007-03-12 17:05 ` Dan Cross 2007-03-12 18:41 ` Kris Maglione 0 siblings, 1 reply; 23+ messages in thread From: Dan Cross @ 2007-03-12 17:05 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Was that a Haiku? On 3/12/07, Russ Cox <rsc@swtch.com> wrote: > Everyone has said their piece, > and opinions have stopped changing. > Let's move on. > > Russ > ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-12 17:05 ` Dan Cross @ 2007-03-12 18:41 ` Kris Maglione 0 siblings, 0 replies; 23+ messages in thread From: Kris Maglione @ 2007-03-12 18:41 UTC (permalink / raw) To: 9fans [-- Attachment #1: Type: text/plain, Size: 262 bytes --] On Mon, Mar 12, 2007 at 01:05:24PM -0400, Dan Cross wrote: >Was that a Haiku? Yes. At any rate, I'm tired of trolling. I'll stop until I start seeing things in /n/sources/patch. -- Kris Maglione Whatever it is, somebody will have had it for lunch. [-- Attachment #2: Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-11 20:23 ` Kris Maglione 2007-03-11 22:11 ` erik quanstrom 2007-03-12 13:39 ` Dan Cross @ 2007-03-13 14:59 ` rog 2007-03-13 15:22 ` erik quanstrom ` (2 more replies) 2 siblings, 3 replies; 23+ messages in thread From: rog @ 2007-03-13 14:59 UTC (permalink / raw) To: 9fans > If the Inferno people had decided to 'update' mash instead of writing sh(1) for the record, i believe that i wrote the inferno shell before mash was written (in fact, it was one of the first limbo programs i wrote, before i came to VN). certain of its features were only made possible by later inferno changes however (e.g. the shell module loading structure was enabled by the addition of load self). i have to say i wouldn't mind seeing a version for plan 9 - the lack of support for quoting and unquoting lists i find particularly awkward in rc in these days of space-containing filenames. i still wish plan 9 hadn't relaxed the whitespace ban in names! somebody (anothy?) made a comment ages ago about how it was "suprisingly slow". i'm not surprised - i made no attempt at all to be clever about the interpretation strategy (unlike rc, which builds an intermediate language), and lists are reversed willy nilly. variable access could probably be speeded up a fair bit. unfortunately it's probably not possible to improve things without breaking binary compatibility. re: the shift thing: changing a feature is always a trade-off between backward compatibility and feature benefits. in this case, the feature is still available (if a little more awkwardly), in the original, so i think backward compatibility considerations win. the I/O feature, <>, on the other hand, provides useful (sometimes essential) functionality not previously available, so the balance swings the other way. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-13 14:59 ` rog @ 2007-03-13 15:22 ` erik quanstrom 2007-03-13 15:40 ` [9fans] minimal-instruction-sets (was: How can I shift a variable other than ?) andrey mirtchovski 2007-03-13 15:40 ` [9fans] How can I shift a variable other than ? C H Forsyth 2007-03-13 17:32 ` Anthony Sorace 2 siblings, 1 reply; 23+ messages in thread From: erik quanstrom @ 2007-03-13 15:22 UTC (permalink / raw) To: 9fans strictly speaking, <> could be implemented with no help from rc (and more generally) as in boxredir fdin fdout cmd okay, that's a bit silly, but the point between essential and non-essential is in the eye of the beholder. odd digression: in the late 60s the fad was to rewrite bigger instruction sets in terms of smaller ones (the metric was # of instructions). somebody had a 16 instruction set that someone else reimplemented in 8 instructions. the apollo guidance computer had 12 instructions and a few magic memory locations. it was finally determinted you could get by on one instruction --- some variation on predecrement and branch if negative. "look ma, no instructions." unfortunately, this machine was somewhat difficult to program - erik ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] minimal-instruction-sets (was: How can I shift a variable other than ?) 2007-03-13 15:22 ` erik quanstrom @ 2007-03-13 15:40 ` andrey mirtchovski 0 siblings, 0 replies; 23+ messages in thread From: andrey mirtchovski @ 2007-03-13 15:40 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs > in the late 60s the fad was to rewrite bigger instruction sets in > terms of smaller ones (the metric was # of instructions). somebody > had a 16 instruction set that someone else reimplemented in 8 > instructions. the apollo guidance computer had 12 instructions and > a few magic memory locations. it was finally determinted you could > get by on > one instruction --- some variation on predecrement and branch > if negative. "look ma, no instructions." unfortunately, this machine > was somewhat difficult to program > > - erik i think you're referencing the One Instruction Set Computer (OISC). http://en.wikipedia.org/wiki/OISC ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-13 14:59 ` rog 2007-03-13 15:22 ` erik quanstrom @ 2007-03-13 15:40 ` C H Forsyth 2007-03-13 17:45 ` Anthony Sorace 2007-03-13 17:32 ` Anthony Sorace 2 siblings, 1 reply; 23+ messages in thread From: C H Forsyth @ 2007-03-13 15:40 UTC (permalink / raw) To: 9fans >> If the Inferno people had decided to 'update' mash instead of writing sh(1) >for the record, i believe that i wrote the inferno shell before mash was written nothing to do with 9fans, but since the matter has surfaced here: the only real trouble with mash for Vita Nuova at the time was that the group from which we acquired Inferno in its fire sale was not really on speaking terms with the group that by then contained its author (brucee), and rather than creating an incompatible variant of mash, we had roger continue work on his, since we needed something more than the original Inferno sh (or felt we did). despite brucee's own efforts we never did get even as far as a talk about talks with the right people in the other groups involved. anyway, as to the archaic nature of shells. >i also find it bizarre that you can call rc "old cruft"... i supposed that was a reference to the fact that the style of these shells hasn't changed all that much since 1977. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-13 15:40 ` [9fans] How can I shift a variable other than ? C H Forsyth @ 2007-03-13 17:45 ` Anthony Sorace 2007-03-13 20:39 ` Paweł Lasek 0 siblings, 1 reply; 23+ messages in thread From: Anthony Sorace @ 2007-03-13 17:45 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/13/07, C H Forsyth <forsyth@vitanuova.com> wrote: > anyway, as to the archaic nature of shells. > >i also find it bizarre that you can call rc "old cruft"... > > i supposed that was a reference to the fact that the style of these shells hasn't > changed all that much since 1977. interestingly, the most different shell i've seen is Windows PowerShell (formerly MSH, aka Monad). not to say i'm particularly a fan, but the idea of an OO CLI is interesting. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-13 17:45 ` Anthony Sorace @ 2007-03-13 20:39 ` Paweł Lasek 0 siblings, 0 replies; 23+ messages in thread From: Paweł Lasek @ 2007-03-13 20:39 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/13/07, Anthony Sorace <anothy@gmail.com> wrote: > On 3/13/07, C H Forsyth <forsyth@vitanuova.com> wrote: > > anyway, as to the archaic nature of shells. > > >i also find it bizarre that you can call rc "old cruft"... > > > > i supposed that was a reference to the fact that the style of these shells hasn't > > changed all that much since 1977. > > interestingly, the most different shell i've seen is Windows > PowerShell (formerly MSH, aka Monad). not to say i'm particularly a > fan, but the idea of an OO CLI is interesting. AFAIK isn't it the only "normal" official way of using the whole NT namespace? I always find the fact that NT uses Unix-style files (complete with ioctl :D) for device access but that part of namespace is usually hidden deep inside... Although what they are doing for Linux-based PalmOS replacement can rival it... (It includes completely different system - it has unix kernel but afaik uses many concepts alien to unix as base) -- Paul Lasek ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [9fans] How can I shift a variable other than ? 2007-03-13 14:59 ` rog 2007-03-13 15:22 ` erik quanstrom 2007-03-13 15:40 ` [9fans] How can I shift a variable other than ? C H Forsyth @ 2007-03-13 17:32 ` Anthony Sorace 2 siblings, 0 replies; 23+ messages in thread From: Anthony Sorace @ 2007-03-13 17:32 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs On 3/13/07, rog@vitanuova.com <rog@vitanuova.com> wrote: > somebody (anothy?) made a comment ages ago about how it was "suprisingly slow". that was me. don't misunderstand: i quite like the shell, and that wasn't intended to imply that it's not suitable for a great number of things (including, of course, interactive use and one-offs). i suppose i was just disappointed that we couldn't yet really use shell scripts as extensively as they are in plan 9. > unfortunately it's probably not possible to improve things without breaking > binary compatibility. binary compatibility with what? ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2007-03-13 20:39 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-03-10 12:32 [9fans] How can I shift a variable other than ? erik quanstrom 2007-03-10 17:30 ` Kris Maglione 2007-03-10 21:20 ` Dan Cross 2007-03-10 21:53 ` Kris Maglione 2007-03-10 22:20 ` Dan Cross 2007-03-11 12:12 ` matt 2007-03-11 20:23 ` Kris Maglione 2007-03-11 22:11 ` erik quanstrom 2007-03-11 23:14 ` Martin Neubauer 2007-03-12 8:50 ` Kris Maglione 2007-03-12 12:26 ` erik quanstrom 2007-03-12 13:37 ` Anthony Sorace 2007-03-12 13:39 ` Dan Cross 2007-03-12 15:22 ` Russ Cox 2007-03-12 17:05 ` Dan Cross 2007-03-12 18:41 ` Kris Maglione 2007-03-13 14:59 ` rog 2007-03-13 15:22 ` erik quanstrom 2007-03-13 15:40 ` [9fans] minimal-instruction-sets (was: How can I shift a variable other than ?) andrey mirtchovski 2007-03-13 15:40 ` [9fans] How can I shift a variable other than ? C H Forsyth 2007-03-13 17:45 ` Anthony Sorace 2007-03-13 20:39 ` Paweł Lasek 2007-03-13 17:32 ` Anthony Sorace
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).