1. 13 May, 2017 2 commits
    • Philipp's avatar
      Make `old-style-backquotes' variable internal · a1d46159
      Philipp authored
      * src/lread.c (load_warn_old_style_backquotes, Fload, read1)
      (syms_of_lread): Rename `old-style-backquotes' to
      `lread--old-style-backquotes', and clarify that it's for internal
      use only.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
      variable.
      * test/src/lread-tests.el (lread-tests--old-style-backquotes): Add
      unit test.
      * emacs-lisp/bytecomp-tests.el
      (bytecomp-tests--old-style-backquotes): Add unit test.
      a1d46159
    • Philipp Stephani's avatar
      Improve unescaped character literal warnings · 16004397
      Philipp Stephani authored
      * src/lread.c (load_warn_unescaped_character_literals)
      (syms_of_lread):
      lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Improve
      formatting of unescaped character literal warnings.
      
      * test/src/lread-tests.el (lread-tests--unescaped-char-literals):
      test/lisp/emacs-lisp/bytecomp-tests.el
      (bytecomp-tests--unescaped-char-literals): Adapt unit tests.
      16004397
  2. 07 May, 2017 1 commit
  3. 01 May, 2017 1 commit
    • Philipp Stephani's avatar
      Warn about missing backslashes during load · c2bbdc33
      Philipp Stephani authored
      * src/lread.c (load_warn_unescaped_character_literals, Fload, read1)
      (syms_of_lread): Warn if unescaped character literals are
      found (Bug#20152).
      * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check for
      unescaped character literals during byte compilation.
      * test/src/lread-tests.el (lread-tests--unescaped-char-literals): New
      unit test.
      (lread-tests--with-temp-file, lread-tests--last-message): Helper
      functions for unit test.
      * test/lisp/emacs-lisp/bytecomp-tests.el
      (bytecomp-tests--unescaped-char-literals): New unit test.
      * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file):
      Helper macro for unit test.
      c2bbdc33
  4. 22 Apr, 2017 1 commit
  5. 20 Apr, 2017 1 commit
  6. 19 Apr, 2017 1 commit
  7. 27 Mar, 2017 1 commit
    • Paul Eggert's avatar
      Fix obsolete ‘test/automated’ references · 55086ef6
      Paul Eggert authored
      * Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean)
      (bootstrap-clean, maintainer-clean):
      Clean ‘test’, not ‘test/automated’.  Test for existence of
      subdirectory only for ‘test’, not for directories that should
      always exist.
      * admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el:
      * lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el:
      * lisp/man.el (Man-parse-man-k):
      * lisp/url/url-domsuf.el, make-dist:
      * test/file-organization.org:
      Fix obsolete references to test/automated.
      55086ef6
  8. 09 Mar, 2017 1 commit
  9. 16 Feb, 2017 2 commits
  10. 13 Feb, 2017 1 commit
  11. 12 Feb, 2017 2 commits
    • Mark Oteiza's avatar
      Nix some useless uses of looking-at, looking-back · 91478f46
      Mark Oteiza authored
      * lisp/allout.el (allout-kill-topic):
      (allout-next-topic-pending-encryption):
      * lisp/bookmark.el (bookmark-kill-line):
      * lisp/cus-edit.el (custom-save-variables, custom-save-faces):
      * lisp/cus-theme.el (custom-theme-write-variables):
      (custom-theme-write-faces):
      * lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-loop):
      (checkdoc-interactive-ispell-loop):
      (checkdoc-message-interactive-ispell-loop, checkdoc-this-string-valid):
      (checkdoc-this-string-valid-engine):
      * lisp/emacs-lisp/elint.el (elint-get-top-forms):
      * lisp/emulation/viper-cmd.el (viper-backward-indent):
      * lisp/image-dired.el (image-dired-delete-char):
      * lisp/simple.el (kill-visual-line): Replace instances of looking-at,
      looking-back with char comparisons using following-char, preceding-char.
      91478f46
    • Vibhav Pant's avatar
      219339e2
  12. 09 Feb, 2017 1 commit
    • Vibhav Pant's avatar
      Improve byte-switch execution. · dde800c8
      Vibhav Pant authored
      * lisp/emacs-lisp/byte-opt.el,
        lisp/emacs-lisp/bytecomp.el (byte-decompile-bytecode-1),
        (byte-compile-lapcode): Calculate the actual jump address while
        compiling, store it in the jump table.
      
      * src/bytecode.c: Jump to the looked up value directly, do a linear
        search when the number of elements is <= 5.
      dde800c8
  13. 06 Feb, 2017 2 commits
  14. 05 Feb, 2017 5 commits
  15. 03 Feb, 2017 1 commit
  16. 01 Feb, 2017 1 commit
  17. 31 Jan, 2017 1 commit
  18. 30 Jan, 2017 1 commit
  19. 26 Jan, 2017 2 commits
  20. 25 Jan, 2017 3 commits
  21. 21 Jan, 2017 1 commit
  22. 19 Jan, 2017 4 commits
  23. 15 Jan, 2017 1 commit
  24. 14 Jan, 2017 1 commit
    • Vibhav Pant's avatar
      Add new 'switch' byte-code. · 88549ec3
      Vibhav Pant authored
      'switch' takes two arguments from the stack: the variable to test, and
      a jump table (implemented as a hash-table with the appropriate :test
      function). By looking up the value of the variable in the hash table,
      the interpreter can jump to the label pointed to by the value, if any.
      This implementation can only be used for `cond' forms of the type
      `(cond ((test x 'foo) 'bar) ...)`, such that the function `test` and
      variable `x` is same for all clauses.
      
      * lisp/emacs-lisp/bytecomp.el:
      
        * Add (byte-compile-cond-valid-obj2-p), (byte-compile-cond-vars),
          (byte-compile-cond-jump-table-info), (byte-compile-jump-table-add-tag),
          (byte-compile-cond-jump-table), byte-compile-jump-tables.
      
        * Add defcustom `byte-compile-cond-use-jump-table'.
      
        * (byte-compile-cond): Use them.
      
        * (byte-compile-lapcode): Patch tags present in jump tables, if any.
      
      * lisp/emacs-lisp//byte-opt.el: (byte-optimize-lapcode): Add checks to
        some peephole optimizations to prevent them from messing up any code
        involving `byte-switch`.
      
      * src/bytecode.c: (exec_byte_code): Add bytecode Bswitch.
      88549ec3
  25. 01 Jan, 2017 1 commit
  26. 18 Nov, 2016 1 commit
    • Philipp Stephani's avatar
      Prevent dubious argument lists · 0d913da1
      Philipp Stephani authored
      See Bug#24912 and Bug#24913.
      
      * src/eval.c (funcall_lambda): Detect more dubious argument lists.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): Detect
      more dubious argument lists.
      * test/src/eval-tests.el (eval-tests--bugs-24912-and-24913): Add unit
      test.
      0d913da1