Autah-cs.175 net.eunice utcsrgv!utzoo!decvax!ucbvax!ihnss!mhtsa!harpo!utah-cs!lepreau Mon Feb 1 00:27:23 1982 Kashtans Eunice Update This is in response to sdcsvax!jmcg's request for Kashtan's message on the status of Eunice. --------------- Date: 16 Jan 1982 1338-PST From: KASHTAN at SRI-AI Subject: finally roped in (Long Message) To: info-vax at MIT-AI I have resisted entering the fray on this list for a long time -- but the time has come.... I would like to respond to some of the points brought up about EMACS running under both VMS and UNIX, in particular the issue of interaction windows. It is true that I did not implement mpxio under EUNICE -- not because it is hard to emulate under VMS but because it is used so infrequently by UNIX programs that it did not pay to spend time on implementing the emulation for mpxio. It was also my feeling the mpxio in Berkeley UNIX was going to be functionally replaced by a new Interprocess Communication Facility in the not too distant future. When that facility is announced I will invest the effort to emulate it. Since EMACS is the ONLY place I have ever seen mpxio used (and there are some bugs in the state of the world that cause things to not work quite as well as one would like) I made the decision to invest my effort instead in doing a VMS version of the EMACS facility spoken of. Although not complete at this moment it already has considerably more functionality than the original UNIX implementation. The main problem arises in the fact that I have been using MailBoxes for the communication channels. This is fine when communicating with UNIX programs under VMS but has some non-terminal properties to VMS programs. This will be fixed when I finish up the Pseudo-Teletype Driver. There are also currently some features in the VMS version of EMACS that have not found their way into the UNIX version of EMACS: Lambda Binding in Mlisp functions (this just awaits some integration efforts on the part of Jim Gosling). A top-level scheduler to make make EMACS asynchronous. This allows some trivial things like "schedule-mlisp-procedure" to be implemented and makes a multi-window, user-programmable shell feasable in EMACS. As for INTERLISP, Dave Dyer paid me a visit some time ago and in 3 days we had it running on VMS (It would have been sooner had there not been a very weird bug in VMS and had the new version of EUNICE been closer to completion). When he left I was under the impression that the only thing that still required work was the INTERLISP code that dealt with file version numbers. Since UNIX did not have version numbers, a rather clever scheme was deviced to use some 8-bit binary data in file names to record INTERLISP version numbers. Since VMS does have version numbers this code is not reasonable for VMS. I had hoped that someone else would have invested the time in fixing this problem -- I have not had any time at all to look at it. Finally, I would like to mention the current state of EUNICE since the latest version (not yet released) is VERY DIFFERENT from the one currently in the field. The old version was originally written in assembler (since there was no "C" compiler available when I started and the initial portings of the UNIX "C" compiler did not work well enough to use as the development language) and was originally designed merely to allow UNIX programs to run on VMS with only minor modifications to the source files but with some VMS wizardry required to figure out what those modifications should be. This obviously caused some problems for people who knew little of VMS (and were not inclined to learn about the innards of yet another O/S). The largest headache was the fact that the linker you had to use was the VMS linker and the debugger you had to use was the VMS debugger. The new version of EUNICE is now entirely in "C" except for 2 assembler "assist" files. It is also internally VERY DIFFERENT from the old assembler version of EUNICE. I have spent much effort in squeezing out the differences in system call semantics between the UNIX and EUNICE worlds. In fact, as of last night, the emulation of the Berkeley Job Control system was working. The new EUNICE will be able to use the UNIX "ld" linker and produce UNIX-style a.out files which will enable the UNIX symbolic debugger to work. This should iron out almost all the difficulties that people are having. The one remaining problem is that of filenames. This will be completely resolved once the VMS release with long filenames occurs (something entirely dependent on DEC). Once that occurs, VMS will support all possible UNIX filenames including upper/lower case distinctions and non-alphanumeric characters in file names. It is my intention that when all is complete a user can log in to a VMS system running EUNICE and, aside from some control character mappings which cannot be changed, be unaware that it is not a UNIX system. David ------- ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.