From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Cast To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> In-Reply-To: <208248d7852a5113dfc9b23cac0d2885@brasstown.quanstro.net> References: <86ipx4s36p.fsf@cmarib.ramside> <86ei7ry76s.fsf@cmarib.ramside> <86zkqf46vz.fsf@cmarib.ramside> <86mxmfuiep.fsf_-_@cmarib.ramside> <1296670548.17627.24.camel@jcast-desktop> <208248d7852a5113dfc9b23cac0d2885@brasstown.quanstro.net> Content-Type: text/plain; charset="UTF-8" Date: Wed, 2 Feb 2011 11:15:31 -0800 Message-ID: <1296674131.17627.59.camel@jcast-desktop> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [9fans] Modern development language for Plan 9, WAS: Re: RESOLVED: recoving important header file rudely Topicbox-Message-UUID: a8a6a338-ead6-11e9-9d60-3106f5b1d025 On Wed, 2011-02-02 at 13:21 -0500, erik quanstrom wrote: > > A runtime system is just a library whose entry points are language > > keywords.[1] In go, dynamic allocation, threads, channels, etc. are > > accessed via language features, so the libraries that implement those > > things are considered part of the RTS. That's a terminological > > difference only from Plan 9 C, which has the same features[2] but > > accesses them through ordinary library entry points so the libraries > > that implement them aren't called `runtimes'. But I think complaining > > about a library only because its entry point is a keyword is kind of > > silly. > > i think this glosses over a key difference. a runtime can do things > that are not invoked by function call. the canonical example is > garbage collection. I don't follow. Garbage collection certainly can be done in a library (e.g., Boehm). GC is in my experience normally triggered by * Allocation --- which is a function call in C * Explicit call to the `garbage collect now' entry point in the standard library. A function call in every language. What other events canonically would trigger garbage collection, but not be invoked by function calls? jcc