Xref: utzoo comp.text:3186 comp.unix.xenix:4790 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!amdcad!sun!pitstop!sundc!seismo!uunet!ateng!chip From: chip@ateng.ateng.com (Chip Salzenberg) Newsgroups: comp.text,comp.unix.xenix Subject: Re: TeX compile bug on Xenix? Summary: Broken compiler Message-ID: <1989Feb3.130901.2920@ateng.ateng.com> Date: 3 Feb 89 18:09:00 GMT References: <28@ajfcal.UUCP> Organization: A T Engineering, Tampa, FL Lines: 44 According to tony@ajfcal.UUCP (Tony Field): >I am attempting to build TeX 2.9 in C from the University of Washington >distribution files. My system is Xenix 2.2.3/386 with a 2.2.1/386 >development system (i.e. reasonably recent). > >For some reason *tangle* does not seem to execute correctly when: > tangle tex.web ctex.ch >is executed. I therefore cannot build the tex.pool file. > >I believe that this is a result of a *broken compiler* [...] Yes, it is a broken compiler. I had a similar problem, but now I have a working TeX under Xenix. (But see below.) The Microsoft compiler is broken in several ways when it comes to using 8-bit and 16-bit quantities. For example: char a; unsigned short b; char c[3][50000]; main() { /* ... */ c[a][b] = 1; } is broken. Incorrect code is generated when generating the intermediate value "a * 50000": a signed 16x16 multiply is used, instead of an unsigned multiply. My "solution" was this: change the definitions of "integer" and "schar", as well as the typedefs in tangle itself, to all be "int" or "unsigned". (With the exception of "eightbits", which I left as "unsigned char".) No 16-bit manipulation is required, and tangle works. My tex passes the trip test, so I guess I've got a working tex. However -- I can't output! Does anyone know of a Laserjet driver that doesn't require a Pascal compiler? I have no way to output my dvi files! -- Chip Salzenberg or A T Engineering Me? Speak for my company? Surely you jest! "It's no good. They're tapping the lines."