view src/bytecode-ops.h @ 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 17362f371cc2
children 308d34e9f07d
line wrap: on
line source

/* Execution of byte code produced by bytecomp.el.
   Implementation of compiled-function objects.
   Copyright (C) 1992, 1993 Free Software Foundation, Inc.
   Copyright (C) 1995, 2002, 2010 Ben Wing.

This file is part of XEmacs.

XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* Synched up with: Mule 2.0, FSF 19.30. */

/* There is more than one place in bytecode.c that may want to do something
   with the list of all the opcodes.  To handle this, we extract them into
   a separate file that can get included after defining OPCODE(sym, val)
   appropriately.  No need to undefine OPCODE; that happens automatically.
*/

  OPCODE (varref,  			010)
  OPCODE (varset,  			020)
  OPCODE (varbind, 			030)
  OPCODE (call,    			040)
  OPCODE (unbind,  			050)

  OPCODE (nth,     			070)
  OPCODE (symbolp, 			071)
  OPCODE (consp,   			072)
  OPCODE (stringp, 			073)
  OPCODE (listp,   			074)
  OPCODE (old_eq,  			075)
  OPCODE (old_memq, 			076)
  OPCODE (not,    			077)
  OPCODE (car,    			0100)
  OPCODE (cdr, 	  			0101)
  OPCODE (cons,   			0102)
  OPCODE (list1,  			0103)
  OPCODE (list2,  			0104)
  OPCODE (list3,  			0105)
  OPCODE (list4,  			0106)
  OPCODE (length, 			0107)
  OPCODE (aref,   			0110)
  OPCODE (aset,   			0111)
  OPCODE (symbol_value, 		0112)
  OPCODE (symbol_function, 		0113)
  OPCODE (set,    			0114)
  OPCODE (fset,   			0115)
  OPCODE (get,    			0116)
  OPCODE (subseq, 			0117)
  OPCODE (concat2, 			0120)
  OPCODE (concat3, 			0121)
  OPCODE (concat4, 			0122)
  OPCODE (sub1, 			0123)
  OPCODE (add1, 			0124)
  OPCODE (eqlsign, 			0125)
  OPCODE (gtr, 				0126)
  OPCODE (lss, 				0127)
  OPCODE (leq, 				0130)
  OPCODE (geq, 				0131)
  OPCODE (diff, 			0132)
  OPCODE (negate, 			0133)
  OPCODE (plus, 			0134)
  OPCODE (max, 				0135)
  OPCODE (min, 				0136)
  OPCODE (mult, 			0137)

  OPCODE (point, 			0140)
  OPCODE (eq, 				0141) /* was Bmark, but no longer
						 generated as of v18 */
  OPCODE (goto_char, 			0142)
  OPCODE (insert, 			0143)
  OPCODE (point_max, 			0144)
  OPCODE (point_min, 			0145)
  OPCODE (char_after, 			0146)
  OPCODE (following_char, 		0147)
  OPCODE (preceding_char, 		0150)
  OPCODE (current_column, 		0151)
  OPCODE (indent_to, 			0152)
  OPCODE (equal, 			0153) /* was Bscan_buffer, but no
						 longer generated as of
						 v18 */
  OPCODE (eolp, 			0154)
  OPCODE (eobp, 			0155)
  OPCODE (bolp, 			0156)
  OPCODE (bobp, 			0157)
  OPCODE (current_buffer, 		0160)
  OPCODE (set_buffer, 			0161)
  OPCODE (save_current_buffer, 		0162) /* was Bread_char, but no
						 longer generated as of
						 v19 */
  OPCODE (memq, 			0163) /* was Bset_mark, but no
						 longer generated as of
						 v18 */
  OPCODE (interactive_p, 		0164) /* Needed since interactive-p
						 takes unevalled args */
  OPCODE (forward_char, 		0165)
  OPCODE (forward_word, 		0166)
  OPCODE (skip_chars_forward, 		0167)
  OPCODE (skip_chars_backward, 		0170)
  OPCODE (forward_line, 		0171)
  OPCODE (char_syntax, 			0172)
  OPCODE (buffer_substring, 		0173)
  OPCODE (delete_region, 		0174)
  OPCODE (narrow_to_region, 		0175)
  OPCODE (widen, 			0176)
  OPCODE (end_of_line, 			0177)

  OPCODE (constant2, 			0201)
  OPCODE (goto, 			0202)
  OPCODE (gotoifnil, 			0203)
  OPCODE (gotoifnonnil, 		0204)
  OPCODE (gotoifnilelsepop, 		0205)
  OPCODE (gotoifnonnilelsepop, 		0206)
  OPCODE (return, 			0207)
  OPCODE (discard, 			0210)
  OPCODE (dup, 				0211)

  OPCODE (save_excursion, 		0212)
  OPCODE (save_window_excursion,	0213)
  OPCODE (save_restriction, 		0214)
  OPCODE (catch, 			0215)

  OPCODE (unwind_protect, 		0216)
  OPCODE (condition_case, 		0217)
  OPCODE (temp_output_buffer_setup, 	0220)
  OPCODE (temp_output_buffer_show,  	0221)

  OPCODE (unbind_all,			0222)

  OPCODE (set_marker,			0223)
  OPCODE (match_beginning,		0224)
  OPCODE (match_end,			0225)
  OPCODE (upcase,			0226)
  OPCODE (downcase,			0227)

  OPCODE (string_equal, 		0230)
  OPCODE (string_lessp,     		0231)
  OPCODE (old_equal, 	 		0232)
  OPCODE (nthcdr, 	 		0233)
  OPCODE (elt, 		 		0234)
  OPCODE (old_member, 	 		0235)
  OPCODE (old_assq, 	 		0236)
  OPCODE (nreverse, 	 		0237)
  OPCODE (setcar, 	 		0240)
  OPCODE (setcdr, 	 		0241)
  OPCODE (car_safe, 	 		0242)
  OPCODE (cdr_safe, 	 		0243)
  OPCODE (nconc, 	 		0244)
  OPCODE (quo, 		 		0245)
  OPCODE (rem, 		 		0246)
  OPCODE (numberp, 	 		0247)
  OPCODE (fixnump, 	 		0250) /* Was Bintegerp. */

  OPCODE (Rgoto, 			0252)
  OPCODE (Rgotoifnil, 			0253)
  OPCODE (Rgotoifnonnil, 		0254)
  OPCODE (Rgotoifnilelsepop, 		0255)
  OPCODE (Rgotoifnonnilelsepop, 	0256)

  OPCODE (listN, 			0257)
  OPCODE (concatN, 			0260)
  OPCODE (insertN, 			0261)

  OPCODE (bind_multiple_value_limits,   0262) /* New in 21.5. */
  OPCODE (multiple_value_list_internal, 0263) /* New in 21.5. */
  OPCODE (multiple_value_call,          0264) /* New in 21.5. */
  OPCODE (throw,                        0265) /* New in 21.5. */

  OPCODE (member, 			0266) /* new in v20 */
  OPCODE (assq, 			0267) /* new in v20 */

  OPCODE (constant,			0300)

#undef OPCODE