Subject: bug#26388: closed (Re: bug#26388: 26.0.50; assertion failed: !NILP (Vpurify_flag) during temacs bootstrap)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 07 Apr 2017 01:49:02 +0000

Your bug report

#26388: 26.0.50; assertion failed: !NILP (Vpurify_flag) during temacs bootstrap

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

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

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

Subject: Re: bug#26388: 26.0.50; assertion failed: !NILP (Vpurify_flag) during temacs bootstrap
From: Michal Nazarewicz <[email-masked]>
To: [email-masked], [email-masked]
Date: Fri, 07 Apr 2017 03:48:35 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On Thu, Apr 06 2017, [email-masked] wrote:
> The patch below seems to fix it.  According to the backtrace, I guess
> it's related to the recent casing changes.
>
> diff --git i/src/casefiddle.c w/src/casefiddle.c
> index 3b550470bf..b7782a83c3 100644
> --- i/src/casefiddle.c
> +++ w/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 @@ DEFUN ("capitalize-word", Fcapitalize_word, Scapitalize_word, 1, 1, "p",
>  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);

Thanks, pushed.

> 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)

I’m wondering what I’m doing differently since I’ve never seen this… ;/

-- 
Best regards
ミハウ “𝓶𝓲𝓷𝓪86” ナザレヴイツ
«If at first you don’t succeed, give up skydiving»

Subject: 26.0.50; assertion failed: !NILP (Vpurify_flag) during temacs bootstrap
From: [email-masked]
To: [email-masked]
Date: Thu, 06 Apr 2017 20:39:20 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

The patch below seems to fix it.  According to the backtrace, I guess
it's related to the recent casing changes.

diff --git i/src/casefiddle.c w/src/casefiddle.c
index 3b550470bf..b7782a83c3 100644
--- i/src/casefiddle.c
+++ w/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 @@ DEFUN ("capitalize-word", Fcapitalize_word, Scapitalize_word, 1, 1, "p",
 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);

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 (sig=6, backtrace_limit=2147483647) at emacs.c:363
363	  signal (sig, SIG_DFL);
(gdb) bt
#0  0x0000000000579826 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:363
#1  0x000000000060ec33 in die (msg=0x7678e2 "!NILP (Vpurify_flag)", file=0x766a68 "lread.c", line=3914) at alloc.c:7352
#2  0x000000000066db40 in intern_c_string_1 (str=0x7520e0 "titlecase", len=9) at lread.c:3914
#3  0x0000000000576884 in intern_c_string (str=0x7520e0 "titlecase") at lisp.h:3790
#4  0x00000000005dc84f in prepare_casing_context (ctx=0x7fffffffceb0, flag=CASE_CAPITALIZE, inbuffer=false) at casefiddle.c:69
#5  0x00000000005dd37f in casify_object (flag=CASE_CAPITALIZE, obj=...) at casefiddle.c:311
#6  0x00000000005dd47f in Fcapitalize (obj=...) at casefiddle.c:356
#7  0x00000000006325ac in eval_sub (form=...) at eval.c:2219
#8  0x0000000000632368 in eval_sub (form=...) at eval.c:2184
#9  0x000000000063446c in apply_lambda (fun=..., args=..., count=37) at eval.c:2875
#10 0x00000000006329af in eval_sub (form=...) at eval.c:2294
#11 0x000000000062d462 in Fprogn (body=...) at eval.c:449
#12 0x000000000062d4cf in prog_ignore (body=...) at eval.c:461
#13 0x000000000062f19c in Fwhile (args=...) at eval.c:982
#14 0x00000000006321f4 in eval_sub (form=...) at eval.c:2172
#15 0x000000000062d462 in Fprogn (body=...) at eval.c:449
#16 0x000000000062f0c4 in Flet (args=...) at eval.c:963
#17 0x00000000006321f4 in eval_sub (form=...) at eval.c:2172
#18 0x0000000000632963 in eval_sub (form=...) at eval.c:2290
#19 0x000000000062d462 in Fprogn (body=...) at eval.c:449
#20 0x000000000062f0c4 in Flet (args=...) at eval.c:963
#21 0x00000000006321f4 in eval_sub (form=...) at eval.c:2172
#22 0x0000000000668caa in readevalloop (readcharfun=..., stream=0xe5dea0 <bss_sbrk_buffer+374592>, sourcename=..., printflag=false, unibyte=..., readfun=..., start=..., end=...) at lread.c:1927
#23 0x0000000000667253 in Fload (file=..., noerror=..., nomessage=..., nosuffix=..., must_suffix=...) at lread.c:1332
#24 0x0000000000632683 in eval_sub (form=...) at eval.c:2233
#25 0x0000000000668caa in readevalloop (readcharfun=..., stream=0xe5cc60 <bss_sbrk_buffer+369920>, sourcename=..., printflag=false, unibyte=..., readfun=..., start=..., end=...) at lread.c:1927
#26 0x0000000000667253 in Fload (file=..., noerror=..., nomessage=..., nosuffix=..., must_suffix=...) at lread.c:1332
#27 0x0000000000632683 in eval_sub (form=...) at eval.c:2233
#28 0x0000000000631be5 in Feval (form=..., lexical=...) at eval.c:2041
#29 0x000000000057e1af in top_level_2 () at keyboard.c:1121
#30 0x000000000062ffc7 in internal_condition_case (bfun=0x57e192 <top_level_2>, handlers=..., hfun=0x57dbc0 <cmd_error>)
    at eval.c:1324
#31 0x000000000057e1f0 in top_level_1 (ignore=...) at keyboard.c:1129
#32 0x000000000062f51e in internal_catch (tag=..., func=0x57e1b1 <top_level_1>, arg=...) 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 (argc=5, argv=0x7fffffffe958) 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)