1. 02 Feb, 2015 4 commits
  2. 01 Feb, 2015 5 commits
  3. 31 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      EIEIO: Simplify help hyperlinks; Try and reduce hardcoding in .elc · e0be229d
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-generic.el (cl--generic-search-method): Fix regexp.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--check-type): Remove.
      Use cl-check-type everywhere instead.
      (eieio-class-object): Remove, use find-class instead when needed.
      (class-p): Don't inline.
      (eieio-object-p): Check more thoroughly, so we don't treat cl-structs,
      such as eieio classes, as objects.  Don't inline.
      (object-p): Mark as obsolete.
      (eieio-defclass-autoload, eieio-defclass-internal, eieio-oref)
      (eieio--generic-tagcode): Avoid `class-p'.
      (eieio-make-class-predicate, eieio-make-child-predicate): New functions.
      (eieio-defclass-internal): Use current-load-list rather than
      `class-location'.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class, eieio-help-constructor):
      Use find-lisp-object-file-name, help-fns-short-filename and new calling
      convention for eieio-class-def.
      (eieio-build-class-list): Remove function, unused.
      (eieio-method-def): Remove button type, unused.
      (eieio-class-def): Inherit from help-function-def.
      (eieio--defclass-regexp): New constant.
      (find-function-regexp-alist): Use it.
      (eieio--specializers-apply-to-class-p): Handle eieio--static as well.
      (eieio-help-find-method-definition, eieio-help-find-class-definition):
      Remove functions.
      
      * lisp/emacs-lisp/eieio.el (defclass): Use new eieio-make-class-predicate
      and eieio-make-child-predicate.
      (eieio-class-parents): Use eieio--class-object.
      (slot-boundp, find-class, eieio-override-prin1): Avoid class-p.
      (slot-exists-p): Use find-class.
      
      * test/automated/eieio-tests.el (eieio-test-23-inheritance-check): Simplify.
      e0be229d
  4. 30 Jan, 2015 2 commits
  5. 28 Jan, 2015 2 commits
    • Stefan Monnier's avatar
    • Stefan Monnier's avatar
      Tighten up the tagcode used for eieio and cl-struct objects · 2668ac1a
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Set the function
      slot of the tag symbol to :quick-object-witness-check.
      (eieio-object-p): Use :quick-object-witness-check.
      (eieio--generic-tagcode): Use cl--generic-struct-tag.
      * lisp/emacs-lisp/cl-preloaded.el: New file.
      * lisp/emacs-lisp/cl-macs.el (cl--bind-inits): Remove, unused.
      (cl--transform-lambda, cl-destructuring-bind): Remove cl--bind-inits.
      (cl--make-usage-args): Strip away &aux args.
      (cl-case, cl-typecase, cl--parse-loop-clause): Use macroexp-let2.
      (cl-the, cl-check-type): Use macroexp-let2 and cl-typep.
      (cl-defstruct): Use `declare' and cl-struct-define.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): New function.
      (cl--generic-struct-tagcode): Use it to tighten the tagcode.
      * lisp/loadup.el: Load cl-preloaded.
      * src/lisp.mk (lisp): Add cl-preloaded.
      2668ac1a
  6. 27 Jan, 2015 4 commits
  7. 26 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el (cl--generic-method): New struct. · a9a3d429
      Stefan Monnier authored
      (cl--generic): The method-table is now a (list-of cl--generic-method).
      (cl--generic-member-method): New function.
      (cl-generic-define-method): Use it.
      (cl--generic-build-combined-method, cl--generic-cache-miss):
      Adapt to new method-table.
      (cl--generic-no-next-method-function): Add `method' argument.
      (cl-generic-call-method): Adapt to new method representation.
      (cl--generic-cnm-sample, cl--generic-nnm-sample): Adjust.
      (cl-find-method, cl-method-qualifiers): New functions.
      (cl--generic-method-info): Adapt to new method representation.
      Return a string for the qualifiers.
      (cl--generic-describe):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Adjust accordingly.
      (eieio-all-generic-functions, eieio-method-documentation):
      Adjust to new method representation.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use cl-find-method.
      
      * test/automated/cl-generic-tests.el: Try and make sure cl-lib is not
      required at run-time.
      a9a3d429
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el: Add a method-combination hook. · 4cdde919
      Stefan Monnier authored
      (cl-generic-method-combination-function): New var.
      (cl--generic-lambda): Remove `with-cnm' arg.
      (cl-defmethod): Change accordingly.
      (cl-generic-define-method): Don't check qualifiers validity.
      Preserve all qualifiers in `method-table'.
      (cl-generic-call-method): New function.
      (cl--generic-nest): Remove (morph into cl-generic-call-method).
      (cl--generic-build-combined-method): Adjust to new format of method-table
      and use cl-generic-method-combination-function.
      (cl--generic-standard-method-combination): New function, extracted from
      cl--generic-build-combined-method.
      (cl--generic-cnm-sample): Adjust to new format of method-table.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use () qualifiers
      instead of :primary.
      
      * lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke):
      Remove obsolete function.
      
      * test/automated/cl-generic-tests.el (cl-generic-test-11-next-method-p):
      New test.
      4cdde919
  8. 25 Jan, 2015 2 commits
  9. 23 Jan, 2015 1 commit
  10. 22 Jan, 2015 3 commits
    • Glenn Morris's avatar
      Auto-commit of loaddefs files. · d7995b18
      Glenn Morris authored
      d7995b18
    • Paul Eggert's avatar
      Don't downcase system diagnostics' first letters · 8dd58a2d
      Paul Eggert authored
      * etc/NEWS: Document this.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
      * lisp/ffap.el (find-file-at-point):
      * lisp/files.el (insert-file-1):
      * lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory)
      (ange-ftp-copy-file-internal):
      * lisp/progmodes/etags.el (visit-tags-table):
      * lisp/url/url-dav.el (url-dav-delete-directory, url-dav-delete-file)
      (url-dav-directory-files):
      Keep diagnostics consistent with system's.
      * lisp/erc/erc-dcc.el (erc-dcc-server):
      * lisp/ffap.el (ffap-machine-p):
      Ignore case while comparing diagnostics.
      * src/fileio.c (report_file_errno): Don't downcase, and simplify.
      Fixes: bug#19642
      8dd58a2d
    • Stefan Monnier's avatar
      Avoid generating invalid usage info for pathological function · 938bca8e
      Stefan Monnier authored
      Fixes: debbugs:19645
      
      * lisp/help.el (help-make-usage): Don't turn a "_" arg into an empty-string.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Don't confuse a string
      body with a docstring.
      938bca8e
  11. 21 Jan, 2015 5 commits
    • Joakim Verona's avatar
      removed spurious diff · 9e216161
      Joakim Verona authored
      9e216161
    • Joakim Verona's avatar
      upstream · c8f2ca7d
      Joakim Verona authored
      c8f2ca7d
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Fix up warnings and improve compatibility · 59e7fe6d
      Stefan Monnier authored
      Fixes: debbugs:19645
      
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Add support for `declare'.
      (cl--generic-setf-rewrite): Setup the setf expander right away.
      (cl-defmethod): Make sure the setf expander is setup before we expand
      the body.
      (cl-defmethod): Silence byte-compiler warnings.
      (cl-generic-define-method): Shuffle code to change return value.
      (cl--generic-method-info): New function, extracted from
      cl--generic-describe.
      (cl--generic-describe): Use it.
      
      * lisp/emacs-lisp/eieio-speedbar.el:
      * lisp/emacs-lisp/eieio-datadebug.el:
      * lisp/emacs-lisp/eieio-custom.el:
      * lisp/emacs-lisp/eieio-base.el: Use cl-defmethod.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Avoid no-next-method
      errors when there's a `before' but no `primary'.
      (next-method-p): Return nil rather than signal an error.
      (eieio-defgeneric): Remove bogus (fboundp 'method).
      
      * lisp/emacs-lisp/eieio-opt.el: Adapt to cl-generic.
      (eieio--specializers-apply-to-class-p):	New function.
      (eieio-all-generic-functions): Use it.
      (eieio-method-documentation): Use it as well as cl--generic-method-info.
      Change format of return value.
      (eieio-help-class): Adapt accordingly.
      
      * lisp/emacs-lisp/eieio.el: Use cl-defmethod.
      (defclass): Generate cl-defmethod calls; use setf methods for :accessor.
      (eieio-object-name-string): Declare as obsolete.
      
      * test/automated/cl-generic-tests.el (setf cl--generic-2): Make sure
      the setf can be used already in the body of the method.
      59e7fe6d
    • Glenn Morris's avatar
      Auto-commit of loaddefs files. · 41efcf4d
      Glenn Morris authored
      41efcf4d
    • Artur Malabarba's avatar
  12. 20 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      lisp/emacs-lisp/eieio*.el: Rewrite our generics on top of cl-generic · 3a8312d0
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-generic.el: Remove.
      (defgeneric, defmethod): Move to eieio-compat.el.  Mark obsolete.
      * lisp/emacs-lisp/eieio-compat.el: New file.
      * lisp/emacs-lisp/eieio.el: Don't require eieio-generic any more.
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-originating-class-p):
      Remove unused function.
      (eieio-defclass): Move to eieio-compat.el.
      * lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): New function.
      (macroexp--expand-all): Use it.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel): Here too.
      3a8312d0
    • Michal Nazarewicz's avatar
      eldoc: modify `eldoc-documentation-function' using `add-function' · fd020a29
      Michal Nazarewicz authored
      * lisp/emacs-lisp/eldoc.el (eldoc-documentation-function): Describe how
      major modes should use `add-function' to alter value of the variable.
      
      * lisp/hexl.el (hexl-mode): Set `eldoc-documentation-function' using
      `add-function' so the default value is always used.
      * lisp/ielm.el (inferior-emacs-lisp-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/cfengine.el (cfengine3-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/elisp-mode (emacs-lisp-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/octave.el (octave-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/python.el (python-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/simple.el (read--expression): Set `eldoc-documentation-function'
      using `add-function' so the default value is always used.
      fd020a29
  13. 18 Jan, 2015 6 commits
  14. 17 Jan, 2015 1 commit