1. 09 Oct, 2013 1 commit
    • Stefan Monnier's avatar
      * lisp/profiler.el: Create a more coherent calltree from partial backtraces. · 79804536
      Stefan Monnier authored
      (profiler-format): Hide the tail with `invisible' so that C-s can still
      find the hidden elements.
      (profiler-calltree-depth): Don't recurse so enthusiastically.
      (profiler-function-equal): New hash-table-test.
      (profiler-calltree-build-unified): New function.
      (profiler-calltree-build): Use it.
      (profiler-report-make-name-part): Indent the calltree less.
      (profiler-report-mode): Add visibility specs for profiler-format.
      (profiler-report-expand-entry, profiler-report-toggle-entry):
      Expand the whole subtree when provided with a prefix arg.
      * src/fns.c (hashfn_user_defined): Allow hash functions to return any
      Lisp_Object.
      79804536
  2. 08 Oct, 2013 7 commits
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 3b158d11
      Paul Eggert authored
      * dispnew.c (save_current_matrix): Omit unnecessary casts.
      * dispnew.c (update_frame_with_menu): Mark debug local as used.
      * keyboard.c, keyboard.h (Qmouse_movement): Now static.
      * keyboard.c (read_menu_command): Remove unused local.
      * lisp.h (read_menu_command): New decl.
      * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
      benefit of STRING_CHAR_AND_LENGTH.  All uses changed.
      Return ptrdiff_t, not int.
      * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
      not int, for benefit of xpalloc.
      (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
      and xpalloc.
      (have_menus_p): Remove; unused.
      (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
      local char * pointer to pacify STRING_CHAR_AND_LENGTH.
      (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
      Now static.
      (save_and_enable_current_matrix): Omit unnecessary casts.
      (read_menu_input): Omit local extern decl (now in lisp.h).
      Don't access uninitialized storage if mouse_get_xy fails.
      (tty_menu_activate): Mark local as initialized, for lint.
      (tty_menu_activate, tty_meny_show): Remove unused locals.
      3b158d11
    • Dmitry Antipov's avatar
      * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment. · ecab13d4
      Dmitry Antipov authored
      (redraw_frame, update_frame): Adjust users.
      * dispextern.h (set_window_update_flags): Adjust prototype.
      * xdisp.c (redisplay_internal): When updating all frames with zero
      windows_or_buffers_changed, assume that only the windows that shows
      current buffer should be really updated.
      ecab13d4
    • Dmitry Antipov's avatar
      Do not allocate huge temporary memory areas and objects while encoding · f8498081
      Dmitry Antipov authored
      for file I/O, thus reducing an enormous memory usage for large buffers.
      See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
      * coding.h (struct coding_system): New member raw_destination.
      * coding.c (setup_coding_system): Initialize it to zero.
      (encode_coding_object): If raw_destination is set, do not create
      dst_object.  Add comment.
      * fileio.c (toplevel): New constant E_WRITE_MAX.
      (e_write): Do not encode more than E_WRITE_MAX characters per one loop
      iteration.  Use raw_destination if E_WRITE_MAX characters is encoded.
      f8498081
    • Jan Djärv's avatar
      * nsterm.m (windowDidExitFullScreen:): · d180bde8
      Jan Djärv authored
      (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
      d180bde8
    • Paul Eggert's avatar
      1142cc2a
    • Paul Eggert's avatar
      Fix race where emacs aborts when sent SIGTERM. · 18978362
      Paul Eggert authored
      * keyboard.c (unblock_input_to): Don't process pending signals
      if a fatal error is in progress.
      
      Fixes: debbugs:15534
      18978362
    • Paul Eggert's avatar
      * lisp.h (bits_word, BITS_WORD_MAX): New type and macro. · 87c4314d
      Paul Eggert authored
      All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
      they're talking about words in Lisp bool vectors.
      (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T.  All uses changed.
      87c4314d
  3. 07 Oct, 2013 6 commits
    • Paul Eggert's avatar
      Improve support for popcount and counting trailing zeros. · 595e113b
      Paul Eggert authored
      Do this by using the Gnulib modules for this.
      This should generate faster code on non-GCC, non-MSC platforms,
      and make the code a bit more portable, at least in theory.
      * admin/merge-gnulib (GNULIB_MODULES): Add count-one-bits
      and count-trailing-zeros.
      * lib/count-one-bits.c, lib/count-one-bits.h:
      * lib/count-trailing-zeros.c, lib/count-trailing-zeros.h:
      * m4/count-one-bits.m4, m4/count-trailing-zeros.m4:
      New files, copied from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * nt/gnulib.mk: Merge changes from lib/gnulib.mk.
      * src/data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
      (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
      (NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
      (popcount_size_t_msc, popcount_size_t_gcc):
      Remove; now done by Gnulib.
      (popcount_size_t): Now a macro that defers to Gnulib.
      (count_trailing_zero_bits): Return int, for consistency with
      Gnulib and because Emacs prefers signed to unsigned int.
      Don't assume that size_t is either unsigned int or unsigned long
      or unsigned long long.
      (size_t_to_host_endian): Do not assume that size_t is either
      exactly 32 or exactly 64 bits wide.
      * src/lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
      etc., so that it's now an enum constant, not a macro.
      No need to assume that it's either 32 or 64.
      
      Fixes: debbugs:15550
      595e113b
    • Jan Djärv's avatar
      ddb317ba
    • Dmitry Antipov's avatar
      * xdisp.c (handle_fontified_prop): Prefer ptrdiff_t to int where needed. · 764636db
      Dmitry Antipov authored
      Use bool for boolean.
      764636db
    • Dmitry Antipov's avatar
    • Paul Eggert's avatar
      emacs_read and emacs_write now use void *, not char *. · 223752d7
      Paul Eggert authored
      * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast.
      * sysdep.c (emacs_read, emacs_write, emacs_write_sig):
      Buffer arg is now void *, not char *.  This matches plain
      'read' and 'write' better, and avoids a constraint violation
      on Solaris 9 with Oracle Studio.
      223752d7
    • Dmitry Antipov's avatar
      * alloc.c (Fmake_string): For ASCII char initializer, prefer · 3c439e0a
      Dmitry Antipov authored
      memset to explicit loop.  Otherwise copy largest possible chunk
      from initialized to uninitialized part, thus allowing the longer
      memcpy runs and reducing the number of loop iterations.
      3c439e0a
  4. 06 Oct, 2013 2 commits
  5. 05 Oct, 2013 2 commits
  6. 04 Oct, 2013 3 commits
  7. 03 Oct, 2013 6 commits
    • Paul Eggert's avatar
      * lisp.h (eassert): Assume that COND is true when optimizing. · 75273afb
      Paul Eggert authored
      In other words, take on the behavior of eassert_and_assume.
      This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
      (eassert_and_assume): Remove.  All uses replaced by eassert.
      75273afb
    • Paul Eggert's avatar
      * xdisp.c (Qglyphless_char): Now static. · ead45345
      Paul Eggert authored
      ead45345
    • Paul Eggert's avatar
      Merge from gnulib. · 0a858ebf
      Paul Eggert authored
      * src/conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
      * src/lisp.h: Include <verify.h>, for 'assume'.
      
      This also incorpoprates:
      2013-10-02 verify: new macro 'assume'
      2013-09-26 dup2, dup3: work around another cygwin crasher
      2013-09-26 getdtablesize: work around cygwin issue
      0a858ebf
    • Paul Eggert's avatar
      * eval.c (clobbered_eassert): New macro. · b52f569d
      Paul Eggert authored
      (internal_catch, internal_condition_case)
      (internal_condition_case_1, internal_condition_case_2)
      (internal_condition_case_n): Use it instead of eassert
      when the argument contains locals clobbered by longjmp.
      Don't use clobbered locals outside of clobbered_eassert.
      (internal_lisp_condition_case): Use a volatile variable
      to work around a local variable's getting clobbered.
      b52f569d
    • Stefan Monnier's avatar
      Introduce new bytecodes for efficient catch/condition-case in lexbind. · adf2aa61
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
      Optimize under `condition-case' and `catch' if
      byte-compile--use-old-handlers is nil.
      (disassemble-offset): Handle new bytecodes.
      
      * lisp/emacs-lisp/bytecomp.el (byte-pushcatch, byte-pushconditioncase)
      (byte-pophandler): New byte codes.
      (byte-goto-ops): Adjust accordingly.
      (byte-compile--use-old-handlers): New var.
      (byte-compile-catch): Use new byte codes depending on
      byte-compile--use-old-handlers.
      (byte-compile-condition-case--old): Rename from
      byte-compile-condition-case.
      (byte-compile-condition-case--new): New function.
      (byte-compile-condition-case): New function that dispatches depending
      on byte-compile--use-old-handlers.
      (byte-compile-unwind-protect): Pass a function to byte-unwind-protect
      when we can.
      
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Adjust for
      the new compilation scheme using the new byte-codes.
      
      * src/alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
      and make them unconditional now that they're heap-allocated.
      
      * src/bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
      and Bpophandler.
      (bcall0): New function.
      (exec_byte_code): Add corresponding cases.  Improve error message when
      encountering an invalid byte-code.  Let Bunwind_protect accept
      a function (rather than a list of expressions) as argument.
      
      * src/eval.c (catchlist): Remove (merge with handlerlist).
      (handlerlist, lisp_eval_depth): Not static any more.
      (internal_catch, internal_condition_case, internal_condition_case_1)
      (internal_condition_case_2, internal_condition_case_n):
      Use PUSH_HANDLER.
      (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
      handlerlist/catchlist.
      (internal_lisp_condition_case): Use PUSH_HANDLER.  Adjust to new
      handlerlist which can only handle a single condition-case handler at
      a time.
      (find_handler_clause): Simplify since we only a single branch here
      any more.
      
      * src/lisp.h (struct handler): Merge struct handler and struct catchtag.
      (PUSH_HANDLER): New macro.
      (catchlist): Remove.
      (handlerlist): Always declare.
      adf2aa61
    • Stefan Monnier's avatar
      * lisp/subr.el (decode-char, encode-char): Use advertised-calling-convention · 328a8179
      Stefan Monnier authored
      instead of the docstring to discourage use of the `restriction' arg.
      (error): Use `declare'.
      * src/charset.c (Fdecode_char, Fencode_char): Remove description of
      `restriction' arg. now that it's hidden by advertised-calling-convention.
      328a8179
  8. 02 Oct, 2013 5 commits
  9. 29 Sep, 2013 4 commits
  10. 28 Sep, 2013 2 commits
    • Jan Djärv's avatar
      Pick up default selection color on OSX when user defaults are not set. · 1610938f
      Jan Djärv authored
      * lisp/faces.el (region): Change ns_selection_color to
      ns_selection_fg_color, add ns_selection_bg_color.
      
      * src/nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Renamed from
      NS_SELECTION_COLOR_DEFAULT.
      (NS_SELECTION_FG_COLOR_DEFAULT): New.
      
      * src/nsterm.m (ns_selection_color): Remove.
      (ns_get_color): Check for ns_selection_(fg|bg)_color using
      NSColor selectedText(Background)Color.  Only for COCOA.
      (ns_term_init): Remove assignment of ns_selection_color, logic
      moved to ns_get_color.
      1610938f
    • Eli Zaretskii's avatar
      Fix compilation under GLYPH_DEBUG, broken by conditional tool_bar_window. · 0d2647e6
      Eli Zaretskii authored
       src/xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
       frame' does not have the tool_bar_window member.
      0d2647e6
  11. 26 Sep, 2013 1 commit
  12. 24 Sep, 2013 1 commit