This is bytecode.h in view mode; [Download] [Up]
/* Fundamental definitions for XEmacs Lisp interpreter. Copyright (C) 1985, 1986, 1987, 1992, 1993 Free Software Foundation, Inc. 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, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Synched up with: Not in FSF. */ #ifndef _XEMACS_BYTECODE_H_ #define _XEMACS_BYTECODE_H_ /* Meanings of slots in a Lisp_Bytecode. This is kludgily used by `elt' and `concat' to pretend that bytecode objects are really sequences and should be eliminated eventually... */ #define COMPILED_ARGLIST 0 #define COMPILED_BYTECODE 1 #define COMPILED_CONSTANTS 2 #define COMPILED_STACK_DEPTH 3 #define COMPILED_DOC_STRING 4 #define COMPILED_INTERACTIVE 5 #define COMPILED_DOMAIN 6 struct Lisp_Bytecode { struct lrecord_header lheader; unsigned short maxdepth; struct { unsigned int documentationp: 1; unsigned int interactivep: 1; /* Only used if I18N3, but always defined for simplicity. */ unsigned int domainp: 1; } flags; Lisp_Object bytecodes; Lisp_Object constants; Lisp_Object arglist; /* This uses the minimal number of conses; see accessors in data.c. */ Lisp_Object doc_and_interactive; }; extern Lisp_Object bytecode_documentation (struct Lisp_Bytecode *b); extern Lisp_Object bytecode_interactive (struct Lisp_Bytecode *b); extern Lisp_Object bytecode_domain (struct Lisp_Bytecode *b); extern void set_bytecode_documentation (struct Lisp_Bytecode *b, Lisp_Object); DECLARE_LRECORD (bytecode, struct Lisp_Bytecode); #define XBYTECODE(x) XRECORD (x, bytecode, struct Lisp_Bytecode) #define XSETBYTECODE(x, p) XSETRECORD (x, p, bytecode) #define BYTECODEP(x) RECORDP (x, bytecode) #define CHECK_BYTECODE(x, i) CHECK_RECORD (x, bytecode) /* total 1765 internal 101 doc-and-int 775 doc-only 389 int-only 42 neither 559 no doc slot, no int slot overhead : (* 1765 0) = 0 doc-and-int (args . (doc . int)): (* 775 4) = 3100 doc-only (args . doc) : (* 389 2) = 778 int-only (args . int) : (* 42 2) = 84 neither args : (* 559 0) = 0 = 3962 combined overhead : (* 1765 1) = 1765 doc-and-int (doc . int) : (* 775 2) = 1550 doc-only doc : (* 389 0) = 0 int-only int : (* 42 0) = 0 neither - : (* 559 0) = 0 = 3315 both overhead : (* 1765 2) = 3530 doc-and-int - : (* 775 0) = 0 doc-only - : (* 389 0) = 0 int-only - : (* 42 0) = 0 neither - : (* 559 0) = 0 = 3530 */ #endif /* _XEMACS_BYTECODE_H_ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.