Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 SMI; site sun.uucp Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!sun!wmb From: wmb@sun.uucp (Mitch Bradley) Newsgroups: net.lang.forth Subject: Re: Why FORTH screens? Message-ID: <2079@sun.uucp> Date: Mon, 25-Mar-85 18:20:25 EST Article-I.D.: sun.2079 Posted: Mon Mar 25 18:20:25 1985 Date-Received: Wed, 27-Mar-85 04:23:42 EST References: <7349@watrose.UUCP> Reply-To: wmb@sun.UUCP (Mitch Bradley) Organization: Sun Microsystems, Inc. Lines: 43 Summary: > Why does FORTH use screens to package its definitions? On machines with small memories and small, slow disks, screens are reasonable, since the code to manipulate them is small. Also, on floppies, editing screens is fairly fast, since the editing is done in place, and an insert into the middle of a screen has to move at most 1023 bytes. HOWEVER, on modern computers, screens are just a pain in the you-know-what. My FORTH system, which is an adaptation of Laxen & Perry's F83 for 68000 Unix systems, uses files. I have not even bothered to implement BLOCK. I edit source code using Emacs, then load the file. A 68000 compiles Forth so fast that it is not worthwhile to try to forget back to where the error occurred and incrementally reload. Instead, I just blow away the forth process and restart it. I can do this faster than I can type FORGET WHATEVER. I have modified the compiler so that it doesn't stop when it hits an undefined word; instead, it prints an error message and compiles a reference to a word LOSE, whose run time action is to complain and abort. This scheme allows the compiler to find all the undefined words in a file, without making such errors propagate through all words that use the undefined word. This is especially wonderful in an environment where you can run the editor and the forth process simultaneously in separate windows, such as inside Gosling's Emacs or in the SunWindows environment. I have published a paper describing a proposed standard portable file system interface, similar in spirit to the C Standard I/O concept. The paper may be found in the proceedings of the 1983 Asilomar FORML Conference, along with the code to implement it under either CP/M or Unix. The interface spec, without the code, is also published in the Proceedings of the 1984 Rochester Forth Conference. By the way, my 68000 Unix F83 system will be included on the soon-to-be- released "Sun User Group Unsupported Software" tape. It ports quite easily to non-Sun 68000 Unix systems, and can also run on random 68000 boards with a small effort. It's public domain, so feel free to get a copy from somebody with a Sun. Mitch Bradley