aboutsummaryrefslogtreecommitdiffstats
path: root/src/pdumper.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove struct Lisp_ObjfwdHelmut Eller2026-02-121-3/+3
| | | | | | | | | | * src/lisp.h (struct Lisp_Objfwd): Deleted. (struct Lisp_Fwd): Replace it with objvar field. (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_LISP_NOPROX): Use the field. * src/lread.c (defvar_lisp): Updated as needed. * src/pdumper.c (dump_field_fwd): Use the field. * src/data.c (XOBJVAR): Renamed and updated from XOBJFWD. (do_symval_forwarding, store_symval_forwarding): Use it.
* Remove struct Lisp_BoolfwdHelmut Eller2026-02-121-2/+2
| | | | | | | | | * src/lisp.h (struct Lisp Boolfwd): Deleted (struct Lisp_Fwd): Replaced it with a boolvar field. (DEFVAR_BOOL): Update. * src/data.c (XBOOLVAR): Renamed from XBOOLFWD. (do_symval_forwarding, store_symval_forwarding): Use it. * src/pdumper.c (dump_field_fwd): Use boolvar field.
* Remove struct Lisp_IntfwdHelmut Eller2026-02-121-2/+2
| | | | | | | | | | It was a struct with a single field. * src/lisp.h (struct Lisp_Intfwd): Deleted. (struct Lisp_Fwd): Add an intvar field instead. (DEFVAR_INT): Update accordingly. * src/data.c (XINTVAR): Updated and renamed from XFIXNUMFWD. (do_symval_forwarding, store_symval_forwarding): Use it.
* Introduce a struct Lisp_FwdHelmut Eller2026-02-121-87/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This contains the type and an union of Lisp_Objfwd, Lisp_Intfwd etc. lispfwd is now a pointer to a struct Lisp_Fwd; the void *fwdptr field is gone. * src/lisp.h (struct Lisp_Fwd): New. (Lisp_Intfwd, Lisp_Boolfwd, Lisp_Objfwd, Lisp_Buffer_Objfwd) (Lisp_Kboard_Objfwd): The type is in in Lisp_Fwd. (lispwfd): Is now a pointer to struct Lisp_Fwd. (SYMBOL_BLV, SET_SYMBOL_FWD, XFWDTYPE, BUFFER_OBJFWDP): Update accordingly. (defvar_lisp, defvar_lisp_nopro, defvar_bool, defvar_int) (defvar_kboard): These all take now a Lisp_Fwd. (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT) (DEFVAR_KBOARD): Update for new types. * src/lread.c (defvar_int, defvar_bool, defvar_lisp_nopro) (defvar_lisp, defvar_kboard): Update for new types. * src/pdumper.c (dump_field_fwd, dump_blv): Update accordingly. (dump_fwd_int, dump_fwd_bool, dump_fwd_obj, dump_fwd_buffer_obj) (dump_fwd): Deleted. * src/buffer.c (DEFVAR_PER_BUFFER, defvar_per_buffer, buffer_local_value) (set_buffer_internal_1): Update accordingly for new types. * src/data.c (XBOOLFWD, XKBOARD_OBJFWD, XFIXNUMFWD, XOBJFWD, boundp) (store_symval_forwarding, swap_in_global_binding) (swap_in_symval_forwarding, find_symbol_value, set_internal) (default_value, set_default_internal, make_blv, Fmake_local_variable): Update accordingly.
* Make Lisp_Buffer_Objfwd objects constHelmut Eller2026-02-121-16/+5
| | | | | | | | | | | | | The predicate field is always a builtin symbol. That means we know the bit pattern at compile-time and they don't change at runtime. * src/buffer.c (DEFVAR_PER_BUFFER): Create a const struct. (defvar_per_buffer): Remove predicate and address arguments. (syms_of_buffer): Instead of &BVAR (current_buffer, foo) use a plain foo as argument to DEFVAR_PER_BUFFER. * src/pdumper.c (dump_field_fwd): No more relocs needed for Lisp_Fwd_Buffer_Obj and we can't apply them in the .rodata section.
* Don't dump lispfwd objectsHelmut Eller2026-02-121-22/+47
| | | | | | | | | | The forwarding structs already exist in the data or bss section. They are all created with DEFVAR_INT and similar macros. Instead of creating new structs in the dump, create relocs to the data section. * src/pdumper.c (dump_field_fwd): New. (dump_blv, dump_symbol): Use it. (dump_pre_dump_symbol): Don't dump fwd objects.
* ; * src/pdumper.c (dump_buffer): Update hash.Basil L. Contovounesios2026-01-241-1/+1
| | | | | This follows the commit of 2026-01-24 "Support cons cell for 'line-spacing'".
* Don’t use C basename functionPaul Eggert2026-01-191-1/+1
| | | | | | | | | * src/pdumper.c (pdumper_set_emacs_execdir): Don’t use basename; simply use the pointer we already have. If we ever need a basename-like function in the future, we should use Gnulib’s basename-lgpl module, as POSIX basename modifies its argument string and is incompatible with glibc/Android basename; see <https://www.gnu.org/software/gnulib/manual/html_node/basename.html>.
* NS: Fix startup with HAVE_NATIVE_COMP && !NS_SELF_CONTAINEDYavor Doganov2026-01-171-5/+19
| | | | | | | * src/pdumper.c (pdumper_set_emacs_execdir): Add workaround for !NS_SELF_CONTAINED so that launching Emacs from the app bundle works flawlessly when built with native compilation. * configure.ac: Define BINDIR. (Bug#80094)
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* New commands to split and merge framesPranshu Sharma2025-10-231-1/+1
| | | | * lisp/window-x.el (merge-frames, split-frame): New commands.
* * src/pdumper.c (dump_queue_dequeue): Avoid -Wgnu-folding-constant.Sahil Kang2025-10-111-1/+2
| | | | | Fixes bug#79581 Copyright-paperwork-exempt: yes
* Port better to Linux with 1 MiB pagesPaul Eggert2025-08-021-1/+1
| | | | | | * src/lisp.h: Include <sys-limits.h>. (MAX_RW_COUNT): Remove, as it is the same thing as sys-limits.h’s SYS_BUFSIZE_MAX. All uses replaced by SYS_BUFSIZE_MAX.
* ; * src/pdumper.c (dump_buffer): Update HASH_buffer.Eli Zaretskii2025-07-281-1/+1
|
* Refactor by coalescing MAX_RW_COUNT definitionsPaul Eggert2025-07-211-4/+1
| | | | | | | | * src/emacs.c (read_full): Simplify by assuming MAX_RW_COUNT is defined. * src/lisp.h (MAX_RW_COUNT): Move here from src/sysdep.c. * src/pdumper.c (dump_read_all): Use MAX_RW_COUNT rather than defining our own equivalent.
* ; * src/pdumper.c (dump_buffer): Update hash.Yuan Fu2025-05-071-1/+1
|
* Prevent unrelocated symbols with position from being dumpedPo Lu2025-04-171-3/+9
| | | | | | | * src/pdumper.c (dump_builtin_symbol_p): Test BARE_SYMBOL_P \(object) rather than SYMBOLP to avoid depending on the value of symbols_with_pos_enabled or depositing non-relocated references to vectorlikes in the dump file. Clarify commentary.
* Do not redundantly dump constant forwarding objectsPo Lu2025-03-291-66/+52
| | | | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj): Do not redundantly dump constant forwarding descriptors; restrict to dumping the objects being forwarded to. (dump_fwd_buffer_obj): Copy from the dump file into bss rather than load buffer forwarding descriptors from the dump file itself. (dump_fwd_kboard_obj): Delete function. (dump_fwd): Don't return offset of dumped objects. (dump_blv): Adjust correspondingly. (dump_pre_dump_symbol): Improve documentation. Record offset of forwarding objects in relation to `emacs_basis' rather than the dump file. (dump_symbol): Restore forwarding descriptors to their original values as static variables in Emacs. This reduces the size of dump files by an insignificant 2kb but facilitates certain kinds of watchpoints on platforms where ASLR cannot be disabled, e.g., Android.
* Reenable mmap-based dump allocation on wide int configurationsPo Lu2025-03-101-1/+1
| | | | | * src/pdumper.c (VM_SUPPORTED): Don't define to 0 when !USE_LSB_TAG if WIDE_EMACS_INT.
* ; Correct typos in commentary and error messagesPo Lu2025-03-101-1/+1
| | | | | | | * src/lisp.h (USE_LSB_TAG): * src/pdumper.c (pdumper_load): Correct typos in commentary and error messages.
* Re-port to 32-bit systems without alignment primitivesPo Lu2025-03-091-58/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG): New variables. (emacs_cv_alignas_unavailable): Define if alignas and structure alignment primitives are unavailable. In such an environment, the MSB tagging scheme must be enabled, as must the GNU malloc. * msdos/sed2v2.inp: Adjust correspondingly. * src/alloc.c (union emacs_align_type): Remove types which contain flexible array members. The address of a field subsequent to an aggregate with flexible array members cannot validly be taken. (mark_memory) [!USE_LSB_TAG && !WIDE_EMACS_INT]: Strip type bits before scanning memory. * src/emacs.c (main): * src/eval.c (Fautoload_do_load): * src/fns.c (Frequire): Rename a number of illogically named fields. * src/lisp.h (ALIGNOF_EMACS_INT): Define to the natural alignment of EMACS_INT. (IDEAL_GCALIGNMENT): New macro. (USE_LSB_TAG): Disable if no alignment specifiers are available, WIDE_EMACS_INT is undefined, and the natural alignment of EMACS_INT falls short of LSB tagging's requirements. (gflags): Rename illogically named fields and don't define them as bitfields, which runs afoul of certain compiler issues. (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p) (dumped_with_pdumper_p): Adjust accordingly. * src/pdumper.c (VM_SUPPORTED): Define to 0 when !USE_LSB_TAG. It is better to read dump files into the heap by hand than to be supplied with an address that is not representable. (_dump_object_start_pseudovector): Rename to dump_object_start_pseudovector, to avoid encroaching on reserved names. (START_DUMP_PVEC): Adjust correspondingly. (dump_mmap_contiguous_vm): Preserve errno around failure cleanup. (dump_bitset_bit_set_p): Work around certain compiler issues. (pdumper_load) [!USE_LSB_TAG]: Reject dump file allocations that are not representable as Lisp_Objects. Tested on i386-unknown-solaris2.10, sparc-sun-solaris2.10.
* ; Enable pdumper on some buggy versions of Sun CPo Lu2025-03-081-9/+15
| | | | | | | | * src/pdumper.c (dump_sort_copied_objects, drain_reloc_list) (dump_do_fixups, dump_do_dump_relocation): Do not expand Fnreverse multiple times in CALLN. Sun C 5.12 evaluates the arguments to array initializers to which it expands, which clobbers the lists being reversed.
* ; Grammar fixes for "native-compiled"Stefan Kangas2025-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Prefer "native-compiled" to "native compiled". The adjective "native-compiled" with the hyphen is generally more consistent with the typical pattern in English, especially when the compound modifies a noun (e.g., "native-compiled code"). 2. Prefer "natively compiled" to "natively-compiled". The adverb "natively" modifies "compiled", and it is standard not to hyphenate an adverb + adjective combination when the adverb ends in -ly (e.g., "code that is natively compiled"). For example, note that we say "high-speed internet" but "highly performant code". * Makefile.in (dest): * configure.ac (HAVE_NATIVE_COMP): * doc/emacs/building.texi (Lisp Libraries): * doc/lispref/compile.texi (Native Compilation) (Native-Compilation Functions, Native-Compilation Variables): * doc/lispref/functions.texi (What Is a Function, Declare Form): * doc/lispref/loading.texi (How Programs Do Loading, Library Search): * etc/NEWS: * etc/NEWS.28: * etc/NEWS.29: * etc/NEWS.30: * lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions) (comp-function-type-spec): * lisp/emacs-lisp/comp-cstr.el: * lisp/subr.el (locate-eln-file): * src/comp.c (SETJMP_NAME, syms_of_comp): * src/data.c (Fsubrp, Fnative_comp_function_p, Fsubr_native_lambda_list): * src/lread.c (Fload): * src/pdumper.c (dump_do_dump_relocation): * test/src/comp-tests.el (lambda-return2): Avoid grammatically incorrect variations on "natively compiled" and "native-compiled". (Bug#56727)
* ; Fix typosStefan Kangas2025-02-221-1/+1
|
* ; * src/pdumper.c (Fdump_emacs_portable): Fix typo in comment.Po Lu2025-02-201-1/+1
|
* Port to modern GCC and pdumper on MS-DOSPo Lu2025-02-201-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config.bat (mvOk): Protoize. (djgppOk): Include sys/version.h for _DJGPP_MINOR. * lisp/loadup.el: If system-type is ms-dos, dump bootstrap-emacs as b-emacs.dmp. * msdos/INSTALL: Document new versions of tools that have been verified successfully to compile Emacs. * msdos/emacs.djl: New linker script that arranges to link symbols in `.subrs' in a contiguous part of data, as the DJGPP runtime appears to treat any non-data and non-text section as allocatable. * msdos/mainmake.v2 (install): Install emacs.dmp alongside emacs.exe. * msdos/sed1v2.inp (CFLAGS): Define to -O2 -g3. (LDFLAGS): Provide the said linker script. (HAVE_PDUMPER): Define to yes. (UNEXEC_OBJ, PAXCTL_dumped, PAXCTL_notdumped): Delete. (DUMPING): Set to pdumper. (MAKE_PDUMPER_FINGERPRINT): Don't erase this variable. Don't stubify or set minstack. Remove native-comp specific directives. Don't remove temacs prior to copying and replace `pdmp' extension with DOS-conformant `dmp'. * msdos/sed2v2.inp (HAVE_UNEXEC): Remove definition. (HAVE_PDUMPER): Define to 1. * msdos/sed6.inp (top_srcdir): Define appropriately. * msdos/sedlibmk.inp (HAVE_BLKCNT_T): Define to 1. * src/emacs.c (load_pdump) [MSDOS]: Use `dmp' suffix. * src/pdumper.c (Fdump_emacs_portable) [MSDOS]: Replace ".pdmp" suffixes with ".dmp".
* ; src/pdumper.c (dump_hash_table): Bump CHECK_STRUCTS hash.Pip Cet2025-02-011-1/+1
|
* Use #$ for lambda fixups in native compilation data vectorsPip Cet2025-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | The "#$" syntax is recognized by Fread, which substitutes Vload_file_name in its place. If Vload_file_name is bound appropriately, no other value can produce an object EQ to the one produced by "#$". We use this to check the data vector for entries that we know should have been initialized: if the value is still equal to what we bound Vload_file_name to when it was read, it wasn't initialized, and we abort. * lisp/emacs-lisp/comp.el (comp--#$): New defvar. (comp--finalize-container): Use it. * src/comp.c (ABI_VERSION): Bump. (emit_static_object): Ensure 'comp--#$' prints as "#$". (load_static_obj): Ensure '#$' reads as Vcomp__hashdollar. (check_comp_unit_relocs): Adjust assertion. (syms_of_comp): Define 'comp--#$'. * src/pdumper.c (dump_do_dump_relocation): Adjust assertion.
* Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas2025-02-011-14/+4
|\
| * Use '--lambda-fixup' as native compiler fixup symbol for lambdasAndrea Corallo2024-12-181-1/+1
| | | | | | | | | | | | * src/comp.c (check_comp_unit_relocs, syms_of_comp): Rename 'Qlambda_fixup' to 'Q__lambda_fixup'. * src/pdumper.c (dump_do_dump_relocation): Likewise.
| * Update pdumper hashesPip Cet2024-12-121-2/+2
| | | | | | | | * src/pdumper.c (dump_symbol, dump_hash_table): Update hashes.
| * Pure storage removal: Adjust nativecomp codePip Cet2024-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/comp.el (comp-curr-allocation-class, comp-ctxt) (comp--emit-for-top-level, comp--emit-lambda-for-top-level) (comp--finalize-relocs): Remove 'd-impure' allocation class. * src/comp.c (PURE_RELOC_SYM, DATA_RELOC_IMPURE_SYM) (TEXT_DATA_RELOC_IMPURE_SYM): Remove definitions. (comp_t): Remove 'pure_ptr', 'check_impure', 'data_relocs_impure', 'd_impure_idx'. (helper_link_table): Remove 'pure_write_error'. (obj_to_reloc): Adjust to removal of 'data_relocs_impure'. (emit_PURE_P): Remove function. (declare_imported_data, declare_runtime_imported_funcs) (emit_ctxt_code): Adjust to removed fields. (define_setcar_setcdr): Don't call 'CHECK_IMPURE'. (define_CHECK_IMPURE): Remove function. (Fcomp__compile_ctxt_to_file0, check_comp_unit_relocs, load_comp_unit) (Fcomp__register_lambda): Adjust to removed allocation class 'd-impure'. (syms_of_comp): Don't define 'd-impure'. * src/comp.h (struct Lisp_Native_Comp_Unit): Drop support for allocation class 'd-impure'. * src/lisp.h (allocate_native_comp_unit): * src/pdumper.c (dump_do_dump_relocation): Adjust to struct change.
| * Pure storage removal: Remove purecopy hash table flagPip Cet2024-12-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-liqsp/comp.el (comp--jump-table-optimizable): Adjust comment. * src/category.c (hash_get_category_set): * src/emacs-module.c (syms_of_module): * src/fns.c (make_hash_table): Remove 'purecopy' flag and update docstring. (Fmake_hash_table): Ignore ':purecopy' argument. * src/frame.c (make_frame): * src/image.c (xpm_make_color_table_h): * src/lisp.h (struct Lisp_Hash_Table): Drop 'purecopy' flag. * src/pdumper.c (dump_hash_table): Don't dump 'purecopy' flag. * src/print.c (print_object): Don't print 'purecopy' flag * src/json.c (json_parse_object): * src/lread.c (readevalloop, read_internal_start): * src/pgtkterm.c (syms_of_pgtkterm): * src/profiler.c (export_log): * src/xfaces.c (syms_of_xfaces): * src/xterm.c (syms_of_xterm): Adjust calls to 'make_hash_table'.
| * Pure storage removal: Remove support for pinned objectsPip Cet2024-12-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (symbol_block_pinned): Remove variable. (init_symbol): Don't initialize 'pinned flag'. (pinned_objects): Remove variable. (mark_pinned_objects, mark_pinned_symbols): Remove functions. (garbage_collect): Don't call 'mark_pinned_objects', 'mark_pinned_symbols'. * src/lisp.h (struct Lisp_Symbol): Remove 'pinned' flag. * src/pdumper.c (dump_symbol): Remove 'pinned' flag from dump.
| * Pure storage removal: Replace calls to removed functionsPip Cet2024-12-121-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (string_bytes, pin_string, valid_lisp_object_p) (process_mark_stack, survives_gc_p, syms_of_alloc): * src/androidterm.c (android_term_init): Replace call to 'build_pure_c_string'. * src/buffer.c (init_buffer_once, syms_of_buffer): * src/bytecode.c (exec_byte_code): * src/callint.c (syms_of_callint): * src/callproc.c (syms_of_callproc): * src/category.c (Fdefine_category): * src/coding.c (syms_of_coding): * src/comp.c (Fcomp__compile_ctxt_to_file0) (maybe_defer_native_compilation, syms_of_comp): * src/data.c (Fsetcar, Fsetcdr, Fdefalias, Faset, syms_of_data): * src/dbusbind.c (syms_of_dbusbind): * src/doc.c (Fsnarf_documentation): * src/emacs-module.c (syms_of_module): * src/eval.c (Finternal__define_uninitialized_variable) (Fdefconst_1, define_error, syms_of_eval): * src/fileio.c (syms_of_fileio): * src/fns.c (Ffillarray, Fclear_string, check_mutable_hash_table): * src/fontset.c (syms_of_fontset): * src/frame.c (make_initial_frame): * src/haikufns.c (syms_of_haikufns): * src/intervals.c (create_root_interval): * src/keyboard.c (syms_of_keyboard): * src/keymap.c (Fmake_sparse_keymap, Fset_keymap_parent) (store_in_keymap, syms_of_keymap): * src/lisp.h: * src/lread.c (Fload, read0, intern_c_string_1, define_symbol) (Fintern, defsubr, syms_of_lread): * src/pdumper.c (Fdump_emacs_portable): * src/pgtkfns.c (syms_of_pgtkfns): * src/pgtkterm.c (syms_of_pgtkterm): * src/process.c (syms_of_process): * src/search.c (syms_of_search): * src/sqlite.c (syms_of_sqlite): * src/syntax.c (syms_of_syntax): * src/treesit.c (syms_of_treesit): * src/w32fns.c (syms_of_w32fns): * src/xdisp.c (syms_of_xdisp): * src/xfaces.c (syms_of_xfaces): * src/xfns.c (syms_of_xfns): * src/xftfont.c (syms_of_xftfont): * src/xterm.c (syms_of_xterm): Remove calls to 'PURE_P', 'CHECK_IMPURE', 'Fpurecopy', and replace calls to 'build_pure_c_string', 'pure_list', 'pure_listn', etc., by impure equivalents.
| * Unexec removal: Main partPip Cet2024-12-121-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove unexec-specific parts. (EMACS_CONFIG_FEATURES): Always report that we do not have the UNEXEC feature. (AC_ECHO): No longer display a line about the unexec feature. * lisp/loadup.el: * lisp/startup.el: Remove unexec-specific code. * src/Makefile.in (base_obj): Drop 'UNEXEC_OBJ'. * src/alloc.c (staticvec): Never initialize this variable. (BLOCK_ALIGN): Always allow large blocks. (mmap_lisp_allowed_p): Remove unexec-specific code. * src/buffer.c (init_buffer): * src/conf_post.h (ADDRESS_SANITIZER): * src/emacs.c (load_pdump, main): Remove unexec-specific code. (Fdump_emacs): Remove function. (syms_of_emacs): Remove 'Fdump_emacs'. * src/lastfile.c: Remove unexec-specific code. * src/lisp.h (gflags): Remove unexec-specific flags. (will_dump_p, will_bootstrap_p, will_dump_with_unexec_p) (dumped_with_unexec_p, definitely_will_not_unexec_p): Remove or adjust predicates. (SUBR_SECTION_ATTRIBUTE): Remove unexec-specific definition. * src/pdumper.c (Fdump_emacs_portable): Remove unexec-specific warning. * src/process.c (init_process_emacs): Remove !unexec condition * src/sysdep.c (maybe_disable_address_randomization): Adjust comment. (init_signals): * src/timefns.c (init_timefns): Remove unexec-specific code. * src/w32heap.c (report_temacs_memory_usage): Remove function. * src/w32heap.h: Adjust comment. * src/w32image.c (globals_of_w32image): Remove unexec-specific code.
* | Revert "Prefer static switch-case checking in pdumper"Pip Cet2025-01-311-0/+19
| | | | | | | | This reverts commit 6e2e7265a04f63f482db7fbdfd8e2519d8bfe03e.
* | Revert "Pacify -Wanalyzer-use-of-uninitialized-value"Pip Cet2025-01-311-29/+62
| | | | | | | | This reverts commit 1ed769a3cb753a86badba8a2878fa788a6fdc1f8.
* | Revert "; * src/pdumper.c (dump_do_fixup): Pacify GCC.Pip Cet2025-01-311-1/+1
| | | | | | | | This reverts commit a99ba59aa02ef8cfd314737950b6cd8d97015925.
* | ; * src/pdumper.c (dump_do_fixup): Pacify GCC.Eli Zaretskii2025-01-301-1/+1
| |
* | Pacify -Wanalyzer-use-of-uninitialized-valuePaul Eggert2025-01-261-62/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With ‘configure --enable-gcc-warnings’, gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7) on x86-64 complained, as it apparently did not want to assume that enum variables have one of the listed values. Work around the problem by using tables rather than switch statements. This gives up a little static checking but I don’t see any other easy way to pacify GCC without disabling the warnings entirely. * src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj) (dump_fwd_buffer_obj, dump_fwd_kboard_obj): Last arg is now void const * so that these functions’ addresses can all be put into the same array. (dump_fwd, dump_anonymous_allocate_posix, dump_map_file_posix): Use an array rather than a switch. (mem_prot_posix_table): New static constant table.
* | Fix compilation warnings in pdumper with !HAVE_NATIVECOMPStefan Kangas2025-01-261-3/+7
| | | | | | | | | | | | * src/pdumper.c [!HAVE_NATIVECOMP] (cold_op, dump_subr): Fix compilation warnings. Ref: https://lists.gnu.org/r/emacs-devel/2025-01/msg01003.html
* | Prefer static switch-case checking in pdumperStefan Kangas2025-01-261-19/+0
| | | | | | | | | | | | | | | | * src/pdumper.c (dump_fwd, dump_symbol, dump_drain_cold_data) (dump_do_fixup, dump_anonymous_allocate_w32) (dump_anonymous_allocate_posix, dump_map_file_w32, dump_map_file_posix) (dump_do_emacs_relocation): Remove default clauses to allow static checking using -Wswitch.
* | ; * src/pdumper.c (dump_hash_table): Adjust hash; bitfields changed.Pip Cet2025-01-221-1/+1
| |
* | Port pdumper to unlikely long sprintf outputPaul Eggert2025-01-211-4/+6
| | | | | | | | | | | | | | * src/pdumper.c (dump_ptr_referrer): Port to platforms where sprintf %p generates absurdly long output. (dump_vectorlike): Port to hypothetical platforms where %d generates absurdly long output.
* | pdumper: Add static_assert for EMACS_RELOC_TYPE_BITSStefan Kangas2025-01-201-0/+2
| | | | | | | | * src/pdumper.c: Add static_assert for EMACS_RELOC_TYPE_BITS.
* | Remove redundant case_Lisp_Int macroStefan Kangas2025-01-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The case_Lisp_Int macro was originally introduced with different definitions depending on USE_2_TAGS_FOR_INTS. However, since commit 2b5701247845, we have assumed that USE_2_TAGS_FOR_INTS is always defined, and the macro has only a single definition. As a result, the macro is now unnecessary, and replacing it with standard C case labels improves readability and understanding. * src/lisp.h (case_Lisp_Int): Delete macro. * src/alloc.c (process_mark_stack, survives_gc_p): * src/data.c (Fcl_type_of): * src/fns.c (value_cmp, sxhash_obj): * src/pdumper.c (dump_object): * src/print.c (print_object): * src/xfaces.c (face_attr_equal_p): Remove uses of above macro.
* | Prefer calln to CALLN where applicableStefan Kangas2025-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/callint.c (read_file_name): * src/comp.c (CALL0I, CALL1I, CALL2I, CALL4I, declare_imported_func): * src/data.c (Ffset, notify_variable_watchers): * src/eval.c (Ffuncall_with_delayed_message): * src/keymap.c (Fdescribe_buffer_bindings): * src/minibuf.c (Fread_buffer, Fcompleting_read): * src/pdumper.c (Fdump_emacs_portable): * src/print.c (print_vectorlike_unreadable): * src/treesit.c (treesit_traverse_match_predicate) (treesit_build_sparse_tree): Prefer calln to CALLN.
* | In xt_action_hook don't act on deleted window's scroll bar (Bug#75120)Martin Rudalics2025-01-091-1/+1
| | | | | | | | | | | | | | * src/xterm.c (xt_action_hook): Make sure window_being_scrolled is live (Bug#75120). * src/pdumper.c (dump_subr): Update pertinent hash of HASH_Lisp_Subr.
* | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
|/ | | | Run "TZ=UTC0 admin/update-copyright".