all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: cyd@stupidchicken.com, emacs-devel@gnu.org
Subject: Re: Emacs 23.1.93 pretest
Date: Sat, 27 Feb 2010 12:21:03 +0200	[thread overview]
Message-ID: <833a0ndlo0.fsf@gnu.org> (raw)
In-Reply-To: <83fx4n122q.fsf@gnu.org>

> Date: Sat, 27 Feb 2010 11:05:01 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> > From: Chong Yidong <cyd@stupidchicken.com>
> > Date: Fri, 26 Feb 2010 22:40:05 -0500
> > 
> > Emacs pretest 23.1.93 is now available for download via FTP, at the
> > following location:
> > 
> >   ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.93.tar.gz
> > 
> > The xdelta against the Emacs 23.1.92 pretest is here:
> > 
> >   ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.92-23.1.93.xdelta
> > 
> > This is the fourth pretest for what will be the Emacs 23.2 release.
> 
> It crashes for me on MS-Windows, while loading my desktop file.  I'm
> trying to debug this.

The problem is this line from my desktop file:

  (setq regexp-search-ring '("[^]$" "\\bmac" "\\`n" "\\`m" "\\\\`ma" "\\. [^ ]" "^`" "^\\\\" "/[A-Za-z] " "/. ." " $" "/.*ş" "/.*\naba/f" "^" "/.*H" "[[^ ]*[^]] "))

There's a Latin-2 character `ş' there.  If I delete the "/.*ş" part of
the regexp-search-ring, Emacs starts correctly.  Emacs 23.1.92 loads
the same desktop file without any trouble, so this is a regression.

From this and other symptoms (see below), it looks like the emacs-mule
decoding is broken in this pretest.  For example, visiting the
offending desktop file with the Latin-2 character in place causes many
characters following this Latin-2 character to disappear from display,
as if they didn't exist in the file.  Killing the buffer and visiting
the file again magically restores the characters that disappeared.

I cannot produce a GDB backtrace: I could not find a way of
reproducing the crash under GDB.  All I get is a weird
wrong-type-argument error:

   Debugger entered--Lisp error: (wrong-type-argument symbolp (quote ((tab-width . 8) (buffer-file-coding-system . iso-latin-1-unix) (case-fold-search . t))))

But I think this is because the failure to decode the desktop file
correctly causes Emacs to try evaluating a butchered expression.

FWIW, here's the backtrace of the crash produced by Dr MinGW, a GIT
debugger that pops up when Emacs crashes.  Note that it crashes in
decode_coding_emacs_mule, yet another sign that this is the culprit.

    emacs.exe caused an Access Violation at location 0112b000 in module emacs.exe Reading from location 03194000.

    Registers:
    eax=03194000 ebx=00000000 ecx=03194000 edx=00002c50 esi=00000000 edi=0081572c
    eip=0112b000 esp=0080a550 ebp=0080a5b8 iopl=0         nv up ei ng nz ac pe cy
    cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000293

    Call stack:
    0112B000  emacs.exe:0112B000  decode_coding_emacs_mule  coding.c:2497

	    ...
	    c = byte_after_cr, byte_after_cr = -1;
		  else
    >       ONE_MORE_BYTE (c);

		  if (c < 0 || c == 0x80)
	    ...

    01134F4F  emacs.exe:01134F4F  decode_coding  coding.c:7158

	    ...
		  coding->charbuf_used = carryover;
		  (*(coding->decoder)) (coding);
    >             coding_set_destination (coding);
		  carryover = produce_chars (coding, translation_table, 0);
		  if (coding->annotated)
	    ...

    01138823  emacs.exe:01138823  decode_coding_gap  coding.c:7666

	    ...
	      current_buffer->text->inhibit_shrinking = 1;
	      decode_coding (coding);
    >         current_buffer->text->inhibit_shrinking = 0;

	      attrs = CODING_ID_ATTRS (coding->id);
	    ...

    0104E7B8  emacs.exe:0104E7B8  Finsert_file_contents  fileio.c:4083

	    ...
		  decode_coding_gap (&coding, inserted, inserted);
		  inserted = coding.produced_char;
    >             coding_system = CODING_ID_NAME (coding.id);
		}
	      else if (inserted > 0)
	    ...

    0100C5AD  emacs.exe:0100C5AD  Ffuncall  eval.c:3038

	    ...
	      goto done;
	    case 5:
    >         val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
	      internal_args[2], internal_args[3],
	      internal_args[4]);
	    ...

    0111E0F6  emacs.exe:0111E0F6  Fbyte_code  bytecode.c:679

	    ...
		  }
	    #endif
    >           TOP = Ffuncall (op + 1, &TOP);
		AFTER_POTENTIAL_GC ();
		break;
	    ...

    0100C012  emacs.exe:0100C012  funcall_lambda  eval.c:3216

	    ...
		}

    >         return unbind_to (count, val);
	    }

	    ...

    0100C3F6  emacs.exe:0100C3F6  Ffuncall  eval.c:3093

	    ...
	     done:
	      CHECK_CONS_LIST ();
    >         lisp_eval_depth--;
	      if (backtrace.debug_on_exit)
		val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
	    ...

    0100C78E  emacs.exe:0100C78E  call4  eval.c:2880

	    ...
	      RETURN_UNGCPRO (Ffuncall (5, &fn));
	    #endif /* not NO_ARG_ARRAY */
    >       }

	    /* Call function fn with 5 arguments arg1, arg2, arg3, arg4, arg5 */
	    ...

    0107AC20  emacs.exe:0107AC20  Fload  lread.c:1225

	    ...
		   NILP (noerror) ? Qnil : Qt,
		   (NILP (nomessage) || force_load_messages) ? Qnil : Qt);
    >         return unbind_to (count, val);
	    }
		}
	    ...

    0100C5AD  emacs.exe:0100C5AD  Ffuncall  eval.c:3038

	    ...
	      goto done;
	    case 5:
    >         val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
	      internal_args[2], internal_args[3],
	      internal_args[4]);
	    ...

    0111E0F6  emacs.exe:0111E0F6  Fbyte_code  bytecode.c:679

	    ...
		  }
	    #endif
    >           TOP = Ffuncall (op + 1, &TOP);
		AFTER_POTENTIAL_GC ();
		break;
	    ...

    0100C012  emacs.exe:0100C012  funcall_lambda  eval.c:3216

	    ...
		}

    >         return unbind_to (count, val);
	    }

	    ...

    0100C3F6  emacs.exe:0100C3F6  Ffuncall  eval.c:3093

	    ...
	     done:
	      CHECK_CONS_LIST ();
    >         lisp_eval_depth--;
	      if (backtrace.debug_on_exit)
		val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
	    ...

    0111E0F6  emacs.exe:0111E0F6  Fbyte_code  bytecode.c:679

	    ...
		  }
	    #endif
    >           TOP = Ffuncall (op + 1, &TOP);
		AFTER_POTENTIAL_GC ();
		break;
	    ...

    0100C012  emacs.exe:0100C012  funcall_lambda  eval.c:3216

	    ...
		}

    >         return unbind_to (count, val);
	    }

	    ...

    0100C3F6  emacs.exe:0100C3F6  Ffuncall  eval.c:3093

	    ...
	     done:
	      CHECK_CONS_LIST ();
    >         lisp_eval_depth--;
	      if (backtrace.debug_on_exit)
		val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
	    ...

    0100CB8B  emacs.exe:0100CB8B  run_hook_with_args  eval.c:2683

	    ...
		{
		  args[0] = XCAR (val);
    >             ret = Ffuncall (nargs, args);
		}
	    }
	    ...

    0100CD1C  emacs.exe:0100CD1C  Frun_hooks  eval.c:2534

	    ...
	      register int i;

    >         for (i = 0; i < nargs; i++)
		{
		  hook[0] = args[i];
	    ...

    0100C6B4  emacs.exe:0100C6B4  Ffuncall  eval.c:3005

	    ...
		  if (XSUBR (fun)->max_args == MANY)
	    {
    >         val = (*XSUBR (fun)->function) (numargs, args + 1);
	      goto done;
	    }
	    ...

    0111E0F6  emacs.exe:0111E0F6  Fbyte_code  bytecode.c:679

	    ...
		  }
	    #endif
    >           TOP = Ffuncall (op + 1, &TOP);
		AFTER_POTENTIAL_GC ();
		break;
	    ...

    0100C012  emacs.exe:0100C012  funcall_lambda  eval.c:3216

	    ...
		}

    >         return unbind_to (count, val);
	    }

	    ...

    0100C3F6  emacs.exe:0100C3F6  Ffuncall  eval.c:3093

	    ...
	     done:
	      CHECK_CONS_LIST ();
    >         lisp_eval_depth--;
	      if (backtrace.debug_on_exit)
		val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
	    ...

    0111E0F6  emacs.exe:0111E0F6  Fbyte_code  bytecode.c:679

	    ...
		  }
	    #endif
    >           TOP = Ffuncall (op + 1, &TOP);
		AFTER_POTENTIAL_GC ();
		break;
	    ...

    0100C012  emacs.exe:0100C012  funcall_lambda  eval.c:3216

	    ...
		}

    >         return unbind_to (count, val);
	    }

	    ...

    0100D1AD  emacs.exe:0100D1AD  apply_lambda  eval.c:3135

	    ...
		}
	      backtrace_list->evalargs = 0;
    >         tem = funcall_lambda (fun, XINT (numargs), arg_vector);

	      /* Do the debug-on-exit now, while arg_vector still exists.  */
	    ...

    0100B906  emacs.exe:0100B906  Feval  eval.c:2413

	    ...
	      CHECK_CONS_LIST ();

    >         lisp_eval_depth--;
	      if (backtrace.debug_on_exit)
		val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
	    ...

    01053927  emacs.exe:01053927  top_level_2  keyboard.c:1370

	    ...
	    {
	      return Feval (Vtop_level);
    >       }

	    Lisp_Object
	    ...

    0100A16A  emacs.exe:0100A16A  internal_condition_case  eval.c:1491

	    ...

	      val = (*bfun) ();
    >         catchlist = c.next;
	      handlerlist = h.next;
	      return val;
	    ...

    01053959  emacs.exe:01053959  top_level_1  keyboard.c:1382

	    ...
	      else
		message ("Bare Emacs (standard Lisp code not loaded)");
    >         return Qnil;
	    }

	    ...

    0100A09F  emacs.exe:0100A09F  internal_catch  eval.c:1226

	    ...
	      /* Call FUNC.  */
	      if (! _setjmp (c.jmp))
    >           c.val = (*func) (arg);

	      /* Throw works by a longjmp that comes right here.  */
	    ...

    010536F9  emacs.exe:010536F9  command_loop  keyboard.c:1339

	    ...
		    any_kboard_state ();
	    #endif
    >       internal_catch (Qtop_level, command_loop_2, Qnil);
	    executing_kbd_macro = Qnil;

	    ...

    010537B0  emacs.exe:010537B0  recursive_edit_1  keyboard.c:955

	    ...

	      val = command_loop ();
    >         if (EQ (val, Qt))
		Fsignal (Qquit, Qnil);
	      /* Handle throw from read_minibuf when using minibuffer
	    ...

    010538D1  emacs.exe:010538D1  Frecursive_edit  keyboard.c:1017

	    ...

	      recursive_edit_1 ();
    >         return unbind_to (count, Qnil);
	    }

	    ...

    01002E2F  emacs.exe:01002E2F  main  emacs.c:1836

	    ...
	      /* NOTREACHED */
	      return 0;
    >       }

	    /* Sort the args so we can find the most important ones
	    ...

    0100124B  emacs.exe:0100124B
    01001298  emacs.exe:01001298
    7C816D4F  kernel32.dll:7C816D4F  RegisterWaitForInputIdle





  reply	other threads:[~2010-02-27 10:21 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-27  3:40 Emacs 23.1.93 pretest Chong Yidong
2010-02-27  9:05 ` Eli Zaretskii
2010-02-27 10:21   ` Eli Zaretskii [this message]
2010-02-27 11:28     ` Juanma Barranquero
2010-02-27 12:11       ` Juanma Barranquero
2010-02-27 13:15         ` Eli Zaretskii
2010-02-27 14:14           ` Eli Zaretskii
2010-02-27 14:31           ` Andreas Schwab
2010-02-27 14:54             ` Eli Zaretskii
2010-02-27 14:59               ` Lennart Borgman
2010-02-27 15:29                 ` Eli Zaretskii
2010-02-27 15:22           ` Chong Yidong
2010-02-27 18:58             ` Eli Zaretskii
2010-03-04 11:32             ` Kenichi Handa
2010-03-04 12:35               ` Jason Rumney
2010-02-27 15:39           ` Juanma Barranquero
2010-02-27 19:41           ` Stefan Monnier
2010-02-27 11:57     ` Eli Zaretskii
2010-02-27 19:03       ` Eli Zaretskii
2010-02-27 21:37         ` Chong Yidong
2010-02-27 22:22           ` Eli Zaretskii
2010-02-28  1:25             ` Chong Yidong
2010-02-28 17:21               ` Eli Zaretskii
2010-02-28  1:45             ` Chong Yidong
2010-02-28 10:46               ` Andreas Schwab
2010-02-28 14:25                 ` Chong Yidong
2010-02-28 15:38                   ` Andreas Schwab
2010-02-28 17:32                   ` Eli Zaretskii
2010-02-28 19:31                     ` Eli Zaretskii
2010-03-02 18:15                       ` Eli Zaretskii
2010-03-02 19:53                         ` Chong Yidong
2010-03-02 20:53                           ` Eli Zaretskii
2010-03-04 11:24                             ` Kenichi Handa
2010-02-28 17:34                   ` Eli Zaretskii
2010-02-28 21:34                     ` Chong Yidong
2010-02-28 17:15               ` Eli Zaretskii
2010-03-02 15:42 ` Drew Adams
2010-03-02 16:02   ` Chong Yidong
2010-03-02 18:35     ` Drew Adams
2010-03-02 19:53       ` Chong Yidong
2010-03-04 14:36 ` bug#5679: " Sergei Organov
2010-03-04 15:57   ` Chong Yidong
2010-03-04 17:43     ` osv
2010-03-04 18:06       ` Chong Yidong
2010-03-04 19:22         ` osv
2010-03-09  0:05           ` YAMAMOTO Mitsuharu
2010-03-09  9:57             ` osv
2010-03-09 11:30             ` osv
2010-03-10 11:19           ` YAMAMOTO Mitsuharu
2010-03-10 11:29             ` osv
2010-03-10 11:54               ` YAMAMOTO Mitsuharu
2010-03-10 12:12                 ` osv
2010-03-11  0:38                   ` YAMAMOTO Mitsuharu
2010-03-10  6:23         ` YAMAMOTO Mitsuharu
2010-03-10 10:05           ` osv
  -- strict thread matches above, loose matches on Subject: below --
2010-04-03  1:13 Chong Yidong
2010-04-03  1:34 ` Juanma Barranquero
2010-04-03  2:36   ` Chong Yidong
2010-04-03  2:38     ` Juanma Barranquero
2010-04-03  9:33       ` Eli Zaretskii
2010-04-03 12:45       ` Sean Sieger
2010-04-03 13:53         ` Eli Zaretskii
2010-04-03 15:06         ` Chong Yidong
2010-04-03 15:52           ` Eli Zaretskii
2010-04-03  1:45 ` Sean Sieger
2010-04-03  7:01 ` Eli Zaretskii
2010-04-03  8:26 ` Eli Zaretskii
2010-04-04 19:22 ` Drew Adams
2010-04-05  0:48   ` Sean Sieger
2010-04-11 18:30     ` Uwe Siart
2010-04-11 18:34       ` Uwe Siart
2010-04-05  9:33 ` Eduard Wiebe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=833a0ndlo0.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.