69:  Does Emacs have problems with files larger than 8 megabytes?

  On 64-bit machines, Emacs has no problem editing very large files.  RMS
  says that modifications to make larger files editable by default are
  underway for a future version of Emacs.

  Until then, most installed versions of Emacs will use 24-bit signed
  integers (and 24-bit pointers) internally.  This limits the file size
  that Emacs can handle to 8,388,607 bytes (2^23 - 1).

  Leonard N. Zubkoff <lnz@lucid.com> suggests putting the following two
  lines in src/config.h before compiling Emacs to allow for 26-bit integers
  and pointers (and thus file sizes of up to 33,554,431 bytes):

    #define VALBITS 26
    #define GCTYPEBITS 5

  WARNING: This method may result in "ILLEGAL DATATYPE" and other random
  errors on some machines.

  David Gillespie <daveg@csvax.cs.caltech.edu> gives an explanation of why
  Emacs uses 24 bit integers and pointers:

    Emacs is largely written in a dialect of Lisp; Lisp is a freely-typed
    language in the sense that you can put any value of any type into any
    variable, or return it from a function, and so on.  So each value must
    carry a "tag" along with it identifying what kind of thing it is, e.g.,
    integer, pointer to a list, pointer to an editing buffer, and so on.
    Emacs uses standard 32-bit integers for data objects, taking the top 8
    bits for the tag and the bottom 24 bits for the value.  So integers
    (and pointers) are somewhat restricted compared to true C integers and
    pointers.

    Emacs uses 8-bit tags because that's a little faster on byte-oriented
    machines, but there are only really enough tags to require 6 bits.