From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu From: "Douglas A. Gwyn" Message-ID: <3D5AC78B.E19A9DA1@null.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: Subject: Re: [9fans] Ephase question. Date: Thu, 15 Aug 2002 08:59:02 +0000 Topicbox-Message-UUID: dcfd43fa-eaca-11e9-9e20-41e7f4b1d025 "rob pike, esq." wrote: > Of course you could provide a garbage collector > but that opens a whole new world of trouble. That's the sort of thing I had in mind. Unused resources can *in principle* be reclaimed without the resource client's explicit participation. How practical it would be is another question, and I'm not proposing that real systems be boiled down to minimal possible facilities that are hard to use. (Otherwise we'd all be given just gate arrays to program.) > In any case, who cares? As you said, it's academic. Doesn't mean that it's not worth thinking about. Sometimes good ideas emerge that can be adapted into useful practice. > ... rfork is really a set of calls encoded with a bitvector. Indeed there have been several composite "spawn" implementations; while simplicity might be hard to measure accurately, a single call with lots of parameters doesn't seem as simple as a couple of calls with very few parameters. > Nobody asks what the minimum libc interface is, ... To some degree we do. How much *has* to be provided by each specific C implementation in order for a user to be able to provide his own portable implementation of all the standard library? In the embedded-processor world I find that such questions can be of urgent practical importance. A similar question is, what is the minimum synchronization mechanism needed to coordinate threads? Add "efficiently". Mutexes seem to be the answer, but if someone knows better I'd appreciate hearing about it. > What matters is expressibility without bloat, not finding > the criteria under which to claim a lower count of > functions of type T, for some T. It can depend on one's goal. For example, if a primary goal is proof of security, it seems intractible unless the number of primitive functions is fairly small and each has a fairly clean specification. Reliability and correctness, ditto. English is very expressive, but problematic for purposes of precise specification. It would be meaningful and potentially useful for linguists to consider minimal requirements for an equally expressive but precise natural language. (Leaving aside any requirement for intentional ambiguity, which for the most part is also a working assumption for OS services.)