Subject: Re: bug#15880: Compute C declarations for DEFSYMs automatically.

From: Eli Zaretskii <[email-masked]>
Date: Thu, 14 Nov 2013 18:28:46 +0200

> Date: Wed, 13 Nov 2013 20:13:33 -0800
> From: Paul Eggert <[email-masked]>
> Cc: [email-masked]
> 
> I was thinking of something that didn't have a symbol_vals table, like this:
> 
> struct Lisp_Symbol symbol_structs[N];
> #define Qnil make_lisp_ptr (symbol_structs + 0, Lisp_Symbol)
> #define Qt   make_lisp_ptr (symbol_structs + 1, Lisp_Symbol)
> ...
> 
> Qnil, Qt etc. should evaluate to compile-time constants for
> any reasonably modern C compiler.

Please leave at least Qnil and Qt out of this arrangement, so that
they continue being variables, not macros.  Macros are a nuisance in
the debugger (e.g., if the compilation was not with -g3, or with old
versions of GCC).  These two are very useful in the debugger, both for
calling functions and for comparing Lisp values against them.

The other symbols could become macros, although that, too, would cause
inconvenience.