<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/src/comp.c, branch feature/igc</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Revert "Alternative implementation of constants in .eln files."</title>
<updated>2026-01-17T15:18:52+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2026-01-17T15:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4a25f8ccc234eba81a4e59353ca17786b4b0e5f9'/>
<id>4a25f8ccc234eba81a4e59353ca17786b4b0e5f9</id>
<content type='text'>
This reverts commit f7052a107c64471cd313a3eb4e4e9c03ded98b10.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit f7052a107c64471cd313a3eb4e4e9c03ded98b10.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' into feature/igc</title>
<updated>2026-01-02T20:01:55+00:00</updated>
<author>
<name>Helmut Eller</name>
</author>
<published>2026-01-02T20:01:55+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e049ec683d3e504e2ae36b37500405b37a162786'/>
<id>e049ec683d3e504e2ae36b37500405b37a162786</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2026 to copyright years.</title>
<updated>2026-01-01T12:54:34+00:00</updated>
<author>
<name>Sean Whitton</name>
</author>
<published>2026-01-01T12:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c31f6adc31d48076c63ad82b83b2970e1b0d7b9b'/>
<id>c31f6adc31d48076c63ad82b83b2970e1b0d7b9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>* src/comp.c (emit_EQ): Make a declaration an assignment (bug#79722)</title>
<updated>2025-12-07T02:43:51+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2025-12-06T14:21:13+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=2d459d8377a2604a6ee5abc3531c9776eadc008b'/>
<id>2d459d8377a2604a6ee5abc3531c9776eadc008b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>* Have comp do not use builtin_expect with libgccjit &lt; 14 (bug#79722)</title>
<updated>2025-12-04T16:05:23+00:00</updated>
<author>
<name>Andrea Corallo</name>
</author>
<published>2025-12-04T15:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=d52bf63de2b39b4e152a157f124d27604421d9a6'/>
<id>d52bf63de2b39b4e152a157f124d27604421d9a6</id>
<content type='text'>
* src/comp.c (emit_EQ): Do not use '__builtin_expect' with
libgccjit &lt; 14.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/comp.c (emit_EQ): Do not use '__builtin_expect' with
libgccjit &lt; 14.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Fix comments and whitespace of a recent changeset</title>
<updated>2025-12-04T11:56:20+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-12-04T11:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5b56436f358901cfb4dad730fca4c4308643a023'/>
<id>5b56436f358901cfb4dad730fca4c4308643a023</id>
<content type='text'>
* src/pdumper.c (dump_do_dump_relocation):
* src/comp.h:
* src/comp.c (obj_to_reloc, emit_static_object)
(declare_imported_data_relocs, check_abi_version, setup_constants)
(load_comp_unit):  Fix comments and whitespace.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/pdumper.c (dump_do_dump_relocation):
* src/comp.h:
* src/comp.c (obj_to_reloc, emit_static_object)
(declare_imported_data_relocs, check_abi_version, setup_constants)
(load_comp_unit):  Fix comments and whitespace.
</pre>
</div>
</content>
</entry>
<entry>
<title>Unbreak the MS-Windows build broken by last changes</title>
<updated>2025-12-04T11:42:42+00:00</updated>
<author>
<name>Kien Nguyen</name>
</author>
<published>2025-12-04T04:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=40a68167e73e794739a96981742258e9cbd822be'/>
<id>40a68167e73e794739a96981742258e9cbd822be</id>
<content type='text'>
* src/comp.c (gcc_jit_context_zero) [WINDOWSNT]: Define and define
the prototype of its function pointer.
(init_gccjit_functions) [WINDOWSNT]: Load 'gcc_jit_context_zero
from the DLL.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/comp.c (gcc_jit_context_zero) [WINDOWSNT]: Define and define
the prototype of its function pointer.
(init_gccjit_functions) [WINDOWSNT]: Load 'gcc_jit_context_zero
from the DLL.
</pre>
</div>
</content>
</entry>
<entry>
<title>Alternative implementation of constants in .eln files.</title>
<updated>2025-12-03T15:44:01+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2025-10-17T07:04:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f7052a107c64471cd313a3eb4e4e9c03ded98b10'/>
<id>f7052a107c64471cd313a3eb4e4e9c03ded98b10</id>
<content type='text'>
See the comment at the start of comp.h about this.

* src/comp.c (ABI_VERSION): Make it an integer, and increment.
(ABI_VERSION_SYM): New.
(hash_native_abi): Use it.
(emit_abi_version, check_abi_version): New functions.
(Fcomp__compile_ctxt_to_file0): Emit ABI_VERSION_SYM.
(load_comp_unit): Check ABI version.

* src/comp.c (comp_t): Add n_data_relocs and
n_data_relocs_ephemeral.
(obj_to_reloc): Use them, and handle case of using pointers to
constants.
(emit_static_object): Add FIXMEs.
(declare_imported_data_relocs): Handle case of pointers to
constants vectors differently.
(declare_imported_data): Set comp's number of constants.
(setup_constants): New function.
(load_comp_unit): Don't create roots, pin instead. Don't rely on
tricks to protect ephemeral vector.
(Fnative_elisp_load): Init pins.

* src/comp.h (USE_POINTER_TO_CONSTANT_VECTOR): New. If defined,
don't use vectors.
(Lisp_Native_Comp_Unit): Define data_relocs and data_eph_relocs
depending on USE_POINTER_TO_CONSTANT_VECTOR. Add pin ids

* src/igc.c (unpin): Add an eassert.
(root_create_exact_ptr, igc_root_create_exact_ptr):
Return root list node.
(maybe_destroy_rootI: Removed.
(igc_pin, igc_unpin): New functions.
(igc_root_destroy_comp_unit): Removed.
(igc_init_pin, igc_unpin_comp_unit): New function.

* src/igc.h: Declare new functions, remove old ones.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See the comment at the start of comp.h about this.

* src/comp.c (ABI_VERSION): Make it an integer, and increment.
(ABI_VERSION_SYM): New.
(hash_native_abi): Use it.
(emit_abi_version, check_abi_version): New functions.
(Fcomp__compile_ctxt_to_file0): Emit ABI_VERSION_SYM.
(load_comp_unit): Check ABI version.

* src/comp.c (comp_t): Add n_data_relocs and
n_data_relocs_ephemeral.
(obj_to_reloc): Use them, and handle case of using pointers to
constants.
(emit_static_object): Add FIXMEs.
(declare_imported_data_relocs): Handle case of pointers to
constants vectors differently.
(declare_imported_data): Set comp's number of constants.
(setup_constants): New function.
(load_comp_unit): Don't create roots, pin instead. Don't rely on
tricks to protect ephemeral vector.
(Fnative_elisp_load): Init pins.

* src/comp.h (USE_POINTER_TO_CONSTANT_VECTOR): New. If defined,
don't use vectors.
(Lisp_Native_Comp_Unit): Define data_relocs and data_eph_relocs
depending on USE_POINTER_TO_CONSTANT_VECTOR. Add pin ids

* src/igc.c (unpin): Add an eassert.
(root_create_exact_ptr, igc_root_create_exact_ptr):
Return root list node.
(maybe_destroy_rootI: Removed.
(igc_pin, igc_unpin): New functions.
(igc_root_destroy_comp_unit): Removed.
(igc_init_pin, igc_unpin_comp_unit): New function.

* src/igc.h: Declare new functions, remove old ones.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Alternative implementation of constants in .eln files"</title>
<updated>2025-11-10T11:16:04+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2025-11-10T11:16:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=605c9a4e41a36dea6d778fcf4cb84af62644849f'/>
<id>605c9a4e41a36dea6d778fcf4cb84af62644849f</id>
<content type='text'>
This reverts commit f996f5512c774c45a5bd2597df9c4c8560c202ba
because it is missing some important other changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit f996f5512c774c45a5bd2597df9c4c8560c202ba
because it is missing some important other changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Alternative implementation of constants in .eln files</title>
<updated>2025-11-10T10:21:50+00:00</updated>
<author>
<name>Gerd Möllmann</name>
</author>
<published>2025-10-17T07:04:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f996f5512c774c45a5bd2597df9c4c8560c202ba'/>
<id>f996f5512c774c45a5bd2597df9c4c8560c202ba</id>
<content type='text'>
* src/comp.h (USE_POINTER_TO_CONSTANT_VECTOR): If defined, don't
use vectors.
(Lisp_Native_Comp_Unit): Make data_relocs and data_eph_relocs
pointers to Lisp_Object pointers.

* src/comp.c (ABI_VERSION): Increase to 13.
(check_comp_unit_relocs): Don't check if pointers are used.
* src/comp.c (load_comp_unit, Fcomp__register_lambda): Handle
case that constant vectors are pointers.
* src/comp.c (emit_static_object): Add some FIXME comments.
(declare_imported_data_relocs): Handle case of pointers to
constants vectors differently.
* src/comp.c (declare_imported_data_relocs): Make array elemen
type volatile.
* src/comp.c (comp_t): Add n_data_relocs and
n_data_relocs_ephemeral.
(obj_to_reloc): Set array length correctly.
(declare_imported_data_relocs): Return # of constants.
(declare_imported_data): Set comp's number of constants.

* src/igc.c (root_create_exact_ptr, igc_root_create_exact_ptr):
Return root list node.
* src/igc.h (igc_root_create_exact_ptr): Change return type.

* src/pdumper.c (dump_do_dump_relocation): Don't do fixup if
using pointers to constants vectors.

* src/comp.h (struct Lisp_Native_Comp_Unit): Add member
data_eph_vec.
* src/comp.c (load_comp_unit): Use data_eph_vec to protect the
eph constants.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/comp.h (USE_POINTER_TO_CONSTANT_VECTOR): If defined, don't
use vectors.
(Lisp_Native_Comp_Unit): Make data_relocs and data_eph_relocs
pointers to Lisp_Object pointers.

* src/comp.c (ABI_VERSION): Increase to 13.
(check_comp_unit_relocs): Don't check if pointers are used.
* src/comp.c (load_comp_unit, Fcomp__register_lambda): Handle
case that constant vectors are pointers.
* src/comp.c (emit_static_object): Add some FIXME comments.
(declare_imported_data_relocs): Handle case of pointers to
constants vectors differently.
* src/comp.c (declare_imported_data_relocs): Make array elemen
type volatile.
* src/comp.c (comp_t): Add n_data_relocs and
n_data_relocs_ephemeral.
(obj_to_reloc): Set array length correctly.
(declare_imported_data_relocs): Return # of constants.
(declare_imported_data): Set comp's number of constants.

* src/igc.c (root_create_exact_ptr, igc_root_create_exact_ptr):
Return root list node.
* src/igc.h (igc_root_create_exact_ptr): Change return type.

* src/pdumper.c (dump_do_dump_relocation): Don't do fixup if
using pointers to constants vectors.

* src/comp.h (struct Lisp_Native_Comp_Unit): Add member
data_eph_vec.
* src/comp.c (load_comp_unit): Use data_eph_vec to protect the
eph constants.
</pre>
</div>
</content>
</entry>
</feed>
