From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Tue, 13 Mar 2007 14:59:06 +0000 From: rog@vitanuova.com To: 9fans@cse.psu.edu Subject: Re: [9fans] How can I shift a variable other than ? In-Reply-To: <20070311202334.GI12719@kris.home> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Topicbox-Message-UUID: 215c01ba-ead2-11e9-9d60-3106f5b1d025 > 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.