9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Dan Cross <crossd@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] rc's shortcomings (new subject line)
Date: Thu, 30 Aug 2012 19:51:45 +0530	[thread overview]
Message-ID: <CAEoi9W5AagpdK4aZCYs5tSMESU3yoMe9bmgX3GcphTcYuMq9kQ@mail.gmail.com> (raw)
In-Reply-To: <323885878fa10ffb7824819d474970e3@brasstown.quanstro.net>

On Thu, Aug 30, 2012 at 7:03 PM, erik quanstrom <quanstro@quanstro.net> wrote:
>> rejected such system-imposing structure on files in Unix-y type
>> environments since 1969.
> [...]
>> other threads of execution.  Could we do something similar with pipes?
>>  I don't know that anyone wants typed file descriptors; that would
>> open a whole new can of worms.
>
> i don't see that the os can really help here.  lib9p has no problem
> turning an undelimited byte stream → 9p messages.  there's no reason
> any other format couldn't get the same treatment.

Yeah, I don't see much here unless one breaks the untyped stream model
(from the perspective of the system).

> said another way, we already have typed streams, but they're not
> enforced by the operating system.

Yes, but then every program that participates in one of these
computation networks has to have that type knowledge baked in.  The
Plan 9/Unix model seems to preclude a general mechanism.

> one can also use the thread library technique, using shared memory.

Sure, but that doesn't do much for designing a new shell.  :-)

>> Consider a simple reduction in Lisp; say, summing up a list of numbers
>> or something like that.  In Common Lisp, we may write this as:
>>
>>     (reduce #'+ '(1 2 3 4 5))
>>
>> In clojure, the same thing would be written as:
>>
>>     (reduce + [1 2 3 4 5])
>>
>
> this reminds me of a bit of /bin/man.  it seemed that the case statement
> to generate a pipeline of formatting commands was awkward—verbose
> and yet limited.
>
>         fn pipeline{
>                 if(~ $#* 0)
>                         troff $Nflag $Lflag -$MAN | $postproc
>                 if not{
>                         p = $1; shift
>                         $p | pipeline $*
>                 }
>         }
>
>         fn roff {
>                 ...
>                 fontdoc $2 | pipeline $preproc
>         }

Ha!  That's something.  I'm not sure what, but definitely something (I
actually kind of like it).

>> http://clojure.com/blog/2012/05/08/reducers-a-library-and-model-for-collection-processing.html
>>
>> Your example of running multiple 'grep's in parallel sort of reminded
>> me of this, though it occurs to me that this can probably be done with
>> a command: a sort of 'parallel apply' thing that can run a command
>> multiple times concurrently, each invocation on a range of the
>> arguments.  But making it simple and elegant is likely to be tricky.
>
> actually, unless i misread (i need more coffee), the blog sounds just like
> xargs.

Hmm, not exactly.  xargs would be like reducers if xargs somehow asked
stdin to apply a program to itself.

A parallel apply sort of thing could be used with xargs, of course;
'whatever | xargs papply foo' could keep some $n$ of foo's running at
the same time.  The magic behind 'papply foo `{whatever}' is that it
knows how to interpret its arguments in blocks.  xargs will invoke a
command after reading $n$ arguments, but that's mainly to keep from
overflowing the argument buffer, and (to my knowledge) it won't try to
keep multiple instances running them in parallel.

Hmm, I'm afraid I'm off in the realm of thinking out loud at this
point.  Sorry if that's noisy for folks.

        - Dan C.



  reply	other threads:[~2012-08-30 14:21 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-28  8:57 [9fans] rc vs sh Rudolf Sykora
2012-08-28  9:47 ` hiro
2012-08-28  9:52 ` dexen deVries
2012-08-28 10:27   ` Rudolf Sykora
2012-08-28 13:07   ` Lucio De Re
2012-08-28 13:40     ` Rudolf Sykora
2012-08-28 14:10       ` Lucio De Re
2012-08-28 14:13         ` Kurt H Maier
2012-08-28 14:52           ` Lucio De Re
2012-08-28 15:05             ` Kurt H Maier
2012-08-28 15:18               ` Dan Cross
2012-08-28 15:30                 ` Kurt H Maier
2012-08-28 15:45                   ` Dan Cross
2012-08-28 17:43                     ` Kurt H Maier
2012-08-28 18:20                       ` Dan Cross
2012-08-28 18:26                         ` Kurt H Maier
2012-08-28 18:39                           ` Dan Cross
2012-08-28 18:47                             ` Kurt H Maier
2012-08-28 20:42                             ` Jeremy Jackins
2012-08-28 21:20                               ` Dan Cross
2012-08-28 20:40                   ` Uriel
2012-08-28 15:36               ` Lucio De Re
2012-08-28 15:35                 ` Kurt H Maier
2012-08-28 15:41                   ` erik quanstrom
2012-08-28 15:47                     ` Kurt H Maier
2012-08-28 16:04                       ` hiro
2012-08-28 16:05                   ` Lucio De Re
2012-08-28 17:46                     ` Kurt H Maier
2012-08-28 18:19                       ` Lucio De Re
2012-08-28 18:18                         ` Kurt H Maier
2012-08-28 20:44                   ` Uriel
2012-08-31 22:24                     ` Kurt H Maier
2012-08-31 23:00                       ` Uriel
2012-08-31 23:15                         ` hiro
2012-08-31 23:56                           ` Matthew Veety
2012-09-02 15:20                             ` suharik
     [not found]                             ` <CAF9FGtS9xYBNzneNPs2eBkkqVGzn5V0FjdEWDYs_EaUu0waRvQ@mail.gmail.c>
2012-09-02 17:25                               ` erik quanstrom
2012-09-02 20:40                                 ` suharik
2012-09-03  7:31                                 ` Rudolf Sykora
2012-09-03  8:22                                   ` dexen deVries
2012-09-03 10:04                                   ` suharik
2012-09-03 10:57                                     ` hiro
     [not found]                                 ` <CAF9FGtRdcFuuefr4q0zFBrkwaQ5a_-w4J-=xqo-MYp+phjQBaA@mail.gmail.c>
2012-09-03 13:42                                   ` erik quanstrom
     [not found]                                 ` <CAF9FGtTFskxpVd_CxGEKpRwfSihVjyREqWwFCmjiWksCKZoDvg@mail.gmail.c>
2012-09-03 13:46                                   ` erik quanstrom
2012-10-25 13:36                                     ` Ethan Grammatikidis
2012-10-25 13:48                                       ` erik quanstrom
2012-09-03  8:32                         ` Balwinder S Dheeman
2012-08-28 16:06             ` tlaronde
2012-08-28 16:12               ` Aram Hăvărneanu
2012-08-28 16:32                 ` tlaronde
2012-08-28 20:43                 ` tlaronde
2012-08-28 18:13               ` Lucio De Re
2012-08-30  6:14                 ` arnold
2012-08-30  7:41                   ` Lucio De Re
2012-08-30  9:34                     ` tlaronde
2012-08-30 10:26                       ` Lucio De Re
2012-08-30 10:29                         ` tlaronde
2012-08-30 10:50                           ` Lucio De Re
2012-08-30 10:35                         ` Dan Cross
2012-08-28 14:16         ` erik quanstrom
2012-08-28 14:58           ` Lucio De Re
2012-08-28 14:16         ` dexen deVries
2012-08-28 14:23           ` hiro
2012-08-28 14:34             ` hiro
2012-08-29  9:16   ` Balwinder S Dheeman
2012-08-29 15:10     ` Charles Forsyth
2012-08-29 15:22       ` hiro
2012-08-29 15:34         ` Charles Forsyth
2012-10-25 13:45       ` Ethan Grammatikidis
2012-10-25 13:56       ` dexen deVries
2012-08-28 15:09 ` Dan Cross
     [not found] ` <CAEoi9W6K07ZgNS+7-oeQY3dkedW7qZLnOh79m5J7KCw7os5aEQ@mail.gmail.c>
2012-08-28 15:26   ` erik quanstrom
2012-08-28 15:40     ` Lucio De Re
2012-08-28 15:34       ` erik quanstrom
2012-08-28 18:24     ` dexen deVries
2012-08-28 18:44       ` [9fans] rc's shortcomings (new subject line) erik quanstrom
2012-08-28 19:34         ` dexen deVries
2012-08-29  0:06           ` arisawa
2012-08-29  8:12             ` dexen deVries
2012-08-28 19:41         ` Dan Cross
2012-08-28 20:14           ` Bakul Shah
2012-08-29  1:39             ` erik quanstrom
2012-08-29  1:43               ` erik quanstrom
2012-08-29  2:13               ` Bakul Shah
2012-08-29  2:23                 ` erik quanstrom
2012-08-29  2:44                   ` Bakul Shah
2012-08-29  4:28                     ` erik quanstrom
2012-08-28 20:31           ` Aram Hăvărneanu
2012-09-04 17:27           ` 😜
2012-08-28 19:53         ` Bakul Shah
     [not found]         ` <CAEoi9W5bZE+coAaQA-Be4P_JQoB6TR31GS=gYhq=6BhHNXCRKw@mail.gmail.c>
2012-08-28 20:34           ` erik quanstrom
2012-08-28 22:46             ` Bakul Shah
2012-08-29  1:28               ` erik quanstrom
2012-08-29  8:09             ` dexen deVries
2012-08-29  8:38             ` Dan Cross
     [not found]             ` <CAEoi9W5_r=4w5EcdrbKuqD566p=C5KvEEHg72YKzdat18En2-w@mail.gmail.c>
2012-08-29 13:57               ` erik quanstrom
2012-08-29 15:07                 ` Charles Forsyth
2012-08-30 10:05                 ` Dan Cross
2012-08-30 10:43                   ` Charles Forsyth
2012-08-30 13:41                   ` dexen deVries
2012-08-30 13:47                     ` erik quanstrom
2012-08-30 14:26                       ` dexen deVries
2012-08-30 14:29                         ` erik quanstrom
2012-08-30 14:24                     ` Dan Cross
     [not found]                     ` <CAEoi9W6NL-zGryJnMrAX3B77bk1bOEMfkv_R7M4W052LZR4yrg@mail.gmail.c>
2012-08-30 14:26                       ` erik quanstrom
2012-08-30 14:33                         ` Dan Cross
     [not found]                         ` <CAEoi9W45W0pK7MA2FvxsCVCuRcqw-JxOiEn+JQtWMo0rFcSEpg@mail.gmail.c>
2012-08-30 14:41                           ` erik quanstrom
2012-08-30 14:48                             ` dexen deVries
2012-08-30 15:11                               ` sl
2012-08-30 15:13                               ` Lucio De Re
2012-08-30 15:07                                 ` Burton Samograd
2012-08-30 15:13                                 ` Charles Forsyth
2012-08-30 15:14                                   ` Charles Forsyth
2012-08-30 17:02                   ` Bakul Shah
2012-08-30 17:18                     ` erik quanstrom
2012-08-30 20:06                       ` Charles Forsyth
     [not found]                   ` <CAOw7k5jQxJCs64ZjrXp1mU0zTUTG6p7VXYX5ykwQ8OmFATLirg@mail.gmail.c>
2012-08-30 20:10                     ` erik quanstrom
     [not found]                 ` <CAEoi9W6c2JaxrTDwR76TjuN9DeBXnO6gueOGCaEh+Fksfb9zqQ@mail.gmail.c>
2012-08-30 13:33                   ` erik quanstrom
2012-08-30 14:21                     ` Dan Cross [this message]
2012-08-30 14:25                       ` Dan Cross
2012-08-30 14:45                     ` Charles Forsyth
2012-08-30 14:55                       ` Charles Forsyth
     [not found]                   ` <CAEoi9W5AagpdK4aZCYs5tSMESU3yoMe9bmgX3GcphTcYuMq9kQ@mail.gmail.c>
2012-08-30 14:34                     ` erik quanstrom
2012-08-30 14:44                     ` erik quanstrom
     [not found]                   ` <CAOw7k5i-JO=bOS8h+S0zdWghCWhSN36uFebMYnzvs=fdNQgA+g@mail.gmail.c>
2012-08-31  1:33                     ` erik quanstrom
2012-10-25 14:56 ` [9fans] rc vs sh Ethan Burns
2012-10-25 15:08   ` hiro
2012-10-25 17:02     ` Gorka Guardiola
2012-10-25 17:18       ` Matthew Veety
2012-10-25 17:26         ` John Floren
2012-10-25 19:03           ` hiro
2012-10-25 19:08     ` Skip Tavakkolian
2012-08-30 15:24 [9fans] rc's shortcomings (new subject line) Lucio De Re

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEoi9W5AagpdK4aZCYs5tSMESU3yoMe9bmgX3GcphTcYuMq9kQ@mail.gmail.com \
    --to=crossd@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).