summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
...
* Create generated lisp files before main loaddefs.elGlenn Morris2017-04-131-1/+1
| | | | | | | | | | | This should improve reproducibility of lisp/loaddefs.el. * lisp/Makefile.in (gen-lisp): New phony target. ($(lisp)/loaddefs.el, compile-main): Depend on gen-lisp. * src/Makefile.in ($(leimdir)/leim-list.el): Depend on all of ../leim. * lisp/cedet/semantic.el (semantic-mode): * lisp/cedet/semantic/fw.el (top-level): * lisp/emacs-lisp/eieio-core.el (top-level): Robustify to generated input files maybe not yet existing.
* Introduce customizable variable 'package-gnupghome-dir'Jens Lechtenboerger2017-04-111-9/+26
| | | | | | | | | * lisp/emacs-lisp/package.el (package-import-keyring) (package--check-signature-content, package-check-signature): Use new variable package-gnupghome-dir to control which GnuPG homedir to use. * doc/emacs/package.texi: Mention package-gnupghome-dir. * etc/NEWS: Mention package-gnupghome-dir.
* Adjust the edebug spec of if-let*Mark Oteiza2017-04-081-1/+2
| | | | | | This was fixed in Bug#24748, but now looking more closely, using gate in the spec seems correct. See (info "(elisp) Backtracking"). * lisp/emacs-lisp/subr-x.el (if-let*): Use gate in edebug spec.
* Deprecate copy-record in favor of copy-sequencePaul Eggert2017-04-072-5/+4
| | | | | | | | | | | | | | | | | Since copy-sequence seems to be needed anyway for records, have it work on records, and remove copy-record as being superfluous. * doc/lispref/records.texi (Records, Record Functions): * lisp/emacs-lisp/cl-macs.el (cl-defstruct): * lisp/emacs-lisp/eieio.el (make-instance, clone): * test/src/alloc-tests.el (record-3): Use copy-sequence, not copy-record, to copy records. * doc/lispref/sequences.texi (Sequence Functions) (Array Functions): Document that aref and copy-sequence work on records. * etc/NEWS: Omit copy-record. * src/alloc.c (Fcopy_record): Remove. * src/data.c (Faref): Document that arg can be a record. * src/fns.c (Fcopy_sequence): Copy records, too.
* make smie.el respect prog-first-columnTom Tromey2017-04-051-1/+3
| | | | * lisp/emacs-lisp/smie.el (smie-indent-bob): Call prog-first-column.
* ; * lisp/emacs-lisp/package.el (describe-package-1): Tweak recent.Glenn Morris2017-04-041-6/+5
|
* Advertise https for homepage of gnu.org packagesGlenn Morris2017-04-041-0/+7
| | | | | * lisp/emacs-lisp/package.el (describe-package-1): Use https, if supported, for the homepage of packages on gnu.org.
* Default to https for elpa.gnu.org if gnutls availableGlenn Morris2017-04-041-3/+5
| | | | | | * lisp/emacs-lisp/package.el (package-archives): Default to https for elpa.gnu.org if gnutls is available. Ref: http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00130.html
* Backward compatibility with pre-existing struct instances.Stefan Monnier2017-04-043-2/+44
| | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-lib.el (cl--old-struct-type-of): New function. (cl-old-struct-compat-mode): New minor mode. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Pass `record' to cl-struct-define to signal use of record objects. * lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class, cl-struct-define): Enable legacy defstruct compatibility. * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-old-struct, old-struct): New tests. * doc/lispref/elisp.texi, doc/lispref/records.texi: Document `old-struct-compat'.
* Make EIEIO use records.Stefan Monnier2017-04-045-44/+29
| | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-object-generalizer): Adjust to new tags. * lisp/emacs-lisp/eieio-core.el: Use records, and place the class object directly as tag. (eieio--object-class): Adjust to new tag representation. (eieio-object-p): Rewrite, and adapt to new `type-of' behavior. (eieio-defclass-internal): Use `make-record'. (eieio--generic-generalizer): Adjust generalizer code accordingly. * lisp/emacs-lisp/eieio.el (make-instance, clone): Use copy-record. * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add `recordp'. * doc/lispref/records.texi, doc/misc/eieio.texi: Update for records.
* Make cl-defstruct use records.Lars Brinkhoff2017-04-045-47/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--describe-class) (cl--describe-class-slots): Use the new `type-of'. * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Use type-of. (cl--generic-struct-specializers): Adjust to new tag. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): When type is nil, use records. Use the type symbol as the tag. Use copy-record to copy structs. (cl--defstruct-predicate): New function. (cl--pcase-mutually-exclusive-p): Use it. (cl-struct-sequence-type): Can now return `record'. * lisp/emacs-lisp/cl-preloaded.el (cl--make-slot-desc): Adjust ad-hoc code to new format. (cl--struct-register-child): Work with records. (cl-struct-define): Don't touch the tag's symbol-value and symbol-function slots when we use the type as tag. * lisp/emacs-lisp/cl-print.el (cl-print-object): Adjust to new tag. * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record): New test. * doc/lispref/records.texi, doc/misc/cl.texi: Update for records.
* * lisp/emacs-lisp/ert.el (ert-run-tests): Make INTERACTIVE arg optional.Noam Postavsky2017-03-281-1/+1
|
* Fix obsolete ‘test/automated’ referencesPaul Eggert2017-03-273-4/+2
| | | | | | | | | | | | | | * 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.
* * lisp/emacs-lisp/pcase.el (pcase): Comment debug message (Bug#26177).Paul Pogonyshev2017-03-251-2/+2
|
* Stop edebug getting stuck on backquote (Bug#23651)Jens Uwe Schmidt2017-03-251-2/+2
| | | | | | | * lisp/emacs-lisp/edebug.el (edebug-read-sexp): Move forward after reading backquote or comma. Copyright-paperwork-exempt: yes
* Make it easier to abort a series of tests with C-gHelmut Eller2017-03-241-9/+13
| | | | | | | | * emacs-lisp/ert.el (ert-run-tests): Add "interactively" arg. If interactively is true and a test was aborted then ask if the remaining tests should be aborted too. (ert-run-tests-batch, ert-run-tests-interactively): Pass in interactively arg.
* * lisp/emacs-lisp/lisp-mode.el: Don't highlight \( at BOLStefan Monnier2017-03-241-11/+19
| | | | | (elisp--font-lock-backslash): Extract from lisp-el-font-lock-keywords-2. Don't highlight \ at BOL. Don't assume syntax-ppss preserves match-data.
* * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Fix null endpos caseGraham Dobbins2017-03-211-1/+4
| | | | Copyright-paperwork-exempt: yes
* Merge from origin/emacs-25Paul Eggert2017-03-192-2/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ab0a60a ; * CONTRIBUTE (Generating ChangeLog entries): Drop duplicate... 7e02a47 Index byte-compile-debug 7c1e598 Document `byte-compile-debug' in the ELisp manual 4d81eb4 Document variable `byte-compile-debug' 72ef710 Fix call to debugger on assertion failure ae8264c Call modification hooks in org-src fontify buffers b3139da ; Fix last change in doc/lispref/strings.texi c331f39 Improve documentation of 'format' conversions 9f52f67 Remove stale functions from ert manual c416b14 Fix a typo in Eshell manual 06695a0 ; Fix a typo in ediff-merg.el 954e9e9 Improve documentation of hooks related to saving buffers 9fcab85 Improve documentation of auto-save-visited-file-name 2236c53 fix typo in mailcap-mime-extensions 85a3e4e Fix typos in flymake.el a1ef10e More NEWS checking for admin.el's set-version # Conflicts: # lisp/emacs-lisp/bytecomp.el
| * Document variable `byte-compile-debug'Philipp Stephani2017-01-311-1/+2
| | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-debug): Document variable.
| * Fix call to debugger on assertion failureNoam Postavsky2017-01-301-1/+1
| | | | | | | | | | | | * lisp/emacs-lisp/cl-preloaded.el (cl--assertion-failed): The first argument must be `error', and the second is a list of arguments for `signal'.
* | Merge from origin/emacs-25Paul Eggert2017-03-191-7/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | 5569e64 ; Spelling fixes 24a5f57 * lisp/net/eww.el (eww-tag-meta): Handle single quoted URLs (... 9b89896 * lisp/progmodes/sql.el (sql-product-alist): Doc tweak 69b50f5 * lisp/progmodes/sql.el (sql-product-alist): Doc fix. (Bug#2... 42eae54 Improve documentation of dabbrevs b0ade0d Clarify that easy-menu-add is a nop (Bug#25382) 3c69f2c * lisp/textmodes/rst.el (rst-package-emacs-version-alist): Fi... # Conflicts: # lisp/textmodes/rst.el
| * Clarify that easy-menu-add is a nop (Bug#25382)Noam Postavsky2017-01-121-7/+8
| | | | | | | | | | * lisp/emacs-lisp/easymenu.el (easy-menu-add): Make it into an alias of `ignore', like `easy-menu-remove'.
| * ; Auto-commit of loaddefs files.Glenn Morris2017-01-042-3/+3
| |
* | Fix bug in generator function with pcase (Bug#26068)Paul Pogonyshev2017-03-191-4/+4
| | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove some calls to symbol-name.
* | Remove unused vars in cl-extra.el and tramp.el.Stefan Monnier2017-03-181-8/+6
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--print-table): Remove unused vars. * lisp/net/tramp.el (tramp-dissect-file-name): Remove unused `match'. (outline-regexp, ls-lisp-use-insert-directory-program): Declare. (tramp-find-foreign-file-name-handler): Mark unused arg, remove unused `v`.
* | Improve describe-symbol's layout of slots when describing typesStefan Monnier2017-03-181-1/+50
| | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--print-table): New function. (cl--describe-class-slots): Use it.
* | * lisp/emacs-lisp/cl-print.el (cl-print-compiled): New variableStefan Monnier2017-03-121-2/+36
| | | | | | | | | | (cl-print-object) <compiled-function>: Print the docstring and interactive form. Obey cl-print-compiled.
* | Fix indent-sexp when called from inside a string (Bug#21343)Noam Postavsky2017-03-121-4/+8
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Get initial syntax parse state from `syntax-ppss'.
* | * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Simplify.Noam Postavsky2017-03-121-96/+72
| | | | | | | | | | * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-sexp): (indent-subsexp, indent-sexp-in-string): New tests.
* | Use switch on pseudovector types; plus cleanups along the wayStefan Monnier2017-03-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/lisp.h (PSEUDOVECTOR_TYPE): New function, extracted from mark_object. (PSEUDOVECTOR_TYPEP): Change type of `code'. * src/alloc.c (sweep_vectors): Remove out-of-date assertion. (mark_object): Use PSEUDOVECTOR_TYPE. * src/data.c (Ftype_of): Use switch on pvec type. * src/print.c (print_object): Use switch on pvec type. * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add recently added types.
* | Improve last changeStefan Monnier2017-03-111-7/+11
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Use ppss to check escaping and add help-echo.
* | Highlight useless backslashes in Elisp stringsStefan Monnier2017-03-111-0/+9
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Put warning face on backslashes that have no effect.
* | Byte compile cond clauses without any bodies correctly.Vibhav Pant2017-03-101-1/+3
| | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table): When a cond clause has no body, push t on to the stack.
* | * lisp/emacs-lisp/cl-print.el (cl-print-object): Use #f(..) for functions.Stefan Monnier2017-03-071-4/+5
| |
* | Revert "Replace ldefs-boot with a much smaller file"Phillip Lord2017-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | This reverts commit c27b645956a11fab1dd8fa189254d525390958f5. This commit has been reverted because the new mechanism was too sensitive to changes in the lisp source, generation of new ldefs-boot files was platform specific and resulted in warnings about undefined variables. See also 11436e2890d.
* | ; Spelling fixesPaul Eggert2017-03-051-1/+1
| |
* | Use lexical binding in benchmark.elTino Calancha2017-03-031-4/+2
| | | | | | | | | | | | * lisp/emacs-lisp/benchmark.el: Enable lexical binding. (benchmark-elapse): Use 'declare'. * test/lisp/emacs-lisp/benchmark-tests.el: Add test suite.
* | Switch pp.el to lexical bindingNoam Postavsky2017-03-021-33/+18
| | | | | | | | | | | | | | | | | | | | Additionally, do some minor code cleanup. * lisp/emacs-lisp/pp.el: Set lexical-binding. (pp-buffer): Use skip-syntax-forward. (pp-eval-expression): Use push. (pp-last-sexp): Use with-syntax-table. * test/lisp/emacs-lisp/pp-tests.el: New tests.
* | Fix completing-read call in reb-change-syntaxChunyang Xu2017-03-021-4/+4
| | | | | | | | | | | | | | * lisp/emacs-lisp/re-builder.el (reb-change-syntax): Use 'default' arg of completing-read. Copyright-paperwork-exempt: yes
* | Ert commands to error if no test at point (bug#25931)Glenn Morris2017-03-021-23/+34
| | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/ert.el (ert-results-mode-menu): Deactivate some items if no test at point. (ert--results-test-at-point-no-redefinition): Add option to signal an error rather than return nil. (ert-results-pop-to-backtrace-for-test-at-point) (ert-results-pop-to-messages-for-test-at-point) (ert-results-pop-to-should-forms-for-test-at-point) (ert-results-describe-test-at-point): Error if no test at point.
* | Prevent for consing in cl-mapc and cl-maplTino Calancha2017-02-272-14/+29
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--mapcar-many): Add optional arg ACC; If non-nil, accumulate values in the result (Bug#25826). (cl-mapc): Do computations inside function instead of call cl-map. (cl-mapl): Do computations inside function instead of call cl-maplist. * lisp/emacs-lisp/cl-lib.el (mapcar): Add autoload cookie. Call cl--mapcar-many with non-nil 3rd argument. * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map) (cl-extra-test-mapc, cl-extra-test-mapcar, cl-extra-test-mapl) (cl-extra-test-maplist): New tests.
* | Don't call package--ensure-init-file if initialized during startupNoam Postavsky2017-02-261-7/+7
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/package.el (package-initialize): Check `after-init-time' rather than `load-file-name' to decide if `package--ensure-init-file' should be called. Depending on `load-file-name' will fail if the user calls `pacakge-initialize' in file which is loaded from the init file (Bug#24643, Bug#25819).
* | Use cl-print for Edebug and EIEIOStefan Monnier2017-02-233-66/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-prin1-to-string): Use cl-print. (edebug-prin1, edebug-print): Remove. * lisp/emacs-lisp/eieio.el (object-print): Declare obsolete. (cl-print-object): Add a method for EIEIO objects. (eieio-edebug-prin1-to-string): Delete. (edebug-prin1-to-string): Don't advise any more. * lisp/emacs-lisp/eieio-datadebug.el (data-debug-insert-object-button): Replace `object-print' -> `cl-prin1-to-string'.
* | * lisp/emacs-lisp/cl-print.el: New fileStefan Monnier2017-02-232-5/+209
| | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/nadvice.el (advice--where): New function. (advice--make-docstring): Use it. * src/print.c (print_number_index): Don't declare here any more. (Fprint_preprocess): New function. * test/lisp/emacs-lisp/cl-print-tests.el: New file.
* | Support read syntax for circular objects in Edebug (Bug#23660)Gemini Lasswell2017-02-231-12/+48
| | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-read-special): New name for edebug-read-function. Handle the read syntax for circular objects. (edebug-read-objects): New variable. (edebug-read-and-maybe-wrap-form1): Reset edebug-read-objects. * src/lread.c (Fsubstitute_object_in_subtree): Make substitute_object_in_subtree into a Lisp primitive.
* | * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add `atom'Stefan Monnier2017-02-211-15/+22
| | | | | | | | | | | | | | remove entries whose car can't be returned by type-of. (cl--generic-all-builtin-types): New var. (cl-generic-generalizers): Use it to avoid requiring extra entries in cl--generic-typeof-types.
* | * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Fix last changeStefan Monnier2017-02-211-1/+1
| |
* | * lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgenericStefan Monnier2017-02-212-5/+2
| | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.
* | * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplicationStefan Monnier2017-02-211-1/+14
| | | | | | | | | | which resulted in incomplete list of parents in one copy of the cl-structure-class class.