1. 04 Oct, 2013 2 commits
    • Paul Eggert's avatar
      Use hardware support for byteswapping on glibc x86 etc. · 4eed3157
      Paul Eggert authored
      On Fedora 19 x86-64, the new bswap_64 needs 1 instruction,
      whereas the old swap64 needed 30.
      * admin/merge-gnulib (GNULIB_MODULES): Add byteswap.
      * lib/byteswap.in.h, m4/byteswap.m4: New files, copied from Gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * src/fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]:
      * src/sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]:
      Use byteswap.h's macros to swap bytes.
      * src/lisp.h (swap16, swap32, swap64): Remove.
      All uses replaced by bswap_16, bswap_32, bswap_64.
      4eed3157
    • Paul Eggert's avatar
      * bytecode.c (exec_byte_code): Use some more volatile variables · 157fec2e
      Paul Eggert authored
      to work around local variables getting clobbered by longjmp.
      Port to pre-C99, which doesn't allow decls after stmts.
      157fec2e
  2. 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
  3. 02 Oct, 2013 5 commits
  4. 29 Sep, 2013 4 commits
  5. 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
  6. 26 Sep, 2013 1 commit
  7. 24 Sep, 2013 8 commits
  8. 23 Sep, 2013 9 commits
  9. 22 Sep, 2013 3 commits