* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
[not found] ` <20221114172637.78215C0E4C7@vcs2.savannah.gnu.org>
@ 2022-11-15 0:30 ` Po Lu
2022-11-15 9:06 ` Andrea Corallo
2022-11-16 19:26 ` Vibhav Pant
0 siblings, 2 replies; 17+ messages in thread
From: Po Lu @ 2022-11-15 0:30 UTC (permalink / raw)
To: emacs-devel; +Cc: Vibhav Pant
Thanks. Some minor style comments below:
> +const size_t block_align = BLOCK_ALIGN;
[...]
> +const size_t float_block_floats_length = FLOAT_BLOCK_SIZE;
> +const size_t float_block_gcmarkbits_length =
> + 1 + FLOAT_BLOCK_SIZE / BITS_PER_BITS_WORD;
[...]
> +const size_t cons_block_conses_length = CONS_BLOCK_SIZE;
> +const size_t cons_block_gcmarkbits_length
> + = 1 + CONS_BLOCK_SIZE / BITS_PER_BITS_WORD;
These should be defined out with HAVE_NATIVE_COMPILATION. In addition,
the = must come on a new line. Our style is:
foo_long
= long_bar ();
instead of:
foo_long =
long_bar ();
>
> + mark_stack_push_values (ptr->contents,
> + size
> + & PSEUDOVECTOR_SIZE_MASK);
> + struct Lisp_Native_Comp_Unit *comp_u
> + = XNATIVE_COMP_UNIT (obj);
Here, you used spaces for indentation instead of tabs.
> + if (comp_u->have_static_lisp_data)
> + {
> + eassert (NILP (comp_u->lambda_gc_guard_h) &&
> + NILP (comp_u->lambda_c_name_idx_h) &&
> + NILP (comp_u->data_vec) &&
> + NILP (comp_u->data_impure_vec) &&
> + comp_u->data_imp_relocs == NULL);
In Emacs code, whenever you feel the temptation to write:
foo_condition () &&
bar_condition ()
write this instead:
foo_condition ()
&& bar_condition ()
> +static gcc_jit_rvalue *
> +comp_lisp_const_get_lisp_obj_rval (Lisp_Object obj,
> + comp_lisp_const_t expr);
> +static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object obj,
> + Lisp_Object alloc_class);
This ought to read:
static gcc_jit_rvalue *comp_lisp_const_get_lisp_obj_rval (Lisp_Object,
comp_lisp_const_t);
static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object, Lisp_Object);
> + n =
> + emit_binary_op (GCC_JIT_BINARY_OP_PLUS,
> + comp.emacs_uint_type,
> + emit_binary_op (GCC_JIT_BINARY_OP_LSHIFT,
> + comp.emacs_uint_type,
> + comp.lisp_int0,
> + emit_rvalue_from_emacs_uint (VALBITS)),
> + n);
> +
Please, place the = on a new line.
> +static gcc_jit_rvalue *
> +emit_make_fixnum (gcc_jit_rvalue *obj)
> +{
> + emit_comment ("make_fixnum");
> + return USE_LSB_TAG
> + ? emit_make_fixnum_LSB_TAG (obj)
> + : emit_make_fixnum_MSB_TAG (obj);
> +}
This should read:
return (USE_LSB_TAG
? emit_make_fixnum_LSB_TAG (obj)
? emit_make_fixnum_MSB_TAG (obj));
instead.
> +typedef struct {
> + ptrdiff_t size;
> + gcc_jit_field *header;
> + gcc_jit_field *contents;
> + gcc_jit_type *lisp_vector_type;
> + gcc_jit_type *contents_type;
> +} jit_vector_type_t;
Please place the opening brace of this struct on a new line.
> + vec.header =
> + gcc_jit_context_new_field (comp.ctxt,
> + NULL,
> + comp.ptrdiff_type,
> + "header");
Please place the = on a new line, here, and below:
> + vec.contents =
> + gcc_jit_context_new_field (comp.ctxt,
> + NULL,
> + vec.contents_type,
> + "contents");
> + = STRING_MULTIBYTE (str)
> + ? gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> + comp.ptrdiff_type,
> + SBYTES (str))
> + // Mark unibyte strings as immovable, so that pin_string does not
> + // attempt to modify them.
> + : gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> + comp.ptrdiff_type, -3);
When you write:
foo = abcdefg
? bcdefghij
: klmnopqrs
everything around the ternary must be placed in parentheses and indented
as such.
> +static inline bool
> +comp_func_l_p (Lisp_Object func)
> +{
> + return !NILP (CALL1I (comp-func-l-p, func));
> +}
> +
> +static inline bool
> +comp_func_d_p (Lisp_Object func)
> +{
> + return !NILP (CALL1I (comp-func-d-p, func));
> +}
In general, there is no need to write "inline" in C99: simple
expressions like these will be inlined anyway, and otherwise, the
compiler will make its own judgement.
> +typedef struct {
> + ptrdiff_t cons_block_list_idx;
> + ptrdiff_t cons_block_conses_idx;
> +} cons_block_entry_t;
Please place the opening brace of this struct on a new line.
> +static Lisp_Object
> +cons_block_list_get_block_entry (cons_block_entry_t entry)
> +{
> + ptrdiff_t list_idx = XFIXNUM (Flength (comp.cons_block_list)) - 1
> + - entry.cons_block_list_idx;
> + return Fnth (make_fixnum (list_idx), comp.cons_block_list);
> +}
Instead of writing:
foo = 077777777777777
- 07777777777776;
our coding style is:
foo = (077777777777777
- 07777777777776)
Please adjust this code accordingly.
> + Lisp_Object block;
> + if (NILP (comp.float_block_list))
> + block = push_float_block();
There is a missing space here.
> + if (expr.expr_type == COMP_LISP_CONST_SELF_REPR ||
> + expr.expr_type == COMP_LISP_CONST_VAR)
> + return expr.expr.lisp_obj;
Please write:
if (expr.expr_type == COMP_LISP_CONST_SELF_REPR
|| expr.expr_type == COMP_LISP_CONST_VAR)
return expr.expr.lisp_obj;
instead.
> + bool valid = EQ (alloc_class, Qd_default) ||
> + EQ (alloc_class, Qd_impure) ||
> + EQ (alloc_class, Qd_ephemeral);
What was said about parentheses earlier applies here too.
> + if (FIXNUMP (obj))
> + expr = (comp_lisp_const_t){ .expr.lisp_obj
> + = emit_rvalue_from_lisp_obj (obj),
> + .const_expr_p = true,
> + .expr_type = COMP_LISP_CONST_SELF_REPR };
> + else if (BARE_SYMBOL_P (obj) && c_symbol_p (XBARE_SYMBOL (obj)))
> + expr
> + = (comp_lisp_const_t){ .expr.lisp_obj
> + = emit_rvalue_from_lisp_obj (obj),
> + .const_expr_p = true,
> + .expr_type = COMP_LISP_CONST_SELF_REPR };
In this compound literal, please place a space between the part that
looks like a cast and the initializer list.
> + {
> + Lisp_Object func =
> + Fgethash (obj,
> + CALL1I (comp-ctxt-byte-func-to-func-h, Vcomp_ctxt),
> + Qnil);
Please place the assignment operator on the new line.
> +const char *lisp_type_name[Lisp_Float + 1] = {
> + "Lisp_Symbol",
> + "Lisp_Type_Unused0",
> + "Lisp_Int0",
> + "Lisp_Int1",
> + "Lisp_String",
> + "Lisp_Vectorlike",
> + "Lisp_Cons",
> + "Lisp_Float"
> +};
Please place the opening brace here on a new line.
> + comp.d_default_rvals =
> + emit_static_data_container (CALL1I (comp-ctxt-d-default, Vcomp_ctxt),
> + Qd_default);
> + comp.d_impure_rvals =
> + emit_static_data_container (CALL1I (comp-ctxt-d-impure, Vcomp_ctxt),
> + Qd_impure);
> + comp.d_ephemeral_rvals =
> + emit_static_data_container (CALL1I (comp-ctxt-d-ephemeral, Vcomp_ctxt),
> + Qd_ephemeral);
> +}
Please put the assignment operators on the new line.
> +#if defined(LIBGCCJIT_HAVE_REFLECTION) \
> + && defined(LIBGCCJIT_HAVE_CTORS) \
> + && defined(LIBGCCJIT_HAVE_gcc_jit_type_get_aligned) \
> + && defined(LIBGCCJIT_HAVE_ALIGNMENT) && USE_STACK_LISP_OBJECTS \
> + && !defined(GC_CHECK_MARKED_OBJECTS)
Please write:
#if defined (FOO)
or
#if defined FOO
instead of:
#if defined(FOO)
In addition, most of your changes consist of lines indented with tabs
and spaces, which is correct, but it also contains many lines indented
solely with spaces. Please fix those.
Thanks.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-15 0:30 ` scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data Po Lu
@ 2022-11-15 9:06 ` Andrea Corallo
2022-11-16 19:36 ` Vibhav Pant
2022-11-17 4:32 ` Richard Stallman
2022-11-16 19:26 ` Vibhav Pant
1 sibling, 2 replies; 17+ messages in thread
From: Andrea Corallo @ 2022-11-15 9:06 UTC (permalink / raw)
To: Po Lu; +Cc: emacs-devel, Vibhav Pant
Po Lu <luangruo@yahoo.com> writes:
> Thanks. Some minor style comments below:
>
>> +const size_t block_align = BLOCK_ALIGN;
>
> [...]
>
>> +const size_t float_block_floats_length = FLOAT_BLOCK_SIZE;
>> +const size_t float_block_gcmarkbits_length =
>> + 1 + FLOAT_BLOCK_SIZE / BITS_PER_BITS_WORD;
>
> [...]
>
>> +const size_t cons_block_conses_length = CONS_BLOCK_SIZE;
>> +const size_t cons_block_gcmarkbits_length
>> + = 1 + CONS_BLOCK_SIZE / BITS_PER_BITS_WORD;
>
> These should be defined out with HAVE_NATIVE_COMPILATION. In addition,
> the = must come on a new line. Our style is:
>
> foo_long
> = long_bar ();
>
> instead of:
>
> foo_long =
> long_bar ();
>
>>
>> + mark_stack_push_values (ptr->contents,
>> + size
>> + & PSEUDOVECTOR_SIZE_MASK);
>> + struct Lisp_Native_Comp_Unit *comp_u
>> + = XNATIVE_COMP_UNIT (obj);
>
> Here, you used spaces for indentation instead of tabs.
>
>> + if (comp_u->have_static_lisp_data)
>> + {
>> + eassert (NILP (comp_u->lambda_gc_guard_h) &&
>> + NILP (comp_u->lambda_c_name_idx_h) &&
>> + NILP (comp_u->data_vec) &&
>> + NILP (comp_u->data_impure_vec) &&
>> + comp_u->data_imp_relocs == NULL);
>
> In Emacs code, whenever you feel the temptation to write:
>
> foo_condition () &&
> bar_condition ()
>
> write this instead:
>
> foo_condition ()
> && bar_condition ()
>
>> +static gcc_jit_rvalue *
>> +comp_lisp_const_get_lisp_obj_rval (Lisp_Object obj,
>> + comp_lisp_const_t expr);
>> +static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object obj,
>> + Lisp_Object alloc_class);
>
> This ought to read:
>
> static gcc_jit_rvalue *comp_lisp_const_get_lisp_obj_rval (Lisp_Object,
> comp_lisp_const_t);
> static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object, Lisp_Object);
>
>> + n =
>> + emit_binary_op (GCC_JIT_BINARY_OP_PLUS,
>> + comp.emacs_uint_type,
>> + emit_binary_op (GCC_JIT_BINARY_OP_LSHIFT,
>> + comp.emacs_uint_type,
>> + comp.lisp_int0,
>> + emit_rvalue_from_emacs_uint (VALBITS)),
>> + n);
>> +
>
> Please, place the = on a new line.
>
>> +static gcc_jit_rvalue *
>> +emit_make_fixnum (gcc_jit_rvalue *obj)
>> +{
>> + emit_comment ("make_fixnum");
>> + return USE_LSB_TAG
>> + ? emit_make_fixnum_LSB_TAG (obj)
>> + : emit_make_fixnum_MSB_TAG (obj);
>> +}
>
> This should read:
>
> return (USE_LSB_TAG
> ? emit_make_fixnum_LSB_TAG (obj)
> ? emit_make_fixnum_MSB_TAG (obj));
>
> instead.
>
>> +typedef struct {
>> + ptrdiff_t size;
>> + gcc_jit_field *header;
>> + gcc_jit_field *contents;
>> + gcc_jit_type *lisp_vector_type;
>> + gcc_jit_type *contents_type;
>> +} jit_vector_type_t;
>
> Please place the opening brace of this struct on a new line.
>
>> + vec.header =
>> + gcc_jit_context_new_field (comp.ctxt,
>> + NULL,
>> + comp.ptrdiff_type,
>> + "header");
>
> Please place the = on a new line, here, and below:
>
>> + vec.contents =
>> + gcc_jit_context_new_field (comp.ctxt,
>> + NULL,
>> + vec.contents_type,
>> + "contents");
>
>> + = STRING_MULTIBYTE (str)
>> + ? gcc_jit_context_new_rvalue_from_int (comp.ctxt,
>> + comp.ptrdiff_type,
>> + SBYTES (str))
>> + // Mark unibyte strings as immovable, so that pin_string does not
>> + // attempt to modify them.
>> + : gcc_jit_context_new_rvalue_from_int (comp.ctxt,
>> + comp.ptrdiff_type, -3);
>
> When you write:
>
> foo = abcdefg
> ? bcdefghij
> : klmnopqrs
>
> everything around the ternary must be placed in parentheses and indented
> as such.
>
>
>> +static inline bool
>> +comp_func_l_p (Lisp_Object func)
>> +{
>> + return !NILP (CALL1I (comp-func-l-p, func));
>> +}
>> +
>> +static inline bool
>> +comp_func_d_p (Lisp_Object func)
>> +{
>> + return !NILP (CALL1I (comp-func-d-p, func));
>> +}
>
> In general, there is no need to write "inline" in C99: simple
> expressions like these will be inlined anyway, and otherwise, the
> compiler will make its own judgement.
>
>> +typedef struct {
>> + ptrdiff_t cons_block_list_idx;
>> + ptrdiff_t cons_block_conses_idx;
>> +} cons_block_entry_t;
>
> Please place the opening brace of this struct on a new line.
>
>> +static Lisp_Object
>> +cons_block_list_get_block_entry (cons_block_entry_t entry)
>> +{
>> + ptrdiff_t list_idx = XFIXNUM (Flength (comp.cons_block_list)) - 1
>> + - entry.cons_block_list_idx;
>> + return Fnth (make_fixnum (list_idx), comp.cons_block_list);
>> +}
>
> Instead of writing:
>
> foo = 077777777777777
> - 07777777777776;
>
> our coding style is:
>
> foo = (077777777777777
> - 07777777777776)
>
> Please adjust this code accordingly.
>
>> + Lisp_Object block;
>> + if (NILP (comp.float_block_list))
>> + block = push_float_block();
>
> There is a missing space here.
>
>> + if (expr.expr_type == COMP_LISP_CONST_SELF_REPR ||
>> + expr.expr_type == COMP_LISP_CONST_VAR)
>> + return expr.expr.lisp_obj;
>
> Please write:
>
> if (expr.expr_type == COMP_LISP_CONST_SELF_REPR
> || expr.expr_type == COMP_LISP_CONST_VAR)
> return expr.expr.lisp_obj;
>
> instead.
>
>
>> + bool valid = EQ (alloc_class, Qd_default) ||
>> + EQ (alloc_class, Qd_impure) ||
>> + EQ (alloc_class, Qd_ephemeral);
>
> What was said about parentheses earlier applies here too.
>
>> + if (FIXNUMP (obj))
>> + expr = (comp_lisp_const_t){ .expr.lisp_obj
>> + = emit_rvalue_from_lisp_obj (obj),
>> + .const_expr_p = true,
>> + .expr_type = COMP_LISP_CONST_SELF_REPR };
>> + else if (BARE_SYMBOL_P (obj) && c_symbol_p (XBARE_SYMBOL (obj)))
>> + expr
>> + = (comp_lisp_const_t){ .expr.lisp_obj
>> + = emit_rvalue_from_lisp_obj (obj),
>> + .const_expr_p = true,
>> + .expr_type = COMP_LISP_CONST_SELF_REPR };
>
> In this compound literal, please place a space between the part that
> looks like a cast and the initializer list.
>
>> + {
>> + Lisp_Object func =
>> + Fgethash (obj,
>> + CALL1I (comp-ctxt-byte-func-to-func-h, Vcomp_ctxt),
>> + Qnil);
>
> Please place the assignment operator on the new line.
>
>> +const char *lisp_type_name[Lisp_Float + 1] = {
>> + "Lisp_Symbol",
>> + "Lisp_Type_Unused0",
>> + "Lisp_Int0",
>> + "Lisp_Int1",
>> + "Lisp_String",
>> + "Lisp_Vectorlike",
>> + "Lisp_Cons",
>> + "Lisp_Float"
>> +};
>
> Please place the opening brace here on a new line.
>
>> + comp.d_default_rvals =
>> + emit_static_data_container (CALL1I (comp-ctxt-d-default, Vcomp_ctxt),
>> + Qd_default);
>> + comp.d_impure_rvals =
>> + emit_static_data_container (CALL1I (comp-ctxt-d-impure, Vcomp_ctxt),
>> + Qd_impure);
>> + comp.d_ephemeral_rvals =
>> + emit_static_data_container (CALL1I (comp-ctxt-d-ephemeral, Vcomp_ctxt),
>> + Qd_ephemeral);
>> +}
>
> Please put the assignment operators on the new line.
>
>> +#if defined(LIBGCCJIT_HAVE_REFLECTION) \
>> + && defined(LIBGCCJIT_HAVE_CTORS) \
>> + && defined(LIBGCCJIT_HAVE_gcc_jit_type_get_aligned) \
>> + && defined(LIBGCCJIT_HAVE_ALIGNMENT) && USE_STACK_LISP_OBJECTS \
>> + && !defined(GC_CHECK_MARKED_OBJECTS)
>
> Please write:
>
> #if defined (FOO)
>
> or
>
> #if defined FOO
>
> instead of:
>
> #if defined(FOO)
>
> In addition, most of your changes consist of lines indented with tabs
> and spaces, which is correct, but it also contains many lines indented
> solely with spaces. Please fix those.
>
> Thanks.
Hi,
in addition to Po Lu good comments, I think this patch will need (other
than a ChangeLog entry) a cover letter with an in deep explanation of
what is trying to achieve.
Also I see this is based on 1b48e8dde5, but I opposed to that change as
brings code complexity for no real advantages, so I think would be
better to have this patch rebased on current master.
Best Regards
Andrea
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-15 0:30 ` scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data Po Lu
2022-11-15 9:06 ` Andrea Corallo
@ 2022-11-16 19:26 ` Vibhav Pant
2022-11-17 4:51 ` Po Lu
1 sibling, 1 reply; 17+ messages in thread
From: Vibhav Pant @ 2022-11-16 19:26 UTC (permalink / raw)
To: Po Lu, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 10695 bytes --]
On Tue, 2022-11-15 at 08:30 +0800, Po Lu wrote:
> Thanks. Some minor style comments below:
>
> > +const size_t block_align = BLOCK_ALIGN;
>
> [...]
>
> > +const size_t float_block_floats_length = FLOAT_BLOCK_SIZE;
> > +const size_t float_block_gcmarkbits_length =
> > + 1 + FLOAT_BLOCK_SIZE / BITS_PER_BITS_WORD;
>
> [...]
>
> > +const size_t cons_block_conses_length = CONS_BLOCK_SIZE;
> > +const size_t cons_block_gcmarkbits_length
> > + = 1 + CONS_BLOCK_SIZE / BITS_PER_BITS_WORD;
>
> These should be defined out with HAVE_NATIVE_COMPILATION. In
> addition,
> the = must come on a new line. Our style is:
>
> foo_long
> = long_bar ();
>
> instead of:
>
> foo_long =
> long_bar ();
>
> >
> > + mark_stack_push_values (ptr->contents,
> > + size
> > + &
> > PSEUDOVECTOR_SIZE_MASK);
> > + struct Lisp_Native_Comp_Unit *comp_u
> > + = XNATIVE_COMP_UNIT (obj);
>
> Here, you used spaces for indentation instead of tabs.
>
> > + if (comp_u->have_static_lisp_data)
> > + {
> > + eassert (NILP (comp_u->lambda_gc_guard_h) &&
> > + NILP (comp_u->lambda_c_name_idx_h)
> > &&
> > + NILP (comp_u->data_vec) &&
> > + NILP (comp_u->data_impure_vec) &&
> > + comp_u->data_imp_relocs == NULL);
>
> In Emacs code, whenever you feel the temptation to write:
>
> foo_condition () &&
> bar_condition ()
>
> write this instead:
>
> foo_condition ()
> && bar_condition ()
>
> > +static gcc_jit_rvalue *
> > +comp_lisp_const_get_lisp_obj_rval (Lisp_Object obj,
> > + comp_lisp_const_t expr);
> > +static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object obj,
> > + Lisp_Object
> > alloc_class);
>
> This ought to read:
>
> static gcc_jit_rvalue *comp_lisp_const_get_lisp_obj_rval
> (Lisp_Object,
>
> comp_lisp_const_t);
> static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object,
> Lisp_Object);
>
> > + n =
> > + emit_binary_op (GCC_JIT_BINARY_OP_PLUS,
> > + comp.emacs_uint_type,
> > + emit_binary_op (GCC_JIT_BINARY_OP_LSHIFT,
> > + comp.emacs_uint_type,
> > + comp.lisp_int0,
> > + emit_rvalue_from_emacs_uint
> > (VALBITS)),
> > + n);
> > +
>
> Please, place the = on a new line.
>
> > +static gcc_jit_rvalue *
> > +emit_make_fixnum (gcc_jit_rvalue *obj)
> > +{
> > + emit_comment ("make_fixnum");
> > + return USE_LSB_TAG
> > + ? emit_make_fixnum_LSB_TAG (obj)
> > + : emit_make_fixnum_MSB_TAG (obj);
> > +}
>
> This should read:
>
> return (USE_LSB_TAG
> ? emit_make_fixnum_LSB_TAG (obj)
> ? emit_make_fixnum_MSB_TAG (obj));
>
> instead.
>
> > +typedef struct {
> > + ptrdiff_t size;
> > + gcc_jit_field *header;
> > + gcc_jit_field *contents;
> > + gcc_jit_type *lisp_vector_type;
> > + gcc_jit_type *contents_type;
> > +} jit_vector_type_t;
>
> Please place the opening brace of this struct on a new line.
>
> > + vec.header =
> > + gcc_jit_context_new_field (comp.ctxt,
> > + NULL,
> > + comp.ptrdiff_type,
> > + "header");
>
> Please place the = on a new line, here, and below:
>
> > + vec.contents =
> > + gcc_jit_context_new_field (comp.ctxt,
> > + NULL,
> > + vec.contents_type,
> > + "contents");
>
> > + = STRING_MULTIBYTE (str)
> > + ? gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> > + comp.ptrdiff_type,
> > + SBYTES (str))
> > + // Mark unibyte strings as immovable, so that pin_string does
> > not
> > + // attempt to modify them.
> > + : gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> > + comp.ptrdiff_type,
> > -3);
>
> When you write:
>
> foo = abcdefg
> ? bcdefghij
> : klmnopqrs
>
> everything around the ternary must be placed in parentheses and
> indented
> as such.
>
>
> > +static inline bool
> > +comp_func_l_p (Lisp_Object func)
> > +{
> > + return !NILP (CALL1I (comp-func-l-p, func));
> > +}
> > +
> > +static inline bool
> > +comp_func_d_p (Lisp_Object func)
> > +{
> > + return !NILP (CALL1I (comp-func-d-p, func));
> > +}
>
> In general, there is no need to write "inline" in C99: simple
> expressions like these will be inlined anyway, and otherwise, the
> compiler will make its own judgement.
>
> > +typedef struct {
> > + ptrdiff_t cons_block_list_idx;
> > + ptrdiff_t cons_block_conses_idx;
> > +} cons_block_entry_t;
>
> Please place the opening brace of this struct on a new line.
>
> > +static Lisp_Object
> > +cons_block_list_get_block_entry (cons_block_entry_t entry)
> > +{
> > + ptrdiff_t list_idx = XFIXNUM (Flength (comp.cons_block_list)) -
> > 1
> > + - entry.cons_block_list_idx;
> > + return Fnth (make_fixnum (list_idx), comp.cons_block_list);
> > +}
>
> Instead of writing:
>
> foo = 077777777777777
> - 07777777777776;
>
> our coding style is:
>
> foo = (077777777777777
> - 07777777777776)
>
> Please adjust this code accordingly.
>
> > + Lisp_Object block;
> > + if (NILP (comp.float_block_list))
> > + block = push_float_block();
>
> There is a missing space here.
>
> > + if (expr.expr_type == COMP_LISP_CONST_SELF_REPR ||
> > + expr.expr_type == COMP_LISP_CONST_VAR)
> > + return expr.expr.lisp_obj;
>
> Please write:
>
> if (expr.expr_type == COMP_LISP_CONST_SELF_REPR
> || expr.expr_type == COMP_LISP_CONST_VAR)
> return expr.expr.lisp_obj;
>
> instead.
>
>
> > + bool valid = EQ (alloc_class, Qd_default) ||
> > + EQ (alloc_class, Qd_impure) ||
> > + EQ (alloc_class, Qd_ephemeral);
>
> What was said about parentheses earlier applies here too.
>
> > + if (FIXNUMP (obj))
> > + expr = (comp_lisp_const_t){ .expr.lisp_obj
> > + = emit_rvalue_from_lisp_obj (obj),
> > + .const_expr_p = true,
> > + .expr_type = COMP_LISP_CONST_SELF_REPR };
> > + else if (BARE_SYMBOL_P (obj) && c_symbol_p (XBARE_SYMBOL (obj)))
> > + expr
> > + = (comp_lisp_const_t){ .expr.lisp_obj
> > + = emit_rvalue_from_lisp_obj (obj),
> > + .const_expr_p = true,
> > + .expr_type = COMP_LISP_CONST_SELF_REPR };
>
> In this compound literal, please place a space between the part that
> looks like a cast and the initializer list.
>
> > + {
> > + Lisp_Object func =
> > + Fgethash (obj,
> > + CALL1I (comp-ctxt-byte-func-to-func-h,
> > Vcomp_ctxt),
> > + Qnil);
>
> Please place the assignment operator on the new line.
>
> > +const char *lisp_type_name[Lisp_Float + 1] = {
> > + "Lisp_Symbol",
> > + "Lisp_Type_Unused0",
> > + "Lisp_Int0",
> > + "Lisp_Int1",
> > + "Lisp_String",
> > + "Lisp_Vectorlike",
> > + "Lisp_Cons",
> > + "Lisp_Float"
> > +};
>
> Please place the opening brace here on a new line.
>
> > + comp.d_default_rvals =
> > + emit_static_data_container (CALL1I (comp-ctxt-d-default,
> > Vcomp_ctxt),
> > + Qd_default);
> > + comp.d_impure_rvals =
> > + emit_static_data_container (CALL1I (comp-ctxt-d-impure,
> > Vcomp_ctxt),
> > + Qd_impure);
> > + comp.d_ephemeral_rvals =
> > + emit_static_data_container (CALL1I (comp-ctxt-d-ephemeral,
> > Vcomp_ctxt),
> > + Qd_ephemeral);
> > +}
>
> Please put the assignment operators on the new line.
>
> > +#if
> > defined(LIBGCCJIT_HAVE_REFLECTION)
> > \
> > + &&
> > defined(LIBGCCJIT_HAVE_CTORS) \
> > + &&
> > defined(LIBGCCJIT_HAVE_gcc_jit_type_get_aligned) \
> > + && defined(LIBGCCJIT_HAVE_ALIGNMENT) &&
> > USE_STACK_LISP_OBJECTS \
> > + && !defined(GC_CHECK_MARKED_OBJECTS)
>
> Please write:
>
> #if defined (FOO)
>
> or
>
> #if defined FOO
>
> instead of:
>
> #if defined(FOO)
>
> In addition, most of your changes consist of lines indented with tabs
> and spaces, which is correct, but it also contains many lines
> indented
> solely with spaces. Please fix those.
>
> Thanks.
Hi,
Thanks for the feedback, I tried to address most of it yesterday.
Additionally, I also pushed a few more rules to .clang-format which
should help both clang-format and clangd with formatting code.
Thanks,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-15 9:06 ` Andrea Corallo
@ 2022-11-16 19:36 ` Vibhav Pant
2022-11-17 19:59 ` Andrea Corallo
2022-11-17 4:32 ` Richard Stallman
1 sibling, 1 reply; 17+ messages in thread
From: Vibhav Pant @ 2022-11-16 19:36 UTC (permalink / raw)
To: Andrea Corallo, Po Lu; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 12708 bytes --]
On Tue, 2022-11-15 at 09:06 +0000, Andrea Corallo wrote:
> Po Lu <luangruo@yahoo.com> writes:
>
> > Thanks. Some minor style comments below:
> >
> > > +const size_t block_align = BLOCK_ALIGN;
> >
> > [...]
> >
> > > +const size_t float_block_floats_length = FLOAT_BLOCK_SIZE;
> > > +const size_t float_block_gcmarkbits_length =
> > > + 1 + FLOAT_BLOCK_SIZE / BITS_PER_BITS_WORD;
> >
> > [...]
> >
> > > +const size_t cons_block_conses_length = CONS_BLOCK_SIZE;
> > > +const size_t cons_block_gcmarkbits_length
> > > + = 1 + CONS_BLOCK_SIZE / BITS_PER_BITS_WORD;
> >
> > These should be defined out with HAVE_NATIVE_COMPILATION. In
> > addition,
> > the = must come on a new line. Our style is:
> >
> > foo_long
> > = long_bar ();
> >
> > instead of:
> >
> > foo_long =
> > long_bar ();
> >
> > >
> > > + mark_stack_push_values (ptr->contents,
> > > + size
> > > + &
> > > PSEUDOVECTOR_SIZE_MASK);
> > > + struct Lisp_Native_Comp_Unit *comp_u
> > > + = XNATIVE_COMP_UNIT (obj);
> >
> > Here, you used spaces for indentation instead of tabs.
> >
> > > + if (comp_u->have_static_lisp_data)
> > > + {
> > > + eassert (NILP (comp_u->lambda_gc_guard_h)
> > > &&
> > > + NILP (comp_u->lambda_c_name_idx_h)
> > > &&
> > > + NILP (comp_u->data_vec) &&
> > > + NILP (comp_u->data_impure_vec) &&
> > > + comp_u->data_imp_relocs == NULL);
> >
> > In Emacs code, whenever you feel the temptation to write:
> >
> > foo_condition () &&
> > bar_condition ()
> >
> > write this instead:
> >
> > foo_condition ()
> > && bar_condition ()
> >
> > > +static gcc_jit_rvalue *
> > > +comp_lisp_const_get_lisp_obj_rval (Lisp_Object obj,
> > > + comp_lisp_const_t expr);
> > > +static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object obj,
> > > + Lisp_Object
> > > alloc_class);
> >
> > This ought to read:
> >
> > static gcc_jit_rvalue *comp_lisp_const_get_lisp_obj_rval
> > (Lisp_Object,
> >
> > comp_lisp_const_t);
> > static comp_lisp_const_t emit_comp_lisp_obj (Lisp_Object,
> > Lisp_Object);
> >
> > > + n =
> > > + emit_binary_op (GCC_JIT_BINARY_OP_PLUS,
> > > + comp.emacs_uint_type,
> > > + emit_binary_op (GCC_JIT_BINARY_OP_LSHIFT,
> > > + comp.emacs_uint_type,
> > > + comp.lisp_int0,
> > > + emit_rvalue_from_emacs_uint
> > > (VALBITS)),
> > > + n);
> > > +
> >
> > Please, place the = on a new line.
> >
> > > +static gcc_jit_rvalue *
> > > +emit_make_fixnum (gcc_jit_rvalue *obj)
> > > +{
> > > + emit_comment ("make_fixnum");
> > > + return USE_LSB_TAG
> > > + ? emit_make_fixnum_LSB_TAG (obj)
> > > + : emit_make_fixnum_MSB_TAG (obj);
> > > +}
> >
> > This should read:
> >
> > return (USE_LSB_TAG
> > ? emit_make_fixnum_LSB_TAG (obj)
> > ? emit_make_fixnum_MSB_TAG (obj));
> >
> > instead.
> >
> > > +typedef struct {
> > > + ptrdiff_t size;
> > > + gcc_jit_field *header;
> > > + gcc_jit_field *contents;
> > > + gcc_jit_type *lisp_vector_type;
> > > + gcc_jit_type *contents_type;
> > > +} jit_vector_type_t;
> >
> > Please place the opening brace of this struct on a new line.
> >
> > > + vec.header =
> > > + gcc_jit_context_new_field (comp.ctxt,
> > > + NULL,
> > > + comp.ptrdiff_type,
> > > + "header");
> >
> > Please place the = on a new line, here, and below:
> >
> > > + vec.contents =
> > > + gcc_jit_context_new_field (comp.ctxt,
> > > + NULL,
> > > + vec.contents_type,
> > > + "contents");
> >
> > > + = STRING_MULTIBYTE (str)
> > > + ? gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> > > +
> > > comp.ptrdiff_type,
> > > + SBYTES (str))
> > > + // Mark unibyte strings as immovable, so that pin_string
> > > does not
> > > + // attempt to modify them.
> > > + : gcc_jit_context_new_rvalue_from_int (comp.ctxt,
> > > +
> > > comp.ptrdiff_type, -3);
> >
> > When you write:
> >
> > foo = abcdefg
> > ? bcdefghij
> > : klmnopqrs
> >
> > everything around the ternary must be placed in parentheses and
> > indented
> > as such.
> >
> >
> > > +static inline bool
> > > +comp_func_l_p (Lisp_Object func)
> > > +{
> > > + return !NILP (CALL1I (comp-func-l-p, func));
> > > +}
> > > +
> > > +static inline bool
> > > +comp_func_d_p (Lisp_Object func)
> > > +{
> > > + return !NILP (CALL1I (comp-func-d-p, func));
> > > +}
> >
> > In general, there is no need to write "inline" in C99: simple
> > expressions like these will be inlined anyway, and otherwise, the
> > compiler will make its own judgement.
> >
> > > +typedef struct {
> > > + ptrdiff_t cons_block_list_idx;
> > > + ptrdiff_t cons_block_conses_idx;
> > > +} cons_block_entry_t;
> >
> > Please place the opening brace of this struct on a new line.
> >
> > > +static Lisp_Object
> > > +cons_block_list_get_block_entry (cons_block_entry_t entry)
> > > +{
> > > + ptrdiff_t list_idx = XFIXNUM (Flength (comp.cons_block_list))
> > > - 1
> > > + - entry.cons_block_list_idx;
> > > + return Fnth (make_fixnum (list_idx), comp.cons_block_list);
> > > +}
> >
> > Instead of writing:
> >
> > foo = 077777777777777
> > - 07777777777776;
> >
> > our coding style is:
> >
> > foo = (077777777777777
> > - 07777777777776)
> >
> > Please adjust this code accordingly.
> >
> > > + Lisp_Object block;
> > > + if (NILP (comp.float_block_list))
> > > + block = push_float_block();
> >
> > There is a missing space here.
> >
> > > + if (expr.expr_type == COMP_LISP_CONST_SELF_REPR ||
> > > + expr.expr_type == COMP_LISP_CONST_VAR)
> > > + return expr.expr.lisp_obj;
> >
> > Please write:
> >
> > if (expr.expr_type == COMP_LISP_CONST_SELF_REPR
> > || expr.expr_type == COMP_LISP_CONST_VAR)
> > return expr.expr.lisp_obj;
> >
> > instead.
> >
> >
> > > + bool valid = EQ (alloc_class, Qd_default) ||
> > > + EQ (alloc_class, Qd_impure) ||
> > > + EQ (alloc_class, Qd_ephemeral);
> >
> > What was said about parentheses earlier applies here too.
> >
> > > + if (FIXNUMP (obj))
> > > + expr = (comp_lisp_const_t){ .expr.lisp_obj
> > > + = emit_rvalue_from_lisp_obj (obj),
> > > + .const_expr_p = true,
> > > + .expr_type = COMP_LISP_CONST_SELF_REPR
> > > };
> > > + else if (BARE_SYMBOL_P (obj) && c_symbol_p (XBARE_SYMBOL
> > > (obj)))
> > > + expr
> > > + = (comp_lisp_const_t){ .expr.lisp_obj
> > > + = emit_rvalue_from_lisp_obj (obj),
> > > + .const_expr_p = true,
> > > + .expr_type = COMP_LISP_CONST_SELF_REPR
> > > };
> >
> > In this compound literal, please place a space between the part
> > that
> > looks like a cast and the initializer list.
> >
> > > + {
> > > + Lisp_Object func =
> > > + Fgethash (obj,
> > > + CALL1I (comp-ctxt-byte-func-to-func-h,
> > > Vcomp_ctxt),
> > > + Qnil);
> >
> > Please place the assignment operator on the new line.
> >
> > > +const char *lisp_type_name[Lisp_Float + 1] = {
> > > + "Lisp_Symbol",
> > > + "Lisp_Type_Unused0",
> > > + "Lisp_Int0",
> > > + "Lisp_Int1",
> > > + "Lisp_String",
> > > + "Lisp_Vectorlike",
> > > + "Lisp_Cons",
> > > + "Lisp_Float"
> > > +};
> >
> > Please place the opening brace here on a new line.
> >
> > > + comp.d_default_rvals =
> > > + emit_static_data_container (CALL1I (comp-ctxt-d-default,
> > > Vcomp_ctxt),
> > > + Qd_default);
> > > + comp.d_impure_rvals =
> > > + emit_static_data_container (CALL1I (comp-ctxt-d-impure,
> > > Vcomp_ctxt),
> > > + Qd_impure);
> > > + comp.d_ephemeral_rvals =
> > > + emit_static_data_container (CALL1I (comp-ctxt-d-ephemeral,
> > > Vcomp_ctxt),
> > > + Qd_ephemeral);
> > > +}
> >
> > Please put the assignment operators on the new line.
> >
> > > +#if
> > > defined(LIBGCCJIT_HAVE_REFLECTION)
> > > \
> > > + &&
> > > defined(LIBGCCJIT_HAVE_CTORS)
> > > \
> > > + &&
> > > defined(LIBGCCJIT_HAVE_gcc_jit_type_get_aligned)
> > > \
> > > + && defined(LIBGCCJIT_HAVE_ALIGNMENT) &&
> > > USE_STACK_LISP_OBJECTS \
> > > + && !defined(GC_CHECK_MARKED_OBJECTS)
> >
> > Please write:
> >
> > #if defined (FOO)
> >
> > or
> >
> > #if defined FOO
> >
> > instead of:
> >
> > #if defined(FOO)
> >
> > In addition, most of your changes consist of lines indented with
> > tabs
> > and spaces, which is correct, but it also contains many lines
> > indented
> > solely with spaces. Please fix those.
> >
> > Thanks.
>
> Hi,
>
> in addition to Po Lu good comments, I think this patch will need
> (other
> than a ChangeLog entry) a cover letter with an in deep explanation of
> what is trying to achieve.
>
> Also I see this is based on 1b48e8dde5, but I opposed to that change
> as
> brings code complexity for no real advantages, so I think would be
> better to have this patch rebased on current master.
>
> Best Regards
>
> Andrea
Hi Andrea,
This branch was mostly inspired by your comment in `emit_static_object'
that mentioned how libgccjit didn't support static initializers
(presumably back then). Now that there is some support for initializing
static globals with constant expressions, I have been working on this
patch for the last few weeks with the aim of trying to reduce the use
of `read' for initializing constants referenced by elisp code
(therefore drastically reducing the amount of heap allocations and
improving eln load times), by compiling them into the eln as static
(optionally const) data. Think of it as every eln module having its own
pure storage.
There are still a bunch of TODOs, the first one being reducing the size
of the generated binaries (which is mostly due to how `comp_init_obj'
works right now). Nonetheless, I decided to make this code public once
it was passing basic sanity tests (including the comp-tests.el suite)
and was in a more or less working condition as a daily driver. As a
result, the branch is still a WIP, but I will try to document more of
the code moving forward.
Best,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-15 9:06 ` Andrea Corallo
2022-11-16 19:36 ` Vibhav Pant
@ 2022-11-17 4:32 ` Richard Stallman
2022-11-17 8:46 ` Vibhav Pant
1 sibling, 1 reply; 17+ messages in thread
From: Richard Stallman @ 2022-11-17 4:32 UTC (permalink / raw)
To: Andrea Corallo; +Cc: luangruo, emacs-devel, vibhavp
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
I can't find previous discussion of this, but if the idea is to make
Emacs crash if you try to set a "constant" symbol, I think it is a bad
idea. The chance of breaking something is very high, and there is
little to gain.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-16 19:26 ` Vibhav Pant
@ 2022-11-17 4:51 ` Po Lu
0 siblings, 0 replies; 17+ messages in thread
From: Po Lu @ 2022-11-17 4:51 UTC (permalink / raw)
To: Vibhav Pant; +Cc: emacs-devel
Vibhav Pant <vibhavp@gmail.com> writes:
> Thanks for the feedback, I tried to address most of it yesterday.
> Additionally, I also pushed a few more rules to .clang-format which
> should help both clang-format and clangd with formatting code.
My suggestion is to not use automatic formatters with Emacs code at all.
Their "GNU" styles never really work.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-17 4:32 ` Richard Stallman
@ 2022-11-17 8:46 ` Vibhav Pant
2022-11-18 5:07 ` Richard Stallman
0 siblings, 1 reply; 17+ messages in thread
From: Vibhav Pant @ 2022-11-17 8:46 UTC (permalink / raw)
To: rms, Andrea Corallo; +Cc: luangruo, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1096 bytes --]
On Wed, 2022-11-16 at 23:32 -0500, Richard Stallman wrote:
> [[[ To any NSA and FBI agents reading my email: please consider
> ]]]
> [[[ whether defending the US Constitution against all enemies,
> ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example.
> ]]]
>
> I can't find previous discussion of this, but if the idea is to make
> Emacs crash if you try to set a "constant" symbol, I think it is a
> bad
> idea. The chance of breaking something is very high, and there is
> little to gain.
>
Hi Richard,
Perhaps "constant" is a misnomer here. If you are refering to defconst-
defined variables, that is not what the patch is about. I'm refering to
self-evaluating forms/objects referenced by elisp code, i.e. the ones
that the constant vector in a bytecode object contains. The elisp
reference manual states that mutating self-evaluating forms results in
undefined behaviour, so marking them as const should be safe IMO.
Best,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-16 19:36 ` Vibhav Pant
@ 2022-11-17 19:59 ` Andrea Corallo
0 siblings, 0 replies; 17+ messages in thread
From: Andrea Corallo @ 2022-11-17 19:59 UTC (permalink / raw)
To: Vibhav Pant; +Cc: Po Lu, emacs-devel
Vibhav Pant <vibhavp@gmail.com> writes:
[...]
> Hi Andrea,
>
> This branch was mostly inspired by your comment in `emit_static_object'
> that mentioned how libgccjit didn't support static initializers
> (presumably back then). Now that there is some support for initializing
> static globals with constant expressions, I have been working on this
> patch for the last few weeks with the aim of trying to reduce the use
> of `read' for initializing constants referenced by elisp code
> (therefore drastically reducing the amount of heap allocations and
> improving eln load times), by compiling them into the eln as static
> (optionally const) data. Think of it as every eln module having its own
> pure storage.
>
> There are still a bunch of TODOs, the first one being reducing the size
> of the generated binaries (which is mostly due to how `comp_init_obj'
> works right now). Nonetheless, I decided to make this code public once
> it was passing basic sanity tests (including the comp-tests.el suite)
> and was in a more or less working condition as a daily driver. As a
> result, the branch is still a WIP, but I will try to document more of
> the code moving forward.
>
> Best,
> Vibhav
Hi Vibhav,
as usual when you are ready I suggest you to show the pseudo C generated
with native-comp-debug >= 2 for the stock system and for the one with
your patch. This for a _minimal_ example.
Thanks for working on this.
Andrea
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-17 8:46 ` Vibhav Pant
@ 2022-11-18 5:07 ` Richard Stallman
2022-11-18 8:28 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Richard Stallman @ 2022-11-18 5:07 UTC (permalink / raw)
To: vibhavp; +Cc: akrl, luangruo, emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> Perhaps "constant" is a misnomer here. If you are refering to defconst-
> defined variables, that is not what the patch is about. I'm refering to
> self-evaluating forms/objects referenced by elisp code, i.e. the ones
> that the constant vector in a bytecode object contains. The elisp
> reference manual states that mutating self-evaluating forms results in
> undefined behaviour, so marking them as const should be safe IMO.
Your change "ought to be" harmless in principle, but in practice it
may be harmful. There may be cases that are currently "incorrect" in
principle but in practice do no harm. Your change might cause them to
get faults for trying to write read-only memory. Why take that risk?
I'd rather avoid risk by not making this change.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-18 5:07 ` Richard Stallman
@ 2022-11-18 8:28 ` Eli Zaretskii
2022-11-20 1:15 ` Richard Stallman
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2022-11-18 8:28 UTC (permalink / raw)
To: rms; +Cc: vibhavp, akrl, luangruo, emacs-devel
> From: Richard Stallman <rms@gnu.org>
> Cc: akrl@sdf.org, luangruo@yahoo.com, emacs-devel@gnu.org
> Date: Fri, 18 Nov 2022 00:07:00 -0500
>
> > Perhaps "constant" is a misnomer here. If you are refering to defconst-
> > defined variables, that is not what the patch is about. I'm refering to
> > self-evaluating forms/objects referenced by elisp code, i.e. the ones
> > that the constant vector in a bytecode object contains. The elisp
> > reference manual states that mutating self-evaluating forms results in
> > undefined behaviour, so marking them as const should be safe IMO.
>
> Your change "ought to be" harmless in principle, but in practice it
> may be harmful. There may be cases that are currently "incorrect" in
> principle but in practice do no harm. Your change might cause them to
> get faults for trying to write read-only memory. Why take that risk?
>
> I'd rather avoid risk by not making this change.
I'm not aware of any aspect of the change which would cause crashes in
these cases. Vibhav, if this is true, please show the relevant code
in your branch, and explain how it works and in what cases it causes
an abort.
Thanks.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-18 8:28 ` Eli Zaretskii
@ 2022-11-20 1:15 ` Richard Stallman
2022-11-20 7:37 ` Eli Zaretskii
0 siblings, 1 reply; 17+ messages in thread
From: Richard Stallman @ 2022-11-20 1:15 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: vibhavp, akrl, luangruo, emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> I'm not aware of any aspect of the change which would cause crashes in
> these cases.
It is possible I misunderstood what the change was for. The message
seemed to say that it would put the values of variables defined with
`defconst' into read-only memory. If there are cases in which that
affects the program's execution, I expect it will cause a failure of
some sort in those same cases.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 1:15 ` Richard Stallman
@ 2022-11-20 7:37 ` Eli Zaretskii
2022-11-20 16:37 ` vibhavp
0 siblings, 1 reply; 17+ messages in thread
From: Eli Zaretskii @ 2022-11-20 7:37 UTC (permalink / raw)
To: vibhavp, rms; +Cc: akrl, luangruo, emacs-devel
> From: Richard Stallman <rms@gnu.org>
> Cc: vibhavp@gmail.com, akrl@sdf.org, luangruo@yahoo.com,
> emacs-devel@gnu.org
> Date: Sat, 19 Nov 2022 20:15:33 -0500
>
> > I'm not aware of any aspect of the change which would cause crashes in
> > these cases.
>
> It is possible I misunderstood what the change was for. The message
> seemed to say that it would put the values of variables defined with
> `defconst' into read-only memory. If there are cases in which that
> affects the program's execution, I expect it will cause a failure of
> some sort in those same cases.
I'd need to understand what does "read-only memory" mean in this context.
Does the code use some memory-protection capabilities to enforce that? Or
does it do something else?
Vibhav, please chime in and help us understand what the code does.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 7:37 ` Eli Zaretskii
@ 2022-11-20 16:37 ` vibhavp
2022-11-20 16:54 ` Eli Zaretskii
` (2 more replies)
0 siblings, 3 replies; 17+ messages in thread
From: vibhavp @ 2022-11-20 16:37 UTC (permalink / raw)
To: Eli Zaretskii, rms; +Cc: akrl, luangruo, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 2684 bytes --]
On Sun, 2022-11-20 at 09:37 +0200, Eli Zaretskii wrote:
> > From: Richard Stallman <rms@gnu.org>
> > Cc: vibhavp@gmail.com, akrl@sdf.org, luangruo@yahoo.com,
> > emacs-devel@gnu.org
> > Date: Sat, 19 Nov 2022 20:15:33 -0500
> >
> > > I'm not aware of any aspect of the change which would cause
> > crashes in
> > > these cases.
> >
> > It is possible I misunderstood what the change was for. The
> > message
> > seemed to say that it would put the values of variables defined
> > with
> > `defconst' into read-only memory. If there are cases in which that
> > affects the program's execution, I expect it will cause a failure
> > of
> > some sort in those same cases.
>
> I'd need to understand what does "read-only memory" mean in this
> context.
> Does the code use some memory-protection capabilities to enforce
> that? Or
> does it do something else?
>
> Vibhav, please chime in and help us understand what the code does.
Hi Eli, Richard,
The follow elisp snipper is an example of code that when compiled under
this branch, crashes Emacs:
;; -*- lexical-binding: t; -*-
(defun fault-function ()
(let ((a [1 2 3]))
(aset a 0 5)
a))
(fault-function)
I've attached the psuedo-C output produced by libgccjit below.
While compiling `fault-function', comp emits the data for `a' as
follows:
static const struct comp_Lisp_Vector_3 __attribute__((aligned(8)))
lisp_data_3 = (struct comp_Lisp_Vector_3) {.header=(long long)-
9223372036854775805, .contents=(struct Lisp_X *[3]) {(struct Lisp_X
*)0x6, (struct Lisp_X *)0xa, (struct Lisp_X *)0xe}};
Therefore, `lisp_data_3' gets stored in .rodata (or .data.rel.ro),
which causes the call to `aset' to trigger a SIGSEGV. This behaviour is
documented by the Elisp reference manual, which states that self-
evaluating forms are immutable, and changing then can read to
crashes/undefined behaviour
(https://www.gnu.org/software/emacs/manual/html_node/elisp/Self_002dEvaluating-Forms.html
).
The idea behind this patch is to replace the runtime initialization of
lisp objects in the original bytecode constant vector with static
variables, compiled into the eln itself. For now, it is able to do so
for strings (without text properties), bare symbols in `lispsym',
floats, vectors (and other psuedovectors in the future), and conses.
Objects that require runtime initialization (for instance, interned
symbols) are still created by calling their respective initialization
functions, and are not able to be stored as consts.
Best,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598
[-- Attachment #1.2: crash-898ac2ed-6cd79c5a.c --]
[-- Type: text/x-csrc, Size: 204052 bytes --]
struct Lisp_X;
struct comp_Lisp_Cons;
union comp_cdr_u;
struct comp_cons_s;
union comp_cons_u;
struct comp_cons_block;
struct comp_lisp_symbol_with_position;
struct comp_interval;
struct comp_Lisp_String;
struct comp_string_u_s;
union comp_string_u;
struct comp_Lisp_Float;
union comp_Lisp_Float_u;
struct comp_float_block;
struct Lisp_Vector;
union comp_intspec;
struct comp_Lisp_Subr;
union comp_Aligned_Subr;
struct comp_Lisp_Vector_10;
union comp_Lisp_Pseudovector_Subr;
struct comp_jmp_buf;
struct comp_handler;
struct comp_thread_state;
struct comp_Lisp_Vector_3;
struct freloc_link_table;
struct comp_Lisp_Vector_11;
struct comp_Lisp_Cons
{
union comp_cons_u u;
};
union comp_cdr_u
{
struct Lisp_X * cdr;
struct comp_Lisp_Cons * chain;
};
struct comp_cons_s
{
struct Lisp_X * car;
union comp_cdr_u u;
};
union comp_cons_u
{
struct comp_cons_s s;
char __attribute__((aligned(8))) gcaligned;
};
struct comp_cons_block
{
struct comp_Lisp_Cons[62] conses;
long long[1] gcmarkbits;
struct comp_cons_block * next;
};
struct comp_lisp_symbol_with_position
{
long long header;
struct Lisp_X * sym;
struct Lisp_X * pos;
};
struct comp_Lisp_String
{
union comp_string_u u;
};
struct comp_string_u_s
{
long long size;
long long size_byte;
struct comp_interval * intervals;
unsigned char * data;
};
union comp_string_u
{
struct comp_string_u_s s;
struct comp_Lisp_String * next;
char __attribute__((aligned(8))) gcaligned;
};
struct comp_Lisp_Float
{
union comp_Lisp_Float_u u;
};
union comp_Lisp_Float_u
{
double data;
struct comp_Lisp_Float * chain;
char __attribute__((aligned(8))) gcaligned;
};
struct comp_float_block
{
struct comp_Lisp_Float[124] floats;
long long[2] gcmarkbits;
struct comp_float_block * next;
};
struct Lisp_Vector
{
long long header;
struct Lisp_X * * contents;
};
union comp_intspec
{
const char * string;
struct Lisp_X * native;
};
struct comp_Lisp_Subr
{
long long header;
void * function;
short min_args;
short max_args;
const char * symbol_name;
union comp_intspec intspec;
struct Lisp_X * command_modes;
long long doc;
struct Lisp_X * native_comp_u;
char * native_c_name;
struct Lisp_X * lamdba_list;
struct Lisp_X * type;
};
union comp_Aligned_Subr
{
struct comp_Lisp_Subr __attribute__((aligned(8))) s;
char __attribute__((aligned(8))) gcaligned;
};
struct comp_Lisp_Vector_10
{
long long header;
struct Lisp_X *[10] contents;
};
union comp_Lisp_Pseudovector_Subr
{
struct comp_Lisp_Vector_10 vector;
union comp_Aligned_Subr aligned_subr;
};
struct comp_jmp_buf
{
char[200] stuff;
};
struct comp_handler
{
char[24] pad0;
struct Lisp_X * val;
struct comp_handler * next;
char[24] pad1;
struct comp_jmp_buf jmp;
char[40] pad2;
};
struct comp_thread_state
{
char[96] pad0;
struct comp_handler * m_handlerlist;
char[416] pad1;
};
struct comp_Lisp_Vector_3
{
long long header;
struct Lisp_X *[3] contents;
};
struct freloc_link_table
{
const void (*) (struct Lisp_X *, struct Lisp_X *) R77726f6e675f747970655f617267756d656e74_wrong_type_argument_0;
const bool (*) (struct Lisp_X *, int) R68656c7065725f50534555444f564543544f525f54595045505f58554e544147_helper_PSEUDOVECTOR_TYPEP_XUNTAG_0;
const void (*) (struct Lisp_X *) R707572655f77726974655f6572726f72_pure_write_error_0;
const struct comp_handler * (*) (struct Lisp_X *, int) R707573685f68616e646c6572_push_handler_0;
const void (*) () R7265636f72645f756e77696e645f70726f746563745f657863757273696f6e_record_unwind_protect_excursion_0;
const struct Lisp_X * (*) (struct Lisp_X *) R68656c7065725f756e62696e645f6e_helper_unbind_n_0;
const void (*) () R68656c7065725f736176655f7265737472696374696f6e_helper_save_restriction_0;
const struct comp_lisp_symbol_with_position * (*) (struct Lisp_X *) R68656c7065725f4745545f53594d424f4c5f574954485f504f534954494f4e_helper_GET_SYMBOL_WITH_POSITION_0;
const void (*) () R7265636f72645f756e77696e645f63757272656e745f627566666572_record_unwind_current_buffer_0;
const void (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, int) R7365745f696e7465726e616c_set_internal_0;
const void (*) (struct Lisp_X *) R68656c7065725f756e77696e645f70726f74656374_helper_unwind_protect_0;
const void (*) (struct Lisp_X *, struct Lisp_X *) R7370656362696e64_specbind_0;
const void (*) () R6d617962655f6763_maybe_gc_0;
const void (*) () R6d617962655f71756974_maybe_quit_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6a736f6e2d70617273652d627566666572_json_parse_buffer_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6a736f6e2d70617273652d737472696e67_json_parse_string_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6a736f6e2d696e73657274_json_insert_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6a736f6e2d73657269616c697a65_json_serialize_0;
const struct Lisp_X * (*) () R7064756d7065722d7374617473_pdumper_stats_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64756d702d656d6163732d706f727461626c652d2d736f72742d7072656469636174652d636f70696564_dump_emacs_portable__sort_predicate_copied_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64756d702d656d6163732d706f727461626c652d2d736f72742d707265646963617465_dump_emacs_portable__sort_predicate_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64756d702d656d6163732d706f727461626c65_dump_emacs_portable_0;
const struct Lisp_X * (*) () R70726f66696c65722d6d656d6f72792d6c6f67_profiler_memory_log_0;
const struct Lisp_X * (*) () R70726f66696c65722d6d656d6f72792d72756e6e696e672d70_profiler_memory_running_p_0;
const struct Lisp_X * (*) () R70726f66696c65722d6d656d6f72792d73746f70_profiler_memory_stop_0;
const struct Lisp_X * (*) () R70726f66696c65722d6d656d6f72792d7374617274_profiler_memory_start_0;
const struct Lisp_X * (*) () R70726f66696c65722d6370752d6c6f67_profiler_cpu_log_0;
const struct Lisp_X * (*) () R70726f66696c65722d6370752d72756e6e696e672d70_profiler_cpu_running_p_0;
const struct Lisp_X * (*) () R70726f66696c65722d6370752d73746f70_profiler_cpu_stop_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f66696c65722d6370752d7374617274_profiler_cpu_start_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66756e6374696f6e2d657175616c_function_equal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7468726561642d6c6173742d6572726f72_thread_last_error_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e646974696f6e2d6e616d65_condition_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e646974696f6e2d6d75746578_condition_mutex_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6e646974696f6e2d6e6f74696679_condition_notify_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e646974696f6e2d77616974_condition_wait_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d636f6e646974696f6e2d7661726961626c65_make_condition_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d757465782d6e616d65_mutex_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d757465782d756e6c6f636b_mutex_unlock_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d757465782d6c6f636b_mutex_lock_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d6d75746578_make_mutex_0;
const struct Lisp_X * (*) () R616c6c2d74687265616473_all_threads_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7468726561642d2d626c6f636b6572_thread__blocker_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7468726561642d6a6f696e_thread_join_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7468726561642d6c6976652d70_thread_live_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7468726561642d7369676e616c_thread_signal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7468726561642d6e616d65_thread_name_0;
const struct Lisp_X * (*) () R63757272656e742d746872656164_current_thread_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d746872656164_make_thread_0;
const struct Lisp_X * (*) () R7468726561642d7969656c64_thread_yield_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R646275732d6d6573736167652d696e7465726e616c_dbus_message_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R646275732d6765742d756e697175652d6e616d65_dbus_get_unique_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646275732d2d696e69742d627573_dbus__init_bus_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e6f746966792d76616c69642d70_inotify_valid_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e6f746966792d726d2d7761746368_inotify_rm_watch_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e6f746966792d6164642d7761746368_inotify_add_watch_0;
const struct Lisp_X * (*) () R676e75746c732d617661696c61626c652d70_gnutls_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R676e75746c732d73796d6d65747269632d64656372797074_gnutls_symmetric_decrypt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R676e75746c732d73796d6d65747269632d656e6372797074_gnutls_symmetric_encrypt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R676e75746c732d686173682d646967657374_gnutls_hash_digest_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R676e75746c732d686173682d6d6163_gnutls_hash_mac_0;
const struct Lisp_X * (*) () R676e75746c732d64696765737473_gnutls_digests_0;
const struct Lisp_X * (*) () R676e75746c732d6d616373_gnutls_macs_0;
const struct Lisp_X * (*) () R676e75746c732d63697068657273_gnutls_ciphers_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d666f726d61742d6365727469666963617465_gnutls_format_certificate_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d706565722d7374617475732d7761726e696e672d6465736372696265_gnutls_peer_status_warning_describe_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d706565722d737461747573_gnutls_peer_status_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R676e75746c732d627965_gnutls_bye_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d6465696e6974_gnutls_deinit_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R676e75746c732d626f6f74_gnutls_boot_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d6572726f722d737472696e67_gnutls_error_string_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d6572726f722d666174616c70_gnutls_error_fatalp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d6572726f7270_gnutls_errorp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R676e75746c732d6173796e6368726f6e6f75732d706172616d6574657273_gnutls_asynchronous_parameters_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676e75746c732d6765742d696e69747374616765_gnutls_get_initstage_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d656e752d6261722d6d656e752d61742d782d79_menu_bar_menu_at_x_y_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d706f7075702d6469616c6f67_x_popup_dialog_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d706f7075702d6d656e75_x_popup_menu_0;
const struct Lisp_X * (*) () R7a6c69622d617661696c61626c652d70_zlib_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7a6c69622d6465636f6d70726573732d726567696f6e_zlib_decompress_region_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c636d732d74656d702d3e77686974652d706f696e74_lcms_temp_white_point_0;
const struct Lisp_X * (*) () R6c636d73322d617661696c61626c652d70_lcms2_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d63616d30322d756373_lcms_cam02_ucs_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d6a61622d3e6a6368_lcms_jab_jch_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d6a63682d3e6a6162_lcms_jch_jab_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d6a63682d3e78797a_lcms_jch_xyz_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d78797a2d3e6a6368_lcms_xyz_jch_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c636d732d6369652d646532303030_lcms_cie_de2000_0;
const struct Lisp_X * (*) () R6c6962786d6c2d617661696c61626c652d70_libxml_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6962786d6c2d70617273652d786d6c2d726567696f6e_libxml_parse_xml_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6962786d6c2d70617273652d68746d6c2d726567696f6e_libxml_parse_html_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d6765742d6c6f63616c2d73656c656374696f6e_x_get_local_selection_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d72656769737465722d646e642d61746f6d_x_register_dnd_atom_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d73656e642d636c69656e742d6d657373616765_x_send_client_message_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d6765742d61746f6d2d6e616d65_x_get_atom_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d73656c656374696f6e2d6578697374732d70_x_selection_exists_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d73656c656374696f6e2d6f776e65722d70_x_selection_owner_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6469736f776e2d73656c656374696f6e2d696e7465726e616c_x_disown_selection_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6f776e2d73656c656374696f6e2d696e7465726e616c_x_own_selection_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6765742d73656c656374696f6e2d696e7465726e616c_x_get_selection_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R68616e646c652d736176652d73657373696f6e_handle_save_session_0;
const struct Lisp_X * (*) () R746f6f6c2d6261722d6765742d73797374656d2d7374796c65_tool_bar_get_system_style_0;
const struct Lisp_X * (*) () R666f6e742d6765742d73797374656d2d6e6f726d616c2d666f6e74_font_get_system_normal_font_0;
const struct Lisp_X * (*) () R666f6e742d6765742d73797374656d2d666f6e74_font_get_system_font_0;
const struct Lisp_X * (*) () R666f6e747365742d6c697374_fontset_list_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f6e747365742d666f6e74_fontset_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e747365742d696e666f_fontset_info_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d666f6e747365742d666f6e74_set_fontset_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e65772d666f6e74736574_new_fontset_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R71756572792d666f6e74736574_query_fontset_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6d656e752d6261722d6f70656e2d696e7465726e616c_x_menu_bar_open_internal_0;
const struct Lisp_X * (*) () R6d656e752d6f722d706f7075702d6163746976652d70_menu_or_popup_active_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d67746b2d6465627567_x_gtk_debug_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d7072696e742d6672616d65732d6469616c6f67_x_print_frames_dialog_0;
const struct Lisp_X * (*) () R782d6765742d706167652d7365747570_x_get_page_setup_0;
const struct Lisp_X * (*) () R782d706167652d73657475702d6469616c6f67_x_page_setup_dialog_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d6578706f72742d6672616d6573_x_export_frames_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d696e7465726e616c2d666f6375732d696e7075742d636f6e74657874_x_internal_focus_input_context_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d73656c6563742d666f6e74_x_select_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d66696c652d6469616c6f67_x_file_dialog_0;
const struct Lisp_X * (*) () R782d757365732d6f6c642d67746b2d6469616c6f67_x_uses_old_gtk_dialog_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6765742d6d6f6469666965722d6d61736b73_x_get_modifier_masks_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d7472616e736c6174652d636f6f7264696e61746573_x_translate_coordinates_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d646973706c61792d7365742d6c6173742d757365722d74696d65_x_display_set_last_user_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d626567696e2d64726167_x_begin_drag_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646f75626c652d62756666657265642d70_x_double_buffered_p_0;
const struct Lisp_X * (*) () R782d686964652d746970_x_hide_tip_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d73686f772d746970_x_show_tip_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6261636b73706163652d64656c6574652d6b6579732d70_x_backspace_delete_keys_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d73796e6368726f6e697a65_x_synchronize_0;
const struct Lisp_X * (*) () R782d646973706c61792d6c697374_x_display_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d636c6f73652d636f6e6e656374696f6e_x_close_connection_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6f70656e2d636f6e6e656374696f6e_x_open_connection_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6372656174652d6672616d65_x_create_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d776d2d7365742d73697a652d68696e74_x_wm_set_size_hint_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d7365742d6d6f7573652d6162736f6c7574652d706978656c2d706f736974696f6e_x_set_mouse_absolute_pixel_position_0;
const struct Lisp_X * (*) () R782d6d6f7573652d6162736f6c7574652d706978656c2d706f736974696f6e_x_mouse_absolute_pixel_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6672616d652d7265737461636b_x_frame_restack_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6672616d652d6c6973742d7a2d6f72646572_x_frame_list_z_order_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d6672616d652d6564676573_x_frame_edges_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d6672616d652d67656f6d65747279_x_frame_geometry_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d6d6f6e69746f722d617474726962757465732d6c697374_x_display_monitor_attributes_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d736176652d756e646572_x_display_save_under_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d6261636b696e672d73746f7265_x_display_backing_store_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d76697375616c2d636c617373_x_display_visual_class_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d636f6c6f722d63656c6c73_x_display_color_cells_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d706c616e6573_x_display_planes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d73637265656e73_x_display_screens_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d6d6d2d686569676874_x_display_mm_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d6d6d2d7769647468_x_display_mm_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d706978656c2d686569676874_x_display_pixel_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d706978656c2d7769647468_x_display_pixel_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d7365727665722d696e7075742d657874656e73696f6e2d76657273696f6e_x_server_input_extension_version_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d7365727665722d76657273696f6e_x_server_version_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d7365727665722d76656e646f72_x_server_vendor_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d7365727665722d6d61782d726571756573742d73697a65_x_server_max_request_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R78772d636f6c6f722d76616c756573_xw_color_values_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R78772d636f6c6f722d646566696e65642d70_xw_color_defined_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d646973706c61792d677261797363616c652d70_x_display_grayscale_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R78772d646973706c61792d636f6c6f722d70_xw_display_color_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d77696e646f772d70726f70657274792d61747472696275746573_x_window_property_attributes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d77696e646f772d70726f7065727479_x_window_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d64656c6574652d77696e646f772d70726f7065727479_x_delete_window_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6368616e67652d77696e646f772d70726f7065727479_x_change_window_property_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696d6167652d7472616e73666f726d732d70_image_transforms_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696d61676570_imagep_0;
const struct Lisp_X * (*) () R696d6167652d63616368652d73697a65_image_cache_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696d6167652d6d65746164617461_image_metadata_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696d6167652d6d61736b2d70_image_mask_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696d6167652d73697a65_image_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696d6167652d666c757368_image_flush_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636c6561722d696d6167652d6361636865_clear_image_cache_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e69742d696d6167652d6c696272617279_init_image_library_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6672696e67652d6269746d61702d66616365_set_fringe_bitmap_face_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6672696e67652d6269746d6170732d61742d706f73_fringe_bitmaps_at_pos_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566696e652d6672696e67652d6269746d6170_define_fringe_bitmap_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64657374726f792d6672696e67652d6269746d6170_destroy_fringe_bitmap_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d696e666f_font_info_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d666f6e742d6361636865_frame_font_cache_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f6e742d6174_font_at_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d6d617463682d70_font_match_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f6e742d6861732d636861722d70_font_has_char_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f6e742d6765742d676c79706873_font_get_glyphs_0;
const struct Lisp_X * (*) (struct Lisp_X *) R71756572792d666f6e74_query_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636c6f73652d666f6e74_close_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6f70656e2d666f6e74_open_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d636861722d666f6e74_internal_char_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d766172696174696f6e2d676c79706873_font_variation_glyphs_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d73686170652d67737472696e67_font_shape_gstring_0;
const struct Lisp_X * (*) () R636c6561722d666f6e742d6361636865_clear_font_cache_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d786c66642d6e616d65_font_xlfd_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696e642d666f6e74_find_font_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f6e742d66616d696c792d6c697374_font_family_list_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6973742d666f6e7473_list_fonts_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f6e742d707574_font_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d666163652d61747472696275746573_font_face_attributes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e742d676574_font_get_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R666f6e742d73706563_font_spec_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f6e7470_fontp_0;
const struct Lisp_X * (*) () R73716c6974652d617661696c61626c652d70_sqlite_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c69746570_sqlitep_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d66696e616c697a65_sqlite_finalize_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d6d6f72652d70_sqlite_more_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d636f6c756d6e73_sqlite_columns_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d6e657874_sqlite_next_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73716c6974652d6c6f61642d657874656e73696f6e_sqlite_load_extension_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73716c6974652d707261676d61_sqlite_pragma_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d726f6c6c6261636b_sqlite_rollback_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d636f6d6d6974_sqlite_commit_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d7472616e73616374696f6e_sqlite_transaction_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R73716c6974652d73656c656374_sqlite_select_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R73716c6974652d65786563757465_sqlite_execute_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d636c6f7365_sqlite_close_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73716c6974652d6f70656e_sqlite_open_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626964692d7265736f6c7665642d6c6576656c73_bidi_resolved_levels_0;
const struct Lisp_X * (*) () R6c6f6e672d6c696e652d6f7074696d697a6174696f6e732d70_long_line_optimizations_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6765742d646973706c61792d70726f7065727479_get_display_property_0;
const struct Lisp_X * (*) () R646973706c61792d2d6c696e652d69732d636f6e74696e7565642d70_display__line_is_continued_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626964692d66696e642d6f76657272696464656e2d646972656374696f6e616c697479_bidi_find_overridden_directionality_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d6f76652d706f696e742d76697375616c6c79_move_point_visually_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6275666665722d746578742d706978656c2d73697a65_buffer_text_pixel_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77696e646f772d746578742d706978656c2d73697a65_window_text_pixel_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R63757272656e742d626964692d7061726167726170682d646972656374696f6e_current_bidi_paragraph_direction_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e76697369626c652d70_invisible_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f726d61742d6d6f64652d6c696e65_format_mode_line_0;
const struct Lisp_X * (*) () R6c696e652d706978656c2d686569676874_line_pixel_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6f6f6b75702d696d6167652d6d6170_lookup_image_map_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R746f6f6c2d6261722d686569676874_tool_bar_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7461622d6261722d686569676874_tab_bar_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6275666665722d7265646973706c6179_set_buffer_redisplay_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d706172616d65746572_set_window_parameter_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d706172616d65746572_window_parameter_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706172616d6574657273_window_parameters_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6e6578742d62756666657273_set_window_next_buffers_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6e6578742d62756666657273_window_next_buffers_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d707265762d62756666657273_set_window_prev_buffers_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d707265762d62756666657273_window_prev_buffers_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77696e646f772d6c6973742d31_window_list_1_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77696e646f772d6c697374_window_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d62756d702d7573652d74696d65_window_bump_use_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d636f6e66696775726174696f6e2d657175616c2d70_window_configuration_equal_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d767363726f6c6c_set_window_vscroll_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d767363726f6c6c_window_vscroll_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7363726f6c6c2d62617273_window_scroll_bars_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d7363726f6c6c2d62617273_set_window_scroll_bars_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6672696e676573_window_fringes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6672696e676573_set_window_fringes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6d617267696e73_window_margins_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6d617267696e73_set_window_margins_0;
const struct Lisp_X * (*) (struct Lisp_X *) R63757272656e742d77696e646f772d636f6e66696775726174696f6e_current_window_configuration_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d636f6e66696775726174696f6e_set_window_configuration_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d636f6e66696775726174696f6e2d6672616d65_window_configuration_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d636f6e66696775726174696f6e2d70_window_configuration_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d6f76652d746f2d77696e646f772d6c696e65_move_to_window_line_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d746578742d686569676874_window_text_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d746578742d7769647468_window_text_width_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726563656e746572_recenter_0;
const struct Lisp_X * (*) () R6d696e696275666665722d73656c65637465642d77696e646f77_minibuffer_selected_window_0;
const struct Lisp_X * (*) () R6f746865722d77696e646f772d666f722d7363726f6c6c696e67_other_window_for_scrolling_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7363726f6c6c2d7269676874_scroll_right_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7363726f6c6c2d6c656674_scroll_left_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7363726f6c6c2d646f776e_scroll_down_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7363726f6c6c2d7570_scroll_up_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R73706c69742d77696e646f772d696e7465726e616c_split_window_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f7263652d77696e646f772d757064617465_force_window_update_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73656c6563742d77696e646f77_select_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72756e2d77696e646f772d7363726f6c6c2d66756e6374696f6e73_run_window_scroll_functions_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72756e2d77696e646f772d636f6e66696775726174696f6e2d6368616e67652d686f6f6b_run_window_configuration_change_hook_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d627566666572_set_window_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726573697a652d6d696e692d77696e646f772d696e7465726e616c_resize_mini_window_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d77696e646f772d696e7465726e616c_delete_window_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d6f746865722d77696e646f77732d696e7465726e616c_delete_other_windows_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6765742d6275666665722d77696e646f77_get_buffer_window_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726576696f75732d77696e646f77_previous_window_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e6578742d77696e646f77_next_window_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d646973706c61792d7461626c65_set_window_display_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d646973706c61792d7461626c65_window_display_table_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6465646963617465642d70_set_window_dedicated_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77696e646f772d6c696e65732d706978656c2d64696d656e73696f6e73_window_lines_pixel_dimensions_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6465646963617465642d70_window_dedicated_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d7374617274_set_window_start_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d706f696e74_set_window_point_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d656e64_window_end_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7374617274_window_start_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d706f696e74_window_old_point_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706f696e74_window_point_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77696e646f772d6174_window_at_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6f7264696e617465732d696e2d77696e646f772d70_coordinates_in_window_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7363726f6c6c2d6261722d686569676874_window_scroll_bar_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7363726f6c6c2d6261722d7769647468_window_scroll_bar_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d626f74746f6d2d646976696465722d7769647468_window_bottom_divider_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d72696768742d646976696465722d7769647468_window_right_divider_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7461622d6c696e652d686569676874_window_tab_line_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6865616465722d6c696e652d686569676874_window_header_line_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6d6f64652d6c696e652d686569676874_window_mode_line_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d687363726f6c6c_set_window_hscroll_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d687363726f6c6c_window_hscroll_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d626f64792d7769647468_window_body_width_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d626f64792d686569676874_window_body_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d726573697a652d6170706c792d746f74616c_window_resize_apply_total_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d726573697a652d6170706c79_window_resize_apply_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6e65772d6e6f726d616c_set_window_new_normal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6e65772d746f74616c_set_window_new_total_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d6e65772d706978656c_set_window_new_pixel_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d746f702d6c696e65_window_top_line_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6c6566742d636f6c756d6e_window_left_column_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706978656c2d746f70_window_pixel_top_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706978656c2d6c656674_window_pixel_left_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6e65772d6e6f726d616c_window_new_normal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6e65772d746f74616c_window_new_total_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6e65772d706978656c_window_new_pixel_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d6e6f726d616c2d73697a65_window_normal_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d746f74616c2d686569676874_window_total_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d746f74616c2d7769647468_window_total_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d626f64792d706978656c2d686569676874_window_old_body_pixel_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d626f64792d706978656c2d7769647468_window_old_body_pixel_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d706978656c2d686569676874_window_old_pixel_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d706978656c2d7769647468_window_old_pixel_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706978656c2d686569676874_window_pixel_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706978656c2d7769647468_window_pixel_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d7573652d74696d65_window_use_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d77696e646f772d636f6d62696e6174696f6e2d6c696d6974_set_window_combination_limit_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d636f6d62696e6174696f6e2d6c696d6974_window_combination_limit_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d707265762d7369626c696e67_window_prev_sibling_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6e6578742d7369626c696e67_window_next_sibling_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6c6566742d6368696c64_window_left_child_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d746f702d6368696c64_window_top_child_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d706172656e74_window_parent_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6f6c642d627566666572_window_old_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d627566666572_window_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77696e646f772d6c696e652d686569676874_window_line_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706f732d76697369626c652d696e2d77696e646f772d70_pos_visible_in_window_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d73656c65637465642d77696e646f77_set_frame_selected_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6f6c642d73656c65637465642d77696e646f77_frame_old_selected_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d73656c65637465642d77696e646f77_frame_selected_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d66697273742d77696e646f77_frame_first_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d726f6f742d77696e646f77_frame_root_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6672616d65_window_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6c6976652d70_window_live_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d76616c69642d70_window_valid_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f7770_windowp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d6d696e696275666665722d70_window_minibuffer_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d696e696275666665722d77696e646f77_minibuffer_window_0;
const struct Lisp_X * (*) () R6f6c642d73656c65637465642d77696e646f77_old_selected_window_0;
const struct Lisp_X * (*) () R73656c65637465642d77696e646f77_selected_window_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6d706f736974696f6e2d736f72742d72756c6573_composition_sort_rules_0;
const struct Lisp_X * (*) () R636c6561722d636f6d706f736974696f6e2d6361636865_clear_composition_cache_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706f736974696f6e2d6765742d67737472696e67_composition_get_gstring_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R66696e642d636f6d706f736974696f6e2d696e7465726e616c_find_composition_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706f73652d737472696e672d696e7465726e616c_compose_string_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706f73652d726567696f6e2d696e7465726e616c_compose_region_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R746578742d70726f70657274792d6e6f742d616c6c_text_property_not_all_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R746578742d70726f70657274792d616e79_text_property_any_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72656d6f76652d6c6973742d6f662d746578742d70726f70657274696573_remove_list_of_text_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72656d6f76652d746578742d70726f70657274696573_remove_text_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6164642d666163652d746578742d70726f7065727479_add_face_text_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d746578742d70726f70657274696573_set_text_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7075742d746578742d70726f7065727479_put_text_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6164642d746578742d70726f70657274696573_add_text_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726576696f75732d73696e676c652d70726f70657274792d6368616e6765_previous_single_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726576696f75732d70726f70657274792d6368616e6765_previous_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e6578742d73696e676c652d70726f70657274792d6368616e6765_next_single_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e6578742d70726f70657274792d6368616e6765_next_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726576696f75732d73696e676c652d636861722d70726f70657274792d6368616e6765_previous_single_char_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e6578742d73696e676c652d636861722d70726f70657274792d6368616e6765_next_single_char_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R70726576696f75732d636861722d70726f70657274792d6368616e6765_previous_char_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e6578742d636861722d70726f70657274792d6368616e6765_next_char_property_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6765742d636861722d70726f70657274792d616e642d6f7665726c6179_get_char_property_and_overlay_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6765742d636861722d70726f7065727479_get_char_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6765742d746578742d70726f7065727479_get_text_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R746578742d70726f706572746965732d6174_text_properties_at_0;
const struct Lisp_X * (*) (struct Lisp_X *) R706c61792d736f756e642d696e7465726e616c_play_sound_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d6f64756c652d6c6f6164_module_load_0;
const struct Lisp_X * (*) () R756e646f2d626f756e64617279_undo_boundary_0;
const struct Lisp_X * (*) () R67706d2d6d6f7573652d73746f70_gpm_mouse_stop_0;
const struct Lisp_X * (*) () R67706d2d6d6f7573652d7374617274_gpm_mouse_start_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d2d6f75747075742d6275666665722d73697a65_tty__output_buffer_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7474792d2d7365742d6f75747075742d6275666665722d73697a65_tty__set_output_buffer_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726573756d652d747479_resume_tty_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73757370656e642d747479_suspend_tty_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d746f702d6672616d65_tty_top_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e74726f6c6c696e672d7474792d70_controlling_tty_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d74797065_tty_type_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d6e6f2d756e6465726c696e65_tty_no_underline_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d646973706c61792d636f6c6f722d63656c6c73_tty_display_color_cells_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d646973706c61792d636f6c6f722d70_tty_display_color_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d7465726d696e616c2d706172616d65746572_set_terminal_parameter_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7465726d696e616c2d706172616d65746572_terminal_parameter_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7465726d696e616c2d706172616d6574657273_terminal_parameters_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7465726d696e616c2d6e616d65_terminal_name_0;
const struct Lisp_X * (*) () R7465726d696e616c2d6c697374_terminal_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7465726d696e616c2d6c6976652d70_terminal_live_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d7465726d696e616c_frame_terminal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d7465726d696e616c_delete_terminal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70617273652d7061727469616c2d73657870_parse_partial_sexp_0;
const struct Lisp_X * (*) () R6261636b776172642d7072656669782d6368617273_backward_prefix_chars_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7363616e2d7365787073_scan_sexps_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7363616e2d6c69737473_scan_lists_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f72776172642d636f6d6d656e74_forward_comment_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736b69702d73796e7461782d6261636b77617264_skip_syntax_backward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736b69702d73796e7461782d666f7277617264_skip_syntax_forward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736b69702d63686172732d6261636b77617264_skip_chars_backward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736b69702d63686172732d666f7277617264_skip_chars_forward_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f72776172642d776f7264_forward_word_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d64657363726962652d73796e7461782d76616c7565_internal_describe_syntax_value_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d6f646966792d73796e7461782d656e747279_modify_syntax_entry_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d746f2d73796e746178_string_to_syntax_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61746368696e672d706172656e_matching_paren_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796e7461782d636c6173732d746f2d63686172_syntax_class_to_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d73796e746178_char_syntax_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d73796e7461782d7461626c65_set_syntax_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d73796e7461782d7461626c65_copy_syntax_table_0;
const struct Lisp_X * (*) () R7374616e646172642d73796e7461782d7461626c65_standard_syntax_table_0;
const struct Lisp_X * (*) () R73796e7461782d7461626c65_syntax_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796e7461782d7461626c652d70_syntax_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7265636f6e73696465722d6672616d652d666f6e7473_reconsider_frame_fonts_0;
const struct Lisp_X * (*) (struct Lisp_X *) R782d70617273652d67656f6d65747279_x_parse_geometry_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6765742d7265736f75726365_x_get_resource_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d7363616c652d666163746f72_frame_scale_factor_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d77696e646f772d73746174652d6368616e6765_set_frame_window_state_change_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d77696e646f772d73746174652d6368616e6765_frame_window_state_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6672616d652d2d7365742d7761732d696e76697369626c65_frame__set_was_invisible_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d706f696e7465722d76697369626c652d70_frame_pointer_visible_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d706f736974696f6e_set_frame_position_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d706f736974696f6e_frame_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d73697a65_set_frame_size_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d7769647468_set_frame_width_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6672616d652d686569676874_set_frame_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R746f6f6c2d6261722d706978656c2d7769647468_tool_bar_pixel_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d626f74746f6d2d646976696465722d7769647468_frame_bottom_divider_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d72696768742d646976696465722d7769647468_frame_right_divider_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d696e7465726e616c2d626f726465722d7769647468_frame_internal_border_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6368696c642d6672616d652d626f726465722d7769647468_frame_child_frame_border_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6672696e67652d7769647468_frame_fringe_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d7363726f6c6c2d6261722d686569676874_frame_scroll_bar_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d7363726f6c6c2d6261722d7769647468_frame_scroll_bar_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746578742d686569676874_frame_text_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746578742d7769647468_frame_text_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746f74616c2d6c696e6573_frame_total_lines_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746f74616c2d636f6c73_frame_total_cols_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746578742d6c696e6573_frame_text_lines_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d746578742d636f6c73_frame_text_cols_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6e61746976652d7769647468_frame_native_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6e61746976652d686569676874_frame_native_height_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d636861722d7769647468_frame_char_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d636861722d686569676874_frame_char_height_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d6f646966792d6672616d652d706172616d6574657273_modify_frame_parameters_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6672616d652d706172616d65746572_frame_parameter_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d706172616d6574657273_frame_parameters_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d666f637573_frame_focus_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656469726563742d6672616d652d666f637573_redirect_frame_focus_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6672616d652d61667465722d6d616b652d6672616d65_frame_after_make_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d666f6375732d6672616d65_x_focus_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f7765722d6672616d65_lower_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72616973652d6672616d65_raise_frame_0;
const struct Lisp_X * (*) () R76697369626c652d6672616d652d6c697374_visible_frame_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d76697369626c652d70_frame_visible_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R69636f6e6966792d6672616d65_iconify_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d6672616d652d696e76697369626c65_make_frame_invisible_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d6672616d652d76697369626c65_make_frame_visible_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6d6f7573652d706978656c2d706f736974696f6e_set_mouse_pixel_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6d6f7573652d706f736974696f6e_set_mouse_position_0;
const struct Lisp_X * (*) () R6d6f7573652d706978656c2d706f736974696f6e_mouse_pixel_position_0;
const struct Lisp_X * (*) () R6d6f7573652d706f736974696f6e_mouse_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d6672616d65_delete_frame_0;
const struct Lisp_X * (*) () R6c6173742d6e6f6e6d696e696275666665722d6672616d65_last_nonminibuffer_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R70726576696f75732d6672616d65_previous_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e6578742d6672616d65_next_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6672616d652d616e636573746f722d70_frame_ancestor_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d706172656e74_frame_parent_0;
const struct Lisp_X * (*) () R6672616d652d6c697374_frame_list_0;
const struct Lisp_X * (*) () R6f6c642d73656c65637465642d6672616d65_old_selected_frame_0;
const struct Lisp_X * (*) () R73656c65637465642d6672616d65_selected_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R68616e646c652d7377697463682d6672616d65_handle_switch_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73656c6563742d6672616d65_select_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d7465726d696e616c2d6672616d65_make_terminal_frame_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6672616d652d77696e646f77732d6d696e2d73697a65_frame_windows_min_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R77696e646f772d73797374656d_window_system_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6c6976652d70_frame_live_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d6570_framep_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d74696d652d7a6f6e652d72756c65_set_time_zone_rule_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63757272656e742d74696d652d7a6f6e65_current_time_zone_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63757272656e742d74696d652d737472696e67_current_time_string_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R656e636f64652d74696d65_encode_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465636f64652d74696d65_decode_time_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666c6f61742d74696d65_float_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666f726d61742d74696d652d737472696e67_format_time_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74696d652d657175616c2d70_time_equal_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74696d652d6c6573732d70_time_less_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74696d652d7375627472616374_time_subtract_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74696d652d616464_time_add_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74696d652d636f6e76657274_time_convert_0;
const struct Lisp_X * (*) () R63757272656e742d6370752d74696d65_current_cpu_time_0;
const struct Lisp_X * (*) () R63757272656e742d74696d65_current_time_0;
const struct Lisp_X * (*) () R6765742d696e7465726e616c2d72756e2d74696d65_get_internal_run_time_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e65776c696e652d63616368652d636865636b_newline_cache_check_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7265676578702d71756f7465_regexp_quote_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d617463682d646174612d2d7472616e736c617465_match_data__translate_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6d617463682d64617461_set_match_data_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d617463682d64617461_match_data_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d617463682d656e64_match_end_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d617463682d626567696e6e696e67_match_beginning_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7265706c6163652d6d61746368_replace_match_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706f7369782d7365617263682d6261636b77617264_posix_search_backward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706f7369782d7365617263682d666f7277617264_posix_search_forward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72652d7365617263682d6261636b77617264_re_search_backward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72652d7365617263682d666f7277617264_re_search_forward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365617263682d6261636b77617264_search_backward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365617263682d666f7277617264_search_forward_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706f7369782d737472696e672d6d61746368_posix_string_match_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d6d61746368_string_match_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R706f7369782d6c6f6f6b696e672d6174_posix_looking_at_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c6f6f6b696e672d6174_looking_at_0;
const struct Lisp_X * (*) () R7369676e616c2d6e616d6573_signal_names_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e756d2d70726f636573736f7273_num_processors_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d61747472696275746573_process_attributes_0;
const struct Lisp_X * (*) () R6c6973742d73797374656d2d70726f636573736573_list_system_processes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d696e68657269742d636f64696e672d73797374656d2d666c6167_process_inherit_coding_system_flag_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d6275666665722d70726f63657373_get_buffer_process_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d636f64696e672d73797374656d_process_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d636f64696e672d73797374656d_set_process_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d64656661756c742d70726f636573732d66696c746572_internal_default_process_filter_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d64656661756c742d70726f636573732d73656e74696e656c_internal_default_process_sentinel_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d74797065_process_type_0;
const struct Lisp_X * (*) () R77616974696e672d666f722d757365722d696e7075742d70_waiting_for_user_input_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7369676e616c2d70726f63657373_signal_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d64656661756c742d7369676e616c2d70726f63657373_internal_default_signal_process_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d73656e642d656f66_process_send_eof_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d72756e6e696e672d6368696c642d70_process_running_child_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6e74696e75652d70726f63657373_continue_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73746f702d70726f63657373_stop_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R717569742d70726f63657373_quit_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6b696c6c2d70726f63657373_kill_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e746572727570742d70726f63657373_interrupt_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d64656661756c742d696e746572727570742d70726f63657373_internal_default_interrupt_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R70726f636573732d73656e642d737472696e67_process_send_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726f636573732d73656e642d726567696f6e_process_send_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6163636570742d70726f636573732d6f7574707574_accept_process_output_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d646174616772616d2d61646472657373_set_process_datagram_address_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d646174616772616d2d61646472657373_process_datagram_address_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e6574776f726b2d696e746572666163652d696e666f_network_interface_info_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e6574776f726b2d696e746572666163652d6c697374_network_interface_list_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e6574776f726b2d6c6f6f6b75702d616464726573732d696e666f_network_lookup_address_info_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666f726d61742d6e6574776f726b2d61646472657373_format_network_address_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d6e6574776f726b2d70726f63657373_make_network_process_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6e6574776f726b2d70726f636573732d6f7074696f6e_set_network_process_option_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d73657269616c2d70726f63657373_make_serial_process_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R73657269616c2d70726f636573732d636f6e666967757265_serial_process_configure_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d706970652d70726f63657373_make_pipe_process_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d70726f63657373_make_process_0;
const struct Lisp_X * (*) () R70726f636573732d6c697374_process_list_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d706c697374_set_process_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d706c697374_process_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70726f636573732d636f6e74616374_process_contact_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d71756572792d6f6e2d657869742d666c6167_process_query_on_exit_flag_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d71756572792d6f6e2d657869742d666c6167_set_process_query_on_exit_flag_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d696e68657269742d636f64696e672d73797374656d2d666c6167_set_process_inherit_coding_system_flag_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d77696e646f772d73697a65_set_process_window_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d746872656164_process_thread_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d746872656164_set_process_thread_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d73656e74696e656c_process_sentinel_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d73656e74696e656c_set_process_sentinel_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d66696c746572_process_filter_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d66696c746572_set_process_filter_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d6d61726b_process_mark_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d627566666572_process_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d70726f636573732d627566666572_set_process_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d636f6d6d616e64_process_command_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R70726f636573732d7474792d6e616d65_process_tty_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d6e616d65_process_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d6964_process_id_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d657869742d737461747573_process_exit_status_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f636573732d737461747573_process_status_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d70726f63657373_delete_process_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d70726f63657373_get_process_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f6365737370_processp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706c6574696e672d72656164_completing_read_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6173736f632d737472696e67_assoc_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R746573742d636f6d706c6574696f6e_test_completion_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R616c6c2d636f6d706c6574696f6e73_all_completions_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7472792d636f6d706c6574696f6e_try_completion_0;
const struct Lisp_X * (*) () R6d696e696275666665722d636f6e74656e74732d6e6f2d70726f70657274696573_minibuffer_contents_no_properties_0;
const struct Lisp_X * (*) () R6d696e696275666665722d636f6e74656e7473_minibuffer_contents_0;
const struct Lisp_X * (*) () R6d696e696275666665722d70726f6d70742d656e64_minibuffer_prompt_end_0;
const struct Lisp_X * (*) () R61626f72742d6d696e6962756666657273_abort_minibuffers_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d696e696275666665722d696e6e65726d6f73742d636f6d6d616e642d6c6f6f702d70_minibuffer_innermost_command_loop_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e6e65726d6f73742d6d696e696275666665722d70_innermost_minibuffer_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d696e6962756666657270_minibufferp_0;
const struct Lisp_X * (*) () R6d696e696275666665722d70726f6d7074_minibuffer_prompt_0;
const struct Lisp_X * (*) () R6d696e696275666665722d6465707468_minibuffer_depth_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d627566666572_read_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d636f6d706c6574652d627566666572_internal_complete_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726561642d7661726961626c65_read_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726561642d636f6d6d616e64_read_command_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d737472696e67_read_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d66726f6d2d6d696e69627566666572_read_from_minibuffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d6d696e696275666665722d77696e646f77_set_minibuffer_window_0;
const struct Lisp_X * (*) () R6163746976652d6d696e696275666665722d77696e646f77_active_minibuffer_window_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6d61726b65722d696e73657274696f6e2d74797065_set_marker_insertion_type_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61726b65722d696e73657274696f6e2d74797065_marker_insertion_type_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f70792d6d61726b6572_copy_marker_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d6d61726b6572_set_marker_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61726b65722d627566666572_marker_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61726b65722d706f736974696f6e_marker_position_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73746f72652d6b62642d6d6163726f2d6576656e74_store_kbd_macro_event_0;
const struct Lisp_X * (*) () R63616e63656c2d6b62642d6d6163726f2d6576656e7473_cancel_kbd_macro_events_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R657865637574652d6b62642d6d6163726f_execute_kbd_macro_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63616c6c2d6c6173742d6b62642d6d6163726f_call_last_kbd_macro_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R656e642d6b62642d6d6163726f_end_kbd_macro_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73746172742d6b62642d6d6163726f_start_kbd_macro_0;
const struct Lisp_X * (*) () R636f6d62696e652d61667465722d6368616e67652d65786563757465_combine_after_change_execute_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d707574652d6d6f74696f6e_compute_motion_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R766572746963616c2d6d6f74696f6e_vertical_motion_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c696e652d6e756d6265722d646973706c61792d7769647468_line_number_display_width_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d6f76652d746f2d636f6c756d6e_move_to_column_0;
const struct Lisp_X * (*) () R63757272656e742d636f6c756d6e_current_column_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e64656e742d746f_indent_to_0;
const struct Lisp_X * (*) () R63757272656e742d696e64656e746174696f6e_current_indentation_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6c6f636b65642d70_file_locked_p_0;
const struct Lisp_X * (*) () R756e6c6f636b2d627566666572_unlock_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f636b2d627566666572_lock_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R756e6c6f636b2d66696c65_unlock_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f636b2d66696c65_lock_file_0;
const struct Lisp_X * (*) () R6461656d6f6e2d696e697469616c697a6564_daemon_initialized_0;
const struct Lisp_X * (*) () R6461656d6f6e70_daemonp_0;
const struct Lisp_X * (*) () R696e766f636174696f6e2d6469726563746f7279_invocation_directory_0;
const struct Lisp_X * (*) () R696e766f636174696f6e2d6e616d65_invocation_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6b696c6c2d656d616373_kill_emacs_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7472616e73706f73652d726567696f6e73_transpose_regions_0;
const struct Lisp_X * (*) (struct Lisp_X *) R736176652d7265737472696374696f6e_save_restriction_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e6172726f772d746f2d726567696f6e_narrow_to_region_0;
const struct Lisp_X * (*) () R776964656e_widen_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d616e642d657874726163742d726567696f6e_delete_and_extract_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d726567696f6e_delete_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7472616e736c6174652d726567696f6e2d696e7465726e616c_translate_region_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R73756273742d636861722d696e2d726567696f6e_subst_char_in_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7265706c6163652d6275666665722d636f6e74656e7473_replace_buffer_contents_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706172652d6275666665722d737562737472696e6773_compare_buffer_substrings_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e736572742d6275666665722d737562737472696e67_insert_buffer_substring_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R666f726d61742d6d657373616765_format_message_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R666f726d6174_format_0;
const struct Lisp_X * (*) () R63757272656e742d6d657373616765_current_message_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d6573736167652d6f722d626f78_message_or_box_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d6573736167652d626f78_message_box_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d657373616765_message_0;
const struct Lisp_X * (*) () R73797374656d2d6e616d65_system_name_0;
const struct Lisp_X * (*) () R656d6163732d706964_emacs_pid_0;
const struct Lisp_X * (*) (struct Lisp_X *) R757365722d66756c6c2d6e616d65_user_full_name_0;
const struct Lisp_X * (*) () R67726f75702d7265616c2d676964_group_real_gid_0;
const struct Lisp_X * (*) () R67726f75702d676964_group_gid_0;
const struct Lisp_X * (*) () R757365722d7265616c2d756964_user_real_uid_0;
const struct Lisp_X * (*) () R757365722d756964_user_uid_0;
const struct Lisp_X * (*) () R757365722d7265616c2d6c6f67696e2d6e616d65_user_real_login_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R67726f75702d6e616d65_group_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R757365722d6c6f67696e2d6e616d65_user_login_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6e67657474657874_ngettext_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e736572742d62797465_insert_byte_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e736572742d63686172_insert_char_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R696e736572742d6265666f72652d6d61726b6572732d616e642d696e6865726974_insert_before_markers_and_inherit_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R696e736572742d616e642d696e6865726974_insert_and_inherit_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R696e736572742d6265666f72652d6d61726b657273_insert_before_markers_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R696e73657274_insert_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d6265666f7265_char_before_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d6166746572_char_after_0;
const struct Lisp_X * (*) () R707265636564696e672d63686172_preceding_char_0;
const struct Lisp_X * (*) () R666f6c6c6f77696e672d63686172_following_char_0;
const struct Lisp_X * (*) () R656f6c70_eolp_0;
const struct Lisp_X * (*) () R626f6c70_bolp_0;
const struct Lisp_X * (*) () R656f6270_eobp_0;
const struct Lisp_X * (*) () R626f6270_bobp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R627974652d746f2d706f736974696f6e_byte_to_position_0;
const struct Lisp_X * (*) (struct Lisp_X *) R706f736974696f6e2d6279746573_position_bytes_0;
const struct Lisp_X * (*) () R6761702d73697a65_gap_size_0;
const struct Lisp_X * (*) () R6761702d706f736974696f6e_gap_position_0;
const struct Lisp_X * (*) () R706f696e742d6d61782d6d61726b6572_point_max_marker_0;
const struct Lisp_X * (*) () R706f696e742d6d696e2d6d61726b6572_point_min_marker_0;
const struct Lisp_X * (*) () R706f696e742d6d696e_point_min_0;
const struct Lisp_X * (*) () R706f696e742d6d6178_point_max_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d73697a65_buffer_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R736176652d63757272656e742d627566666572_save_current_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R736176652d657863757273696f6e_save_excursion_0;
const struct Lisp_X * (*) (struct Lisp_X *) R706f732d656f6c_pos_eol_0;
const struct Lisp_X * (*) (struct Lisp_X *) R706f732d626f6c_pos_bol_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c696e652d656e642d706f736974696f6e_line_end_position_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c696e652d626567696e6e696e672d706f736974696f6e_line_beginning_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6e73747261696e2d746f2d6669656c64_constrain_to_field_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d6669656c64_delete_field_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6669656c642d737472696e672d6e6f2d70726f70657274696573_field_string_no_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6669656c642d737472696e67_field_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6669656c642d656e64_field_end_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6669656c642d626567696e6e696e67_field_beginning_0;
const struct Lisp_X * (*) () R726567696f6e2d656e64_region_end_0;
const struct Lisp_X * (*) () R726567696f6e2d626567696e6e696e67_region_beginning_0;
const struct Lisp_X * (*) () R706f696e74_point_0;
const struct Lisp_X * (*) () R6d61726b2d6d61726b6572_mark_marker_0;
const struct Lisp_X * (*) () R706f696e742d6d61726b6572_point_marker_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6765742d706f732d70726f7065727479_get_pos_property_0;
const struct Lisp_X * (*) () R6275666665722d737472696e67_buffer_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6275666665722d737562737472696e672d6e6f2d70726f70657274696573_buffer_substring_no_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6275666665722d737562737472696e67_buffer_substring_0;
const struct Lisp_X * (*) (struct Lisp_X *) R627974652d746f2d737472696e67_byte_to_string_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d746f2d737472696e67_char_to_string_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d746f2d63686172_string_to_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676f746f2d63686172_goto_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636861722d657175616c_char_equal_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R70726f70657274697a65_propertize_0;
const struct Lisp_X * (*) () R746578742d71756f74696e672d7374796c65_text_quoting_style_0;
const struct Lisp_X * (*) (struct Lisp_X *) R536e6172662d646f63756d656e746174696f6e_Snarf_documentation_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646f63756d656e746174696f6e2d70726f7065727479_documentation_property_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646f63756d656e746174696f6e_documentation_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d73686f772d637572736f722d70_internal_show_cursor_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d73686f772d637572736f72_internal_show_cursor_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73656e642d737472696e672d746f2d7465726d696e616c_send_string_to_terminal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736c6565702d666f72_sleep_for_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7265646973706c6179_redisplay_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64696e67_ding_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f70656e2d7465726d736372697074_open_termscript_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d6f722d6275666665722d6368616e6765642d70_frame_or_buffer_changed_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646973706c61792d2d7570646174652d666f722d6d6f7573652d6d6f76656d656e74_display__update_for_mouse_movement_0;
const struct Lisp_X * (*) () R7265647261772d646973706c6179_redraw_display_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7265647261772d6672616d65_redraw_frame_0;
const struct Lisp_X * (*) () R73797374656d2d67726f757073_system_groups_0;
const struct Lisp_X * (*) () R73797374656d2d7573657273_system_users_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c652d617474726962757465732d6c65737370_file_attributes_lessp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c652d61747472696275746573_file_attributes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c652d6e616d652d616c6c2d636f6d706c6574696f6e73_file_name_all_completions_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R66696c652d6e616d652d636f6d706c6574696f6e_file_name_completion_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6469726563746f72792d66696c65732d616e642d61747472696275746573_directory_files_and_attributes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6469726563746f72792d66696c6573_directory_files_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73656c662d696e736572742d636f6d6d616e64_self_insert_command_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d63686172_delete_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R656e642d6f662d6c696e65_end_of_line_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626567696e6e696e672d6f662d6c696e65_beginning_of_line_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f72776172642d6c696e65_forward_line_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6261636b776172642d63686172_backward_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f72776172642d63686172_forward_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6765742d62797465_get_byte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d7265736f6c76652d6d6f64696669657273_char_resolve_modifiers_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R756e69627974652d737472696e67_unibyte_string_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R737472696e67_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d7769647468_string_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d7769647468_char_width_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d756c7469627974652d636861722d746f2d756e6962797465_multibyte_char_to_unibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R756e69627974652d636861722d746f2d6d756c746962797465_unibyte_char_to_multibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63686172616374657270_characterp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61782d63686172_max_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656769737465722d636f64652d636f6e76657273696f6e2d6d6170_register_code_conversion_map_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656769737465722d63636c2d70726f6772616d_register_ccl_program_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R63636c2d657865637574652d6f6e2d737472696e67_ccl_execute_on_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63636c2d65786563757465_ccl_execute_0;
const struct Lisp_X * (*) (struct Lisp_X *) R63636c2d70726f6772616d2d70_ccl_program_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d6f646966792d63617465676f72792d656e747279_modify_category_entry_0;
const struct Lisp_X * (*) (struct Lisp_X *) R63617465676f72792d7365742d6d6e656d6f6e696373_category_set_mnemonics_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d63617465676f72792d736574_char_category_set_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d63617465676f72792d7461626c65_set_category_table_0;
const struct Lisp_X * (*) () R6d616b652d63617465676f72792d7461626c65_make_category_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d63617465676f72792d7461626c65_copy_category_table_0;
const struct Lisp_X * (*) () R7374616e646172642d63617465676f72792d7461626c65_standard_category_table_0;
const struct Lisp_X * (*) () R63617465676f72792d7461626c65_category_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R63617465676f72792d7461626c652d70_category_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d756e757365642d63617465676f7279_get_unused_category_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63617465676f72792d646f63737472696e67_category_docstring_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566696e652d63617465676f7279_define_category_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d63617465676f72792d736574_make_category_set_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d7374616e646172642d636173652d7461626c65_set_standard_case_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d636173652d7461626c65_set_case_table_0;
const struct Lisp_X * (*) () R7374616e646172642d636173652d7461626c65_standard_case_table_0;
const struct Lisp_X * (*) () R63757272656e742d636173652d7461626c65_current_case_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636173652d7461626c652d70_case_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6361706974616c697a652d776f7264_capitalize_word_0;
const struct Lisp_X * (*) (struct Lisp_X *) R646f776e636173652d776f7264_downcase_word_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7570636173652d776f7264_upcase_word_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7570636173652d696e697469616c732d726567696f6e_upcase_initials_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6361706974616c697a652d726567696f6e_capitalize_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646f776e636173652d726567696f6e_downcase_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7570636173652d726567696f6e_upcase_region_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7570636173652d696e697469616c73_upcase_initials_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6361706974616c697a65_capitalize_0;
const struct Lisp_X * (*) (struct Lisp_X *) R646f776e63617365_downcase_0;
const struct Lisp_X * (*) (struct Lisp_X *) R757063617365_upcase_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7072656669782d6e756d657269632d76616c7565_prefix_numeric_value_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R66756e63616c6c2d696e7465726163746976656c79_funcall_interactively_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R63616c6c2d696e7465726163746976656c79_call_interactively_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e746572616374697665_interactive_0;
const struct Lisp_X * (*) () R696e7465726e616c2d737461636b2d7374617473_internal_stack_stats_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R627974652d636f6465_byte_code_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726573746f72652d6275666665722d6d6f6469666965642d70_restore_buffer_modified_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6f7665726c61792d707574_overlay_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6f7665726c61792d676574_overlay_get_0;
const struct Lisp_X * (*) () R6f7665726c61792d6c69737473_overlay_lists_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c61792d726563656e746572_overlay_recenter_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726576696f75732d6f7665726c61792d6368616e6765_previous_overlay_change_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e6578742d6f7665726c61792d6368616e6765_next_overlay_change_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6f7665726c6179732d696e_overlays_in_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6f7665726c6179732d6174_overlays_at_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c61792d70726f70657274696573_overlay_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c61792d627566666572_overlay_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c61792d656e64_overlay_end_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c61792d7374617274_overlay_start_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d6f76652d6f7665726c6179_move_overlay_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d616c6c2d6f7665726c617973_delete_all_overlays_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d6f7665726c6179_delete_overlay_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d6f7665726c6179_make_overlay_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f7665726c617970_overlayp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b696c6c2d616c6c2d6c6f63616c2d7661726961626c6573_kill_all_local_variables_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d6275666665722d6d756c746962797465_set_buffer_multibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d737761702d74657874_buffer_swap_text_0;
const struct Lisp_X * (*) () R65726173652d627566666572_erase_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626172662d69662d6275666665722d726561642d6f6e6c79_barf_if_buffer_read_only_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d627566666572_set_buffer_0;
const struct Lisp_X * (*) () R63757272656e742d627566666572_current_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d6275666665722d6d616a6f722d6d6f6465_set_buffer_major_mode_0;
const struct Lisp_X * (*) (struct Lisp_X *) R627572792d6275666665722d696e7465726e616c_bury_buffer_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b696c6c2d627566666572_kill_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d656e61626c652d756e646f_buffer_enable_undo_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6f746865722d627566666572_other_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656e616d652d627566666572_rename_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d63686172732d6d6f6469666965642d7469636b_buffer_chars_modified_tick_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d2d7365742d6275666665722d6d6f6469666965642d7469636b_internal__set_buffer_modified_tick_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6d6f6469666965642d7469636b_buffer_modified_tick_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d6275666665722d6d6f6469666965642d70_set_buffer_modified_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666f7263652d6d6f64652d6c696e652d757064617465_force_mode_line_update_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6d6f6469666965642d70_buffer_modified_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6c6f63616c2d7661726961626c6573_buffer_local_variables_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6275666665722d6c6f63616c2d76616c7565_buffer_local_value_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d626173652d627566666572_buffer_base_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d66696c652d6e616d65_buffer_file_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6e616d65_buffer_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R67656e65726174652d6e65772d6275666665722d6e616d65_generate_new_buffer_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d696e6469726563742d627566666572_make_indirect_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6765742d6275666665722d637265617465_get_buffer_create_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d66696c652d627566666572_get_file_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d627566666572_get_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6c697374_buffer_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6c6976652d70_buffer_live_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7472756e63617465_truncate_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726f756e64_round_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666c6f6f72_floor_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6365696c696e67_ceiling_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f6762_logb_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666c6f6174_float_0;
const struct Lisp_X * (*) (struct Lisp_X *) R616273_abs_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73717274_sqrt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c6f67_log_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R65787074_expt_0;
const struct Lisp_X * (*) (struct Lisp_X *) R657870_exp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R667472756e63617465_ftruncate_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66726f756e64_fround_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66666c6f6f72_ffloor_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666365696c696e67_fceiling_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c64657870_ldexp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672657870_frexp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f70797369676e_copysign_0;
const struct Lisp_X * (*) (struct Lisp_X *) R69736e616e_isnan_0;
const struct Lisp_X * (*) (struct Lisp_X *) R74616e_tan_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73696e_sin_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f73_cos_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6174616e_atan_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6173696e_asin_0;
const struct Lisp_X * (*) (struct Lisp_X *) R61636f73_acos_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66756e6374696f6e70_functionp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7370656369616c2d7661726961626c652d70_special_variable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6261636b74726163652d2d6c6f63616c73_backtrace__locals_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6261636b74726163652d6576616c_backtrace_eval_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6261636b74726163652d2d6672616d65732d66726f6d2d746872656164_backtrace__frames_from_thread_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6261636b74726163652d6672616d652d2d696e7465726e616c_backtrace_frame__internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d61706261636b7472616365_mapbacktrace_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6261636b74726163652d6465627567_backtrace_debug_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66657463682d62797465636f6465_fetch_bytecode_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R72756e2d686f6f6b2d77726170706564_run_hook_wrapped_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R72756e2d686f6f6b2d776974682d617267732d756e74696c2d6661696c757265_run_hook_with_args_until_failure_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R72756e2d686f6f6b2d776974682d617267732d756e74696c2d73756363657373_run_hook_with_args_until_success_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R72756e2d686f6f6b2d776974682d61726773_run_hook_with_args_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R72756e2d686f6f6b73_run_hooks_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66756e632d6172697479_func_arity_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R66756e63616c6c_funcall_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6170706c79_apply_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6576616c_eval_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6175746f6c6f61642d646f2d6c6f6164_autoload_do_load_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6175746f6c6f6164_autoload_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6d6d616e6470_commandp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7369676e616c_signal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e646974696f6e2d63617365_condition_case_0;
const struct Lisp_X * (*) (struct Lisp_X *) R756e77696e642d70726f74656374_unwind_protect_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7468726f77_throw_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6361746368_catch_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d6163726f657870616e64_macroexpand_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R66756e63616c6c2d776974682d64656c617965642d6d657373616765_funcall_with_delayed_message_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7768696c65_while_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c65742a_let_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6574_let_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d6d616b652d7661722d6e6f6e2d7370656369616c_internal_make_var_non_special_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d2d646566696e652d756e696e697469616c697a65642d7661726961626c65_internal__define_uninitialized_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566636f6e73742d31_defconst_1_0;
const struct Lisp_X * (*) (struct Lisp_X *) R646566636f6e7374_defconst_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566766172616c696173_defvaralias_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465667661722d31_defvar_1_0;
const struct Lisp_X * (*) (struct Lisp_X *) R646566766172_defvar_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d64656661756c742d746f706c6576656c2d76616c7565_set_default_toplevel_value_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656661756c742d746f706c6576656c2d76616c7565_default_toplevel_value_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66756e6374696f6e_function_0;
const struct Lisp_X * (*) (struct Lisp_X *) R71756f7465_quote_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73657471_setq_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f6731_prog1_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f676e_progn_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e64_cond_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6966_if_0;
const struct Lisp_X * (*) (struct Lisp_X *) R616e64_and_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f72_or_0;
const struct Lisp_X * (*) () R666c7573682d7374616e646172642d6f7574707574_flush_standard_output_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7072696e742d2d70726570726f63657373_print__preprocess_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656469726563742d646562756767696e672d6f7574707574_redirect_debugging_output_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R77726974652d63686172_write_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R746572707269_terpri_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7072696e74_print_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7072696e63_princ_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6572726f722d6d6573736167652d737472696e67_error_message_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7072696e312d746f2d737472696e67_prin1_to_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7072696e31_prin1_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6f636174652d66696c652d696e7465726e616c_locate_file_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d617061746f6d73_mapatoms_0;
const struct Lisp_X * (*) () R6765742d66696c652d63686172_get_file_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d6576656e74_read_event_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d636861722d6578636c7573697665_read_char_exclusive_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d63686172_read_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6576616c2d726567696f6e_eval_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6576616c2d627566666572_eval_buffer_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6f6164_load_0;
const struct Lisp_X * (*) () R6765742d6c6f61642d7375666669786573_get_load_suffixes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R756e696e7465726e_unintern_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e2d736f6674_intern_soft_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e_intern_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c726561642d2d737562737469747574652d6f626a6563742d696e2d73756274726565_lread__substitute_object_in_subtree_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d66726f6d2d737472696e67_read_from_string_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726561642d706f736974696f6e696e672d73796d626f6c73_read_positioning_symbols_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72656164_read_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7075742d756e69636f64652d70726f70657274792d696e7465726e616c_put_unicode_property_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6765742d756e69636f64652d70726f70657274792d696e7465726e616c_get_unicode_property_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R756e69636f64652d70726f70657274792d7461626c652d696e7465726e616c_unicode_property_table_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d61702d636861722d7461626c65_map_char_table_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6f7074696d697a652d636861722d7461626c65_optimize_char_table_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d636861722d7461626c652d72616e6765_set_char_table_range_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636861722d7461626c652d72616e6765_char_table_range_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d636861722d7461626c652d65787472612d736c6f74_set_char_table_extra_slot_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636861722d7461626c652d65787472612d736c6f74_char_table_extra_slot_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d636861722d7461626c652d706172656e74_set_char_table_parent_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d7461626c652d73756274797065_char_table_subtype_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d7461626c652d706172656e74_char_table_parent_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d636861722d7461626c65_make_char_table_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R63616c6c2d70726f636573732d726567696f6e_call_process_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R676574656e762d696e7465726e616c_getenv_internal_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R63616c6c2d70726f63657373_call_process_0;
const struct Lisp_X * (*) () R6e61746976652d636f6d702d617661696c61626c652d70_native_comp_available_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e61746976652d656c6973702d6c6f6164_native_elisp_load_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d702d2d6c6174652d72656769737465722d73756272_comp__late_register_subr_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d702d2d72656769737465722d73756272_comp__register_subr_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d702d2d72656769737465722d6c616d626461_comp__register_lambda_0;
const struct Lisp_X * (*) () R636f6d702d6c69626763636a69742d76657273696f6e_comp_libgccjit_version_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6d702d2d636f6d70696c652d637478742d746f2d66696c65_comp__compile_ctxt_to_file_0;
const struct Lisp_X * (*) () R636f6d702d2d72656c656173652d63747874_comp__release_ctxt_0;
const struct Lisp_X * (*) () R636f6d702d2d696e69742d63747874_comp__init_ctxt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6d702d2d696e7374616c6c2d7472616d706f6c696e65_comp__install_trampoline_0;
const struct Lisp_X * (*) () R636f6d702d6e61746976652d636f6d70696c65722d6f7074696f6e732d6566666563746976652d70_comp_native_compiler_options_effective_p_0;
const struct Lisp_X * (*) () R636f6d702d6e61746976652d6472697665722d6f7074696f6e732d6566666563746976652d70_comp_native_driver_options_effective_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6d702d656c2d746f2d656c6e2d66696c656e616d65_comp_el_to_eln_filename_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6d702d656c2d746f2d656c6e2d72656c2d66696c656e616d65_comp_el_to_eln_rel_filename_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6d702d2d737562722d7369676e6174757265_comp__subr_signature_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d7072696f726974792d6c697374_coding_system_priority_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d656f6c2d74797065_coding_system_eol_type_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d616c6961736573_coding_system_aliases_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d706c697374_coding_system_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d62617365_coding_system_base_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f64696e672d73797374656d2d707574_coding_system_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646566696e652d636f64696e672d73797374656d2d616c696173_define_coding_system_alias_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R646566696e652d636f64696e672d73797374656d2d696e7465726e616c_define_coding_system_internal_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R7365742d636f64696e672d73797374656d2d7072696f72697479_set_coding_system_priority_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R66696e642d6f7065726174696f6e2d636f64696e672d73797374656d_find_operation_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b6579626f6172642d636f64696e672d73797374656d_keyboard_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6b6579626f6172642d636f64696e672d73797374656d2d696e7465726e616c_set_keyboard_coding_system_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7465726d696e616c2d636f64696e672d73797374656d_terminal_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d736166652d7465726d696e616c2d636f64696e672d73797374656d2d696e7465726e616c_set_safe_terminal_coding_system_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d7465726d696e616c2d636f64696e672d73797374656d2d696e7465726e616c_set_terminal_coding_system_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R656e636f64652d626967352d63686172_encode_big5_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6465636f64652d626967352d63686172_decode_big5_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R656e636f64652d736a69732d63686172_encode_sjis_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6465636f64652d736a69732d63686172_decode_sjis_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R656e636f64652d636f64696e672d737472696e67_encode_coding_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465636f64652d636f64696e672d737472696e67_decode_coding_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R656e636f64652d636f64696e672d726567696f6e_encode_coding_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465636f64652d636f64696e672d726567696f6e_decode_coding_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636865636b2d636f64696e672d73797374656d732d726567696f6e_check_coding_systems_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R756e656e636f6461626c652d636861722d706f736974696f6e_unencodable_char_position_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R66696e642d636f64696e672d73797374656d732d726567696f6e2d696e7465726e616c_find_coding_systems_region_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6465746563742d636f64696e672d737472696e67_detect_coding_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465746563742d636f64696e672d726567696f6e_detect_coding_region_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636865636b2d636f64696e672d73797374656d_check_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726561642d6e6f6e2d6e696c2d636f64696e672d73797374656d_read_non_nil_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726561642d636f64696e672d73797374656d_read_coding_system_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f64696e672d73797374656d2d70_coding_system_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R736f72742d6368617273657473_sort_charsets_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861727365742d69642d696e7465726e616c_charset_id_internal_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R7365742d636861727365742d7072696f72697479_set_charset_priority_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861727365742d7072696f726974792d6c697374_charset_priority_list_0;
const struct Lisp_X * (*) () R636c6561722d636861727365742d6d617073_clear_charset_maps_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R69736f2d63686172736574_iso_charset_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861727365742d6166746572_charset_after_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636861722d63686172736574_char_charset_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d63686172_make_char_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73706c69742d63686172_split_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R656e636f64652d63686172_encode_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6465636f64652d63686172_decode_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696e642d636861727365742d737472696e67_find_charset_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R66696e642d636861727365742d726567696f6e_find_charset_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6465636c6172652d65717569762d63686172736574_declare_equiv_charset_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6765742d756e757365642d69736f2d66696e616c2d63686172_get_unused_iso_final_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R756e6966792d63686172736574_unify_charset_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d636861727365742d706c697374_set_charset_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861727365742d706c697374_charset_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646566696e652d636861727365742d616c696173_define_charset_alias_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R646566696e652d636861727365742d696e7465726e616c_define_charset_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d61702d636861727365742d6368617273_map_charset_chars_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6368617273657470_charsetp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R65787465726e616c2d646562756767696e672d6f7574707574_external_debugging_output_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737573706963696f75732d6f626a656374_suspicious_object_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616c6c6f632d7472696d_malloc_trim_0;
const struct Lisp_X * (*) () R6d616c6c6f632d696e666f_malloc_info_0;
const struct Lisp_X * (*) () R6d656d6f72792d7573652d636f756e7473_memory_use_counts_0;
const struct Lisp_X * (*) () R6d656d6f72792d696e666f_memory_info_0;
const struct Lisp_X * (*) (struct Lisp_X *) R676172626167652d636f6c6c6563742d6d61796265_garbage_collect_maybe_0;
const struct Lisp_X * (*) () R676172626167652d636f6c6c656374_garbage_collect_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70757265636f7079_purecopy_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d66696e616c697a6572_make_finalizer_0;
const struct Lisp_X * (*) () R6d616b652d6d61726b6572_make_marker_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d73796d626f6c_make_symbol_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d626f6f6c2d766563746f72_make_bool_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d737472696e67_make_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d7265636f7264_make_record_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d766563746f72_make_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d616b652d6c697374_make_list_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d636c6f73757265_make_closure_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d627974652d636f6465_make_byte_code_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R626f6f6c2d766563746f72_bool_vector_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R7265636f7264_record_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R766563746f72_vector_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6c697374_list_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6e73_cons_0;
const struct Lisp_X * (*) () R756e69782d73796e63_unix_sync_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d73797374656d2d696e666f_file_system_info_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d62696e6172792d6d6f6465_set_binary_mode_0;
const struct Lisp_X * (*) () R6e6578742d726561642d66696c652d757365732d6469616c6f672d70_next_read_file_uses_dialog_p_0;
const struct Lisp_X * (*) () R726563656e742d6175746f2d736176652d70_recent_auto_save_p_0;
const struct Lisp_X * (*) () R636c6561722d6275666665722d6175746f2d736176652d6661696c757265_clear_buffer_auto_save_failure_0;
const struct Lisp_X * (*) () R7365742d6275666665722d6175746f2d7361766564_set_buffer_auto_saved_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646f2d6175746f2d73617665_do_auto_save_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d766973697465642d66696c652d6d6f6474696d65_set_visited_file_modtime_0;
const struct Lisp_X * (*) () R766973697465642d66696c652d6d6f6474696d65_visited_file_modtime_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7665726966792d766973697465642d66696c652d6d6f6474696d65_verify_visited_file_modtime_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6361722d6c6573732d7468616e2d636172_car_less_than_car_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77726974652d726567696f6e_write_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e736572742d66696c652d636f6e74656e7473_insert_file_contents_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c652d6e657765722d7468616e2d66696c652d70_file_newer_than_file_p_0;
const struct Lisp_X * (*) () R64656661756c742d66696c652d6d6f646573_default_file_modes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d64656661756c742d66696c652d6d6f646573_set_default_file_modes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d66696c652d73656c696e75782d636f6e74657874_set_file_selinux_context_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d66696c652d61636c_set_file_acl_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d61636c_file_acl_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d73656c696e75782d636f6e74657874_file_selinux_context_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d66696c652d74696d6573_set_file_times_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d66696c652d6d6f646573_set_file_modes_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c652d6d6f646573_file_modes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d726567756c61722d70_file_regular_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d61636365737369626c652d6469726563746f72792d70_file_accessible_directory_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6469726563746f72792d70_file_directory_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d73796d6c696e6b2d70_file_symlink_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6163636573732d66696c65_access_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d7772697461626c652d70_file_writable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d7265616461626c652d70_file_readable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d65786563757461626c652d70_file_executable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6578697374732d70_file_exists_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6e616d652d6162736f6c7574652d70_file_name_absolute_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d73796d626f6c69632d6c696e6b_make_symbolic_link_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6164642d6e616d652d746f2d66696c65_add_name_to_file_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72656e616d652d66696c65_rename_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6e616d652d636173652d696e73656e7369746976652d70_file_name_case_insensitive_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c6574652d66696c65_delete_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656c6574652d6469726563746f72792d696e7465726e616c_delete_directory_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d6469726563746f72792d696e7465726e616c_make_directory_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f70792d66696c65_copy_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562737469747574652d696e2d66696c652d6e616d65_substitute_in_file_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R657870616e642d66696c652d6e616d65_expand_file_name_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R66696c652d6e616d652d636f6e636174_file_name_concat_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d74656d702d6e616d65_make_temp_name_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d616b652d74656d702d66696c652d696e7465726e616c_make_temp_file_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6469726563746f72792d66696c652d6e616d65_directory_file_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6469726563746f72792d6e616d652d70_directory_name_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6e616d652d61732d6469726563746f7279_file_name_as_directory_0;
const struct Lisp_X * (*) (struct Lisp_X *) R756e68616e646c65642d66696c652d6e616d652d6469726563746f7279_unhandled_file_name_directory_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6e616d652d6e6f6e6469726563746f7279_file_name_nondirectory_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66696c652d6e616d652d6469726563746f7279_file_name_directory_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696e642d66696c652d6e616d652d68616e646c6572_find_file_name_handler_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d6c696e652d73746174697374696373_buffer_line_statistics_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f63616c652d696e666f_locale_info_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6275666665722d68617368_buffer_hash_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365637572652d68617368_secure_hash_0;
const struct Lisp_X * (*) () R7365637572652d686173682d616c676f726974686d73_secure_hash_algorithms_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d6435_md5_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R62617365363475726c2d656e636f64652d737472696e67_base64url_encode_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R62617365363475726c2d656e636f64652d726567696f6e_base64url_encode_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6261736536342d6465636f64652d737472696e67_base64_decode_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6261736536342d656e636f64652d737472696e67_base64_encode_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6261736536342d6465636f64652d726567696f6e_base64_decode_region_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6261736536342d656e636f64652d726567696f6e_base64_encode_region_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R7769646765742d6170706c79_widget_apply_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7769646765742d676574_widget_get_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7769646765742d707574_widget_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706c6973742d6d656d626572_plist_member_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R70726f76696465_provide_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R72657175697265_require_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6665617475726570_featurep_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f61642d61766572616765_load_average_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7965732d6f722d6e6f2d70_yes_or_no_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d6170636f6e636174_mapconcat_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d617063616e_mapcan_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d617063_mapc_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d6170636172_mapcar_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6e636f6e63_nconc_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636c6561722d737472696e67_clear_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66696c6c6172726179_fillarray_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R657175616c2d696e636c7564696e672d70726f70657274696573_equal_including_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R657175616c_equal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R65716c_eql_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R707574_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706c6973742d707574_plist_put_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R676574_get_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706c6973742d676574_plist_get_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736f7274_sort_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72657665727365_reverse_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e72657665727365_nreverse_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c657465_delete_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64656c71_delq_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R726173736f63_rassoc_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7261737371_rassq_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6173736f63_assoc_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R61737371_assq_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d656d716c_memql_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d656d71_memq_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d656d626572_member_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R656c74_elt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e7468_nth_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e7468636472_nthcdr_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e74616b65_ntake_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R74616b65_take_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737562737472696e672d6e6f2d70726f70657274696573_substring_no_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737562737472696e67_substring_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d616c697374_copy_alist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d746f2d756e6962797465_string_to_unibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d746f2d6d756c746962797465_string_to_multibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d61732d756e6962797465_string_as_unibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d61732d6d756c746962797465_string_as_multibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d6d616b652d756e6962797465_string_make_unibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d6d616b652d6d756c746962797465_string_make_multibyte_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d73657175656e6365_copy_sequence_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R76636f6e636174_vconcat_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R636f6e636174_concat_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R617070656e64_append_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d636f6c6c6174652d657175616c70_string_collate_equalp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d636f6c6c6174652d6c65737370_string_collate_lessp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R737472696e672d76657273696f6e2d6c65737370_string_version_lessp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R737472696e672d6c65737370_string_lessp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d706172652d737472696e6773_compare_strings_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R737472696e672d657175616c_string_equal_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d64697374616e6365_string_distance_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e672d6279746573_string_bytes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R70726f7065722d6c6973742d70_proper_list_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c656e6774683d_length_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c656e6774683e_length_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c656e6774683c_length_0;
const struct Lisp_X * (*) (struct Lisp_X *) R736166652d6c656e677468_safe_length_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c656e677468_length_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72616e646f6d_random_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6964656e74697479_identity_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c696e652d6e756d6265722d61742d706f73_line_number_at_pos_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f626a6563742d696e74657276616c73_object_intervals_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R737472696e672d736561726368_string_search_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566696e652d686173682d7461626c652d74657374_define_hash_table_test_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d617068617368_maphash_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656d68617368_remhash_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R70757468617368_puthash_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R67657468617368_gethash_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636c7268617368_clrhash_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d70_hash_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d7765616b6e657373_hash_table_weakness_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d74657374_hash_table_test_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d73697a65_hash_table_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d7265686173682d7468726573686f6c64_hash_table_rehash_threshold_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d7265686173682d73697a65_hash_table_rehash_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R686173682d7461626c652d636f756e74_hash_table_count_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d686173682d7461626c65_copy_hash_table_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d616b652d686173682d7461626c65_make_hash_table_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7378686173682d657175616c2d696e636c7564696e672d70726f70657274696573_sxhash_equal_including_properties_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7378686173682d657175616c_sxhash_equal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7378686173682d65716c_sxhash_eql_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7378686173682d6571_sxhash_eq_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6765742d7661726961626c652d7761746368657273_get_variable_watchers_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R72656d6f76652d7661726961626c652d77617463686572_remove_variable_watcher_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6164642d7661726961626c652d77617463686572_add_variable_watcher_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626f6f6c2d766563746f722d636f756e742d706f70756c6174696f6e_bool_vector_count_population_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d636f756e742d636f6e7365637574697665_bool_vector_count_consecutive_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d73756273657470_bool_vector_subsetp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d6e6f74_bool_vector_not_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d7365742d646966666572656e6365_bool_vector_set_difference_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d696e74657273656374696f6e_bool_vector_intersection_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d756e696f6e_bool_vector_union_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R626f6f6c2d766563746f722d6578636c75736976652d6f72_bool_vector_exclusive_or_0;
const struct Lisp_X * (*) (struct Lisp_X *) R757365722d70747270_user_ptrp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6e61746976652d636f6d702d756e69742d7365742d66696c65_native_comp_unit_set_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e61746976652d636f6d702d756e69742d66696c65_native_comp_unit_file_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d6e61746976652d636f6d702d756e6974_subr_native_comp_unit_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d74797065_subr_type_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d6e61746976652d6c616d6264612d6c697374_subr_native_lambda_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d6e61746976652d656c6973702d70_subr_native_elisp_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d6e616d65_subr_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737562722d6172697479_subr_arity_0;
const struct Lisp_X * (*) () R627974656f72646572_byteorder_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f676e6f74_lognot_0;
const struct Lisp_X * (*) (struct Lisp_X *) R312d_1__0;
const struct Lisp_X * (*) (struct Lisp_X *) R312b_1_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R617368_ash_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f67636f756e74_logcount_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6c6f67786f72_logxor_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6c6f67696f72_logior_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6c6f67616e64_logand_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d696e_min_0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R6d6178_max_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d6f64_mod_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R25__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R2f__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R2a__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R2d___0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R2b__0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R2f3d__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R3e3d__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R3c3d__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R3e__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R3c__0;
const struct Lisp_X * (*) (long long, struct Lisp_X * *) R3d__0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R737472696e672d746f2d6e756d626572_string_to_number_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e756d6265722d746f2d737472696e67_number_to_string_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R61736574_aset_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R61726566_aref_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7661726961626c652d62696e64696e672d6c6f637573_variable_binding_locus_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c6f63616c2d7661726961626c652d69662d7365742d70_local_variable_if_set_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6c6f63616c2d7661726961626c652d70_local_variable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b696c6c2d6c6f63616c2d7661726961626c65_kill_local_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d6c6f63616c2d7661726961626c65_make_local_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d7661726961626c652d6275666665722d6c6f63616c_make_variable_buffer_local_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d64656661756c74_set_default_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656661756c742d76616c7565_default_value_0;
const struct Lisp_X * (*) (struct Lisp_X *) R64656661756c742d626f756e6470_default_boundp_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736574_set_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d76616c7565_symbol_value_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736574706c697374_setplist_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566616c696173_defalias_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R66736574_fset_0;
const struct Lisp_X * (*) (struct Lisp_X *) R66626f756e6470_fboundp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626f756e6470_boundp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666d616b756e626f756e64_fmakunbound_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b756e626f756e64_makunbound_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R706f736974696f6e2d73796d626f6c_position_symbol_0;
const struct Lisp_X * (*) (struct Lisp_X *) R72656d6f76652d706f732d66726f6d2d73796d626f6c_remove_pos_from_symbol_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d776974682d706f732d706f73_symbol_with_pos_pos_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626172652d73796d626f6c_bare_symbol_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d6e616d65_symbol_name_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d706c697374_symbol_plist_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e6469726563742d66756e6374696f6e_indirect_function_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d66756e6374696f6e_symbol_function_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736574636472_setcdr_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R736574636172_setcar_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6364722d73616665_cdr_safe_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6361722d73616665_car_safe_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636472_cdr_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636172_car_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e646974696f6e2d7661726961626c652d70_condition_variable_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d7574657870_mutexp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R74687265616470_threadp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d6f722d737472696e672d70_char_or_string_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d6f64756c652d66756e6374696f6e2d70_module_function_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R627974652d636f64652d66756e6374696f6e2d70_byte_code_function_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7375627270_subrp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d61726b657270_markerp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R62756666657270_bufferp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73657175656e636570_sequencep_0;
const struct Lisp_X * (*) (struct Lisp_X *) R617272617970_arrayp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626f6f6c2d766563746f722d70_bool_vector_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R766563746f722d6f722d636861722d7461626c652d70_vector_or_char_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636861722d7461626c652d70_char_table_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7265636f726470_recordp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R766563746f7270_vectorp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d756c7469627974652d737472696e672d70_multibyte_string_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R737472696e6770_stringp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b6579776f726470_keywordp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c70_symbolp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73796d626f6c2d776974682d706f732d70_symbol_with_pos_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R626172652d73796d626f6c2d70_bare_symbol_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e61746e756d70_natnump_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666c6f617470_floatp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e756d6265722d6f722d6d61726b65722d70_number_or_marker_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e756d62657270_numberp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e74656765722d6f722d6d61726b65722d70_integer_or_marker_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e746567657270_integerp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R61746f6d_atom_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6e7370_consp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e6c69737470_nlistp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c69737470_listp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R747970652d6f66_type_of_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6e756c6c_null_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6571_eq_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6d6d616e642d6d6f646573_command_modes_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726163746976652d666f726d_interactive_form_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e6469726563742d7661726961626c65_indirect_variable_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R706f736e2d61742d782d79_posn_at_x_y_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R706f736e2d61742d706f696e74_posn_at_point_0;
const struct Lisp_X * (*) () R63757272656e742d696e7075742d6d6f6465_current_input_mode_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R7365742d696e7075742d6d6f6465_set_input_mode_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d717569742d63686172_set_quit_char_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d696e7075742d6d6574612d6d6f6465_set_input_meta_mode_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6f75747075742d666c6f772d636f6e74726f6c_set_output_flow_control_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d696e7075742d696e746572727570742d6d6f6465_set_input_interrupt_mode_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6f70656e2d64726962626c652d66696c65_open_dribble_file_0;
const struct Lisp_X * (*) () R646973636172642d696e707574_discard_input_0;
const struct Lisp_X * (*) () R746f702d6c6576656c_top_level_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d6d616e642d6572726f722d64656661756c742d66756e6374696f6e_command_error_default_function_0;
const struct Lisp_X * (*) () R726563757273696f6e2d6465707468_recursion_depth_0;
const struct Lisp_X * (*) () R657869742d7265637572736976652d65646974_exit_recursive_edit_0;
const struct Lisp_X * (*) () R61626f72742d7265637572736976652d65646974_abort_recursive_edit_0;
const struct Lisp_X * (*) (struct Lisp_X *) R73757370656e642d656d616373_suspend_emacs_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636c6561722d746869732d636f6d6d616e642d6b657973_clear_this_command_keys_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7365742d2d746869732d636f6d6d616e642d6b657973_set__this_command_keys_0;
const struct Lisp_X * (*) () R746869732d73696e676c652d636f6d6d616e642d7261772d6b657973_this_single_command_raw_keys_0;
const struct Lisp_X * (*) () R746869732d73696e676c652d636f6d6d616e642d6b657973_this_single_command_keys_0;
const struct Lisp_X * (*) () R746869732d636f6d6d616e642d6b6579732d766563746f72_this_command_keys_vector_0;
const struct Lisp_X * (*) () R746869732d636f6d6d616e642d6b657973_this_command_keys_0;
const struct Lisp_X * (*) (struct Lisp_X *) R726563656e742d6b657973_recent_keys_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6c6f73736167652d73697a65_lossage_size_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7075742d70656e64696e672d70_input_pending_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d2d747261636b2d6d6f757365_internal__track_mouse_0;
const struct Lisp_X * (*) () R7265637572736976652d65646974_recursive_edit_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d6b65792d73657175656e63652d766563746f72_read_key_sequence_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R726561642d6b65792d73657175656e6365_read_key_sequence_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d68616e646c652d666f6375732d696e_internal_handle_focus_in_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6576656e742d636f6e766572742d6c697374_event_convert_list_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d6576656e742d73796d626f6c2d70617273652d6d6f64696669657273_internal_event_symbol_parse_modifiers_0;
const struct Lisp_X * (*) () R63757272656e742d69646c652d74696d65_current_idle_time_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R64657363726962652d6275666665722d62696e64696e6773_describe_buffer_bindings_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R77686572652d69732d696e7465726e616c_where_is_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R746578742d636861722d6465736372697074696f6e_text_char_description_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R73696e676c652d6b65792d6465736372697074696f6e_single_key_description_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R64657363726962652d766563746f72_describe_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R68656c702d2d64657363726962652d766563746f72_help__describe_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6b65796d61702d2d6765742d6b6579656c74_keymap__get_keyelt_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6b65792d6465736372697074696f6e_key_description_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R61636365737369626c652d6b65796d617073_accessible_keymaps_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R63757272656e742d6163746976652d6d617073_current_active_maps_0;
const struct Lisp_X * (*) () R63757272656e742d6d696e6f722d6d6f64652d6d617073_current_minor_mode_maps_0;
const struct Lisp_X * (*) () R63757272656e742d676c6f62616c2d6d6170_current_global_map_0;
const struct Lisp_X * (*) () R63757272656e742d6c6f63616c2d6d6170_current_local_map_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7573652d6c6f63616c2d6d6170_use_local_map_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7573652d676c6f62616c2d6d6170_use_global_map_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6c6f6f6b75702d6b6579_lookup_key_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R646566696e652d6b6579_define_key_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d696e6f722d6d6f64652d6b65792d62696e64696e67_minor_mode_key_binding_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6b65792d62696e64696e67_key_binding_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6d6d616e642d72656d617070696e67_command_remapping_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f70792d6b65796d6170_copy_keymap_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d61702d6b65796d6170_map_keymap_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R6d61702d6b65796d61702d696e7465726e616c_map_keymap_internal_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d7370617273652d6b65796d6170_make_sparse_keymap_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6d616b652d6b65796d6170_make_keymap_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R7365742d6b65796d61702d706172656e74_set_keymap_parent_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b65796d61702d70726f6d7074_keymap_prompt_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b65796d61702d706172656e74_keymap_parent_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6b65796d617070_keymapp_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636f6c6f722d76616c7565732d66726f6d2d636f6c6f722d73706563_color_values_from_color_spec_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R782d66616d696c792d666f6e7473_x_family_fonts_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d666163652d782d6765742d7265736f75726365_internal_face_x_get_resource_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R782d6c6973742d666f6e7473_x_list_fonts_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6269746d61702d737065632d70_bitmap_spec_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R7474792d73757070726573732d626f6c642d696e76657273652d64656661756c742d636f6c6f7273_tty_suppress_bold_inverse_default_colors_0;
const struct Lisp_X * (*) (struct Lisp_X *) R636c6561722d666163652d6361636865_clear_face_cache_0;
const struct Lisp_X * (*) (struct Lisp_X *) R666163652d617474726962757465732d61732d766563746f72_face_attributes_as_vector_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d7365742d616c7465726e61746976652d666f6e742d72656769737472792d616c697374_internal_set_alternative_font_registry_alist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d7365742d616c7465726e61746976652d666f6e742d66616d696c792d616c697374_internal_set_alternative_font_family_alist_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d7365742d666f6e742d73656c656374696f6e2d6f72646572_internal_set_font_selection_order_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6c6f722d64697374616e6365_color_distance_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R646973706c61792d737570706f7274732d666163652d617474726962757465732d70_display_supports_face_attributes_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R6672616d652d2d666163652d686173682d7461626c65_frame__face_hash_table_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R666163652d666f6e74_face_font_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6d657267652d696e2d676c6f62616c2d66616365_internal_merge_in_global_face_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d636f70792d6c6973702d66616365_internal_copy_lisp_face_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6c6973702d666163652d656d7074792d70_internal_lisp_face_empty_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6c6973702d666163652d657175616c2d70_internal_lisp_face_equal_p_0;
const struct Lisp_X * (*) (struct Lisp_X *) R696e7465726e616c2d6c6973702d666163652d6174747269627574652d76616c756573_internal_lisp_face_attribute_values_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6765742d6c6973702d666163652d617474726962757465_internal_get_lisp_face_attribute_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R6d657267652d666163652d617474726962757465_merge_face_attribute_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R666163652d6174747269627574652d72656c61746976652d70_face_attribute_relative_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R636f6c6f722d737570706f727465642d70_color_supported_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R636f6c6f722d677261792d70_color_gray_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d7365742d6c6973702d666163652d6174747269627574652d66726f6d2d7265736f75726365_internal_set_lisp_face_attribute_from_resource_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *, struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d7365742d6c6973702d666163652d617474726962757465_internal_set_lisp_face_attribute_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6c6973702d666163652d70_internal_lisp_face_p_0;
const struct Lisp_X * (*) (struct Lisp_X *, struct Lisp_X *) R696e7465726e616c2d6d616b652d6c6973702d66616365_internal_make_lisp_face_0;
};
struct comp_Lisp_Vector_11
{
long long header;
struct Lisp_X *[11] contents;
};
static struct comp_cons_block __attribute__((aligned(1024))) cons_block_0 = (struct comp_cons_block) {.conses=(struct comp_Lisp_Cons[62]) {(struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0xbcd0, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)0xa}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0xbc70, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)0xa}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x2, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0xa, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)2])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x32, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)3])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x8070, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)4])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)5])[(unsigned long long)3], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)1])[(unsigned long long)3], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)6])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)0])[(unsigned long long)3], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)7])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30c0, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)9])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)10])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)11])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)12])[(unsigned long long)3], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)9])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x7ef0, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)13])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)9])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x30, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)15])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)16])[(unsigned long long)3], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)9])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x7ef0, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)17])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)20])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)&((char *)&lisp_data_3)[(unsigned long long)5], .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0x7ef0, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)NULL}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)NULL, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)25])[(unsigned long long)3]}}}}, (struct comp_Lisp_Cons) {.u=(union comp_cons_u) {.s=(struct comp_cons_s) {.car=(struct Lisp_X *)0xa, .u=(union comp_cdr_u) {.cdr=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)26])[(unsigned long long)3]}}}}}, .gcmarkbits=(long long[1]) {(long long)-1}, .next=(struct comp_cons_block __attribute__((aligned(1024))) *)NULL};
const struct Lisp_X * text_optim_qly = (struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)8])[(unsigned long long)3];
static unsigned char[27] str_data_0=
{ 0xa, 0xa, 0x28, 0x66, 0x6e, 0x20, 0x41, 0x52, 0x47, 0x30, 0x20, 0x41, 0x52, 0x47, 0x20, 0x26, 0x72, 0x65, 0x73, 0x74, 0x20, 0x41, 0x52, 0x47, 0x53, 0x29, 0x0, };
static const struct comp_Lisp_String lisp_data_0 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775782, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_0}}};
static unsigned char[39] str_data_1=
{ 0xa, 0xa, 0x28, 0x66, 0x6e, 0x20, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x20, 0x44, 0x49, 0x53, 0x50, 0x41, 0x54, 0x43, 0x48, 0x45, 0x53, 0x2d, 0x4c, 0x45, 0x46, 0x54, 0x20, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x53, 0x29, 0x0, };
static const struct comp_Lisp_String lisp_data_1 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775770, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_1}}};
static const struct comp_Lisp_Vector_3 __attribute__((aligned(8))) lisp_data_2 = (struct comp_Lisp_Vector_3) {.header=(long long)-9223372036854775805, .contents=(struct Lisp_X *[3]) {(struct Lisp_X *)&((char *)&lisp_data_0)[(unsigned long long)4], (struct Lisp_X *)&((char *)&lisp_data_1)[(unsigned long long)4], (struct Lisp_X *)NULL}};
const struct Lisp_X * text_data_fdoc = (struct Lisp_X *)&((char *)&lisp_data_2)[(unsigned long long)5];
struct comp_thread_state * * current_thread_reloc;
bool * f_symbols_with_pos_enabled_reloc;
void * pure_reloc;
struct Lisp_X * comp_unit;
static struct Lisp_X * lisp_obj_0;
static struct Lisp_X * lisp_obj_1;
static struct Lisp_X * lisp_obj_2;
static struct Lisp_X * lisp_obj_3;
static struct Lisp_X * lisp_obj_4;
static struct Lisp_X * lisp_obj_5;
static struct Lisp_X * lisp_obj_6;
static struct Lisp_X * lisp_obj_7;
static struct Lisp_X * lisp_obj_8;
static const struct comp_Lisp_Vector_3 __attribute__((aligned(8))) lisp_data_3 = (struct comp_Lisp_Vector_3) {.header=(long long)-9223372036854775805, .contents=(struct Lisp_X *[3]) {(struct Lisp_X *)0x6, (struct Lisp_X *)0xa, (struct Lisp_X *)0xe}};
static struct Lisp_X * lisp_obj_9;
static union comp_Lisp_Pseudovector_Subr lisp_data_4 = (union comp_Lisp_Pseudovector_Subr) {.aligned_subr=(union comp_Aligned_Subr) {.s=(struct comp_Lisp_Subr) {.header=(long long)4611686018712600576, .function=(void *)F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0, .min_args=(short)2, .max_args=(short)-2, .symbol_name="F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0", .intspec=(union comp_intspec) {.native=(struct Lisp_X *)NULL}, .command_modes=(struct Lisp_X *)NULL, .doc=(long long)0, .native_comp_u=(struct Lisp_X *)NULL, .native_c_name="F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0", .lamdba_list=(struct Lisp_X *)NULL, .type=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)14])[(unsigned long long)3]}}};
static union comp_Lisp_Pseudovector_Subr lisp_data_5 = (union comp_Lisp_Pseudovector_Subr) {.aligned_subr=(union comp_Aligned_Subr) {.s=(struct comp_Lisp_Subr) {.header=(long long)4611686018712600576, .function=(void *)F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_1, .min_args=(short)3, .max_args=(short)3, .symbol_name="F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_1", .intspec=(union comp_intspec) {.native=(struct Lisp_X *)NULL}, .command_modes=(struct Lisp_X *)NULL, .doc=(long long)1, .native_comp_u=(struct Lisp_X *)NULL, .native_c_name="F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_1", .lamdba_list=(struct Lisp_X *)NULL, .type=(struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)18])[(unsigned long long)3]}}};
static struct Lisp_X * lisp_obj_10;
static unsigned char[47] str_data_2=
{ 0x46, 0x36, 0x36, 0x36, 0x31, 0x37, 0x35, 0x36, 0x63, 0x37, 0x34, 0x32, 0x64, 0x36, 0x36, 0x37, 0x35, 0x36, 0x65, 0x36, 0x33, 0x37, 0x34, 0x36, 0x39, 0x36, 0x66, 0x36, 0x65, 0x5f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x30, 0x0, };
static const struct comp_Lisp_String lisp_data_6 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775762, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_2}}};
static unsigned char[9] str_data_3=
{ 0x62, 0x35, 0x39, 0x62, 0x35, 0x38, 0x37, 0x31, 0x0, };
static const struct comp_Lisp_String lisp_data_7 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775800, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_3}}};
const struct Lisp_X * freloc_hash = (struct Lisp_X *)&((char *)&lisp_data_7)[(unsigned long long)4];
struct freloc_link_table * freloc_link_table;
static unsigned int quitcounter;
static struct comp_Lisp_Vector_11 __attribute__((aligned(8))) lisp_data_8 = (struct comp_Lisp_Vector_11) {.header=(long long)11};
const struct Lisp_X * d_staticpro = (struct Lisp_X *)&((char *)&lisp_data_8)[(unsigned long long)5];
const struct Lisp_X * d_ephemeral = (struct Lisp_X *)NULL;
static struct comp_Lisp_String lisp_data_9 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775801, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_4}}};
static unsigned char[8] str_data_4=
{ 0x67, 0x65, 0x74, 0x68, 0x61, 0x73, 0x68, 0x0, };
static struct comp_Lisp_String lisp_data_10 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775788, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_5}}};
static unsigned char[21] str_data_5=
{ 0x63, 0x6c, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x65, 0x71, 0x6c, 0x2d, 0x75, 0x73, 0x65, 0x64, 0x0, };
static struct comp_Lisp_String lisp_data_11 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775786, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_6}}};
static unsigned char[23] str_data_6=
{ 0x63, 0x6c, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x6d, 0x69, 0x73, 0x73, 0x0, };
static unsigned char[63] str_data_7=
{ 0x23, 0x5b, 0x33, 0x38, 0x35, 0x20, 0x22, 0x1, 0x5c, 0x32, 0x34, 0x32, 0x5c, 0x33, 0x30, 0x30, 0x3d, 0x5c, 0x32, 0x30, 0x35, 0x9, 0x0, 0x1, 0x41, 0x5c, 0x32, 0x30, 0x37, 0x22, 0x20, 0x5b, 0x65, 0x71, 0x6c, 0x5d, 0x20, 0x34, 0x20, 0x22, 0x5c, 0x6e, 0x5c, 0x6e, 0x28, 0x66, 0x6e, 0x20, 0x54, 0x41, 0x47, 0x20, 0x26, 0x72, 0x65, 0x73, 0x74, 0x20, 0x5f, 0x29, 0x22, 0x5d, 0x0, };
static unsigned char[49] str_data_8=
{ 0x23, 0x5b, 0x33, 0x38, 0x35, 0x20, 0x22, 0x5c, 0x33, 0x30, 0x30, 0x5c, 0x32, 0x30, 0x37, 0x22, 0x20, 0x5b, 0x28, 0x74, 0x29, 0x5d, 0x20, 0x33, 0x20, 0x22, 0x5c, 0x6e, 0x5c, 0x6e, 0x28, 0x66, 0x6e, 0x20, 0x54, 0x41, 0x47, 0x20, 0x26, 0x72, 0x65, 0x73, 0x74, 0x20, 0x5f, 0x29, 0x22, 0x5d, 0x0, };
static struct comp_Lisp_String lisp_data_12 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775801, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_9}}};
static unsigned char[8] str_data_9=
{ 0x70, 0x75, 0x74, 0x68, 0x61, 0x73, 0x68, 0x0, };
static struct comp_Lisp_String lisp_data_13 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775793, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_10}}};
static unsigned char[16] str_data_10=
{ 0x6d, 0x61, 0x6b, 0x65, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x0, };
static struct comp_Lisp_String lisp_data_14 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775796, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_11}}};
static unsigned char[13] str_data_11=
{ 0x6d, 0x61, 0x6b, 0x65, 0x2d, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x0, };
static unsigned char[351] str_data_12=
{ 0x23, 0x5b, 0x36, 0x34, 0x32, 0x20, 0x22, 0x5c, 0x33, 0x30, 0x35, 0x5c, 0x33, 0x30, 0x36, 0x3, 0x5c, 0x66, 0x5c, 0x22, 0x5c, 0x33, 0x30, 0x36, 0x1, 0x5c, 0x33, 0x30, 0x30, 0x5c, 0x22, 0x5c, 0x32, 0x30, 0x36, 0x27, 0x0, 0x5c, 0x33, 0x30, 0x37, 0x5c, 0x33, 0x30, 0x33, 0x5c, 0x33, 0x31, 0x30, 0x5c, 0x33, 0x30, 0x32, 0x5c, 0x33, 0x30, 0x31, 0x5c, 0x33, 0x31, 0x31, 0x5c, 0x33, 0x31, 0x32,
0x5c, 0x33, 0x30, 0x36, 0x6, 0xb, 0x5c, 0x66, 0x5c, 0x22, 0x21, 0x5c, 0x33, 0x31, 0x33, 0x5c, 0x33, 0x31, 0x34, 0x21, 0x5c, 0x22, 0x25, 0x5c, 0x33, 0x31, 0x35, 0x2, 0x2, 0x5c, 0x33, 0x30, 0x30, 0x23, 0x5c, 0x32, 0x31, 0x30, 0x5c, 0x32, 0x31, 0x31, 0x5c, 0x32, 0x36, 0x32, 0x1, 0x5c, 0x32, 0x36, 0x32, 0x1, 0x4, 0x4, 0x4, 0x24, 0x5c, 0x32, 0x30, 0x37, 0x22, 0x20, 0x5b, 0x56,
0x30, 0x20, 0x56, 0x31, 0x20, 0x56, 0x32, 0x20, 0x56, 0x33, 0x20, 0x63, 0x6c, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x65, 0x71, 0x6c, 0x2d, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x67, 0x65, 0x74, 0x68, 0x61, 0x73, 0x68, 0x20, 0x63, 0x6c, 0x2d, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x2d,
0x6d, 0x69, 0x73, 0x73, 0x20, 0x31, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x23, 0x5b, 0x33, 0x38, 0x35, 0x20, 0x22, 0x1, 0x5c, 0x32, 0x34, 0x32, 0x5c, 0x33, 0x30, 0x30, 0x3d, 0x5c, 0x32, 0x30, 0x35, 0x9, 0x0, 0x1, 0x41, 0x5c, 0x32, 0x30, 0x37, 0x22, 0x20, 0x5b, 0x65, 0x71, 0x6c, 0x5d, 0x20, 0x34, 0x20, 0x23, 0x31, 0x3d, 0x22, 0x5c, 0x6e, 0x5c, 0x6e, 0x28, 0x66, 0x6e,
0x20, 0x54, 0x41, 0x47, 0x20, 0x26, 0x72, 0x65, 0x73, 0x74, 0x20, 0x5f, 0x29, 0x22, 0x5d, 0x20, 0x23, 0x5b, 0x33, 0x38, 0x35, 0x20, 0x22, 0x5c, 0x33, 0x30, 0x30, 0x5c, 0x32, 0x30, 0x37, 0x22, 0x20, 0x5b, 0x28, 0x74, 0x29, 0x5d, 0x20, 0x33, 0x20, 0x23, 0x31, 0x23, 0x5d, 0x20, 0x6e, 0x69, 0x6c, 0x20, 0x70, 0x75, 0x74, 0x68, 0x61, 0x73, 0x68, 0x5d, 0x20, 0x31, 0x35, 0x20, 0x22, 0x5c,
0x6e, 0x5c, 0x6e, 0x28, 0x66, 0x6e, 0x20, 0x41, 0x52, 0x47, 0x30, 0x20, 0x41, 0x52, 0x47, 0x20, 0x26, 0x72, 0x65, 0x73, 0x74, 0x20, 0x41, 0x52, 0x47, 0x53, 0x29, 0x22, 0x5d, 0x0, };
static struct comp_Lisp_String lisp_data_15 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775802, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_13}}};
static unsigned char[7] str_data_13=
{ 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x0, };
static struct comp_Lisp_String lisp_data_16 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775794, .size_byte=(long long)14, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_14}}};
static unsigned char[15] str_data_14=
{ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, };
const bool comp_have_static_lisp_data;
extern void *
memcpy (void * dest, void * src, unsigned long long n); /* (imported) */
static struct Lisp_X *
CAR (struct Lisp_X * c, bool cert_cons)
{
entry_block:
/* CONSP */
/* TAGGEDP */
/* XLI */
if (cert_cons || (bool)!((unsigned int)((long long)bitcast((void *)c, unsigned long long) >> (long long)0) - (unsigned int)3 & (unsigned int)7)) goto is_cons_b; else goto not_a_cons_b;
is_cons_b:
/* XCAR */
/* XCONS */
/* XUNTAG */
/* XLP */
return ((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)c, unsigned long long) - (unsigned long long)3), void *))->u.s.car;
not_a_cons_b:
/* NILP */
/* const lisp obj: nil */
/* BASE_EQ */
/* XLI */
/* XLI */
if ((long long)bitcast((void *)c, unsigned long long) == (long long)bitcast((void *)(struct Lisp_X *)NULL, unsigned long long)) goto is_nil_b; else goto not_nil_b;
is_nil_b:
/* const lisp obj: nil */
return (struct Lisp_X *)NULL;
not_nil_b:
/* const lisp obj: listp */
/* calling subr: wrong_type_argument */
(void)freloc_link_table->R77726f6e675f747970655f617267756d656e74_wrong_type_argument_0 ((struct Lisp_X *)0xa860, c);
/* const lisp obj: nil */
return (struct Lisp_X *)NULL;
}
static struct Lisp_X *
CDR (struct Lisp_X * c, bool cert_cons)
{
entry_block:
/* CONSP */
/* TAGGEDP */
/* XLI */
if (cert_cons || (bool)!((unsigned int)((long long)bitcast((void *)c, unsigned long long) >> (long long)0) - (unsigned int)3 & (unsigned int)7)) goto is_cons_b; else goto not_a_cons_b;
is_cons_b:
/* XCDR */
/* XCONS */
/* XUNTAG */
/* XLP */
return ((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)c, unsigned long long) - (unsigned long long)3), void *))->u.s.u.cdr;
not_a_cons_b:
/* NILP */
/* const lisp obj: nil */
/* BASE_EQ */
/* XLI */
/* XLI */
if ((long long)bitcast((void *)c, unsigned long long) == (long long)bitcast((void *)(struct Lisp_X *)NULL, unsigned long long)) goto is_nil_b; else goto not_nil_b;
is_nil_b:
/* const lisp obj: nil */
return (struct Lisp_X *)NULL;
not_nil_b:
/* const lisp obj: listp */
/* calling subr: wrong_type_argument */
(void)freloc_link_table->R77726f6e675f747970655f617267756d656e74_wrong_type_argument_0 ((struct Lisp_X *)0xa860, c);
/* const lisp obj: nil */
return (struct Lisp_X *)NULL;
}
static bool
PSEUDOVECTORP (struct Lisp_X * a, int code)
{
entry_block:
/* VECTORLIKEP */
/* TAGGEDP */
/* XLI */
if (!(!((unsigned int)((long long)bitcast((void *)a, unsigned long long) >> (long long)0) - (unsigned int)5 & (unsigned int)7))) goto ret_false_b; else goto call_pseudovector_typep_b;
ret_false_b:
return (bool)0;
call_pseudovector_typep_b:
/* calling subr: helper_PSEUDOVECTOR_TYPEP_XUNTAG */
return freloc_link_table->R68656c7065725f50534555444f564543544f525f54595045505f58554e544147_helper_PSEUDOVECTOR_TYPEP_XUNTAG_0 (a, code);
}
static struct comp_lisp_symbol_with_position *
GET_SYMBOL_WITH_POSITION (struct Lisp_X * a)
{
entry_block:
/* calling subr: helper_GET_SYMBOL_WITH_POSITION */
return freloc_link_table->R68656c7065725f4745545f53594d424f4c5f574954485f504f534954494f4e_helper_GET_SYMBOL_WITH_POSITION_0 (a);
}
static void
CHECK_TYPE (int ok, struct Lisp_X * predicate, struct Lisp_X * x)
{
entry_block:
if (!(ok)) goto not_ok_block; else goto ok_block;
ok_block:
return;
not_ok_block:
/* calling subr: wrong_type_argument */
(void)freloc_link_table->R77726f6e675f747970655f617267756d656e74_wrong_type_argument_0 (predicate, x);
return;
}
static struct Lisp_X *
SYMBOL_WITH_POS_SYM (struct Lisp_X * a)
{
entry_block:
/* CHECK_SYMBOL_WITH_POS */
/* SYMBOL_WITH_POS_P */
/* const lisp obj: symbol-with-pos-p */
(void)CHECK_TYPE (((int)PSEUDOVECTORP (a, (int)6)), (struct Lisp_X *)0xf450, a);
return (*GET_SYMBOL_WITH_POSITION (a)).sym;
}
static void
CHECK_IMPURE (struct Lisp_X * obj, void * ptr)
{
entry_block:
/* PURE_P */
if ((unsigned long long)bitcast((void *)obj, unsigned long long) - (unsigned long long)bitcast((void *)pure_reloc, unsigned long long) <= (unsigned long long)4583333) goto err_block; else goto ok_block;
err_block:
/* calling subr: pure_write_error */
(void)freloc_link_table->R707572655f77726974655f6572726f72_pure_write_error_0 (obj);
return;
ok_block:
return;
}
static struct Lisp_X *
bool_to_lisp_obj (bool x)
{
entry_block:
if (x) goto ret_t_block; else goto ret_nil_block;
ret_t_block:
/* const lisp obj: t */
return (struct Lisp_X *)0x30;
ret_nil_block:
/* const lisp obj: nil */
return (struct Lisp_X *)NULL;
}
static struct Lisp_X *
setcar (struct Lisp_X * cell, struct Lisp_X * new_car, bool cert_cons)
{
entry_block:
/* CHECK_CONS */
/* CONSP */
/* TAGGEDP */
/* XLI */
/* const lisp obj: consp */
(void)CHECK_TYPE ((!((unsigned int)((long long)bitcast((void *)cell, unsigned long long) >> (long long)0) - (unsigned int)3 & (unsigned int)7)), (struct Lisp_X *)0x5010, cell);
/* XCONS */
/* XUNTAG */
/* XLP */
(void)CHECK_IMPURE (cell, ((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)cell, unsigned long long) - (unsigned long long)3), void *)));
/* XSETCAR */
/* car_addr */
/* lval_XCAR */
/* XCONS */
/* XUNTAG */
/* XLP */
*&((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)cell, unsigned long long) - (unsigned long long)3), void *))->u.s.car = new_car;
return new_car;
}
static struct Lisp_X *
setcdr (struct Lisp_X * cell, struct Lisp_X * new_cdr, bool cert_cons)
{
entry_block:
/* CHECK_CONS */
/* CONSP */
/* TAGGEDP */
/* XLI */
/* const lisp obj: consp */
(void)CHECK_TYPE ((!((unsigned int)((long long)bitcast((void *)cell, unsigned long long) >> (long long)0) - (unsigned int)3 & (unsigned int)7)), (struct Lisp_X *)0x5010, cell);
/* XCONS */
/* XUNTAG */
/* XLP */
(void)CHECK_IMPURE (cell, ((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)cell, unsigned long long) - (unsigned long long)3), void *)));
/* XSETCDR */
/* cdr_addr */
/* lval_XCDR */
/* XCONS */
/* XUNTAG */
/* XLP */
*&((struct comp_Lisp_Cons *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)(void *)cell, unsigned long long) - (unsigned long long)3), void *))->u.s.u.cdr = new_cdr;
return new_cdr;
}
static struct Lisp_X *
add1 (struct Lisp_X * n, bool cert_fixnum)
{
entry_block:
/* XFIXNUM */
/* XLI */
/* FIXNUMP */
if ((cert_fixnum || (bool)!((unsigned int)bitcast((void *)n, unsigned long long) - (unsigned int)2 & (unsigned int)3)) && (long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2 != (long long)2305843009213693951) goto inline_block; else goto fcall_block;
inline_block:
/* make_fixnum */
return (struct Lisp_X *)bitcast((unsigned long long)((((long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2) + (long long)1 << (long long)(unsigned long long)2) + (long long)2), void *);
fcall_block:
/* calling subr: 1+ */
return freloc_link_table->R312b_1_0 (n);
}
static struct Lisp_X *
sub1 (struct Lisp_X * n, bool cert_fixnum)
{
entry_block:
/* XFIXNUM */
/* XLI */
/* FIXNUMP */
if ((cert_fixnum || (bool)!((unsigned int)bitcast((void *)n, unsigned long long) - (unsigned int)2 & (unsigned int)3)) && (long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2 != (long long)-2305843009213693952) goto inline_block; else goto fcall_block;
inline_block:
/* make_fixnum */
return (struct Lisp_X *)bitcast((unsigned long long)((((long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2) - (long long)1 << (long long)(unsigned long long)2) + (long long)2), void *);
fcall_block:
/* calling subr: 1- */
return freloc_link_table->R312d_1__0 (n);
}
static struct Lisp_X *
negate (struct Lisp_X * n, bool cert_fixnum)
{
entry_block:
/* XFIXNUM */
/* XLI */
/* FIXNUMP */
if ((cert_fixnum || (bool)!((unsigned int)bitcast((void *)n, unsigned long long) - (unsigned int)2 & (unsigned int)3)) && (long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2 != (long long)-2305843009213693952) goto inline_block; else goto fcall_block;
inline_block:
/* make_fixnum */
return (struct Lisp_X *)bitcast((unsigned long long)((-((long long)(unsigned long long)(long long)bitcast((void *)n, unsigned long long) >> (long long)(unsigned long long)2) << (long long)(unsigned long long)2) + (long long)2), void *);
fcall_block:
/* calling subr: - */
return freloc_link_table->R2d___0 ((long long)1, (&n));
}
static void
maybe_gc_quit ()
{
increment_block:
quitcounter = quitcounter + (unsigned int)1;
if (!(quitcounter >> (unsigned int)9)) goto pass_block; else goto maybe_do_it_block;
maybe_do_it_block:
quitcounter = (unsigned int)0;
/* calling subr: maybe_gc */
(void)freloc_link_table->R6d617962655f6763_maybe_gc_0 ();
/* calling subr: maybe_quit */
(void)freloc_link_table->R6d617962655f71756974_maybe_quit_0 ();
return;
pass_block:
return;
}
extern struct Lisp_X *
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0 (long long nargs, struct Lisp_X * * args)
{
struct freloc_link_table * freloc;
struct Lisp_X * slot_0;
struct Lisp_X * slot_1;
struct Lisp_X * slot_2;
struct Lisp_X * slot_3;
struct Lisp_X * slot_4;
struct Lisp_X * slot_5;
struct Lisp_X * slot_6;
struct Lisp_X * slot_7;
struct Lisp_X * slot_8;
struct Lisp_X * slot_9;
struct Lisp_X * slot_10;
struct Lisp_X * slot_11;
struct Lisp_X * slot_12;
struct Lisp_X * slot_13;
struct Lisp_X * slot_14;
struct comp_handler * c;
struct Lisp_X *[4] call_arr_0;
struct Lisp_X *[2] call_arr_1;
struct Lisp_X *[2] call_arr_2;
struct Lisp_X *[2] call_arr_3;
struct Lisp_X *[6] call_arr_4;
entry:
freloc = freloc_link_table;
/* Lisp function: nil */
slot_0 = *args;
/* ptr_arithmetic */
args = (struct Lisp_X * *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)args, unsigned long long) + (unsigned long long)8 * (unsigned long long)(long long)1), void *);
slot_1 = *args;
/* ptr_arithmetic */
args = (struct Lisp_X * *)bitcast((unsigned long long)((unsigned long long)bitcast((void *)args, unsigned long long) + (unsigned long long)8 * (unsigned long long)(long long)1), void *);
goto entry_rest_args;
entry_rest_args:
/* calling subr: list */
slot_2 = freloc->R6c697374_list_0 ((nargs - (long long)2), args);
goto bb_0;
bb_0:
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113104814 3) apply) */
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113105968 4) gethash) */
slot_5 = slot_1;
/* cl--generic-eql-used */
/* const lisp obj: cl--generic-eql-used */
/* calling subr: symbol-value */
slot_6 = freloc->R73796d626f6c2d76616c7565_symbol_value_0 (lisp_obj_1);
/* nil */
/* const lisp obj: nil */
/* calling subr: gethash */
slot_4 = freloc->R67657468617368_gethash_0 (slot_5, slot_6, (struct Lisp_X *)NULL);
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113114602 5) gethash) */
slot_6 = slot_4;
/* 0 */
slot_7 = (struct Lisp_X *)0x2;
/* 0 */
/* nil */
/* const lisp obj: nil */
/* calling subr: gethash */
slot_5 = freloc->R67657468617368_gethash_0 (slot_6, (struct Lisp_X *)0x2, (struct Lisp_X *)NULL);
/* nil */
/* const lisp obj: nil */
/* BASE_EQ */
/* XLI */
/* XLI */
if ((long long)bitcast((void *)slot_5, unsigned long long) == (long long)bitcast((void *)(struct Lisp_X *)NULL, unsigned long long)) goto bb_1; else goto bb_2_cstrs_0;
bb_2:
/* LAP TAG 39 */
slot_4 = slot_5;
slot_5 = slot_0;
slot_6 = slot_1;
slot_7 = slot_2;
call_arr_0 = (struct Lisp_X *[4]) {slot_4, slot_5, slot_6, slot_7};
/* calling subr: apply */
slot_3 = freloc->R6170706c79_apply_0 ((long long)4, (&call_arr_0[(long long)0]));
return slot_3;
bb_1:
/* optimized out: (assume #s(comp-mvar (t) nil nil nil 23488113147254 5) (and #s(comp-mvar (t) nil nil nil 23488113117706 5) #s(comp-mvar nil (nil) nil nil nil nil))) */
/* cl--generic-cache-miss */
slot_5 = lisp_obj_2;
/* 3 */
slot_6 = (struct Lisp_X *)0xe;
/* 1 */
slot_7 = (struct Lisp_X *)0x6;
/* 2 */
slot_8 = (struct Lisp_X *)0xa;
/* 1 */
slot_9 = (struct Lisp_X *)0x6;
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113153936 10) append) */
/* #[385 "\x01\242\300=\205 */
slot_11 = lisp_obj_3;
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113160558 12) gethash) */
slot_13 = slot_1;
/* cl--generic-eql-used */
/* const lisp obj: cl--generic-eql-used */
/* calling subr: symbol-value */
slot_14 = freloc->R73796d626f6c2d76616c7565_symbol_value_0 (lisp_obj_1);
/* nil */
/* const lisp obj: nil */
/* calling subr: gethash */
slot_12 = freloc->R67657468617368_gethash_0 (slot_13, slot_14, (struct Lisp_X *)NULL);
/* #[385 "\x01\242\300=\205 */
/* const lisp obj: #[385 "\x01\242\300=\205 */
call_arr_1 = (struct Lisp_X *[2]) {lisp_obj_3, slot_12};
/* calling subr: funcall */
slot_11 = freloc->R66756e63616c6c_funcall_0 ((long long)2, (&call_arr_1[(long long)0]));
/* #[385 "\300\207" [(t)] 3 "
(fn TAG &rest _)"] */
slot_12 = lisp_obj_4;
/* nil */
slot_13 = (struct Lisp_X *)NULL;
/* #[385 "\300\207" [(t)] 3 "
(fn TAG &rest _)"] */
/* const lisp obj: #[385 "\300\207" [(t)] 3 "
(fn TAG &rest _)"] */
/* nil */
/* const lisp obj: nil */
call_arr_2 = (struct Lisp_X *[2]) {lisp_obj_4, (struct Lisp_X *)NULL};
/* calling subr: funcall */
slot_12 = freloc->R66756e63616c6c_funcall_0 ((long long)2, (&call_arr_2[(long long)0]));
call_arr_3 = (struct Lisp_X *[2]) {slot_11, slot_12};
/* calling subr: append */
slot_10 = freloc->R617070656e64_append_0 ((long long)2, (&call_arr_3[(long long)0]));
/* cl--generic-cache-miss */
/* const lisp obj: cl--generic-cache-miss */
/* 3 */
/* 1 */
/* 2 */
/* 1 */
call_arr_4 = (struct Lisp_X *[6]) {lisp_obj_2, (struct Lisp_X *)0xe, (struct Lisp_X *)0x6, (struct Lisp_X *)0xa, (struct Lisp_X *)0x6, slot_10};
/* calling subr: funcall */
slot_5 = freloc->R66756e63616c6c_funcall_0 ((long long)6, (&call_arr_4[(long long)0]));
/* optimized out: (setimm #s(comp-mvar (t) nil nil nil 23488113170614 6) puthash) */
slot_7 = slot_4;
slot_8 = slot_5;
/* 0 */
slot_9 = (struct Lisp_X *)0x2;
/* 0 */
/* calling subr: puthash */
(void)freloc->R70757468617368_puthash_0 (slot_7, slot_8, (struct Lisp_X *)0x2);
slot_6 = slot_5;
slot_5 = slot_6;
goto bb_2;
bb_2_cstrs_0:
goto bb_2;
}
extern struct Lisp_X *
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_1 (struct Lisp_X * par_0, struct Lisp_X * par_1, struct Lisp_X * par_2)
{
struct freloc_link_table * freloc;
struct Lisp_X * slot_0;
struct Lisp_X * slot_1;
struct Lisp_X * slot_2;
struct Lisp_X * slot_3;
struct Lisp_X * slot_4;
struct Lisp_X * slot_5;
struct Lisp_X * slot_6;
struct Lisp_X * slot_7;
struct Lisp_X * slot_8;
struct Lisp_X * slot_9;
struct comp_handler * c;
struct Lisp_X *[2] call_arr_5;
struct Lisp_X *[5] call_arr_6;
entry:
freloc = freloc_link_table;
/* Lisp function: nil */
slot_0 = par_0;
slot_1 = par_1;
slot_2 = par_2;
goto bb_0;
bb_0:
/* optimized out: (setimm #s(comp-mvar nil (make-hash-table) nil nil 23488113027538 3) make-hash-table) */
/* :test */
slot_4 = (struct Lisp_X *)0x22e0;
/* eql */
slot_5 = (struct Lisp_X *)0x6720;
/* :test */
/* const lisp obj: :test */
/* eql */
/* const lisp obj: eql */
call_arr_5 = (struct Lisp_X *[2]) {(struct Lisp_X *)0x22e0, (struct Lisp_X *)0x6720};
/* calling subr: make-hash-table */
slot_3 = freloc->R6d616b652d686173682d7461626c65_make_hash_table_0 ((long long)2, (&call_arr_5[(long long)0]));
/* optimized out: (setimm #s(comp-mvar nil (make-closure) nil nil 23488113034828 4) make-closure) */
/* #[642 "\305\306\x03\f\"\306\x01\300\"\206' */
slot_5 = lisp_obj_8;
slot_6 = slot_3;
slot_7 = slot_2;
slot_8 = slot_1;
slot_9 = slot_0;
/* #[642 "\305\306\x03\f\"\306\x01\300\"\206' */
/* const lisp obj: #[642 "\305\306\x03\f\"\306\x01\300\"\206' */
call_arr_6 = (struct Lisp_X *[5]) {lisp_obj_8, slot_6, slot_7, slot_8, slot_9};
/* calling subr: make-closure */
slot_4 = freloc->R6d616b652d636c6f73757265_make_closure_0 ((long long)5, (&call_arr_6[(long long)0]));
return slot_4;
}
extern struct Lisp_X *
F6661756c742d66756e6374696f6e_fault_function_0 ()
{
struct freloc_link_table * freloc;
struct Lisp_X * slot_0;
struct Lisp_X * slot_1;
struct Lisp_X * slot_2;
struct Lisp_X * slot_3;
struct comp_handler * c;
entry:
freloc = freloc_link_table;
/* Lisp function: fault-function */
goto bb_0;
bb_0:
/* [1 2 3] */
slot_0 = (struct Lisp_X *)&((char *)&lisp_data_3)[(unsigned long long)5];
/* [1 2 3] */
/* const lisp obj: [1 2 3] */
slot_1 = (struct Lisp_X *)&((char *)&lisp_data_3)[(unsigned long long)5];
/* 0 */
slot_2 = (struct Lisp_X *)0x2;
/* 5 */
slot_3 = (struct Lisp_X *)0x16;
/* [1 2 3] */
/* const lisp obj: [1 2 3] */
/* 0 */
/* 5 */
/* calling subr: aset */
(void)freloc->R61736574_aset_0 (((struct Lisp_X *)&((char *)&lisp_data_3)[(unsigned long long)5]), (struct Lisp_X *)0x2, (struct Lisp_X *)0x16);
/* [1 2 3] */
/* const lisp obj: [1 2 3] */
return (struct Lisp_X *)&((char *)&lisp_data_3)[(unsigned long long)5];
}
extern struct Lisp_X *
top_level_run (struct Lisp_X * par_0)
{
struct freloc_link_table * freloc;
struct Lisp_X * slot_0;
struct Lisp_X * slot_1;
struct comp_handler * c;
entry:
freloc = freloc_link_table;
/* Top level */
slot_0 = par_0;
/* fault-function */
/* const lisp obj: fault-function */
/* "F6661756c742d66756e6374696f6e_fault_function_0" */
/* const lisp obj: "F6661756c742d66756e6374696f6e_fault_function_0" */
/* 0 */
/* 0 */
/* (function nil (member [1 2 3])) */
/* const lisp obj: (function nil (member [1 2 3])) */
/* (2 nil nil) */
/* const lisp obj: (2 nil nil) */
/* calling subr: comp--register-subr */
slot_1 = freloc->R636f6d702d2d72656769737465722d73756272_comp__register_subr_0 (lisp_obj_10, ((struct Lisp_X *)&((char *)&lisp_data_6)[(unsigned long long)4]), (struct Lisp_X *)0x2, (struct Lisp_X *)0x2, ((struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)23])[(unsigned long long)3]), ((struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)27])[(unsigned long long)3]), slot_0);
/* (fault-function) */
/* const lisp obj: (fault-function) */
/* t */
/* const lisp obj: t */
/* calling subr: eval */
(void)freloc->R6576616c_eval_0 (((struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)24])[(unsigned long long)3]), (struct Lisp_X *)0x30);
return slot_1;
}
extern void
comp_init_objs (struct Lisp_X * comp_u)
{
struct freloc_link_table * freloc;
struct comp_Lisp_String str_0;
struct comp_Lisp_String str_1;
struct comp_Lisp_String str_2;
entry:
goto alloc_data;
alloc_data:
freloc = freloc_link_table;
goto lisp_obj_0;
init_vars:
lisp_obj_0 = lisp_data_8.contents[(long long)0];
lisp_obj_1 = lisp_data_8.contents[(long long)1];
lisp_obj_2 = lisp_data_8.contents[(long long)2];
lisp_obj_3 = lisp_data_8.contents[(long long)3];
lisp_obj_4 = lisp_data_8.contents[(long long)4];
lisp_obj_5 = lisp_data_8.contents[(long long)5];
lisp_obj_6 = lisp_data_8.contents[(long long)6];
lisp_obj_7 = lisp_data_8.contents[(long long)7];
lisp_obj_8 = lisp_data_8.contents[(long long)8];
lisp_obj_9 = lisp_data_8.contents[(long long)9];
lisp_obj_10 = lisp_data_8.contents[(long long)10];
goto final;
final:
cons_block_0.conses[(long long)19].u.s.car = lisp_obj_9;
cons_block_0.conses[(long long)21].u.s.car = (struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)19])[(unsigned long long)3];
cons_block_0.conses[(long long)22].u.s.u.cdr = (struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)21])[(unsigned long long)3];
cons_block_0.conses[(long long)23].u.s.u.cdr = (struct Lisp_X *)&((char *)&cons_block_0.conses[(long long)22])[(unsigned long long)3];
cons_block_0.conses[(long long)24].u.s.car = lisp_obj_10;
/* (function (t t &rest t) t) */
/* const lisp obj: (function (t t &rest t) t) */
lisp_data_4.aligned_subr.s.native_comp_u = comp_u;
/* (function (t t t) t) */
/* const lisp obj: (function (t t t) t) */
lisp_data_5.aligned_subr.s.native_comp_u = comp_u;
return;
lisp_obj_0:
/* gethash */
/* make_lisp_ptr (&lisp_data_9, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)0] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_9)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_1;
lisp_obj_1:
/* cl--generic-eql-used */
/* make_lisp_ptr (&lisp_data_10, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)1] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_10)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_2;
lisp_obj_2:
/* cl--generic-cache-miss */
/* make_lisp_ptr (&lisp_data_11, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)2] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_11)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_3;
lisp_obj_3:
/* #[385 "\x01\242\300=\205 */
str_0 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775746, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_7}}};
/* make_lisp_ptr (&str_0, Lisp_String) */
/* TAG_PTR */
/* calling subr: read */
lisp_data_8.contents[(long long)3] = freloc->R72656164_read_0 (((struct Lisp_X *)&((char *)&str_0)[(unsigned long long)4]));
goto lisp_obj_4;
lisp_obj_4:
/* #[385 "\300\207" [(t)] 3 "\n\n(fn TAG &rest _)"] */
str_1 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775760, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_8}}};
/* make_lisp_ptr (&str_1, Lisp_String) */
/* TAG_PTR */
/* calling subr: read */
lisp_data_8.contents[(long long)4] = freloc->R72656164_read_0 (((struct Lisp_X *)&((char *)&str_1)[(unsigned long long)4]));
goto lisp_obj_5;
lisp_obj_5:
/* puthash */
/* make_lisp_ptr (&lisp_data_12, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)5] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_12)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_6;
lisp_obj_6:
/* make-hash-table */
/* make_lisp_ptr (&lisp_data_13, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)6] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_13)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_7;
lisp_obj_7:
/* make-closure */
/* make_lisp_ptr (&lisp_data_14, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)7] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_14)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_8;
lisp_obj_8:
/* #[642 "\305\306\x03\f\"\306\x01\300\"\206' */
str_2 = (struct comp_Lisp_String) {.u=(union comp_string_u) {.s=(struct comp_string_u_s) {.size=(long long)-9223372036854775458, .size_byte=(long long)-3, .intervals=(struct comp_interval *)NULL, .data=(unsigned char *)&str_data_12}}};
/* make_lisp_ptr (&str_2, Lisp_String) */
/* TAG_PTR */
/* calling subr: read */
lisp_data_8.contents[(long long)8] = freloc->R72656164_read_0 (((struct Lisp_X *)&((char *)&str_2)[(unsigned long long)4]));
goto lisp_obj_9;
lisp_obj_9:
/* member */
/* make_lisp_ptr (&lisp_data_15, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)9] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_15)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto lisp_obj_10;
lisp_obj_10:
/* fault-function */
/* make_lisp_ptr (&lisp_data_16, Lisp_String) */
/* TAG_PTR */
/* calling subr: intern */
lisp_data_8.contents[(long long)10] = freloc->R696e7465726e_intern_0 (((struct Lisp_X *)&((char *)&lisp_data_16)[(unsigned long long)4]), (struct Lisp_X *)NULL);
goto init_vars;
}
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 512 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 16:37 ` vibhavp
@ 2022-11-20 16:54 ` Eli Zaretskii
2022-11-20 18:47 ` Stefan Monnier
2022-11-21 0:37 ` Po Lu
2 siblings, 0 replies; 17+ messages in thread
From: Eli Zaretskii @ 2022-11-20 16:54 UTC (permalink / raw)
To: vibhavp; +Cc: rms, akrl, luangruo, emacs-devel
> From: vibhavp@gmail.com
> Cc: akrl@sdf.org, luangruo@yahoo.com, emacs-devel@gnu.org
> Date: Sun, 20 Nov 2022 22:07:12 +0530
>
> The follow elisp snipper is an example of code that when compiled under
> this branch, crashes Emacs:
> ;; -*- lexical-binding: t; -*-
> (defun fault-function ()
> (let ((a [1 2 3]))
> (aset a 0 5)
> a))
>
> (fault-function)
Then I think Richard is right, and we shouldn't do this. It is OK to signal
an error in this case, but not crash the entire Emacs session.
> Therefore, `lisp_data_3' gets stored in .rodata (or .data.rel.ro),
> which causes the call to `aset' to trigger a SIGSEGV. This behaviour is
> documented by the Elisp reference manual, which states that self-
> evaluating forms are immutable, and changing then can read to
> crashes/undefined behaviour
> (https://www.gnu.org/software/emacs/manual/html_node/elisp/Self_002dEvaluating-Forms.html
> ).
The documentation says "don't do that!", but it's a far cry from an actual
crash.
Sorry, I'm against doing this in Emacs.
> The idea behind this patch is to replace the runtime initialization of
> lisp objects in the original bytecode constant vector with static
> variables, compiled into the eln itself. For now, it is able to do so
> for strings (without text properties), bare symbols in `lispsym',
> floats, vectors (and other psuedovectors in the future), and conses.
> Objects that require runtime initialization (for instance, interned
> symbols) are still created by calling their respective initialization
> functions, and are not able to be stored as consts.
I understand, but if the price is such crashes, it's a price I don't think
we want to pay.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 16:37 ` vibhavp
2022-11-20 16:54 ` Eli Zaretskii
@ 2022-11-20 18:47 ` Stefan Monnier
2022-11-21 15:59 ` vibhavp
2022-11-21 0:37 ` Po Lu
2 siblings, 1 reply; 17+ messages in thread
From: Stefan Monnier @ 2022-11-20 18:47 UTC (permalink / raw)
To: vibhavp; +Cc: Eli Zaretskii, rms, akrl, luangruo, emacs-devel
> The follow elisp snipper is an example of code that when compiled under
> this branch, crashes Emacs:
> ;; -*- lexical-binding: t; -*-
> (defun fault-function ()
> (let ((a [1 2 3]))
> (aset a 0 5)
> a))
I'm not deluded enough to think it's currently impossible to crash Emacs
with a well-crafted piece of ELisp code, but we do aim for that, so this
would be a significant step backwards :-(
Can we change your patch so that it makes the section writable rather
than ".rodata"?
Otherwise, we'd have to adjust the PURE_P tests so as to turn those
crashes into mere errors (I guess we could also try and use some kind of
SEGV signal handler for that purpose, but IIUC it can be tricky to do it
reliably/portably).
Stefan
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 16:37 ` vibhavp
2022-11-20 16:54 ` Eli Zaretskii
2022-11-20 18:47 ` Stefan Monnier
@ 2022-11-21 0:37 ` Po Lu
2 siblings, 0 replies; 17+ messages in thread
From: Po Lu @ 2022-11-21 0:37 UTC (permalink / raw)
To: vibhavp; +Cc: Eli Zaretskii, rms, akrl, emacs-devel
vibhavp@gmail.com writes:
> Therefore, `lisp_data_3' gets stored in .rodata (or .data.rel.ro),
> which causes the call to `aset' to trigger a SIGSEGV. This behaviour is
> documented by the Elisp reference manual, which states that self-
> evaluating forms are immutable, and changing then can read to
> crashes/undefined behaviour
> (https://www.gnu.org/software/emacs/manual/html_node/elisp/Self_002dEvaluating-Forms.html
> ).
And why exactly does it have to be put in .rodata? Why not .data? Lisp
code should never be able to crash Emacs, no matter how badly written it
is. While Emacs is currently not perfect, making it drastically less so
is not acceptable.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data.
2022-11-20 18:47 ` Stefan Monnier
@ 2022-11-21 15:59 ` vibhavp
0 siblings, 0 replies; 17+ messages in thread
From: vibhavp @ 2022-11-21 15:59 UTC (permalink / raw)
To: Stefan Monnier, Eli Zaretskii, Po Lu; +Cc: rms, akrl, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1672 bytes --]
On Sun, 2022-11-20 at 13:47 -0500, Stefan Monnier wrote:
> > The follow elisp snipper is an example of code that when compiled
> > under
> > this branch, crashes Emacs:
> > ;; -*- lexical-binding: t; -*-
> > (defun fault-function ()
> > (let ((a [1 2 3]))
> > (aset a 0 5)
> > a))
>
> I'm not deluded enough to think it's currently impossible to crash
> Emacs
> with a well-crafted piece of ELisp code, but we do aim for that, so
> this
> would be a significant step backwards :-(
>
> Can we change your patch so that it makes the section writable rather
> than ".rodata"?
>
Indeed, making static lisp data variables constants was an afterthought
before I pushed the first draft. Currently, it's line 2889 in
src/comp.c@320e9ab048. Removing the call to `gcc_jit_type_get_const'
should make them writeable as usual.
However, as part of emitting the lisp data as read only, I also made it
so that such objects have their GC mark bit set, so that GC does not
crash Emacs as it attemps to mark these objects, skipping them instead.
This property can therefore be used to check whether an object being
modified is mutable or not à la `CHECK_IMPURE'. A more general variant
of the macro, `CHECK_MUTABLE' could be defined as
(PURE_P (ptr) || object_marked_p (ptr) ? pure_wire_error (obj) : (void)
0)
This lets us keep them as read-only and preventing illegal
modifications resulting in a crash. If this sounds good, I try adding
these changes soon, otherwise remove the call to
`gcc_jit_type_get_const'.
Best,
Vibhav
--
Vibhav Pant
vibhavp@gmail.com
GPG: 7ED1 D48C 513C A024 BE3A 785F E3FB 28CB 6AB5 9598
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 512 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2022-11-21 15:59 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <166844679660.19180.3470364122428955894@vcs2.savannah.gnu.org>
[not found] ` <20221114172637.78215C0E4C7@vcs2.savannah.gnu.org>
2022-11-15 0:30 ` scratch/comp-static-data 5aa3db2f11: comp: Add support for compiling elisp constants into static data Po Lu
2022-11-15 9:06 ` Andrea Corallo
2022-11-16 19:36 ` Vibhav Pant
2022-11-17 19:59 ` Andrea Corallo
2022-11-17 4:32 ` Richard Stallman
2022-11-17 8:46 ` Vibhav Pant
2022-11-18 5:07 ` Richard Stallman
2022-11-18 8:28 ` Eli Zaretskii
2022-11-20 1:15 ` Richard Stallman
2022-11-20 7:37 ` Eli Zaretskii
2022-11-20 16:37 ` vibhavp
2022-11-20 16:54 ` Eli Zaretskii
2022-11-20 18:47 ` Stefan Monnier
2022-11-21 15:59 ` vibhavp
2022-11-21 0:37 ` Po Lu
2022-11-16 19:26 ` Vibhav Pant
2022-11-17 4:51 ` Po Lu
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).