aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2019-04-21 21:47:10 -0700
committerPaul Eggert2019-04-21 23:16:48 -0700
commit72067661fef9cb9e1a746a7a825053c8204c7a38 (patch)
treeb11be11ad0e3fddb4f3498f7d9d293125f94f348
parent418400ab7b36d873905f5ab5e1e07f2bdbd05f9c (diff)
downloademacs-72067661fef9cb9e1a746a7a825053c8204c7a38.tar.gz
emacs-72067661fef9cb9e1a746a7a825053c8204c7a38.zip
Remove --enablechecking=conslist configure option
* configure.ac: Remove the option. * configure.ac (ac_gc_check_cons_list, GC_CHECK_CONS_LIST): * src/alloc.c (check_cons_list) [GC_CHECK_CONS_LIST]: * src/lisp.h (lisp_h_check_cons_list, check_cons_list): Remove. All uses removed. * etc/NEWS: Mention this.
-rw-r--r--configure.ac9
-rw-r--r--etc/NEWS5
-rw-r--r--src/alloc.c16
-rw-r--r--src/eval.c9
-rw-r--r--src/lisp.h11
5 files changed, 6 insertions, 44 deletions
diff --git a/configure.ac b/configure.ac
index b4a9b306912..dd88380d787 100644
--- a/configure.ac
+++ b/configure.ac
@@ -545,7 +545,7 @@ AC_ARG_ENABLE(checking,
545 enable only specific categories of checks. 545 enable only specific categories of checks.
546 Categories are: all,yes,no. 546 Categories are: all,yes,no.
547 Flags are: stringbytes, stringoverrun, stringfreelist, 547 Flags are: stringbytes, stringoverrun, stringfreelist,
548 structs, xmallocoverrun, conslist, glyphs])], 548 structs, xmallocoverrun, glyphs])],
549[ac_checking_flags="${enableval}"],[]) 549[ac_checking_flags="${enableval}"],[])
550IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," 550IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
551CHECK_STRUCTS=false 551CHECK_STRUCTS=false
@@ -560,7 +560,6 @@ do
560 ac_gc_check_string_overrun= ; 560 ac_gc_check_string_overrun= ;
561 ac_gc_check_string_free_list= ; 561 ac_gc_check_string_free_list= ;
562 ac_xmalloc_overrun= ; 562 ac_xmalloc_overrun= ;
563 ac_gc_check_cons_list= ;
564 ac_glyphs_debug= ;; 563 ac_glyphs_debug= ;;
565 all) ac_enable_checking=1 ; 564 all) ac_enable_checking=1 ;
566 CHECK_STRUCTS=true 565 CHECK_STRUCTS=true
@@ -568,7 +567,6 @@ do
568 ac_gc_check_string_overrun=1 ; 567 ac_gc_check_string_overrun=1 ;
569 ac_gc_check_string_free_list=1 ; 568 ac_gc_check_string_free_list=1 ;
570 ac_xmalloc_overrun=1 ; 569 ac_xmalloc_overrun=1 ;
571 ac_gc_check_cons_list=1 ;
572 ac_glyphs_debug=1 ;; 570 ac_glyphs_debug=1 ;;
573 # these enable particular checks 571 # these enable particular checks
574 stringbytes) ac_gc_check_stringbytes=1 ;; 572 stringbytes) ac_gc_check_stringbytes=1 ;;
@@ -576,7 +574,6 @@ do
576 stringfreelist) ac_gc_check_string_free_list=1 ;; 574 stringfreelist) ac_gc_check_string_free_list=1 ;;
577 structs) CHECK_STRUCTS=true ;; 575 structs) CHECK_STRUCTS=true ;;
578 xmallocoverrun) ac_xmalloc_overrun=1 ;; 576 xmallocoverrun) ac_xmalloc_overrun=1 ;;
579 conslist) ac_gc_check_cons_list=1 ;;
580 glyphs) ac_glyphs_debug=1 ;; 577 glyphs) ac_glyphs_debug=1 ;;
581 *) AC_MSG_ERROR(unknown check category $check) ;; 578 *) AC_MSG_ERROR(unknown check category $check) ;;
582 esac 579 esac
@@ -614,10 +611,6 @@ if test x$ac_xmalloc_overrun != x ; then
614 AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1, 611 AC_DEFINE(XMALLOC_OVERRUN_CHECK, 1,
615[Define this to check for malloc buffer overrun.]) 612[Define this to check for malloc buffer overrun.])
616fi 613fi
617if test x$ac_gc_check_cons_list != x ; then
618 AC_DEFINE(GC_CHECK_CONS_LIST, 1,
619[Define this to check for errors in cons list.])
620fi
621if test x$ac_glyphs_debug != x ; then 614if test x$ac_glyphs_debug != x ; then
622 AC_DEFINE(GLYPH_DEBUG, 1, 615 AC_DEFINE(GLYPH_DEBUG, 1,
623[Define this to enable glyphs debugging code.]) 616[Define this to enable glyphs debugging code.])
diff --git a/etc/NEWS b/etc/NEWS
index 4d76143b134..f991dbaf97c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -89,6 +89,11 @@ Options" in the Emacs manual for more information.
89check that the portable dumper code has been updated to match the last 89check that the portable dumper code has been updated to match the last
90change to one of the data structures that it relies on. 90change to one of the data structures that it relies on.
91 91
92+++
93** The configure option '--enable-checking=conslist' has been withdrawn.
94It made Emacs irredeemably slow, and is no longer useful with modern
95debugging tools.
96
92--- 97---
93** Emacs now requires GTK 2.24 and GTK 3.10 for the GTK 2 and GTK 3 98** Emacs now requires GTK 2.24 and GTK 3.10 for the GTK 2 and GTK 3
94builds respectively. 99builds respectively.
diff --git a/src/alloc.c b/src/alloc.c
index 186a4c6a098..d279b6f872e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2801,18 +2801,6 @@ DEFUN ("cons", Fcons, Scons, 2, 2, 0,
2801 return val; 2801 return val;
2802} 2802}
2803 2803
2804#ifdef GC_CHECK_CONS_LIST
2805/* Get an error now if there's any junk in the cons free list. */
2806void
2807check_cons_list (void)
2808{
2809 struct Lisp_Cons *tail = cons_free_list;
2810
2811 while (tail)
2812 tail = tail->u.s.u.chain;
2813}
2814#endif
2815
2816/* Make a list of 1, 2, 3, 4 or 5 specified objects. */ 2804/* Make a list of 1, 2, 3, 4 or 5 specified objects. */
2817 2805
2818Lisp_Object 2806Lisp_Object
@@ -6003,8 +5991,6 @@ garbage_collect_1 (struct gcstat *gcst)
6003 /* Record this function, so it appears on the profiler's backtraces. */ 5991 /* Record this function, so it appears on the profiler's backtraces. */
6004 record_in_backtrace (QAutomatic_GC, 0, 0); 5992 record_in_backtrace (QAutomatic_GC, 0, 0);
6005 5993
6006 check_cons_list ();
6007
6008 /* Don't keep undo information around forever. 5994 /* Don't keep undo information around forever.
6009 Do this early on, so it is no problem if the user quits. */ 5995 Do this early on, so it is no problem if the user quits. */
6010 FOR_EACH_BUFFER (nextb) 5996 FOR_EACH_BUFFER (nextb)
@@ -6124,8 +6110,6 @@ garbage_collect_1 (struct gcstat *gcst)
6124 6110
6125 unmark_main_thread (); 6111 unmark_main_thread ();
6126 6112
6127 check_cons_list ();
6128
6129 gc_in_progress = 0; 6113 gc_in_progress = 0;
6130 6114
6131 unblock_input (); 6115 unblock_input ();
diff --git a/src/eval.c b/src/eval.c
index a636f6c50ae..4693767ce7e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2210,8 +2210,6 @@ eval_sub (Lisp_Object form)
2210 Lisp_Object args_left = original_args; 2210 Lisp_Object args_left = original_args;
2211 ptrdiff_t numargs = list_length (args_left); 2211 ptrdiff_t numargs = list_length (args_left);
2212 2212
2213 check_cons_list ();
2214
2215 if (numargs < XSUBR (fun)->min_args 2213 if (numargs < XSUBR (fun)->min_args
2216 || (XSUBR (fun)->max_args >= 0 2214 || (XSUBR (fun)->max_args >= 0
2217 && XSUBR (fun)->max_args < numargs)) 2215 && XSUBR (fun)->max_args < numargs))
@@ -2240,7 +2238,6 @@ eval_sub (Lisp_Object form)
2240 2238
2241 val = XSUBR (fun)->function.aMANY (argnum, vals); 2239 val = XSUBR (fun)->function.aMANY (argnum, vals);
2242 2240
2243 check_cons_list ();
2244 lisp_eval_depth--; 2241 lisp_eval_depth--;
2245 /* Do the debug-on-exit now, while VALS still exists. */ 2242 /* Do the debug-on-exit now, while VALS still exists. */
2246 if (backtrace_debug_on_exit (specpdl + count)) 2243 if (backtrace_debug_on_exit (specpdl + count))
@@ -2346,7 +2343,6 @@ eval_sub (Lisp_Object form)
2346 else 2343 else
2347 xsignal1 (Qinvalid_function, original_fun); 2344 xsignal1 (Qinvalid_function, original_fun);
2348 } 2345 }
2349 check_cons_list ();
2350 2346
2351 lisp_eval_depth--; 2347 lisp_eval_depth--;
2352 if (backtrace_debug_on_exit (specpdl + count)) 2348 if (backtrace_debug_on_exit (specpdl + count))
@@ -2786,8 +2782,6 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2786 if (debug_on_next_call) 2782 if (debug_on_next_call)
2787 do_debug_on_call (Qlambda, count); 2783 do_debug_on_call (Qlambda, count);
2788 2784
2789 check_cons_list ();
2790
2791 original_fun = args[0]; 2785 original_fun = args[0];
2792 2786
2793 retry: 2787 retry:
@@ -2817,13 +2811,11 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2817 else if (EQ (funcar, Qautoload)) 2811 else if (EQ (funcar, Qautoload))
2818 { 2812 {
2819 Fautoload_do_load (fun, original_fun, Qnil); 2813 Fautoload_do_load (fun, original_fun, Qnil);
2820 check_cons_list ();
2821 goto retry; 2814 goto retry;
2822 } 2815 }
2823 else 2816 else
2824 xsignal1 (Qinvalid_function, original_fun); 2817 xsignal1 (Qinvalid_function, original_fun);
2825 } 2818 }
2826 check_cons_list ();
2827 lisp_eval_depth--; 2819 lisp_eval_depth--;
2828 if (backtrace_debug_on_exit (specpdl + count)) 2820 if (backtrace_debug_on_exit (specpdl + count))
2829 val = call_debugger (list2 (Qexit, val)); 2821 val = call_debugger (list2 (Qexit, val));
@@ -2935,7 +2927,6 @@ apply_lambda (Lisp_Object fun, Lisp_Object args, ptrdiff_t count)
2935 set_backtrace_args (specpdl + count, arg_vector, numargs); 2927 set_backtrace_args (specpdl + count, arg_vector, numargs);
2936 tem = funcall_lambda (fun, numargs, arg_vector); 2928 tem = funcall_lambda (fun, numargs, arg_vector);
2937 2929
2938 check_cons_list ();
2939 lisp_eval_depth--; 2930 lisp_eval_depth--;
2940 /* Do the debug-on-exit now, while arg_vector still exists. */ 2931 /* Do the debug-on-exit now, while arg_vector still exists. */
2941 if (backtrace_debug_on_exit (specpdl + count)) 2932 if (backtrace_debug_on_exit (specpdl + count))
diff --git a/src/lisp.h b/src/lisp.h
index 2d250fc52ce..d803f160006 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -413,9 +413,6 @@ typedef EMACS_INT Lisp_Word;
413#define lisp_h_XCONS(a) \ 413#define lisp_h_XCONS(a) \
414 (eassert (CONSP (a)), XUNTAG (a, Lisp_Cons, struct Lisp_Cons)) 414 (eassert (CONSP (a)), XUNTAG (a, Lisp_Cons, struct Lisp_Cons))
415#define lisp_h_XHASH(a) XUFIXNUM (a) 415#define lisp_h_XHASH(a) XUFIXNUM (a)
416#ifndef GC_CHECK_CONS_LIST
417# define lisp_h_check_cons_list() ((void) 0)
418#endif
419#if USE_LSB_TAG 416#if USE_LSB_TAG
420# define lisp_h_make_fixnum(n) \ 417# define lisp_h_make_fixnum(n) \
421 XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) + Lisp_Int0)) 418 XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) + Lisp_Int0))
@@ -459,9 +456,6 @@ typedef EMACS_INT Lisp_Word;
459# define XCDR(c) lisp_h_XCDR (c) 456# define XCDR(c) lisp_h_XCDR (c)
460# define XCONS(a) lisp_h_XCONS (a) 457# define XCONS(a) lisp_h_XCONS (a)
461# define XHASH(a) lisp_h_XHASH (a) 458# define XHASH(a) lisp_h_XHASH (a)
462# ifndef GC_CHECK_CONS_LIST
463# define check_cons_list() lisp_h_check_cons_list ()
464# endif
465# if USE_LSB_TAG 459# if USE_LSB_TAG
466# define make_fixnum(n) lisp_h_make_fixnum (n) 460# define make_fixnum(n) lisp_h_make_fixnum (n)
467# define XFIXNAT(a) lisp_h_XFIXNAT (a) 461# define XFIXNAT(a) lisp_h_XFIXNAT (a)
@@ -3965,11 +3959,6 @@ extern void init_alloc (void);
3965extern void syms_of_alloc (void); 3959extern void syms_of_alloc (void);
3966extern struct buffer * allocate_buffer (void); 3960extern struct buffer * allocate_buffer (void);
3967extern int valid_lisp_object_p (Lisp_Object); 3961extern int valid_lisp_object_p (Lisp_Object);
3968#ifdef GC_CHECK_CONS_LIST
3969extern void check_cons_list (void);
3970#else
3971INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); }
3972#endif
3973 3962
3974/* Defined in gmalloc.c. */ 3963/* Defined in gmalloc.c. */
3975#if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC 3964#if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC