9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Re: [9fans] Mash
@ 2000-07-16 22:20 brucee
  0 siblings, 0 replies; 15+ messages in thread
From: brucee @ 2000-07-16 22:20 UTC (permalink / raw)
  To: pip, 9fans, brucee

>> Something interesting happened in December 1989. ANSI
>> adopted what was to become the ANSI C standard, which was
>> then adopted by ISO and is ISO/IEC standard 9899-1990.

What an ass.


^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [9fans] mash
@ 2000-11-03 17:25 rog
  0 siblings, 0 replies; 15+ messages in thread
From: rog @ 2000-11-03 17:25 UTC (permalink / raw)
  To: 9fans

leo caves wrote;
> the lack of adoption sends a confusing message.
> the fact that there is another command shell for inferno without
> these features seeemingly relegates the "make" functionality
> to another special purpose language.

i liked mash, in principle, but i thought its syntax was unnecessarily
complex, leaving behind some of the simplifications that rc had given
us, and adding expressions, for instance.  limbo made it very easy to
provide loadable shell modules, but i thought that it should be
possible to do more with less.

i had already written most of an inferno shell before mash, so i dusted
it off, borrowed most of the good ideas from mash, and that became the
inferno shell.  it's comparable in size to mash but simpler and more
versatile, i think.  the syntax is very small, but still substantially
similar to rc's.

it should be quite possible to write a "make"-style dependency module
for it without changing the syntax at all.

the key being that it allows the passing around of fragments of
shell-script as values, so it would be perfectly possible to write a
built-in shell module that defined a command "dep" (dependency) that
might look something like:
	dep x.dis : x.b {
		limbo -g x.b
	}
or:
	dep %.dis : %.b {
		limbo -g $stem.b
	}
and a "mk" command to do the customary make-style dependency
evaluation, executing recipes as necessary.

in this scheme, you do lose the advantages of having a special syntax
for the make features (e.g. distinguishing between quoted and unquoted
wildcard chars), but the shell syntax isn't cluttered with stuff that's
essentially only good for one application, and only in the way
otherwise. swings and roundabouts.

i don't know how long mash will stay in the inferno distribution, once
i've plundered its "make" code and converted it to sh...  but then i'm
completely biased, and probably wrongheaded about all of this as a
result!

  cheers,
    rog.



^ permalink raw reply	[flat|nested] 15+ messages in thread
* [9fans] mash
@ 2000-11-02 13:20 rob pike
  2000-11-02 15:54 ` Rick Hohensee
  0 siblings, 1 reply; 15+ messages in thread
From: rob pike @ 2000-11-02 13:20 UTC (permalink / raw)
  To: 9fans

We needed a make-like facility in Inferno but I dreaded porting
make or mk.  I had been musing for some time that mk is conceptually
just a special dependency-driven wrapper for shell scripts (this is its
major advance over make, in which the recipes are all mangled and
variables adjusted before the script is run).  It therefore seemed that
a shell with a little extra could provide the ability to write building
scripts as shell scripts.  But I didn't know how to do it right.  I mooted
this to Brucee, who ran with it and made mash by exploiting the module
loading of Inferno.  It was a brilliant coup and I wish I had it in other
systems.

-rob



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [9fans] Mash
@ 2000-07-18  7:42 forsyth
  2000-07-18  8:18 ` Lucio De Re
  0 siblings, 1 reply; 15+ messages in thread
From: forsyth @ 2000-07-18  7:42 UTC (permalink / raw)
  To: 9fans

>>I seem to recall the original Inferno shell being quite limited.  The 
>>new man pages are encouraging :-)

it's still there as tiny/sh, because on small devices a simple command interpreter
is useful for maintenance but one might begrudge the extra flash and memory
that plumper shells consume.



^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [9fans] Mash
@ 2000-07-17  2:01 pip
  2000-07-16 22:21 ` Boyd Roberts
  0 siblings, 1 reply; 15+ messages in thread
From: pip @ 2000-07-17  2:01 UTC (permalink / raw)
  To: 9fans

[-- Attachment #1: Type: text/plain, Size: 165 bytes --]

>s/interesting/bad/
Care to share your bountiful wisdom  ? Is it that you think that the 
standardisation process of C made the language evolve for the worse ?


[-- Attachment #2: Type: message/rfc822, Size: 2206 bytes --]

From: Boyd Roberts <boyd@noos.fr>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Mash
Date: Sun, 16 Jul 2000 23:49:25 +0200
Message-ID: <39722DE5.6060908@noos.fr>

pip@namaste.stricca.org wrote:

> <junk>
> > [that's the C Reference Manual brainiac]
> <junk>
> 
> Something interesting happened in December 1989.
s/interesting/bad/

--
Boyd Roberts                            boyd@psycho-basket-case.org

     ``I come over here to kill them cocksuckers, not work for 'em''

           -- Moon Dog, _Pettibone's Law_, John Keene







^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [9fans] Mash
@ 2000-07-17  0:57 pip
  2000-07-16 21:49 ` Boyd Roberts
  0 siblings, 1 reply; 15+ messages in thread
From: pip @ 2000-07-17  0:57 UTC (permalink / raw)
  To: brucee, 9fans, brucee

[-- Attachment #1: Type: text/plain, Size: 485 bytes --]

<junk>
> [that's the C Reference Manual brainiac]
<junk>

Something interesting happened in December 1989. ANSI
adopted what was to become the ANSI C standard, which was
then adopted by ISO and is ISO/IEC standard 9899-1990.  If 
you require a copy, you can get it from ANSI or ISO:

	American National Standards Institute
	11 West 42nd Street
	New York, NY 10036
	Telephone (212) 642-4900

or

	ISO Sales
	Case postale 56
	CH-1211 Geneve 20
	Switzerland
-
pip


[-- Attachment #2: Type: message/rfc822, Size: 3411 bytes --]

From: brucee@plan9.bell-labs.com
To: 9fans@cse.psu.edu, brucee@plan9.bell-labs.com
Subject: [9fans] Mash
Date: Sun, 16 Jul 2000 13:50:19 -0400
Message-ID: <200007161750.NAA09238@cse.psu.edu>

> Does that mean you haven't ported "mash" yet?  :-)  :-)  :-)
>
> I only browsed the mash documentation, but it seemed very intriguing.

Hi, I'm Bruce Ellis - a friend of Mark Shaney's - and
I wrote mash.  There was a plan to replace mk either
by adding loadable module support to rc or by more or
less a mash port.  It's syntax is almost identical to rc
though I got rid of the "if not" wart by some deft but
perhaps not totally successful changes.

I actually did the dynamic loader (with much encouragement
from Russ - loadable vga drivers would be nice) but had
too many other things on my plate to do the rest.
(This involved really minor changes to 8l and a small
library file - 240 lines.  I didn't do the other loaders.)

I wrote a paper on mash for Usenix but it was rejected,
though there were some very fine papers on web servers
and perl that could fill its place.  (Sarcasm?)
Maybe I should tidy up the draft and put it somewhere.
You may not understand it though - some of the reviewers
seemed to have trouble with it because it wasn't ksh/nmake.

Let me be naughty and share some of their comments.
Yes, this is so unprofessional.

---
I find nothing interesting or novel or conceptually
appealing about the paper.

[ok - more fool you]

The author states that "a history mechanism probably
doesn't belong in a shell."  Make and Tk do?

[they aren't in the shell boofhead, that's the point]

Is a 1978 AT&T manual the best reference on the C language?

[that's the C Reference Manual brainiac]

What is a "trampoline function"?

[where did you go to school]

On the second last page, you write "mush" instead of "must"

[it's a draft - meant "tush" anyway]

We hope to see you in Monterey!

[eat my shorts]
---

But I digress.  Mash is fun, makes Inferno a better place.
The make loadable module is 723 lines of code.  nmake
is 723 pages of code.

Comments/suggestions welcome - though I don't read 9fans,
Russ forwarded me the mail.

Bruce Ellis
Computing Prototypes Research Group
Bell Laboratories

* Don't meddle in the mouth.

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [9fans] Mash
@ 2000-07-16 17:50 brucee
  2000-07-17  9:12 ` Chris Locke
  0 siblings, 1 reply; 15+ messages in thread
From: brucee @ 2000-07-16 17:50 UTC (permalink / raw)
  To: 9fans, brucee

> Does that mean you haven't ported "mash" yet?  :-)  :-)  :-)
>
> I only browsed the mash documentation, but it seemed very intriguing.

Hi, I'm Bruce Ellis - a friend of Mark Shaney's - and
I wrote mash.  There was a plan to replace mk either
by adding loadable module support to rc or by more or
less a mash port.  It's syntax is almost identical to rc
though I got rid of the "if not" wart by some deft but
perhaps not totally successful changes.

I actually did the dynamic loader (with much encouragement
from Russ - loadable vga drivers would be nice) but had
too many other things on my plate to do the rest.
(This involved really minor changes to 8l and a small
library file - 240 lines.  I didn't do the other loaders.)

I wrote a paper on mash for Usenix but it was rejected,
though there were some very fine papers on web servers
and perl that could fill its place.  (Sarcasm?)
Maybe I should tidy up the draft and put it somewhere.
You may not understand it though - some of the reviewers
seemed to have trouble with it because it wasn't ksh/nmake.

Let me be naughty and share some of their comments.
Yes, this is so unprofessional.

---
I find nothing interesting or novel or conceptually
appealing about the paper.

[ok - more fool you]

The author states that "a history mechanism probably
doesn't belong in a shell."  Make and Tk do?

[they aren't in the shell boofhead, that's the point]

Is a 1978 AT&T manual the best reference on the C language?

[that's the C Reference Manual brainiac]

What is a "trampoline function"?

[where did you go to school]

On the second last page, you write "mush" instead of "must"

[it's a draft - meant "tush" anyway]

We hope to see you in Monterey!

[eat my shorts]
---

But I digress.  Mash is fun, makes Inferno a better place.
The make loadable module is 723 lines of code.  nmake
is 723 pages of code.

Comments/suggestions welcome - though I don't read 9fans,
Russ forwarded me the mail.

Bruce Ellis
Computing Prototypes Research Group
Bell Laboratories

* Don't meddle in the mouth.


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2000-11-03 17:25 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-07-16 22:20 [9fans] Mash brucee
  -- strict thread matches above, loose matches on Subject: below --
2000-11-03 17:25 [9fans] mash rog
2000-11-02 13:20 rob pike
2000-11-02 15:54 ` Rick Hohensee
2000-11-03  9:27   ` Leo Caves
2000-07-18  7:42 [9fans] Mash forsyth
2000-07-18  8:18 ` Lucio De Re
2000-07-18  8:24   ` Lucio De Re
2000-07-17  2:01 pip
2000-07-16 22:21 ` Boyd Roberts
2000-07-17  0:57 pip
2000-07-16 21:49 ` Boyd Roberts
2000-07-16 17:50 brucee
2000-07-17  9:12 ` Chris Locke
2000-07-18  6:27   ` Lucio De Re

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