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