9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: David Leimbach <leimy2k@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] "Blocks" in C
Date: Sun,  6 Sep 2009 17:41:34 -0700	[thread overview]
Message-ID: <3e1162e60909061741y6aac08a9ufc8ae0a139310de0@mail.gmail.com> (raw)
In-Reply-To: <5d375e920909061535u6d0180c8o5032c0afea1acf23@mail.gmail.com>

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

On Sun, Sep 6, 2009 at 3:35 PM, Uriel <uriel99@gmail.com> wrote:

> On Thu, Sep 3, 2009 at 9:50 PM, David Leimbach<leimy2k@gmail.com> wrote:
> >
> >
> > On Thu, Sep 3, 2009 at 12:36 PM, erik quanstrom <quanstro@quanstro.net>
> > wrote:
> >>
> >> > > > Apple's using it all over the place in Snow Leopard, in all their
> >> > > > native
> >> > > > apps to write cleaner, less manual-lock code.  At least, that's
> the
> >> > > > claim
> >> > > > :-).
> >> > >
> >> > > could someone explain this to me?  i'm just missing how
> >> > > naming a block of code could change its locking properties.
> >> > >
> >> > >
> >> > The explanation is in the manual I linked to earlier in this
> discussion.
> >> >  If
> >> > you want to see examples there's two I can think of available for
> >> > download.
> >> >  One is called DispatchLife the other is DispatchFractal.
> >> >
> >> > I've looked at DispatchLife, and there's no explicit locking of state
> >> > for
> >> > every cell being concurrently update in Conway's game of life.
> >>
> >> i can't find DispatchLife after a few minutes of googling.
> >> i've read the manual, and it looks like csp to me.  clearly
> >> i am a reprobate outside the apple reality distortion field.
> >>
> >
> > Google doesn't have all the answers, I actually had to use Bing today,
> and
> > it worked... anyway here's the link to DispatchLife.
> > http://developer.apple.com/mac/library/samplecode/DispatchLife/
> >
> >>
> >> could you explain why this isn't csp and why this can't be done
> >> with regular c (that is why we need the concept of an
> >> unnamed function pointer) and the thread library?
> >
> > I'm actually planning to figure this stuff out a bit more and "blog"
> about
> > it, hopefully by Friday sometime (tomorrow).
> > I don't agree that any of this stuff is strictly needed.  One can plod
> along
> > with pthreads and do it wrong all day.  One doesn't *need* C either, I've
>
> What do pthreads have to do with anything? Ever heard of libthread,
> libtask and rfork? I guess not, Apple certainly hasn't, and they sure
> are doing a great job at making their developers keep track of as much
> Apple-induced crap as possible...
>

Guess what percentage of developers for Apple know anything at all about
libthread, and libtask.  I bet it's like me and maybe 4 or 5 other people.

Also rfork was in the Mac OS X man pages early on, because the pages were
essentially taken out of FreeBSD, which also had an rfork implementation.

Pthreads, being a part of POSIX, are a lot more well known.  I almost said
understood, but I actually doubt the number of people who know what pthreads
are know how to use them well.  I doubt I could write much with them even
today without looking over the man pages thoroughly as I've been spoiled by
other ways.

Since pthreads are mapped to Mac OS X's mach_threads, it seems to be a path
of least resistance to try to implement stuff that works with them.

And yeah, Apple does do a bit of "developer lock in" with their APIs.  The
only other place Cocoa stuff is even applicable is GNUStep, and even there
it's a subset, though my understanding is the Cocoa bindings of GNU Emacs
work on GNUStep equally well.

I guess my point is, if you invent even the best new way to program
something, or even a superior microprocessor or really anything at all, you
have to overcome the big gorilla's out there, and convince them that your
way is worth adopting.

Also, keep in mind they needed to come up with something that worked with
Objective-C, C++ and C equally well.  Since they don't develop all that
stuff in public, there's no telling what things they tried before settling
in on blocks.


> uriel
>
>
> > seen whole OSes for x86 written in assembly.
> > It all depends on how much crap you want to keep track of.
> > Dave
> >
> >>
> >> - erik
> >>
> >
> >
>
>

[-- Attachment #2: Type: text/html, Size: 5347 bytes --]

  reply	other threads:[~2009-09-07  0:41 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-02  8:04 Anant Narayanan
2009-09-02  9:43 ` Francisco J Ballesteros
2009-09-02 11:00   ` Philippe Anel
2009-09-02 11:13   ` Charles Forsyth
2009-09-03  9:52   ` Greg Comeau
2009-09-02 11:40 ` Eris Discordia
2009-09-02 12:32 ` Uriel
2009-09-02 14:20   ` Devon H. O'Dell
2009-09-03  9:52     ` Greg Comeau
2009-09-03 10:48       ` Akshat Kumar
2009-09-03 11:25         ` Charles Forsyth
2009-09-03 13:59         ` Greg Comeau
2009-09-03 15:15     ` Uriel
2009-09-03 15:44       ` David Leimbach
2009-09-03 16:01         ` Roman V Shaposhnik
2009-09-04  9:15           ` Greg Comeau
2009-09-04 16:49             ` Roman Shaposhnik
2009-09-03 16:02         ` erik quanstrom
2009-09-03 18:56           ` David Leimbach
2009-09-03 18:58             ` erik quanstrom
2009-09-03 19:13               ` David Leimbach
2009-09-03 19:36                 ` erik quanstrom
2009-09-03 19:50                   ` David Leimbach
2009-09-03 20:30                     ` Iruata Souza
2009-09-06 22:35                     ` Uriel
2009-09-07  0:41                       ` David Leimbach [this message]
2009-09-03 21:08                   ` Roman V Shaposhnik
2009-09-03 21:35                     ` erik quanstrom
2009-09-03 21:45                       ` David Leimbach
2009-09-03 21:49                         ` David Leimbach
2009-09-03 21:51                           ` David Leimbach
2009-09-03 22:36                       ` Roman V Shaposhnik
2009-09-04  9:16               ` Greg Comeau
2009-09-03 22:10           ` Daniel Lyons
2009-09-03 22:07         ` Daniel Lyons
2009-09-04  9:15         ` Greg Comeau
2009-09-04  3:21       ` Anant Narayanan
2009-09-04  3:52         ` erik quanstrom
2009-09-04  4:18           ` David Leimbach
2009-09-04  4:44             ` erik quanstrom
2009-09-04  5:31               ` David Leimbach
2009-09-04  5:35                 ` David Leimbach
2009-09-04  7:11                   ` Bakul Shah
2009-09-04  7:47                     ` David Leimbach
2009-09-04 14:41                       ` Bakul Shah
2009-09-04 15:04                         ` David Leimbach
2009-09-04 15:58                           ` Bakul Shah
2009-09-04 12:14                     ` erik quanstrom
2009-09-04 13:52                       ` David Leimbach
2009-09-04 13:59                         ` matt
2009-09-04 14:20                         ` erik quanstrom
2009-09-04 14:56                           ` David Leimbach
2009-09-06 23:03                             ` Uriel
2009-09-07  0:45                               ` David Leimbach
2009-09-04 16:50                       ` Roman Shaposhnik
2009-09-04  6:45               ` Bakul Shah
2009-09-04 16:44           ` Roman Shaposhnik
2009-09-04 16:58             ` Iruata Souza
2009-09-04 17:09               ` Roman Shaposhnik
2009-09-04 17:42             ` erik quanstrom
2009-09-04 18:34               ` erik quanstrom
2009-09-04 21:54               ` Roman V Shaposhnik
2009-09-07  9:06             ` Greg Comeau
2009-09-07  9:05         ` Greg Comeau
2009-09-07  9:40           ` Uriel
2009-09-08 15:31             ` David Leimbach
2009-09-08 15:44               ` Uriel
2009-09-08 16:40               ` Bakul Shah
2009-09-11 18:15                 ` Iruata Souza
2009-09-11 18:46                   ` David Leimbach
2009-09-11 20:36                   ` Roman V Shaposhnik
2009-09-11 21:28                     ` David Leimbach
2009-09-14 16:07                       ` Lawrence E. Bakst
2009-09-12 11:08                     ` Anant Narayanan
2009-09-13 19:03                       ` David Leimbach
2009-09-17  1:54                         ` Lawrence E. Bakst
2009-09-17  8:43                           ` Charles Forsyth
2009-09-17  9:12                             ` Daniel Lyons
2009-09-17 15:56                             ` David Leimbach
2009-09-17 17:38                               ` Jack Norton
2009-09-17 20:23                                 ` Anant Narayanan
2009-09-17 20:26                                   ` erik quanstrom
2009-09-17 20:31                                     ` Anant Narayanan
2009-09-17 20:47                                       ` Akshat Kumar
2009-09-17 21:02                                         ` erik quanstrom
2009-09-17 22:26                                           ` Steve Simon
2009-09-17 22:32                                           ` Roman V Shaposhnik
2009-09-18  2:05                                             ` Daniel Lyons
2009-09-18  9:30                                             ` Charles Forsyth
2009-09-18 11:41                                               ` erik quanstrom
2009-09-17 21:03                                       ` Uriel
2009-09-03  9:52   ` Greg Comeau
2009-09-02 14:08 ` Rodolfo (kix)
2009-09-03  9:52   ` Greg Comeau
     [not found] ` <C56117D7BD9A097270529AAE@192.168.1.2>
2009-09-02 15:07   ` David Leimbach
2009-09-02 15:26     ` Roman V Shaposhnik
2009-09-02 15:45       ` David Leimbach
2009-09-03 15:32     ` Uriel
2009-09-03 15:49       ` Roman V Shaposhnik
2009-09-03 15:54         ` erik quanstrom
2009-09-03 16:20           ` Roman V Shaposhnik
2009-09-03 16:44             ` erik quanstrom
2009-09-04  1:05               ` Roman V Shaposhnik
2009-09-04  1:30               ` Russ Cox
2009-09-04  1:32                 ` erik quanstrom
2009-09-03 21:54             ` James Tomaschke
2009-09-06 22:26           ` Uriel
2009-09-04  9:04       ` Greg Comeau
2009-09-02 15:20 ` Roman V Shaposhnik
2009-09-02 17:51   ` Bakul Shah
2009-09-04  1:35 drivers
2009-09-04  1:52 ` erik quanstrom
2009-09-17  9:19 Andrew Simmons
2009-09-17 14:45 ` LiteStar numnums
2009-09-17 17:24 ` Daniel Lyons
2009-09-18 15:50 drivers
2009-09-18 15:56 ` erik quanstrom

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=3e1162e60909061741y6aac08a9ufc8ae0a139310de0@mail.gmail.com \
    --to=leimy2k@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).