1. 23 Feb, 2017 3 commits
    • Paul Eggert's avatar
      Merge from gnulib · 7204577b
      Paul Eggert authored
      This incorporates:
      2017-02-16 xbinary-io: rename from xsetmode
      2017-02-15 xsetmode: new module
      * lib-src/etags.c (main):
      * lib-src/hexl.c (main):
      * src/emacs.c (main) [MSDOS]:
      Prefer set_binary_mode to the obsolescent SET_BINARY.
      * lib/binary-io.c, lib/binary-io.h: Copy from gnulib.
      7204577b
    • Paul Eggert's avatar
      hexl: handle large files and I/O errors · 23e64fac
      Paul Eggert authored
      * lib-src/hexl.c: Include inttypes.h, for PRIxMAX etc.
      Do not include ctype.h, as the code no longer uses isdigit.
      (DEFAULT_GROUPING, un_flag, iso_flag, group_by): Now local to ‘main’.
      (DEFAULT_BASE, endian): Remove; was not really used.
      (usage): Remove; now done by ‘main’, as that’s simpler.
      (progname): Now static.
      (output_error, hexchar): New functions.
      (main): Use them.  Simplify.  Remove "-oct", "-big-endian", and
      "-little-endian" options, as they did not work and were not used.
      Use SET_BINARY only on stdin, and fopen with "rb" otherwise.
      Use SET_BINARY only once on stdout.
      Do not assume file offsets fit in ‘long’.
      If an I/O error occurs, report it and exit with nonzero status.
      23e64fac
    • Eli Zaretskii's avatar
      Avoid quitting inside a critical section on MS-Windows · 5114b3a2
      Eli Zaretskii authored
      * src/w32uniscribe.c (uniscribe_list_family):
      * src/w32font.c (w32font_list_family, w32font_text_extents)
      (w32font_list_internal, w32font_match_internal)
      (list_all_matching_fonts): Prevent quitting while these functions
      cons lists of fonts, to avoid leaving the critical section taken
      by the main thread, which will then cause any other thread
      attempting to enter the critical section to hang.  (Bug#25279)
      5114b3a2
  2. 22 Feb, 2017 7 commits
  3. 21 Feb, 2017 14 commits
    • Paul Eggert's avatar
      Minor weak hash table performance tweaks · 17af43ca
      Paul Eggert authored
      * src/fns.c (make_hash_table): Omit unnecessary assignment to
      h->next_weak when the hash table is not weak.
      (copy_hash_table): Put the copy next to the original in the
      weak_hash_tables list, as this should have better locality
      when scanning the weak hash tables.
      17af43ca
    • Paul Eggert's avatar
      Use float instead of Lisp_Object for rehash_size · 83c9c6fc
      Paul Eggert authored
      * src/alloc.c (purecopy_hash_table):
      * src/fns.c (maybe_resize_hash_table, Fmake_hash_table):
      (Fhash_table_rehash_size):
      * src/lisp.h (struct Lisp_Hash_Table.rehash_size):
      The rehash_size member of struct Lisp_Hash_Table is now a
      float, not a Lisp_Object.
      * src/alloc.c (purecopy_hash_table): Assign members in order.
      * src/fns.c (make_hash_table): Use EMACS_INT for size and
      float for rehash_size, instead of Lisp_Object for both.
      All callers changed.
      * src/lisp.h (DEFAULT_REHASH_SIZE): Now float, not double,
      and 1 smaller.
      * src/print.c (print_object): Simplify by calling
      Fhash_table_rehash_size and Fhash_table_rehash_threshold.
      Avoid unnecessary NILP.
      83c9c6fc
    • Paul Eggert's avatar
      Use ptrdiff_t instead of Lisp_Object for collision · 5cbdaa98
      Paul Eggert authored
      * src/alloc.c (purecopy_hash_table): Assign, don’t purecopy.
      * src/fns.c (set_hash_next_slot, set_hash_index_slot): Hash index
      arg is now ptrdiff_t index (or -1 if empty), not Lisp_Object
      integer (or Qnil if empty).  All callers changed.
      (larger_vecalloc): New static function.
      (larger_vector): Use it.
      (HASH_NEXT, HASH_INDEX): Move here from lisp.h.  Return ptrdiff_t
      index (or -1) not Lisp_Object integer (or Qnil).  All callers changed.
      * src/fns.c (make_hash_table, maybe_resize_hash_table, hash_lookup)
      (hash_put, hash_remove_from_table, hash_clear, sweep_weak_table):
      * src/profiler.c (evict_lower_half, record_backtrace):
      -1, not nil, is now the convention for end of collision list.
      * src/fns.c (maybe_resize_hash_table): Avoid double-initialization
      of the free list.  Reallocate H->next last, in case other
      reallocations exhaust memory.
      * src/lisp.h (struct Lisp_Hash_Table): ‘next_free’ is now
      ptrdiff_t, not Lisp_Object.  Adjust commentary for ‘next’ and
      ‘index’, which no longer contain nil.
      (HASH_NEXT, HASH_INDEX): Move to src/fns.c.
      5cbdaa98
    • Paul Eggert's avatar
      Hash table threshold is now float, not double · 7207b63c
      Paul Eggert authored
      Change default from 0.8 to 0.8125 so it fits in float without
      rounding glitches.
      * doc/lispref/hash.texi (Creating Hash):
      * doc/lispref/objects.texi (Hash Table Type):
      * etc/NEWS:
      Document change.
      * src/fns.c (make_hash_table, maybe_resize_hash_table)
      (Fmake_hash_table): Threshold is now float, not double.
      Be consistent about how this is rounded.
      * src/lisp.h (struct Lisp_Hash_Table.rehash_threshold):
      Change back to float, now that the other code rounds consistently.
      (DEFAULT_REHASH_THRESHOLD): Now float 0.8125 instead of double 0.8.
      7207b63c
    • Juri Linkov's avatar
      Avoid flicker in lazy-highlight by doing all updates without redisplay. · f2191691
      Juri Linkov authored
      * lisp/isearch.el (lazy-highlight-max-at-a-time):
      Change default value from 20 to nil to not trigger redisplay
      between updating iterations.
      (lazy-highlight-cleanup): New arg ‘procrastinate’ to not remove
      overlays when non-nil.
      (isearch-lazy-highlight-new-loop): Call lazy-highlight-cleanup
      with non-nil second arg when the search string is not empty.
      Run timer with isearch-lazy-highlight-start instead of
      isearch-lazy-highlight-update.
      (isearch-lazy-highlight-start): New function. (Bug#25751)
      f2191691
    • Glenn Morris's avatar
      ; * lisp/custom.el: Comments. · 217eaf69
      Glenn Morris authored
      217eaf69
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgeneric · bac7de05
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.
      bac7de05
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplication · e785c74d
      Stefan Monnier authored
      which resulted in incomplete list of parents in one copy of the
      cl-structure-class class.
      e785c74d
    • Glenn Morris's avatar
      Tweak recent custom-reevaluate-setting change · 20dda6be
      Glenn Morris authored
      * lisp/custom.el (custom-reevaluate-setting):
      Tweak previous change to avoid font-lock init issues.
      20dda6be
    • Glenn Morris's avatar
      Ensure delayed-init custom variables get marked special · 96cea198
      Glenn Morris authored
      * lisp/custom.el (custom-reevaluate-setting):
      If the variable has never been set, defvar it.  (Bug#25770)
      96cea198
    • Glenn Morris's avatar
      ; Add a new TODO item · 08c73cdc
      Glenn Morris authored
      * etc/TODO: Add a new entry for :set-after.
      * lisp/startup.el: Related comment.
      08c73cdc
    • Mark Oteiza's avatar
      Turn on lexical-binding in dunnet.el · bfd1afb3
      Mark Oteiza authored
      * lisp/play/dunnet.el: Turn on lexical-binding.  Re-instate lexical
      byte compile warnings.
      bfd1afb3
    • Mark Oteiza's avatar
      Make dunnet insertion functions n-ary · e91cc4e1
      Mark Oteiza authored
      * lisp/play/dunnet.el (dun-mprinc, dun-mprincl, dun-minsert):
      (dun-minsertl, dun-batch-mprinc, dun-batch-mprincl): Change to accept
      any number of arguments.
      (dun-parse, dun-describe-room, dun-quit, dun-inven, dun-shake):
      (dun-take, dun-go, dun-move, dun-press, dun-score):
      (dun-compile-save-out, dun-do-logfile): Collect arguments from
      multiple insertion calls into less calls with more args.
      e91cc4e1
    • Katsumi Yamaoka's avatar
      message-goto-body-1: Fix regexp so as not to match multi-line · 18c47695
      Katsumi Yamaoka authored
      * lisp/gnus/message.el (message-goto-body-1):
      Fix regexp so as not to match multi-line.
      18c47695
  4. 20 Feb, 2017 14 commits
  5. 19 Feb, 2017 2 commits
    • Paul Eggert's avatar
      Fix glitches in recent hash table changes · c8d14cfc
      Paul Eggert authored
      * src/fns.c (Fmake_hash_table): Simplify the machine code slightly
      by using 0 rather than -1.
      * src/lisp.h (struct Lisp_Hash_Table.pure): Now bool rather
      than a bitfield, for speed (the bitfield did not save space).
      (struct Lisp_Hash_Table.rehash_threshold): Now double rather than
      float, since the float caused unwanted rounding errors, e.g.,
      (hash-table-rehash-threshold (make-hash-table)) yielded
      0.800000011920929 instead of the correct 0.8.
      c8d14cfc
    • Stefan Monnier's avatar