Comment change.
[bpt/emacs.git] / PROBLEMS
index a846cbc..7172c0b 100644 (file)
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -1,6 +1,30 @@
 This file describes various problems that have been encountered
 in compiling, installing and running GNU Emacs.
 
+* `Pid xxx killed due to text modification or page I/O error'
+
+On HP/UX, you can get that error when the Emacs executable is on an NFS
+file system.  HP/UX responds this way if it tries to swap in a page and
+does not get a response from the server within a timeout whose default
+value is just ten seconds.
+
+If this happens to you, extend the timeout period.
+
+* `expand-file-name' fails to work on any but the machine you dumped Emacs on.
+
+On Ultrix, if you use any of the functions which look up information
+in the passwd database before dumping Emacs (say, by using
+expand-file-name in site-init.el), then those functions will not work
+in the dumped Emacs on any host but the one Emacs was dumped on.
+
+The solution?  Don't use expand-file-name in site-init.el, or in
+anything it loads.  Yuck - some solution.
+
+I'm not sure why this happens; if you can find out exactly what is
+going on, and perhaps find a fix or a workaround, please let us know.
+Perhaps the YP functions cache some information, the cache is included
+in the dumped Emacs, and is then inaccurate on any other host.
+
 * On some variants of SVR4, Emacs does not work at all with X.
 
 Try defining BROKEN_FIONREAD in your config.h file.  If this solves
@@ -17,7 +41,7 @@ the names work properly with other programs on the same system.
 This typically happens on Suns and other systems that use shared
 libraries.  The cause is that the site has installed a version of the
 shared library which uses a name server--but has not installed a
-similiar version of the unshared library which Emacs uses.
+similar version of the unshared library which Emacs uses.
 
 The result is that most programs, using the shared library, work with
 the nameserver, but Emacs does not.
@@ -39,15 +63,9 @@ This means that the file `etc/DOC-...' doesn't properly correspond
 with the Emacs executable.  Redumping Emacs and then installing the
 corresponding pair of files should fix the problem.
 
-* M-x shell immediately responds "Process shell exited abnormally with code 1".
-
-This is often due to inability to run the program `env'.
-This should be in the `etc' subdirectory of the directory
-where Emacs is installed, and it should be marked executable.
-
 * Trouble using ptys on AIX.
 
-People often instll the pty devices on AIX incorrectly.
+People often install the pty devices on AIX incorrectly.
 Use `smit pty' to reinstall them properly.
 
 * Shell mode on HP/UX gives the message, "`tty`: Ambiguous".
@@ -105,8 +123,7 @@ with a floating point option other than the default.
 It's not terribly hard to make this work with small changes in
 crt0.c together with linking with Fcrt1.o, Wcrt1.o or Mcrt1.o.
 However, the easiest approach is to build Xlib with the default
-floating point option: to decide at run time what hardware is
-available.
+floating point option: -fsoft.
 
 * Emacs fails to get default settings from X Windows server.
 
@@ -145,14 +162,6 @@ it only if it is undefined.
 Or you could set TERMCAP only when you set TERM--which should not
 happen in a non-login shell.
 
-* Error compiling sysdep.c, "sioctl.h: no such file or directory".
-
-Among USG systems with TIOCGWINSZ, some require sysdep.c to include
-the file sioctl.h; on others, sioctl.h does not exist.  We don't know
-how to distinguish these two kind of systems, so currently we try to
-include sioctl.h on all of them.  If this #include gets an error, just
-delete it.
-
 * X Windows doesn't work if DISPLAY uses a hostname.
 
 People have reported kernel bugs in certain systems that cause Emacs
@@ -233,10 +242,6 @@ I have also seen character \177 changed into \377.  I do not know
 what transfer means caused this problem.  Various network
 file transfer programs are suspected of clobbering the high bit.
 
-The only verified ways to transfer GNU Emacs are `tar', kermit (in
-binary mode on Unix), and rcp or internet ftp between two Unix systems,
-or chaosnet cftp using raw mode.
-
 If you have a copy of Emacs that has been damaged in its
 nonprinting characters, you can fix them:
 
@@ -290,6 +295,9 @@ Then the old .elc files will be loaded, and your changes
 will not be seen.  To fix this, do M-x byte-recompile-directory
 and specify the directory that contains the Lisp files.
 
+Emacs should print a warning when loading a .elc file which is older
+than the corresponding .el file.
+
 * The dumped Emacs (xemacs) crashes when run, trying to write pure data.
 
 Two causes have been seen for such problems.
@@ -428,25 +436,14 @@ concentrator with a properly designed one.  In the mean time,
 some drastic measures can make Emacs semi-work.
 
 One drastic measure to ignore C-s and C-q, while sending enough
-padding that the terminal will not really lose any output.
-Ignoring C-s and C-q can be done by using keyboard-translate-table
-to map them into an undefined character such as C-^ or C-\.  Sending
-lots of padding is done by changing the termcap entry.  Here is how
-to make such a keyboard-translate-table:
-
-    (let ((the-table (make-string 128 0)))
-      ;; Default is to translate each character into itself.
-      (let ((i 0))
-       (while (< i 128)
-         (aset the-table i i)
-         (setq i (1+ i))))
-      ;; Swap C-s with C-\
-      (aset the-table ?\C-\\ ?\C-s)
-      (aset the-table ?\C-s ?\C-\\)
-      ;; Swap C-q with C-^
-      (aset the-table ?\C-^ ?\C-q)
-      (aset the-table ?\C-q ?\C-^)
-      (setq keyboard-translate-table the-table))
+padding that the terminal will not really lose any output.  To make
+such an adjustment, you need only invoke the function
+enable-flow-control-on with a list of terminal types in your own
+.emacs file.  As arguments, give it the names of one or more terminal
+types you use which require flow control adjustments.
+Here's an example:
+
+(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
 
 An even more drastic measure is to make Emacs use flow control.
 To do this, evaluate the Lisp expression (set-input-mode nil t).
@@ -461,7 +458,7 @@ in sysV.)  You can use keyboard-translate-table, as shown above,
 to map two other input characters (such as C-^ and C-\) into C-s and
 C-q, so that you can still search and quote.
 
-I have no intention of ever redisigning the Emacs command set for
+I have no intention of ever redesigning the Emacs command set for
 the assumption that terminals use C-s/C-q flow control.  This
 flow control technique is a bad design, and terminals that need
 it are bad merchandise and should not be purchased.  If you can
@@ -668,23 +665,6 @@ causes it.
            else
            {
 
-* ld complains because `alloca' is not defined on your system.
-
-Alloca is a library function in 4.2bsd, which is used very heavily by
-GNU Emacs.  Use of malloc instead is very difficult, as you would have
-to arrange for the storage to be freed, and do so even in the case of
-a longjmp happening inside a subroutine.  Many subroutines in Emacs
-can do longjmp.
-
-If your system does not support alloca, try defining the symbol
-C_ALLOCA in the m-...h file for that machine.  This will enable the use
-in Emacs of a portable simulation for alloca.  But you will find that
-Emacs's performance and memory use improve if you write a true
-alloca in assembler language.
-
-alloca (N) should return the address of an N-byte block of memory
-added dynamically to the current stack frame.
-
 * Vax C compiler bugs affecting Emacs.
 
 You may get one of these problems compiling Emacs:
@@ -755,10 +735,10 @@ of machine defines NO_UNION_TYPE.  That is the recommended setting now.
 
 * C compilers lose on returning unions
 
-I hear that some C compilers cannot handle returning
-a union type.  Most of the functions in GNU Emacs return
-type Lisp_Object, which is currently defined as a union.
+I hear that some C compilers cannot handle returning a union type.
+Most of the functions in GNU Emacs return type Lisp_Object, which is
+defined as a union on some rare architectures.
 
 This problem will not happen if the m-...h file for your type
-of machine defines NO_UNION_TYPE.  That is the recommended setting now.
+of machine defines NO_UNION_TYPE.