emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 4b3db0d: Fix ‘!NILP (Vpurify_flag)’ assertion fail


From: Michal Nazarewicz
Subject: [Emacs-diffs] master 4b3db0d: Fix ‘!NILP (Vpurify_flag)’ assertion failure during temacs bootstrap
Date: Thu, 6 Apr 2017 21:47:58 -0400 (EDT)

branch: master
commit 4b3db0daa658a9b834284be8c3131b6177a28f38
Author: Noam Postavsky <address@hidden>
Commit: Michal Nazarewicz <address@hidden>

    Fix ‘!NILP (Vpurify_flag)’ assertion failure during temacs bootstrap
    
    The recent changes to src/casefiddle.c cause build failure as seen
    below:
    
        Starting program: 
/home/npostavs/src/emacs/emacs-bootstrapping/src/temacs
        --batch --load loadup bootstrap
        [Thread debugging using libthread_db enabled]
        Using host libthread_db library "/usr/lib/libthread_db.so.1".
        Loading loadup.el (source)...
        Using load-path (/home/npostavs/src/emacs/emacs-bootstrapping/lisp
        /home/npostavs/src/emacs/emacs-bootstrapping/lisp/emacs-lisp
        /home/npostavs/src/emacs/emacs-bootstrapping/lisp/language
        /home/npostavs/src/emacs/emacs-bootstrapping/lisp/international
        /home/npostavs/src/emacs/emacs-bootstrapping/lisp/textmodes
        /home/npostavs/src/emacs/emacs-bootstrapping/lisp/vc)
        Loading emacs-lisp/byte-run (source)...
        Loading emacs-lisp/backquote (source)...
        Loading subr (source)...
        Loading version (source)...
        Loading widget (source)...
        Loading custom (source)...
        Loading emacs-lisp/map-ynp (source)...
        Loading international/mule (source)...
        Loading international/mule-conf (source)...
    
        lread.c:3914: Emacs fatal error: assertion failed: !NILP (Vpurify_flag)
    
        Breakpoint 1, terminate_due_to_signal at emacs.c:363
        363       signal (sig, SIG_DFL);
        (gdb) bt
        #0  0x0000000000579826 in terminate_due_to_signal at emacs.c:363
        #1  0x000000000060ec33 in die at alloc.c:7352
        #2  0x000000000066db40 in intern_c_string_1 at lread.c:3914
        #3  0x0000000000576884 in intern_c_string at lisp.h:3790
        #4  0x00000000005dc84f in prepare_casing_context at casefiddle.c:69
        #5  0x00000000005dd37f in casify_object at casefiddle.c:311
        #6  0x00000000005dd47f in Fcapitalize at casefiddle.c:356
        #7  0x00000000006325ac in eval_sub at eval.c:2219
        #8  0x0000000000632368 in eval_sub at eval.c:2184
        #9  0x000000000063446c in apply_lambda at eval.c:2875
        #10 0x00000000006329af in eval_sub at eval.c:2294
        #11 0x000000000062d462 in Fprogn at eval.c:449
        #12 0x000000000062d4cf in prog_ignore at eval.c:461
        #13 0x000000000062f19c in Fwhile at eval.c:982
        #14 0x00000000006321f4 in eval_sub at eval.c:2172
        #15 0x000000000062d462 in Fprogn at eval.c:449
        #16 0x000000000062f0c4 in Flet at eval.c:963
        #17 0x00000000006321f4 in eval_sub at eval.c:2172
        #18 0x0000000000632963 in eval_sub at eval.c:2290
        #19 0x000000000062d462 in Fprogn at eval.c:449
        #20 0x000000000062f0c4 in Flet at eval.c:963
        #21 0x00000000006321f4 in eval_sub at eval.c:2172
        #22 0x0000000000668caa in readevalloop at lread.c:1927
        #23 0x0000000000667253 in Fload at lread.c:1332
        #24 0x0000000000632683 in eval_sub at eval.c:2233
        #25 0x0000000000668caa in readevalloop at lread.c:1927
        #26 0x0000000000667253 in Fload at lread.c:1332
        #27 0x0000000000632683 in eval_sub at eval.c:2233
        #28 0x0000000000631be5 in Feval at eval.c:2041
        #29 0x000000000057e1af in top_level_2 at keyboard.c:1121
        #30 0x000000000062ffc7 in internal_condition_case at eval.c:1324
        #31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129
        #32 0x000000000062f51e in internal_catch at eval.c:1091
        #33 0x000000000057e0ea in command_loop at keyboard.c:1090
        #34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697
        #35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768
        #36 0x000000000057b55b in main at emacs.c:1687
    
        Lisp Backtrace:
        "capitalize" (0xffffcf70)
        "format" (0xffffd130)
        "define-charset" (0xffffd370)
        "while" (0xffffd560)
        "let" (0xffffd7c0)
        "dolist" (0xffffd910)
        "let" (0xffffdb70)
        "load" (0xffffdfe0)
        "load" (0xffffe4a0)
    
    * src/casefiddle.c (syms_of_casefiddle): Declare four new symbols:
    Qtitlecase, Qspecial_uppercase, Qspecial_lowercase and
    Qspecial_titlecase.
    (prepare_casing_context): Use aforementioned symbols.
---
 src/casefiddle.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/casefiddle.c b/src/casefiddle.c
index 3b55047..b7782a8 100644
--- a/src/casefiddle.c
+++ b/src/casefiddle.c
@@ -66,16 +66,16 @@ prepare_casing_context (struct casing_context *ctx,
   ctx->inword = false;
   ctx->titlecase_char_table
     = (flag < CASE_CAPITALIZE ? Qnil
-       : uniprop_table (intern_c_string ("titlecase")));
+       : uniprop_table (Qtitlecase));
   ctx->specialcase_char_tables[CASE_UP]
     = (flag == CASE_DOWN ? Qnil
-       : uniprop_table (intern_c_string ("special-uppercase")));
+       : uniprop_table (Qspecial_uppercase));
   ctx->specialcase_char_tables[CASE_DOWN]
     = (flag == CASE_UP ? Qnil
-       : uniprop_table (intern_c_string ("special-lowercase")));
+       : uniprop_table (Qspecial_lowercase));
   ctx->specialcase_char_tables[CASE_CAPITALIZE]
     = (flag < CASE_CAPITALIZE ? Qnil
-       : uniprop_table (intern_c_string ("special-titlecase")));
+       : uniprop_table (Qspecial_titlecase));
 
   /* If the case table is flagged as modified, rescan it.  */
   if (NILP (XCHAR_TABLE (BVAR (current_buffer, downcase_table))->extras[1]))
@@ -644,6 +644,11 @@ void
 syms_of_casefiddle (void)
 {
   DEFSYM (Qidentity, "identity");
+  DEFSYM (Qtitlecase, "titlecase");
+  DEFSYM (Qspecial_uppercase, "special-uppercase");
+  DEFSYM (Qspecial_lowercase, "special-lowercase");
+  DEFSYM (Qspecial_titlecase, "special-titlecase");
+
   defsubr (&Supcase);
   defsubr (&Sdowncase);
   defsubr (&Scapitalize);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]