Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!think.com!mintaka!mintaka.lcs.mit.edu!karl From: karl@geech.gnu.ai.mit.edu (Karl Berry) Newsgroups: comp.text.tex Subject: Re: when are .fmts portable across architectures? (if ever) Message-ID: Date: 5 Jun 91 01:22:15 GMT References: <1991Jun04.231020.10830@eng.cam.ac.uk> Sender: news@mintaka.lcs.mit.edu Reply-To: karl@cs.umb.edu Organization: /home/fsf/karl/.organization Lines: 34 In-Reply-To: img@eng.cam.ac.uk's message of 4 Jun 91 23:10:20 GMT > I was wondering if it is possible to share .fmts files *under some > circumstances*? (I suspect that this is not possible in general.) Yes, it is possible. Yes, you are right, it is not possible in general. Here is the story for web2c, i.e., Unix TeX. I don't anything about other TeX implementations. Format (and base, everything I'm going to say about TeX's .fmt files also holds for Metafont's .base files) files produced by one implementation are unlikely to be compatible with those produced by another (in particular, web2c does some rearranging of the data for speed; other implementations probably do other rearranging, or none). First of all, your format must not do any glue setting. Glue setting, in Knuth's implementation, is done in a machine-dependent way, and it's written out to the .fmt file as a machine real (in C, this could be either float or double). This is very unlikely to be portable to other machines. However, all the formats I know of (plain, latex, eplain, amstex, amslatex, texinfo) don't do any glue setting. (Actually, come to think of it, maybe Texinfo does. Have to check.) So they are ok on that account. In versions of web2c earlier than 5.84b (i.e., the latest), there is a another condition: the machines have to have the same endian-ness. In 5.84b, I rewrote the .fmt-writing code to do BigEndian output. No one has sent me mail telling me either 1) they are successfully sharing .fmt files across different endian architectures, or 2) my code is bombing out. Hope this helps. karl@cs.umb.edu