Copyright (C) 2000-2012 |
GNU Info (efaq)Problems with very large filesDoes 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 |