> 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.

Reply via email to