Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!mit-eddie!uw-beaver!ubc-vision!ubc-cs!manis From: manis@ubc-cs.UUCP Newsgroups: comp.sys.atari.st Subject: Re: uniterm size Message-ID: <993@ubc-cs.UUCP> Date: Sun, 12-Apr-87 12:43:58 EST Article-I.D.: ubc-cs.993 Posted: Sun Apr 12 12:43:58 1987 Date-Received: Tue, 14-Apr-87 00:46:02 EST References: <282@tutor.tut.UUCP> <4468@utah-cs.UUCP> <812@viper.UUCP> <4475@utah-cs.UUCP> Reply-To: manis@ubc-cs.UUCP (Vincent Manis) Distribution: comp Organization: UBC Department of Computer Science Lines: 47 In article <4475@utah-cs.UUCP> sandra@utah-cs.UUCP (Sandra J Loosemore) writes: >Given the straightforward nature of .o files on the ST (at least as produced >by the Alcyon assembler), it should not be too difficult to implement a >dynamic linking routine.... In fact, this is something that's on my >queue of things to hack on. PSL (Portable Standard Lisp) under Un*x >and VMS has something similar, that allows you to link in arbitrary >code into a running Lisp system. I did the VMS implementation myself, and >I expect the same approach would work on the ST: you run the files through >the linker to resolve external references between them, then load the >result into memory and return the addresses of the global symbols it >defines. One of the few astonishingly nice features of VMS is that it has a linker and runtime library which support any known language. This is true in UNIX as well, if you define "any language" to mean "any language whose compiler is based on pcc" (i.e., C, f77, and Pascal). This is emphatically not so on micros (more's the pity). For instance, my preferred programming environments are Mark Williams C and TDI Modula-2, both of which have their own linkers. Mark Williams C can handle (with limitations) DRI object modules, but it's not very nice. On the other hand, Simon uses Personal Pascal (I believe), so I wouldn't want to depend on his compiler generating code which my linker can process (even in some compatibility mode). I wish there were a standard ST linker format (I used to do a lot of computing on IBM 360's and 370's, using a brain-damaged operating system called MTS; it was common to take object code from an OS/VS or CMS system, link it with assembler I/O code, and execute with no errors.) However, there isn't. I respect Simon's decision not to distribute source code. In that case, an executable program format is fine. One other point: the ST does support a system call called Pexec. There's no reason that optional utility modules could not be supported as stand-alone programs. (I've got a tangle of programs which run together under Micro-Emacs that way). I don't see how to structure a terminal emulator this way (though maybe the Kermit and Xmodem packages might be candidates), but it is a good solution in general. ----- Vincent Manis {seismo,uw-beaver}!ubc-vision!ubc-cs!manis Dept. of Computer Science manis@cs.ubc.cdn Univ. of British Columbia manis%ubc.csnet@csnet-relay.arpa Vancouver, B.C. V6T 1W5 manis@ubc.csnet (604) 228-6770 or 228-3061 "BASIC is the Computer Science equivalent of 'Scientific Creationism'."