Subject: bug#10192: closed (Re: bug#10192: Emacs 24.0.92 windows build, fatal error with M-< or M->)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 03 Dec 2011 10:08:02 +0000

Your bug report

#10192: Emacs 24.0.92 windows build, fatal error with M-< or M->

which was filed against the emacs,w32 package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10192: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10192
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10192: Emacs 24.0.92 windows build, fatal error with M-< or M->
From: Eli Zaretskii <[email-masked]>
To: Da Zhang <[email-masked]>
Cc: [email-masked]
Date: Sat, 03 Dec 2011 12:05:44 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Sat, 03 Dec 2011 03:33:19 -0500
> From: Da Zhang <[email-masked]>
> 
> The system quit with fatal error after  running this code:
> ;; for smooth scrolling and disabling the automatical recentering of emacs when moving the cursor
> (setq-default scroll-margin 0
>        scroll-conservatively 0
>        scroll-up-aggressively 0.01
>        scroll-down-aggressively 0.01)

This should be fixed now (revision 106588 on the trunk).

If you can rebuild Emacs, the patch is below.  If you cannot rebuild,
set scroll-margin to 1, it should avoid the crashes.  (A better
solution is below, read on.)

By the way, if these customizations were needed to prevent Emacs from
recentering the display, you can now do it like this:

  (setq scroll-conservatively 101)

That is, set this single variable to a value larger than 100.  Then
Emacs will never recenter (and the crashes you had will also
disappear, even if you don't rebuild).  In previous versions of Emacs,
all kinds of weird tricks, such as the strange settings of
scroll-up-aggressively you show above, were necessary to prevent
recentering.  But in Emacs 24, no recentering will ever happen if
scroll-conservatively is set to a large number.

Here's the patch to prevent aborts with your original customizations:

=== modified file 'src/xdisp.c'
--- src/xdisp.c	2011-12-03 07:59:23 +0000
+++ src/xdisp.c	2011-12-03 09:55:27 +0000
@@ -15617,7 +15617,7 @@ redisplay_window (Lisp_Object window, in
 	      pt_offset = float_amount * WINDOW_BOX_TEXT_HEIGHT (w);
 	      if (pt_offset == 0 && float_amount > 0)
 		pt_offset = 1;
-	      if (pt_offset)
+	      if (pt_offset && margin > 0)
 		margin -= 1;
 	    }
 	  /* Compute how much to move the window start backward from

Subject: Emacs 24.0.92 windows build, fatal error with M-< or M->
From: Da Zhang <[email-masked]>
To: [email-masked]
Date: Fri, 02 Dec 2011 00:20:21 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Yidong,

I am a dedicated Emacs user who is excited for the new Emacs 24. I have tried the 3 pretests of Emacs 24, and I saw improvements of its stability from each pretest. For example, with my current extensive .emacs configuration file, the first 2 pretests were not able to start normally. However, all the three pretests have the following problems:
1. after the .emacs file is loaded into the pretest Emacs, when I press M-< or M->, the program abort with a fatal error: "A fatal error has occurred! Would you like to attach a debugger? Select Yes to debug, No to abort Emacs..."
2. certain part of eieio is not available, and the emacs prompts with "Symbol's function definition is void: eieio--defgeneric-init-form"

I am not sure if other windows users have experienced the same problem. I attached my .emacs file. Thanks for your attention.

Da Zhang