On Thursday 20 August 2009 02:38:08 pm José Matos wrote:
> On Thursday 20 August 2009 16:09:21 Steve Litt wrote:
> > Unless of course you have a 64 bit computer.
>
> And the data type used is long. For most of the 64-bit linux the memory
> layout is LP-64 that means that only long and pointer are 64 bits wide.
>
> In case anyone wonders wikipedia has an interesting starting point to read
> about this:
> http://en.wikipedia.org/wiki/LP64
>
> > SteveT

So the real question is whether the variable used for the font size is short 
(16 bits in all common models), int (16 bits in LP32, 32 bits in ILP32 and 
LP64, and 64 bits in ILP64) or long (32 bits in LP32, 64 bits in LP64 and 
ILP64).  I have no idea where to look in the source code for this.  It's 
probably buried in TeX somewhere, but TeX is written in WEB, which in turn is 
written in either Pascal or C -- I'm not sure.

But fonts are defined in point sizes, and a metre is 2834 points. So if the 
limit is 6m,  that's 17004, which is roughly 2**14, or 14 bits.  That's not a 
common integer size.  Maybe TeX allows half points by storing the size as 
twice the size in points? But it appears likely that the limit is a 16 bit 
representation.  If the number is a 32 bit signed integer, the limit is over 
10**9, and there is no logic in specifying a font size with that precision 
(that would be a font size of, for example, 10.00000000 points).

So the question is whether it is defined as short (which is 16 bits in all 
common systems) or int, which is 32 bits in Linux 64 bit systems. And all of 
this asumes we're using a C compiler.

Les


Reply via email to