Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!harpo!seismo!hao!hplabs!sri-unix!KIRK.TYM@office-2 From: KIRK.TYM%office-2@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: Switching run-time contexts Message-ID: <16405@sri-arpa.UUCP> Date: Sat, 4-Feb-84 03:05:00 EST Article-I.D.: sri-arpa.16405 Posted: Sat Feb 4 03:05:00 1984 Date-Received: Thu, 9-Feb-84 02:40:08 EST Lines: 31 From: Kirk KelleyI get the impression that a high overhead may be involved when switching runtime contexts in UNIX. For an extremely large hypertext system (AUGMENT) already implemented in a sophisticated procedure oriented compiled language (L10), we are thinking of compiling L10 I/O calls into machine code to emulate a C call on the stdio library for standard I/O functions needed by programs written in L10. I think this means having two different runtime contexts that get switched every time a call to a C procedure, like fopen, is made. So there are a variety of related questions here: * How much work do you have to do to safely launch a C-style call? Is it enough to save registers and use the right argument/result passing conventions, or will it also require allocated storage management facilities, error handlers of some type, or other rather involved things? and if so, how much work is it to emulate those facilities, and how heavy to maintain a whole C runtime and "swap" it somehow? * How will this affect the performance of applications written in L10 vs having the whole thing written in C? * Would 4.2BSD behave significantly different than, say, System V? * How about VAX vs 68000? * How farest the existing applications that do this? O unix wizards, we await your reply. -- kirk