9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: forsyth@caldo.demon.co.uk
To: 9fans@cse.psu.edu
Subject: Re: [9fans] the declaration of main()
Date: Sat, 28 Apr 2001 18:57:12 +0100	[thread overview]
Message-ID: <20010428180016.D91AC199ED@mail.cse.psu.edu> (raw)

>>fashion.  He has a point, and indeed, someone today ran into problems
>>trying to mix `native' Plan 9 functions with functions taken from the
>>APE.  (Sorry, I didn't pay close enough attention to see who it was!)

>>True, one cannot easily mix and
>>match `native' Plan 9 and APE functions, but I think that might be a
>>good thing.

That was possibly bound to happen, not so much because of ANSI C but
because of all those Unix system calls.  You've got to implement them
somehow.  You've therefore got a choice: in the kernel or not.  To
mimic more precisely the effects or side-effects of Unix system calls,
or implement them at all (eg, select) the real Plan 9 system call is
called something else in the APE libraries (eg, _READ) and the name
`read' invokes something that maintains lots of state for `select' and
emulate some other aspects of Unix more accurately.

I don't want that cost in native Plan 9 programs.  I know, I know,
they could have used `p9read' or `sys_read' instead and avoided the
main POSIX names and then you could use both (but what about SPEC1132
or whatever it was -- people just get too carried away sometimes).

Even if they did all that, they'd unfortunately still need to specify
how the two sets of system calls interacted.  It's bad enough
implementing it in the first place.  See
/sys/src/ape/lib/ap/plan9/buf.prom for a Promela model of APE
select/read.  I found that interesting because when i wrote my own
operating system for 386 and Sun about 8 or 9 years ago,
select/read/write was the one thing i used Spin to model because the
definition was fiddly and I got it wrong the first time.
I also had to write a great MANY #include files.  There's a little joke
that the wc -l of the #include files for most Unix systems (esp. Linux)
is bigger than the source code of the Plan 9 kernels; and they're less readable.



             reply	other threads:[~2001-04-28 17:57 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-28 17:57 forsyth [this message]
2001-04-28 22:28 ` Dan Cross
2001-04-30  9:25 ` Douglas A. Gwyn
  -- strict thread matches above, loose matches on Subject: below --
2001-04-30 12:05 rob pike
2001-04-30 10:44 forsyth
2001-04-28 18:44 forsyth
2001-04-30  9:24 ` Douglas A. Gwyn
2001-04-27  6:57 nemo
2001-04-26 20:58 forsyth
2001-04-27  9:13 ` Douglas A. Gwyn
2001-04-27 14:48   ` Boyd Roberts
2001-04-27 16:22     ` Douglas A. Gwyn
2001-04-27 18:24       ` William K. Josephson
2001-04-30  9:23         ` Douglas A. Gwyn
2001-04-27 19:38       ` Boyd Roberts
2001-04-28 15:54       ` Greg Hudson
2001-04-28 16:39         ` Dan Cross
2001-04-28 17:06           ` Boyd Roberts
2001-04-30  9:25           ` Douglas A. Gwyn
2001-04-26 19:42 Russ Cox
2001-04-26 20:32 ` Dan Cross
2001-04-26 22:03 ` Boyd Roberts
2001-04-27  9:13 ` Douglas A. Gwyn
2001-04-26 18:23 forsyth
2001-04-26 19:17 ` Mike Haertel
2001-04-26 23:50   ` Boyd Roberts
2001-04-27 14:41     ` Douglas A. Gwyn
2001-04-27 15:40       ` Boyd Roberts
2001-04-27  9:12 ` Douglas A. Gwyn
2001-04-24 10:32 rog
2001-04-24 18:03 ` Steve Kilbane
2001-04-24  8:10 forsyth
2001-04-26 15:55 ` Douglas A. Gwyn
2001-04-24  0:59 okamoto
2001-04-24  3:08 ` Boyd Roberts
2001-04-23 19:33 dmr
2001-04-23 11:09 forsyth
2001-04-23 11:31 ` Boyd Roberts
2001-04-24  9:02 ` Douglas A. Gwyn
2001-04-24 12:09   ` Boyd Roberts
2001-04-26 16:05     ` Douglas A. Gwyn
2001-04-26 18:12       ` Boyd Roberts
2001-04-26 23:55       ` Boyd Roberts
2001-04-24 17:43   ` Greg Hudson
2001-04-26 15:55     ` Douglas A. Gwyn
2001-04-12  6:28 okamoto
2001-04-23  8:44 ` Douglas A. Gwyn
2001-04-23  8:48 ` Boyd Roberts
2001-04-12  6:22 YAMANASHI Takeshi
2001-04-12  6:25 ` andrey mirtchovski

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=20010428180016.D91AC199ED@mail.cse.psu.edu \
    --to=forsyth@caldo.demon.co.uk \
    --cc=9fans@cse.psu.edu \
    /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).