GNU Info

Info Node: (efaq)Problems with very large files

(efaq)Problems with very large files


Next: ^M in the shell buffer Prev: Bugs and problems Up: Bugs and problems
Enter node , (file) or (file)node

Does Emacs have problems with files larger than 8 megabytes?
============================================================

   Old versions (i.e., anything before 19.29) of Emacs had problems
editing files larger than 8 megabytes.  As of version 19.29, the
maximum buffer size is at least 2^27-1, or 134,217,727 bytes, or 132
MBytes.  Emacs 20 can be compiled on some 64-bit systems in a way that
enlarges the buffer size up to 576,460,752,303,423,487 bytes, or
549,755,813 GBytes.

   If you are using a version of Emacs older than 19.29 and cannot
upgrade, you will have to recompile. 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

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

   David Gillespie <daveg@csvax.cs.caltech.edu> explains how this
problems crops up; while his numbers are true only for pre-19.29
versions of Emacs, the theory remains the same with current versions.

     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.


automatically generated by info2www version 1.2.2.9