Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!brl-adm!rutgers!sri-unix!hplabs!hp-sdd!ncr-sd!ncrcae!ece-csc!mcnc!unc!rentsch From: rentsch@unc.UUCP (Tim Rentsch) Newsgroups: comp.lang.smalltalk Subject: BS on sun-3's, fix for multiplication primitive Message-ID: <255@unc.unc.UUCP> Date: Tue, 18-Nov-86 15:29:20 EST Article-I.D.: unc.255 Posted: Tue Nov 18 15:29:20 1986 Date-Received: Wed, 19-Nov-86 21:29:36 EST Distribution: net Organization: CS Dept, U. of N. Carolina, Chapel Hill Lines: 33 (OK, just one more note on net.lang.st80....) I know some people out there are wondering about running BS on sun-3's. For those that haven't been able to get this going, here is a hint or two. We got BS running on a sun-3 mostly just by recompiling the sources (sun-3 a.out format is different, remember?). My recollection is that this is straightforward, i.e., no strange machine dependencies. There is one thing that had to be changed. Several of the BS modules are compiled to produce assembly output, then an 'awk' script is used on the intermediate assembly (before running it through the assembler) to do some form of peephole optimization. To make a long story short, the 'awk' peephole optimization doesn't work; the reason the same thing worked on the sun-2's is that the particular optimization case never happened. (In fairness to the Berkeley people, I should say that it is my opinion that the 'awk' script does not work. But BS ran fine after I removed that step.) So, change the makefile to delete the 'awk' step on those modules that formerly used it, and things should work fine. Also, those with BS should know that the multiplication primitive sometimes fails, due to the way it is done, and how overflow is detected. (Also true on sun-2, as I recall.) The fix is to multiply A times B to give C, then see if C/B == A, since if it does then overflow will not have occurred. (Maybe I posted this before, I have forgotten.) cheers, txr