1. 01 Aug, 2022 1 commit
  2. 30 Jul, 2022 1 commit
  3. 29 Jul, 2022 1 commit
  4. 28 Jul, 2022 3 commits
  5. 26 Jul, 2022 1 commit
  6. 25 Jul, 2022 1 commit
  7. 23 Jul, 2022 2 commits
    • Aidan Kehoe's avatar
      Suppress a byte-compile warning, #'pcase--u1, pcase.el · d5d1732c8f7c
      Aidan Kehoe authored
      2022-07-23  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* pcase.el (pcase--u1):
      	Suppress a warning about an unused variable bound by
      	#'destructuring-bind, by not binding it and modifying EXPR
      	appropriately.
      d5d1732c8f7c
    • Aidan Kehoe's avatar
      Import Stefan Monnier's pcase.el, a version before lexical binding introduced. · 6c6a04f23dcd
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-07-23  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* pcase.el: New. Imported from GNU, a version before the
      	introduction of lexical binding there.
      	The reasoning to put it here rather than xemacs-base is that it is
      	completely routine for the GNU Emacs core code to use these
      	macros, and as we synch our core files going forward we will need
      	to have it available.
      	The following relevant ChangeLog entries are taken from GNU's
      	ChangeLog.15:
      
          2011-02-28  Juanma Barranquero  <lekktu@gmail.com>
      
      	* emacs-lisp/pcase.el (pcase, pcase--u1, pcase--q1):
      	Fix typos in docstrings.
      
          2011-02-27  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase--if): Try to invert test to reduce depth.
      	(pcase-mutually-exclusive-predicates): New var.
      	(pcase--split-consp, pcase--split-pred): Use it.
      	(pcase--split-equal, pcase--split-member): When splitting against
      	a pure predicate, run it to know the outcome.
      	(pcase--u1): Mark vars that are actually used.
      	(pcase--q1): Avoid introducing unused vars.
      
          2011-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase--u1): Understand non-linear patterns.
      
          2010-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el: Improve pcase-let.  Use "pcase--" prefix.
      	(pcase--dontcare-upats): New var.
      	(pcase-let, pcase-let*): Generate better code.
      	Accept the same bodies as `let'.
      	(pcase-dolist): New macro.
      	(pcase--trivial-upat-p): New helper function.
      	(pcase--expand): Strip leading "(let nil" if any.
      
          2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase-let*, pcase-let): Add debug and
      	indentation specs.
      
          2010-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase): New `string' and `guard' patterns.
      	(pcase-if): Add one minor optimization.
      	(pcase-split-equal): Rename from pcase-split-eq.
      	(pcase-split-member): Rename from pcase-split-memq.
      	(pcase-u1): Add strings to the member optimization.
      	Add `guard' variant of predicates.
      	(pcase-q1): Add string patterns.
      
          2010-09-26  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.
      
          2010-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el (pcase-split-memq):
      	Fix overenthusiastic optimization.
      	(pcase-u1): Handle the case of a lambda pred.
      
          2010-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
      
      	* emacs-lisp/pcase.el: New file.
      6c6a04f23dcd
  8. 20 Jul, 2022 1 commit
  9. 18 Jul, 2022 1 commit
    • Aidan Kehoe's avatar
      Avoid correctness problems with byte-compile-delete-errors, #'zerop · 47f1f59c5d55
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-07-18  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* byte-optimize.el (byte-optimize-zerop):
      	#'numberp has a byte code, and so it's fine to transform (zerop
      	OBJECT) into (if (numberp OBJECT) (= OBJECT 0)
      	(signal 'wrong-type-argument 'number OBJECT).
      	This avoids correctness problems introducted by the
      	byte-compile-delete-errors option, revealed in
      	tests/automated/lisp-tests.el.
      47f1f59c5d55
  10. 15 Jul, 2022 2 commits
  11. 14 Jul, 2022 3 commits
    • Aidan Kehoe's avatar
      Fix a compile problem when --with-bignum=gmp, thank you Mats. · aa31090df7da
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-14  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c (rewrite_rational_spec):
      	Fix a compile problem elicited by the buildbot when configured
      	--with-bignum=gmp, thank you Mats Lidell!
      aa31090df7da
    • Aidan Kehoe's avatar
      Further changes to reduce the number of Lisp errors thrown from doprnt.c · da929cc13501
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-14  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c:
      	* doprnt.c (EXPLICITLY_INVALID_CONVERTER):
      	* doprnt.c (parse_doprnt_spec):
      	Restrict the range of the minwidth and precision fields to be a
      	bit more reasonable, there shouldn't be a need for either to be
      	1152921504606846975 on a sixty-four bit machine, 65535 should be
      	good enought.
      	* doprnt.c (rewrite_rational_spec):
      	Take an Error_Behavior argument.
      	Call maybe_signal_error{,_1} appropriately in this function.
      	If we would otherwise have signalled an error, return
      	EXPLICITLY_INVALID_CONVERTER, so emacs_doprnt() knows to UNGCPRO and
      	return.
      	* doprnt.c (FIXNUM_SPEC_PREAMBLE_1):
      	Call rewrite_rational_spec () with its ERRB argument.
      	* doprnt.c (FIXNUM_SPEC_PREAMBLE):
      	Call maybe_signal_error{,_1} appropriately in this function.
      	* doprnt.c (error_behavior_to_error_flags): New.
      	* doprnt.c (emacs_doprnt):
      	Adjust some further things to avoid Lisp errors and thus
      	inappropriate code in redisplay.
      	Use call_trapping_problems for prin1_to_string, print_internal if
      	appropriate.
      da929cc13501
    • Aidan Kehoe's avatar
      Be more thorough avoiding possible errors (and thus calls to Lisp), doprnt.c · a26b061e1386
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-14  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c (emacs_doprnt):
      	extract_float () can error, only call it if NUMBERP (OBJ),
      	maybe_signal_error_1 () otherwise.
      	* doprnt.c (format_into):
      	Similarly in this function, for check_integer_range (),
      	CHECK_BIGNUM(), out_of_memory (); replace them with corresponding
      	maybe_signal_error_1 (), maybe_signal_error () calls.
      
      tests/ChangeLog addition:
      
      2022-07-14  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* automated/format-tests.el (Assert-and-check-error):
      	Revise the RESULTs given when passing :error-behavior 'no-error to
      	#'format-into.
      a26b061e1386
  12. 13 Jul, 2022 1 commit
    • Aidan Kehoe's avatar
      Never return a negative value to Lisp when hashing, elhash.c · 7501bc82e4b2
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-13  Aidan Kehoe  <kehoea@parhasard.net>
      
      	Never return a negative value to Lisp when hashing, avoiding
      	problems in obarray.el.  This will always have been a problem,
      	since casting an unsigned long to an EMACS_INT will have returned
      	a negative value for UINT_MAX on thirty-two bit machines, but was
      	made more evident with dac90a20844f.
      	* elhash.c (Feq_hash):
      	* elhash.c (Feql_hash):
      	* elhash.c (Fequal_hash):
      	* elhash.c (Fequalp_hash):
      	* number.h (make_unsigned_integer):
      7501bc82e4b2
  13. 11 Jul, 2022 3 commits
    • Aidan Kehoe's avatar
      update-elc.el: If just rebuilding the module autoloads, load autoload.el · e1c3e1ba4461
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-07-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* update-elc.el (do-autoload-commands):
      	If we just need to rebuild the module autoloads, load autoload.el,
      	something that wasn't done before.
      	* update-elc.el (preloaded-file-list):
      	full-arg-dir was not used, remove it, thank you the byte compiler.
      e1c3e1ba4461
    • Aidan Kehoe's avatar
      Extend display tables to make (format "%x" ...) available, using format_into() · 34e10d47505d
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c:
      	* doprnt.c (format_into):
      	Revise this to return (more usefully) a Bytecount, not a
      	Lisp_Object.
      	* doprnt.c (Fformat_into):
      	Use the new calling convention for format_into (), keep the
      	existing Lisp API.
      
      	* callint.c:
      	* callint.c (callint_prompt):
      	Revise this, now format_into () returns a Bytecount, not a Lisp
      	object.
      
      	* lisp.h: Update the declaration of format_into().
      	* redisplay.c (add_disp_table_entry_runes_1):
      	Extend the display table handling to use format_into (), allowing
      	arbitrary format strings.
      	* redisplay.c (create_string_text_block):
      	Update a comment here reflecting that this was done.
      
      man/ChangeLog addition:
      
      2022-07-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* internals/internals.texi (Old Future Work -- Display Tables):
      	Move this section here from Future Work, now it has been
      	implemented.
      34e10d47505d
    • Aidan Kehoe's avatar
      Take a new :error-behavior keyword arg, #'format-into · 601143001fdc
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-11  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c:
      	* doprnt.c (struct maybe_free_dynarr_info):
      	* doprnt.c (maybe_free_dynarr):
      	* doprnt.c (parse_doprnt_spec):
      	* doprnt.c (get_doprnt_c_args):
      	* doprnt.c (emacs_doprnt):
      	* doprnt.c (write_fmt_string_va):
      	* doprnt.c (write_external_fmt_string_va):
      	* doprnt.c (write_fmt_string_lisp_va):
      	* doprnt.c (write_fmt_string_lisp):
      	* doprnt.c (emacs_vsnprintf):
      	* doprnt.c (emacs_vsnprintf_ascbyte):
      	* doprnt.c (format_into):
      	* doprnt.c (follows): New.
      	* doprnt.c (Fformat_into):
      	* doprnt.c (syms_of_doprnt):
      	Revise the formatting code to take an Error_Behavior argument and
      	respect it appropriately in preparation for calling it within
      	redisplay.
      	Make this available to Lisp by means of a keyword argument to
      	#'format-into.
      
      	* callint.c (callint_prompt):
      	Call format_into () with its new errb argument, ERROR_ME in this
      	case.
      	* eval.c:
      	* eval.c (decode_error_behavio...
      601143001fdc
  14. 10 Jul, 2022 1 commit
  15. 09 Jul, 2022 1 commit
    • Aidan Kehoe's avatar
      Revise the integer length modifiers to be more standard, doprnt.c · 7506702dcb3a
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-07-09  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* doprnt.c:
      	* doprnt.c (union printf_arg):
      	* doprnt.c (parse_doprnt_spec):
      	* doprnt.c (get_doprnt_c_args):
      	* doprnt.c (rewrite_rational_spec):
      	* doprnt.c (emacs_doprnt):
      	Revise the integer length modifiers made available to the C
      	code. I had previously made the executive decision that HL_FLAG_L
      	should always correspond to the bit width of an EMACS_INT, and had
      	not cleanly implement HL_FLAG_LL. This was a bad decision as
      	revealed by recent code from Jaakko which assumed, quite
      	reasonably, standard C behaviour. It also meant compiler analysis
      	of format strings was likely to be incorrect.
      	As of now a new flag is implemented, HL_FLAG_Z, guaranteed
      	equivalent to the bit width of an EMACS_INT. HL_FLAG_L now just
      	reads a long from the arguments, HL_FLAG_LL reads a long long.
      	The standard C meaning of the z modifier is that the argument is
      	the same bit width...
      7506702dcb3a
  16. 08 Jul, 2022 1 commit
  17. 02 Jul, 2022 2 commits
  18. 30 Jun, 2022 3 commits
    • Aidan Kehoe's avatar
      Correct a thinko in c6966a009d0d, #'finder-compile-keywords · ab2716fea8ee
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-30  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* finder.el (finder-compile-keywords):
      	Correct a thinko in c6966a009d0d , insert a coding cookie that
      	reflects buffer-file-coding-system.
      ab2716fea8ee
    • Aidan Kehoe's avatar
      Actually generate modules/auto-autoloads.el, not done after d1157f4b835c · fbeac45c3050
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-30  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* update-elc.el (source-modules): New.
      	Document where the C source is for modules, which differs from
      	module-directory when --srcdir is specified. This is relevant when
      	deciding whether to build auto-autoloads.el for modules.
      	* update-elc.el (preloaded-file-list):
      	Use this when examining for outdatedness of auto-autoloads.el.
      	* update-elc.el (do-autoload-commands):
      	Correct the code to build the modules' auto-autoload.el, which
      	cannot just use batch-update-directory-autoloads, since that
      	doesn't recurse.  Thank you Stephen Turnbull, Mats Lidell, and the
      	Gentoo users.
      	* update-elc-2.el (batch-update-elc-2):
      	Don't wrap errors loading the auto-autoloads for the modules, if
      	that fails, whatever caused it to fail should be fixed.
      fbeac45c3050
    • Jaakko Salomaa's avatar
      configure: Fix PostgreSQL header detection · c4d439787498
      Jaakko Salomaa authored
      c4d439787498
  19. 27 Jun, 2022 2 commits
    • Stephen Turnbull's avatar
      4acd89c143ce
    • Aidan Kehoe's avatar
      Don't create a lock file when generating finder-inf.el · c6966a009d0d
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-27  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* finder.el (finder-compile-keywords):
      	Don't use the save-buffer infrastructure when generating
      	finder-inf.el, since that leads to lock files, making parallel
      	builds less likely to work. Thank you Mats Lidell and the Gentoo
      	users!
      
      src/ChangeLog addition:
      
      2022-06-27  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* Makefile.in.in ($(LISP)/finder-inf.el):
      	Don't remove finder-inf.el before regenerating it, Lisp will
      	overwrite it.
      c6966a009d0d
  20. 26 Jun, 2022 1 commit
  21. 25 Jun, 2022 1 commit
  22. 23 Jun, 2022 1 commit
    • Aidan Kehoe's avatar
      Avoid dumping fontconfig.el for non-XFT builds · aa02f6c04102
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-23  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* x-faces.el (:compile-toplevel):
      	Only (require 'fontconfig) at compile time, meaning that file is
      	not dumped on non-Xft builds.
      aa02f6c04102
  23. 19 Jun, 2022 3 commits
  24. 17 Jun, 2022 1 commit
    • Aidan Kehoe's avatar
      Silence byte compile warnings, fix a bug, lisp/ · 7f39dc2f725f
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-17  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* code-process.el:
      	* code-process.el (:compile-toplevel):
      	Silence compiler warnings about variables provided by starttls.el,
      	functions provided by format-spec.el.
      	* code-process.el (network-stream-open-starttls):
      	Fix a bug in this function, thank you the byte compiler
      	(#'make-network-process is not available on XEmacs, use
      	#'open-network-stream-internal instead.)
      	* x-faces.el (fontconfig):
      	Silence byte compile wfarnings, just (require 'fontconfig)
      	unconditionally, which works even if fontconfig support is not
      	compiled in.
      7f39dc2f725f
  25. 16 Jun, 2022 2 commits
    • Aidan Kehoe's avatar
      Leave updating auto-autoloads to update-elc.el, reduce build time problems · d1157f4b835c
      Aidan Kehoe authored
      lisp/ChangeLog addition:
      
      2022-06-16  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* update-elc-2.el (batch-update-elc-2):
      	Remove the code to update auto-autoloads from this file.
      	(It was buggy (e.g. it update mule/auto-autoloads.el and then
      	immediately compiled auto-autoloads.el) and caused dependency
      	problems.)
      	Load the module auto-autoloads when byte-compiling,
      	which we didn't previously.
      	* update-elc.el:
      	* update-elc.el (need-to-rebuild-module-autoloads): New.
      	* update-elc.el (need-to-recompile-module-autoloads): New.
      	* update-elc.el (module-directory): Make this available when
      	updating module auto-autoloads.
      	* update-elc.el (aa-modules): New.
      	* update-elc.el (aac-modules): New.
      	The path to the module auto-autoloads.el, auto-autoloads.elc
      	* update-elc.el
      	(lisp-files-ignored-when-checking-for-autoload-updating):
      	Add finder-inf.el to this list.
      	* update-elc.el (or):
      	Check explictly whether module/auto-autoloads.el is out of date in
      	this file, which we did not do previously.
      	* update-elc.el (do-autoload-commands):
      	If there are no files to be byte-compiled but auto-autoloads need
      	updated, do that here (using run-temacs with the byte-compiled
      	files) rather than signalling to update-elc-2.el using
      	../src/REBUILD_AUTOLOADS. This should avoid dependency problems
      	with massively parallel builds.
      d1157f4b835c
    • Aidan Kehoe's avatar
      Correct further code that used long to represent pointer values. · 3688f3d583d4
      Aidan Kehoe authored
      src/ChangeLog addition:
      
      2022-06-16  Aidan Kehoe  <kehoea@parhasard.net>
      
      	* config.h.in:
      	* emacs.c:
      	* emacs.c (uintptr_t bss_end): Removed.
      	* emacs.c (main_1):
      	* lisp.h:
      	* mem-limits.h:
      	* mem-limits.h (get_lim_data):
      	* nt.c (open_input_file):
      	* nt.c (open_output_file):
      	* ntheap.c:
      	* ntheap.c (unsigned long  data_region_size): Removed.
      	* ntheap.c (unsigned long  reserved_heap_size): Removed.
      	* ntheap.c (EMACS_UINT  data_region_size): New.
      	* ntheap.c (EMACS_UINT  reserved_heap_size): New.
      	* ntheap.c (allocate_heap):
      	* number-openssl.c (bignum_binary_bitop):
      	* syswindows.h:
      	* syswindows.h (file_data):
      	* syswindows.h (UNINIT_EMACS_UINT):
      	* s/usg5-4.h (LIBS_SYSTEM):
      	Correct some further code that inappropriately assumed that long
      	is the appropriate type to represent a pointer, use EMACS_UINT
      	appropriately.
      	In the mswindows code use SIZE_T
      	In passing remove some unexec-related code completely.
      
      ChangeLog addition:
      
      2022-06...
      3688f3d583d4