GNU Emacs NEWS -- history of user-visible changes. 2003-05-21
-Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
See the end for copying conditions.
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
The new low-level functions process-plist and set-process-plist are
used to access and replace the entire property list of a process.
+???
+*** Adaptive read buffering of subprocess output.
+
+On some systems, when emacs reads the output from a subprocess, the
+output data is read in very small blocks, potentially resulting in
+very poor performance. This behaviour can be remedied to some extent
+by setting the new variable process-adaptive-read-buffering to a
+non-nil value (the default), as it will automatically delay reading
+from such processes, to allowing them to produce more output before
+emacs tries to read it.
+
+++
** Enhanced networking support.
+2004-01-02 Kim F. Storm <storm@cua.dk>
+
+ * process.h (struct Lisp_Process): New members for adaptive read
+ buffering: adaptive_read_buffering, read_output_delay, and
+ read_output_skip.
+
+ * process.c (ADAPTIVE_READ_BUFFERING): New conditional.
+ (READ_OUTPUT_DELAY_INCREMENT, READ_OUTPUT_DELAY_MAX)
+ (READ_OUTPUT_DELAY_MAX_MAX): New constants.
+ (process_output_delay_count, process_output_skip): New vars.
+ (Vprocess_adaptive_read_buffering): New variable.
+ (make_process): Initialize adaptive read buffering members.
+ (Fstart_process): Set adaptive_read_buffering member.
+ (deactivate_process): Cleanup adaptive read buffering.
+ (wait_reading_process_input): Temporarily omit delayed
+ subprocesses from the set of file descriptors to read from;
+ adjust the select timeout if we skipped any subprocesses.
+ (read_process_output): Increase adaptive read buffering delay if
+ we read less than a full buffer; reduce delay when we read a
+ full buffer.
+ (send_process): Simplify using local Lisp_Process var.
+ Reset adaptive read buffering delay after write.
+ (init_process): Initialize process_output_delay_count and
+ process_output_skip.
+ (syms_of_process): DEFVAR_LISP Vprocess_adaptive_read_buffering.
+
2004-01-01 Jason Rumney <jasonr@gnu.org>
* w32term.c (w32_text_out): Use s->font, for consistency with