1. 01 Apr, 2011 1 commit
    • Stefan Monnier's avatar
      Miscellanous cleanups in preparation for the merge. · 7200d79c
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
      Remove debug statement.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-single-version)
      (byte-compile-version-cond, byte-compile-delay-out)
      (byte-compile-delayed-out): Remove, unused.
      * src/bytecode.c (Fbyte_code): Revert to old calling convention.
      * src/lisp.h (COMPILED_PUSH_ARGS): Remove, unused.
      7200d79c
  2. 25 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      Get rid of funvec. · 876c194c
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Handle new form of
      `byte-constant'.
      (byte-compile-close-variables, displaying-byte-compile-warnings):
      Add edebug spec.
      (byte-compile-toplevel-file-form): New fun, split out of
      byte-compile-file-form.
      (byte-compile-from-buffer): Use it to avoid applying cconv
      multiple times.
      (byte-compile): Only strip `function' if it's present.
      (byte-compile-lambda): Add `reserved-csts' argument.
      Use new lexenv arg of byte-compile-top-level.
      (byte-compile-reserved-constants): New var.
      (byte-compile-constants-vector): Obey it.
      (byte-compile-constants-vector): Handle new `byte-constant' form.
      (byte-compile-top-level): Add args `lexenv' and `reserved-csts'.
      (byte-compile-form): Don't check callargs here.
      (byte-compile-normal-call): Do it here instead.
      (byte-compile-push-unknown-constant)
      (byte-compile-resolve-unknown-constant): Remove, unused.
      (byte-compile-make-closure): Use `make-byte-code' rather than `curry',
      putting the environment into the "constant" pool.
      (byte-compile-get-closed-var): Use special byte-constant.
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Handle new
      intermediate special form `internal-make-vector'.
      (byte-optimize-lapcode): Handle new form of `byte-constant'.
      * lisp/help-fns.el (describe-function-1): Don't handle funvecs.
      * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Only convert quote to
      function if the content is a lambda expression, not if it's a closure.
      * emacs-lisp/eieio-come.el: Remove.
      * lisp/emacs-lisp/eieio.el: Don't require eieio-comp.
      (defmethod): Do a bit more work to find the body and wrap it into
      a function before passing it to eieio-defmethod.
      (eieio-defmethod): New arg `code' for it.
      * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Don't hide things in
      debugger backtrace.
      * lisp/emacs-lisp/cl-extra.el (cl-macroexpand-all): Use backquotes, and be
      more careful when quoting a function value.
      * lisp/emacs-lisp/cconv.el (cconv-freevars): Accept defvar/defconst.
      (cconv-closure-convert-rec): Catch stray `internal-make-closure'.
      * lisp/Makefile.in (COMPILE_FIRST): Compile pcase and cconv early.
      
      * src/eval.c (Qcurry): Remove.
      (funcall_funvec): Remove.
      (funcall_lambda): Move new byte-code handling to reduce impact.
      Treat all args as lexical in the case of lexbind.
      (Fcurry): Remove.
      * src/data.c (Qfunction_vector): Remove.
      (Ffunvecp): Remove.
      * src/lread.c (read1): Revert to calling make_byte_code here.
      (read_vector): Don't call make_byte_code any more.
      * src/lisp.h (enum pvec_type): Rename back to PVEC_COMPILED.
      (XSETCOMPILED): Rename back from XSETFUNVEC.
      (FUNVEC_SIZE): Remove.
      (FUNVEC_COMPILED_TAG_P, FUNVEC_COMPILED_P): Remove.
      (COMPILEDP): Rename back from FUNVECP.
      * src/fns.c (Felt): Remove unexplained FUNVEC check.
      * src/doc.c (Fdocumentation): Don't handle funvec.
      * src/alloc.c (make_funvec, Ffunvec): Remove.
      * doc/lispref/vol2.texi (Top):
      * doc/lispref/vol1.texi (Top):
      * doc/lispref/objects.texi (Programming Types, Funvec Type, Type Predicates):
      * doc/lispref/functions.texi (Functions, What Is a Function, FunctionCurrying):
      * doc/lispref/elisp.texi (Top): Remove mentions of funvec and curry.
      876c194c
  3. 21 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      Use offsets relative to top rather than bottom for stack refs · 3e21b6a7
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops):
      Remove interactive-p.
      (byte-optimize-lapcode): Update optimizations now that stack-refs are
      relative to the top rather than to the bottom.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode):
      Turn stack-ref-0 into dup.
      (byte-compile-form): Don't indirect-function since it can signal
      errors.
      (byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs
      being relative to top rather than to bottom in the byte-code.
      (with-output-to-temp-buffer): Remove.
      (byte-compile-with-output-to-temp-buffer): Remove.
      * lisp/emacs-lisp/cconv.el: Use lexical-binding.
      (cconv--lookup-let): Rename from cconv-lookup-let.
      (cconv-closure-convert-rec): Fix handling of captured+mutated
      arguments in defun/defmacro.
      * lisp/emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod):
      Rename from byte-compile-file-form-defmethod.
      Don't byte-compile-lambda.
      (eieio-byte-compile-defmethod-param-convert): Rename from
      byte-compile-defmethod-param-convert.
      * lisp/emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one):
      Call byte-compile rather than byte-compile-lambda.
      * src/alloc.c (Fgarbage_collect): Don't mark the byte-stack redundantly.
      * src/bytecode.c (exec_byte_code): Change stack_ref and stack_set to use
      offsets relative to top rather than to bottom.
      * lisp/subr.el (with-output-to-temp-buffer): New macro.
      * lisp/simple.el (count-words-region): Don't use interactive-p.
      3e21b6a7
  4. 18 Feb, 2011 1 commit
    • Glenn Morris's avatar
      Use generated-autoload-file for internal eieio autoloads. · 002b46b7
      Glenn Morris authored
      * lisp/emacs-lisp/eieio-custom.el: Set generated-autoload-file.
      (customize-object): Add autoload cookie.
      
      * lisp/emacs-lisp/eieio-opt.el: Set generated-autoload-file.
      (eieio-browse, describe-class, eieio-describe-class)
      (eieio-describe-constructor, describe-generic, eieio-describe-generic)
      (eieio-help-mode-augmentation-maybee): Add autoload cookies.
      
      * lisp/emacs-lisp/eieio.el: Regenerate with automatic autoloads.
      
      * lisp/Makefile.in (autoloads): Make eieio.el writable.
      002b46b7
  5. 25 Jan, 2011 1 commit
  6. 15 Jan, 2011 1 commit
  7. 02 Jan, 2011 1 commit
  8. 19 Sep, 2010 1 commit
    • Eric M. Ludlam's avatar
      Update to CEDET 1.0's version of EIEIO. · a2930e43
      Eric M. Ludlam authored
      * emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key): New
      function.
      (eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
      (eieio-default-eval-maybe): Eval val instead of unquoting only.
      (class-precedence-list): If class is nil, return nil.
      (eieio-generic-call): If class of first input arg is nil, don't
      look up static methods, and do check for primary methods.
      (initialize-instance): See if the default needs to be evaluated
      during the constructor.
      (eieio-perform-slot-validation-for-default): Don't do the check
      for values that will eventually be evaluated.
      (eieio-eval-default-p): New function.
      (eieio-default-eval-maybe): Use it.
      
      * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
      method-invocation-order.
      (eieio-c3-candidate, eieio-c3-merge-lists): New functions.
      (eieio-class-precedence-dfs): Compute class precedence list using
      dfs algorithm.
      (eieio-class-precedence-bfs): Compute class precedence list using
      bfs algorithm.
      (eieio-class-precedence-c3): compute class precedence list using
      c3 algorithm.
      (class-precedence-list): New function.
      (eieiomt-method-list, eieiomt-sym-optimize): Use it.
      (inconsistent-class-hierarchy): New error symbol.
      (call-next-method): Stow the replacement argument list for future
      call-next-method invocations.
      a2930e43
  9. 30 Aug, 2010 1 commit
    • Stefan Monnier's avatar
      Use `declare' in defmacros. · f291fe60
      Stefan Monnier authored
      * lisp/window.el (save-selected-window):
      * lisp/subr.el (with-temp-file, with-temp-message, with-syntax-table):
      * lisp/progmodes/python.el (def-python-skeleton):
      * lisp/net/dbus.el (dbus-ignore-errors):
      * lisp/jka-cmpr-hook.el (with-auto-compression-mode):
      * lisp/international/mule.el (with-category-table):
      * lisp/emacs-lisp/timer.el (with-timeout):
      * lisp/emacs-lisp/lisp-mnt.el (lm-with-file):
      * lisp/emacs-lisp/eieio.el (with-slots):
      * lisp/emacs-lisp/easymenu.el (easy-menu-define):
      * lisp/emacs-lisp/debug.el (debugger-env-macro):
      * lisp/emacs-lisp/cl-compat.el (Multiple-value-bind, Multiple-value-setq)
      (Multiple-value-call, Multiple-value-prog1):
      * lisp/emacs-lisp/cl-seq.el (cl-parsing-keywords, cl-check-key)
      (cl-check-test-nokey, cl-check-test, cl-check-match): Move indent and
      edebug rule to definition.
      * lisp/emacs-lisp/lisp-mode.el (save-selected-window)
      (with-current-buffer, combine-after-change-calls)
      (with-output-to-string, with-temp-file, with-temp-buffer)
      (with-temp-message, with-syntax-table, read-if, eval-after-load)
      (dolist, dotimes, when, unless):
      * lisp/emacs-lisp/byte-run.el (inline): Remove indent rule, redundant.
      f291fe60
  10. 18 Jan, 2010 1 commit
  11. 13 Jan, 2010 1 commit
  12. 11 Oct, 2009 1 commit
  13. 05 Oct, 2009 1 commit
    • Juanma Barranquero's avatar
      Fix typos. · a8f316ca
      Juanma Barranquero authored
      * emacs-lisp/chart.el, emacs-lisp/eieio.el, emacs-lisp/eieio-base.el
      * emacs-lisp/eieio-comp.el, emacs-lisp/eieio-custom.el
      * emacs-lisp/eieio-datadebug.el, emacs-lisp/eieio-opt.el
      * emacs-lisp/eieio-speedbar.el
      a8f316ca
  14. 02 Oct, 2009 1 commit
  15. 01 Oct, 2009 1 commit
  16. 30 Sep, 2009 1 commit
  17. 28 Sep, 2009 2 commits
  18. 13 Sep, 2009 1 commit
    • Chong Yidong's avatar
      Synch to Eric M. Ludlam's upstream CEDET repository. · a964f5e5
      Chong Yidong authored
      * cedet/semantic/wisent/java-tags.el:
      * cedet/semantic/wisent/javat-wy.el: New files.
      
      * cedet/semantic/wisent/java.el:
      * cedet/semantic/wisent/java-wy.el: Files removed.
      
      * cedet/semantic/java.el (semantic-java-prototype-function)
      (semantic-java-prototype-variable, semantic-java-prototype-type):
      Doc fix
      (java-mode::semantic-format-tag-prototype): Renamed from
      semantic-format-prototype-tag, which didn't match the overloadable
      function.
      
      * cedet/semantic/bovine/c.el (semantic-c-dereference-namespace-alias):
      Deal correctly with nested namespaces.  Make sure type actually
      exists in original namespace.
      
      * cedet/semantic/lex-spp.el (semantic-lex-spp-hack-depth): New.
      (semantic-lex-spp-lex-text-string): Use above to enable recursion.
      
      * cedet/semantic/format.el: Whitespace cleanup.
      (semantic-test-all-format-tag-functions): Move to end.
      (semantic-format-tag-prototype, semantic-format-tag-name)
      (semantic-format-tag-name-default): Revert to original upstream
      positions.
      
      * cedet/semantic/elp.el: File removed.
      
      * cedet/semantic/analyze.el (semantic-adebug-analyze): New
      function, moved here from semantic/adebug.
      
      * cedet/semantic/adebug.el: Declare external semanticdb functions.
      (semantic-adebug-analyze, semantic-adebug-edebug-expr): Deleted.
      
      * emacs-lisp/eieio.el (eieio-unbound): Default value is now robust
      to recompile.
      
      * emacs-lisp/eieio-datadebug.el: Add eieio objects to the list of
      data debug things to recognize.
      
      * emacs-lisp/eieio-comp.el: Synch to upstream.
      
      * cedet/data-debug.el: Don't require eieio and semantic/tag.
      If eieio is loaded, require eieio-datadebug.
      (data-debug-insert-ring-button): Do not be specific about the ring
      contents.
      (data-debug-thing-alist): Remove eieio and semantic specific
      entries.
      (data-debug-add-specialized-thing): New function.
      
      * cedet/cedet.el: Update commentary.
      
      * cedet/cedet-edebug.el: Require edebug and debug.
      a964f5e5
  19. 07 Sep, 2009 1 commit
  20. 30 Aug, 2009 1 commit