[comp.emacs] Help me my file is too big for emacs

scotta%cuda@DECWRL.DEC.COM (scott applebaum) (02/05/91)

I am having trouble editing a 13Meg file. Is there a limit
to how big a file GNU can handle?  Is there a way to set the
file size bigger.  My SPARC 2 has 64M of main memory. I would
appreciate some help on this. Thanks!

		Scott Applebaum
		VLSI Technology Inc.
		Princeton NJ

		(609)799-5700

	Send return mail to PRINC1 VAX node not cuda, mustang2, or shelby.

			thanks!

bob@MorningStar.Com (Bob Sutterfield) (02/05/91)

In article <9102041825.AA00727@cuda.princeton> vlsisj!scotta%cuda@DECWRL.DEC.COM (scott applebaum) writes:
   From: vlsisj!scotta%cuda@DECWRL.DEC.COM (scott applebaum)
   Reply-To: vlsisj!scotta%cuda@decwrl.dec.com (Operator)
   ...
   Send return mail to PRINC1 VAX node not cuda, mustang2, or shelby.

Since all those are completely useless non-addresses, I'll reply here.

   I am having trouble editing a 13Meg file. Is there a limit to how
   big a file GNU can handle?  Is there a way to set the file size
   bigger.

From the gnu.emacs.help FAQ:

From: jbw@bucsf.bu.edu (Joe Wells)
Newsgroups: gnu.emacs.help
Subject: GNU Emacs Frequently Asked Questions with Answers (part 2 of 2)
Date: 8 Dec 90 06:46:13 GMT
Organization: Boston University Computer Science Department

GNU Emacs Frequently Asked Questions with Answers (part 2 of 2)

Sat Dec  8 01:30:53 1990

Weird/Confusing Problems:

53: Does Emacs have problems with files larger than 8 Megs?
  
  Most installed versions of GNU Emacs will use 24 bit signed integers
  (and 24 bit pointers!) internally.  This limits the file size that Emacs
  can handle to 8388608 bytes.
  
  Leonard N. Zubkoff <lnz@lucid.com> writes:
  
  Putting the following two lines in src/config.h before compiling Emacs
  allows for 26 bit integers and pointers:
  
    #define VALBITS 26
    #define GCTYPEBITS 5
  
  See question 54 for an explanation.
  
54: Why does Emacs use 24 bit integers and pointers?
  
  David Gillespie <daveg@csvax.cs.caltech.edu> writes:
  
  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.  See
  question 53 to find how to recompile Emacs with 6-bit tags and
  26-bit integers and pointers if space is at a premium for you.