Mercurial > hg > xemacs-beta
comparison lisp/bytecomp.el @ 5089:99f8ebc082d9
Make #'substring an alias of #'subseq; give the latter the byte code.
src/ChangeLog addition:
2010-03-03 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (Fsubstring): Removed.
* search.c (Freplace_match):
* minibuf.c (Ftry_completion):
* lisp.h:
* keymap.c (ensure_meta_prefix_char_keymapp):
* dired.c (user_name_completion, file_name_completion):
* console-x.c (x_canonicalize_console_connection):
* bytecode.c (Bsubseq):
* bytecode-ops.h (subseq):
Move #'substring to Lisp, as an alias for #'subseq; change all
C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode
to Bsubseq.
Motivation; not accepting vectors in #'substring is incompatible
with GNU, and Common Lisp prefers #'subseq, it has no #'substring.
lisp/ChangeLog addition:
2010-03-03 Aidan Kehoe <kehoea@parhasard.net>
Move byte code #o117 to #'subseq, not #'substring.
Make #'substring available as an alias for #'subseq in Lisp.
* bytecomp.el (79, subseq, substring):
* bytecomp.el (byte-compile-subseq): New.
* update-elc.el (update-elc-chop-extension): Use #'subseq, not
#'substring, the latter is not yet available.
* subr.el (substring): New alias, to #'subseq.
man/ChangeLog addition:
2010-03-03 Aidan Kehoe <kehoea@parhasard.net>
* lispref/tips.texi (Comment Tips):
* lispref/text.texi (Text Properties):
* lispref/strings.texi (Creating Strings):
* lispref/processes.texi (Input to Processes):
* lispref/functions.texi (Argument List):
* lispref/extents.texi (Duplicable Extents):
Move examples that used substring to using subseq; in
strings.texi, do not change the examples, but document that in
this XEmacs, it is an alias for subseq, and that there may be some
incompatibilities if you depend on that.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 03 Mar 2010 18:40:12 +0000 |
parents | c17c857e20bf |
children | 8c3671b62dad |
comparison
equal
deleted
inserted
replaced
5088:207dad9e74f7 | 5089:99f8ebc082d9 |
---|---|
607 (byte-defop 74 0 byte-symbol-value) | 607 (byte-defop 74 0 byte-symbol-value) |
608 (byte-defop 75 0 byte-symbol-function) ; this was commented out | 608 (byte-defop 75 0 byte-symbol-function) ; this was commented out |
609 (byte-defop 76 -1 byte-set) | 609 (byte-defop 76 -1 byte-set) |
610 (byte-defop 77 -1 byte-fset) ; this was commented out | 610 (byte-defop 77 -1 byte-fset) ; this was commented out |
611 (byte-defop 78 -1 byte-get) | 611 (byte-defop 78 -1 byte-get) |
612 (byte-defop 79 -2 byte-substring) | 612 (byte-defop 79 -2 byte-subseq) |
613 (byte-defop 80 -1 byte-concat2) | 613 (byte-defop 80 -1 byte-concat2) |
614 (byte-defop 81 -2 byte-concat3) | 614 (byte-defop 81 -2 byte-concat3) |
615 (byte-defop 82 -3 byte-concat4) | 615 (byte-defop 82 -3 byte-concat4) |
616 (byte-defop 83 0 byte-sub1) | 616 (byte-defop 83 0 byte-sub1) |
617 (byte-defop 84 0 byte-add1) | 617 (byte-defop 84 0 byte-add1) |
3109 (byte-defop-compiler20 old-memq 2) | 3109 (byte-defop-compiler20 old-memq 2) |
3110 (byte-defop-compiler cons 2) | 3110 (byte-defop-compiler cons 2) |
3111 (byte-defop-compiler aref 2) | 3111 (byte-defop-compiler aref 2) |
3112 (byte-defop-compiler get 2+1) | 3112 (byte-defop-compiler get 2+1) |
3113 (byte-defop-compiler nth 2) | 3113 (byte-defop-compiler nth 2) |
3114 (byte-defop-compiler substring 2-3) | 3114 (byte-defop-compiler subseq byte-compile-subseq) |
3115 (byte-defop-compiler (substring byte-subseq) 2-3) | |
3115 (byte-defop-compiler (move-marker byte-set-marker) 2-3) | 3116 (byte-defop-compiler (move-marker byte-set-marker) 2-3) |
3116 (byte-defop-compiler set-marker 2-3) | 3117 (byte-defop-compiler set-marker 2-3) |
3117 (byte-defop-compiler match-beginning 1) | 3118 (byte-defop-compiler match-beginning 1) |
3118 (byte-defop-compiler match-end 1) | 3119 (byte-defop-compiler match-end 1) |
3119 (byte-defop-compiler upcase 1+1) | 3120 (byte-defop-compiler upcase 1+1) |
3521 (byte-compile-warn | 3522 (byte-compile-warn |
3522 "A quoted lambda form is the second argument of fset. This is probably | 3523 "A quoted lambda form is the second argument of fset. This is probably |
3523 not what you want, as that lambda cannot be compiled. Consider using | 3524 not what you want, as that lambda cannot be compiled. Consider using |
3524 the syntax (function (lambda (...) ...)) instead.")))) | 3525 the syntax (function (lambda (...) ...)) instead.")))) |
3525 (byte-compile-two-args form)) | 3526 (byte-compile-two-args form)) |
3527 | |
3528 (defun byte-compile-subseq (form) | |
3529 (byte-compile-two-or-three-args form) | |
3530 ;; Check that XEmacs supports the substring-subseq equivalence. | |
3531 (pushnew '(eq 'subseq (symbol-function 'substring)) | |
3532 byte-compile-checks-on-load :test #'equal)) | |
3526 | 3533 |
3527 (defmacro byte-compile-funarg-n (&rest n) | 3534 (defmacro byte-compile-funarg-n (&rest n) |
3528 `#'(lambda (form) | 3535 `#'(lambda (form) |
3529 ,@(loop | 3536 ,@(loop |
3530 for en in n | 3537 for en in n |