Common Lisp Package: SHEEPLE

README:

FUNCTION

Public

ANCESTORP (MAYBE-ANCESTOR DESCENDANT)

A parent is a object somewhere in CHILD's precedence list.

AVAILABLE-PROPERTIES (OBJECT)

Returns a list of the names of all properties available to OBJECT, including inherited ones.

BOX-TYPE-OF (X)

Maps the type of X to a built-in object.

CHILDP (MAYBE-CHILD PARENT)

A child is a object that has PARENT in its parent list.

CLONE (OBJECT &OPTIONAL (METAOBJECT (%OBJECT-METAOBJECT OBJECT)))

Creates a object with the same parents and metaobject as OBJECT. If supplied, METAOBJECT will be used instead of OBJECT's metaobject, but OBJECT itself remains unchanged.

DESCENDANTP (MAYBE-DESCENDANT ANCESTOR)

A descendant is a object that has ANCESTOR in its precedence list.

DIRECT-PROPERTIES (OBJECT)

Returns a list of the names of OBJECT's direct properties -- ie, only ones which have been set directly in OBJECT using (setf property-value). The consequences of side-effecting this returned list are undefined.

DIRECT-PROPERTY-P (OBJECT PROPERTY-NAME)

Returns T if OBJECT has a property called PROPERTY-NAME as a direct property. NIL otherwise.

DIRECT-PROPERTY-VALUE (OBJECT PROPERTY-NAME)

Returns the property-value set locally in OBJECT for PROPERTY-NAME. If the property is not set locally, a condition of type `unbound-property' is signaled.

SETFDIRECT-PROPERTY-VALUE (NEW-VALUE OBJECT PROPERTY-NAME &REST OPTIONS)

Tries to set a direct property value for OBJECT. If it succeeds, returns T, otherwise NIL.

FIND-BOXED-OBJECT (OBJECT)

Finds a previously-boxed object in the boxed object table. Returns the boxed object, or NIL if OBJECT has not been boxed.

OBJECT (&REST ALL-KEYS &KEY PARENTS (METAOBJECT =STANDARD-METAOBJECT=) &ALLOW-OTHER-KEYS &AUX (OBJECT (MAYBE-STD-ALLOCATE-OBJECT METAOBJECT)))

Returns a new object delegating to PARENTS, with metaobject METAOBJECT. ALL-KEYS is passed on to INIT-OBJECT.

OBJECT-NICKNAME (OBJECT)

Returns OBJECT's nickname

SETFOBJECT-NICKNAME (NEW-NICKNAME OBJECT)

Sets OBJECT's nickname to NEW-NICKNAME

OBJECT-PRECEDENCE-LIST (OBJECT)

Returns the full precedence list for OBJECT

PARENTP (MAYBE-PARENT CHILD)

A parent is a object directly in CHILD's parent list.

PARTICIPANTP (OBJECT REPLY)

Checks if OBJECT is actually involved in dispatching REPLY

PROPERTY-MAKUNBOUND (OBJECT PROPERTY-NAME)

Removes OBJECT's direct property named PROPERTY-NAME. Signals an error if there is no such direct property. Returns OBJECT.

PROPERTY-VALUE (OBJECT PROPERTY-NAME)

Returns the property-value for PROPERTY-NAME found first in OBJECT's hierarchy list. If the value does not exist in the hierarchy list, a condition of type `unbound-property' is signaled.

SETFPROPERTY-VALUE (NEW-VALUE OBJECT PROPERTY-NAME &REST OPTIONS &KEY (READER NIL READERP) (WRITER NIL WRITERP) ACCESSOR)

Sets NEW-VALUE as the value of a direct-property belonging to OBJECT, named PROPERTY-NAME.

REMOVE-ALL-DIRECT-PROPERTIES (OBJECT)

Wipes out all direct properties and their values from OBJECT.

REMOVE-PROPERTY (OBJECT PROPERTY-NAME)

Removes OBJECT's direct property named PROPERTY-NAME. Signals an error if there is no such direct property. Returns OBJECT.

Undocumented

AVAILABLE-REPLIES (OBJECT)

CREATE (&REST ARGS)

INIT-OBJECT (&REST ARGS)

NO-APPLICABLE-REPLY (&REST ARGS)

NO-NEXT-REPLY (&REST ARGS)

NO-PRIMARY-REPLY (&REST ARGS)

OBJECT-METAOBJECT (OBJECT)

SETFOBJECT-METAOBJECT (NEW-METAOBJECT OBJECT)

OBJECT-PARENTS (OBJECT)

SETFOBJECT-PARENTS (NEW-PARENTS OBJECT)

OBJECTP (OBJECT)

REINIT-OBJECT (&REST ARGS)

SHARED-INIT (&REST ARGS)

Private

%MESSAGE-ARG-INFO (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%MESSAGE-ERFUN-CACHE (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%MESSAGE-FUNCTION (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%MESSAGE-MESSAGE (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%MESSAGE-NAME (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%MESSAGE-REPLIES (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%OBJECT-MOLD (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%OBJECT-PRECEDENCE-LIST (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%OBJECT-PROPERTY-VALUES (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

%OBJECT-ROLES (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

ADD-DIRECT-PROPERTY (OBJECT PROPERTY-NAME &REST OPTIONS)

Adds a direct property to object, which involves any necessary allocation.

ARG-INFO-KEY/REST-P (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

ARG-INFO-KEYS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

ARG-INFO-LAMBDA-LIST (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

ARG-INFO-NUMBER-OPTIONAL (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

ARG-INFO-NUMBER-REQUIRED (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

BOX-OBJECT (OBJECT)

Wraps OBJECT with a object.

CHANGE-MOLD (OBJECT NEW-MOLD)

Creates a new property-value vector in OBJECT, according to NEW-MOLD's specification, and automatically takes care of bringing the correct property-values over into the new vector, in the right order. Keep in mind that NEW-MOLD might specify some properties in a different order.

CHANGE-PARENTS (OBJECT NEW-PARENTS)

Wraps around `change-mold' to give OBJECT a mold with the requested NEW-PARENTS. This function has no high-level error checks and SHOULD NOT BE CALLED FROM USER CODE.

COLLECT-ANCESTORS (OBJECT)

Collects all of OBJECT's ancestors.

COMPOSE (FUNCTION &REST MORE-FUNCTIONS)

Returns a function composed of FUNCTION and MORE-FUNCTIONS that applies its arguments to to each in turn, starting from the rightmost of MORE-FUNCTIONS, and then calling the next one with the primary value of the last.

COMPUTE-APPLICABLE-REPLIES (MESSAGE ARGS)

Returns a sorted list of replies on MESSAGE for which appropriate roles are present in ARGS.

COMPUTE-OBJECT-PRECEDENCE-LIST (OBJECT)

Computes the full precedence list for OBJECT

COMPUTE-PRECEDENCE (PARENTS)

Generates an abstract precedence list out of PARENTS; this would be suitable as the CDR of the precedence list of a standard object with PARENTS, in order, as its parents.

CONJOIN (PREDICATE &REST MORE-PREDICATES)

Returns a function that applies each of PREDICATE and MORE-PREDICATE functions in turn to its arguments, returning NIL if any of the predicates returns false, without calling the remaining predicates. If none of the predicates returns false, returns the primary value of the last predicate.

CREATE-MSG-LAMBDA-LIST (LAMBDA-LIST)

Create a message lambda list from a reply's lambda list

CURRY (FUNCTION &REST ARGUMENTS)

Returns a function that applies ARGUMENTS and the arguments it is called with to FUNCTION.

DISJOIN (PREDICATE &REST MORE-PREDICATES)

Returns a function that applies each of PREDICATE and MORE-PREDICATE functions in turn to its arguments, returning the primary value of the first predicate that returns true, without calling the remaining predicates. If none of the predicates returns true, NIL is returned.

ENSURE-BOXED-OBJECT (OBJECT)

Returns two values: OBJECT or a boxed object representing it, and a boolean specifying whether boxing took place.

ENSURE-BOXED-OBJECTS (LIST)

Converts OBJ-LIST to a list where each item is either a object or a boxed object.

ENSURE-DISPATCH-OBJECT (OBJECT)

Ensures that OBJECT is a valid object for reply dispatch.

ENSURE-FUNCTION (FUNCTION-DESIGNATOR)

Returns the function designated by FUNCTION-DESIGNATOR: if FUNCTION-DESIGNATOR is a function, it is returned, otherwise it must be a function name and its FDEFINITION is returned.

ENSURE-LIST (X)

X if X is a list, otherwise (list X).

ENSURE-MOLD (METAOBJECT PARENTS &OPTIONAL (PROPERTIES #()))

Returns the mold with properties PROPERTIES of the mold for PARENTS, creating and linking a new one if necessary.

ENSURE-TOPLEVEL-MOLD (METAOBJECT PARENTS)

Returns the mold for PARENTS, creating and caching a new one if necessary.

ENSURE-TRANSITION (MOLD PROPERTY-NAME)

Returns the transition from MOLD indexed by PROPERTY-NAME, creating and linking a new one if necessary.

FIND-TRANSITION (MOLD PROPERTY-NAME)

Returns the mold which adds a property named PROPERTY-NAME to MOLD. If no such mold exists, returns NIL.

LINEAGE-MEMBERS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

LINEAGE-METAOBJECT (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

LINEAGE-PARENTS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

LINEAGE-PRECEDENCE-LIST (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

LOCAL-PRECEDENCE-ORDERING (OBJECT)

Calculates the local precedence ordering.

MAKE-GENSYM-LIST (LENGTH &OPTIONAL (X G))

Returns a list of LENGTH gensyms, each generated as if with a call to MAKE-GENSYM, using the second (optional, defaulting to "G") argument.

MAKE-VECTOR (SIZE &KEY INITIAL-ELEMENT)

Constructs a vector of SIZE elements set to INITIAL-ELEMENT. See `make-list'.

MAPHASH-KEYS (FUNCTION TABLE)

Like MAPHASH, but calls FUNCTION with each key in the hash table TABLE.

MAPHASH-VALUES (FUNCTION TABLE)

Like MAPHASH, but calls FUNCTION with each value in the hash table TABLE.

MEMQ (ITEM LIST)

Return tail of LIST beginning with first element EQ to ITEM.

MOLD-BACK (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MOLD-LINEAGE (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MOLD-PROPERTIES (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MOLD-TRANSITIONS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

MULTIPLE-VALUE-COMPOSE (FUNCTION &REST MORE-FUNCTIONS)

Returns a function composed of FUNCTION and MORE-FUNCTIONS that applies its arguments to to each in turn, starting from the rightmost of MORE-FUNCTIONS, and then calling the next one with all the return values of the last.

NUNZIP-ALIST (ALIST)

Destructively unzips ALIST into two flat lists

PARALLEL-DELETE (ITEM LIST-1 LIST-2)

Destructively removes ITEM from both lists, keeping them "in sync" by deleting items at the same position from both lists.

PARSE-BODY (BODY &KEY DOCUMENTATION WHOLE)

Parses BODY into (values remaining-forms declarations doc-string). Documentation strings are recognized only if DOCUMENTATION is true. Syntax errors in body are signalled and WHOLE is used in the signal arguments when given.

PLIST-TO-WIDE-ALIST (PLIST)

Builds a fresh alist corresponding to the elements of PLIST. The alist is "wide", ie, each pair is (key value) rather than (key . value)

PROPERTY-OWNER (OBJECT PROPERTY-NAME)

Returns the object, if any, from which OBJECT would fetch the value for PROPERTY-NAME

RCURRY (FUNCTION &REST ARGUMENTS)

Returns a function that applies the arguments it is called with and ARGUMENTS to FUNCTION.

REMOVE-BOXED-OBJECT (OBJECT)

Kills object dead

REPLY-DOCUMENTATION (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

REPLY-FUNCTION (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

REPLY-LAMBDA-LIST (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

REPLY-MESSAGE (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

REPLY-QUALIFIERS (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

REPLY-RANK-VECTOR (INSTANCE)

@arg[extid]{A @class{extid}} @return[sytemid]{puri:uri or nil} Returns the System ID part of this External ID.

SYMBOLICATE (&REST THINGS &AUX (INDEX 0))

Concatenate together the names of some strings and symbols, producing a symbol in the current package.

TOPOLOGICAL-SORT (ELEMENTS CONSTRAINTS TIE-BREAKER)

Sorts ELEMENTS such that they satisfy the CONSTRAINTS, falling back on the TIE-BREAKER in the case of ambiguous constraints. On the assumption that they are freshly generated, this implementation is destructive with regards to the CONSTRAINTS. A future version will undo this change.

TRIGGER-PRECEDENCE-RECALCULATION (LINEAGE)

Updates LINEAGE's precedence list, and propagates down the members.

Undocumented

%MAKE-MESSAGE (NAME LAMBDA-LIST)

SETF%MESSAGE-ARG-INFO (NEW-VALUE INSTANCE)

SETF%MESSAGE-ERFUN-CACHE (NEW-VALUE INSTANCE)

SETF%MESSAGE-FUNCTION (NEW-VALUE INSTANCE)

SETF%MESSAGE-MESSAGE (NEW-VALUE INSTANCE)

SETF%MESSAGE-NAME (NEW-VALUE INSTANCE)

SETF%MESSAGE-REPLIES (NEW-VALUE INSTANCE)

%MESSAGEP (OBJECT)

%OBJECT-CHILDREN (OBJECT)

SETF%OBJECT-CHILDREN (NEW-KIDS OBJECT)

%OBJECT-METAOBJECT (OBJECT)

SETF%OBJECT-MOLD (NEW-VALUE INSTANCE)

%OBJECT-PARENTS (OBJECT)

SETF%OBJECT-PRECEDENCE-LIST (NEW-VALUE INSTANCE)

SETF%OBJECT-PROPERTY-VALUES (NEW-VALUE INSTANCE)

SETF%OBJECT-ROLES (NEW-VALUE INSTANCE)

ADD-READER-TO-OBJECT (READER PROP-NAME OBJECT)

ADD-READERS-TO-OBJECT (READERS PROP-NAME OBJECT)

ADD-REPLY-TO-MESSAGE (REPLY MESSAGE)

ADD-REPLY-TO-OBJECTS (REPLY OBJECTS)

ADD-WRITER-TO-OBJECT (WRITER PROP-NAME OBJECT)

ADD-WRITERS-TO-OBJECT (WRITERS PROP-NAME OBJECT)

AFTER-REPLY-P (REPLY)

ALLOCATE-MESSAGE

ALLOW-OTHER-KEYS (LAMBDA-LIST)

ANALYZE-LAMBDA-LIST (LAMBDA-LIST)

SETFARG-INFO-KEY/REST-P (NEW-VALUE INSTANCE)

SETFARG-INFO-KEYS (NEW-VALUE INSTANCE)

SETFARG-INFO-LAMBDA-LIST (NEW-VALUE INSTANCE)

SETFARG-INFO-NUMBER-OPTIONAL (NEW-VALUE INSTANCE)

SETFARG-INFO-NUMBER-REQUIRED (NEW-VALUE INSTANCE)

ARG-INFO-P (OBJECT)

AROUND-REPLY-P (REPLY)

BEFORE-REPLY-P (REPLY)

CACHED-ERFUN (MESSAGE REPLIES)

SETFCACHED-ERFUN (NEW-ERFUN MESSAGE REPLIES)

CANONIZE-MESSAGE-OPTION (OPTION)

CANONIZE-MESSAGE-OPTIONS (OPTIONS)

CANONIZE-OPTIONS (OPTIONS)

CANONIZE-PARENTS (PARENTS)

CANONIZE-PROPERTIES (PROPERTIES &OPTIONAL (ACCESSORS-BY-DEFAULT NIL))

CANONIZE-PROPERTY (PROPERTY &OPTIONAL (ACCESSORS-BY-DEFAULT NIL))

CHECK-MESSAGE-LAMBDA-LIST (LAMBDA-LIST)

CHECK-REPLY-ARG-INFO (MESSAGE REPLY)

CLEAR-REPLY-RANK (REPLY &AUX (VECTOR (REPLY-RANK-VECTOR REPLY)))

COMPILE-EFFECTIVE-REPLY (MESSAGE EFFECTIVE-REPLY)

COMPUTE-EFFECTIVE-REPLY-FUNCTION (MESSAGE REPLIES *REPLY-COMBINATION-ARGS*)

COPY-%MESSAGE (INSTANCE)

COPY-ARG-INFO (INSTANCE)

COPY-LINEAGE (INSTANCE)

COPY-MOLD (INSTANCE)

COPY-OBJECT (INSTANCE)

COPY-REPLY (INSTANCE)

COPY-SIMPLE-VECTOR (VECTOR)

COUNT-REQUIRED-PARAMETERS (LAMBDA-LIST)

DELETE-REPLY (REPLY &AUX (MESSAGE (REPLY-MESSAGE REPLY)))

DELETE-ROLE (ROLE OBJECT)

DELETE/SWAPPED-ARGUMENTS (SEQUENCE ITEM &REST KEYWORD-ARGUMENTS)

ENSURE-MESSAGE (NAME &REST ALL-KEYS &KEY LAMBDA-LIST &ALLOW-OTHER-KEYS)

ENSURE-OBJECT (MAYBE-OBJECT PARENTS &REST OPTIONS)

ENSURE-REPLY (NAME &KEY QUALIFIERS LAMBDA-LIST PARTICIPANTS FUNCTION (DOCUMENTATION ))

FINALIZE-MESSAGE (MESSAGE)

FIND-MOLD (METAOBJECT PARENTS)

SETFFIND-MOLD (MOLD METAOBJECT PARENTS)

FLUSH-ERFUN-CACHE (MESSAGE)

FULLY-SPECIFIED-P (REPLY)

GENERATE-DEFPROTO-ACCESSORS (CANONIZED-PROPERTIES &AUX MESSAGES)

SETFLINEAGE-METAOBJECT (NEW-VALUE INSTANCE)

SETFLINEAGE-PRECEDENCE-LIST (NEW-VALUE INSTANCE)

LINEAGEP (OBJECT)

MAKE (&REST ARGS)

MAKE-%MESSAGE (&KEY ((NAME DUM13) NIL) ((MESSAGE DUM14) NIL) ((FUNCTION DUM15) #'IDENTITY) ((ERFUN-CACHE DUM16) (MAKE-HASH-TABLE TEST #'EQUAL)) ((REPLIES DUM17) NIL) ((ARG-INFO DUM18) (MAKE-ARG-INFO)))

MAKE-ARG-INFO

MAKE-LINEAGE (METAOBJECT PARENTS &AUX (PRECEDENCE-LIST (COMPUTE-PRECEDENCE PARENTS)))

MAKE-MESSAGE (&KEY NAME LAMBDA-LIST DOCUMENTATION)

MAKE-MOLD (LINEAGE PROPERTIES &OPTIONAL (BACK NIL))

MAKE-REPLY (MESSAGE QUALIFIERS LAMBDA-LIST FUNCTION &AUX (RANK-VECTOR (MAKE-ARRAY (ARG-INFO-NUMBER-REQUIRED (MESSAGE-ARG-INFO MESSAGE)))))

MAKE-ROLE (REPLY POSITION)

MAYBE-STD-ALLOCATE-OBJECT (METAOBJECT)

MESSAGE-ARG-INFO (MESSAGE)

SETFMESSAGE-ARG-INFO (NEW-VALUE MESSAGE)

MESSAGE-ERFUN-CACHE (MESSAGE)

SETFMESSAGE-ERFUN-CACHE (NEW-VALUE MESSAGE)

MESSAGE-FUNCTION (MESSAGE)

SETFMESSAGE-FUNCTION (NEW-VALUE MESSAGE)

MESSAGE-LAMBDA-LIST (MESSAGE)

MESSAGE-NAME (MESSAGE)

SETFMESSAGE-NAME (NEW-VALUE MESSAGE)

MESSAGE-REPLIES (MESSAGE)

SETFMESSAGE-REPLIES (NEW-VALUE MESSAGE)

MESSAGEP (X)

MOLD-PARENTS (MOLD)

MOLD-PRECEDENCE-LIST (MOLD)

MOLDP (OBJECT)

SETFOBJECT-MOLD (NEW-MOLD OBJECT)

PARSE-DEFMESSAGE (NAME LAMBDA-LIST OPTIONS-AND-REPLIES)

PARSE-DEFREPLY (WHOLE &AUX QUALIFIERS CURRENT (BODY (CDDR WHOLE)))

PARSE-LAMBDA-LIST (LAMBDA-LIST)

PARSE-LAMBDA-LIST-LIKE-THING (LIST &KEY SILENT)

PARSE-SPECIALIZED-LAMBDA-LIST (ARGLIST &OPTIONAL SUPPLIED-KEYWORDS (ALLOWED-KEYWORDS '(&OPTIONAL &REST &KEY &AUX)) &AUX (SPECIALIZED-LAMBDA-LIST-KEYWORDS '(&OPTIONAL &REST &KEY &ALLOW-OTHER-KEYS &AUX)))

PARSE-UNDEFREPLY (ARGS)

PPRINT-MESSAGE (STREAM MESSAGE)

PPRINT-ROLE (STREAM ROLE)

PRIMARY-REPLY-P (REPLY)

PROPERTY-POSITION (PROPERTY-NAME OBJECT)

RECORD-MESSAGE-ARGLIST (NAME ARGLIST)

RECORD-MESSAGE-COMPILATION (NAME LAMBDA-LIST ENV)

RECORD-MESSAGE-SOURCE (NAME)

RELEVANT-ROLE-P (ROLE MESSAGE INDEX)

REMOVE-APPLICABLE-REPLY (MESSAGE QUALIFIERS PARTICIPANTS)

REMOVE-SPECIFIC-REPLY (MESSAGE QUALIFIERS PARTICIPANTS)

SETFREPLY-DOCUMENTATION (NEW-VALUE INSTANCE)

REPLY-NAME (REPLY)

REPLYP (OBJECT)

REQUIRED-PORTION (MESSAGE ARGS)

ROLE-MESSAGE (ROLE)

ROLE-NAME (ROLE)

ROLE-POSITION (ROLE)

ROLE-REPLY (ROLE)

ROLEP (MAYBE-ROLE)

SAFE-FDEFINITION (NAME)

SCORE-REPLY (REPLY)

SET-ARG-INFO (MESSAGE LAMBDA-LIST)

SORT-APPLICABLE-REPLIES (REPLY-LIST)

STD-ADD-DIRECT-PROPERTY (OBJECT PROPERTY-NAME &REST OPTIONS)

STD-ALLOCATE-OBJECT (METAOBJECT &AUX (MOLD (ENSURE-MOLD METAOBJECT NIL)))

STD-AVAILABLE-PROPERTIES (OBJECT)

STD-COMPUTE-DISCRIMINATING-FUNCTION (MESSAGE)

STD-COMPUTE-EFFECTIVE-REPLY (MESSAGE APPLICABLE-REPLIES)

STD-COMPUTE-OBJECT-PRECEDENCE-LIST (OBJECT)

STD-DIRECT-PROPERTIES (OBJECT)

STD-DIRECT-PROPERTY-P (OBJECT PROPERTY-NAME)

STD-DIRECT-PROPERTY-VALUE (OBJECT PROPERTY-NAME)

SETFSTD-DIRECT-PROPERTY-VALUE (NEW-VALUE OBJECT PROPERTY-NAME &REST OPTIONS)

STD-MAKE-REPLY-LAMBDA (LAMBDA-EXPRESSION)

STD-OBJECT-P (X)

STD-PRINT-SHEEPLE-OBJECT (OBJECT STREAM)

STD-PROPERTY-MAKUNBOUND (OBJECT PROPERTY-NAME)

STD-PROPERTY-OWNER (OBJECT PROPERTY-NAME)

STD-PROPERTY-VALUE (OBJECT PROPERTY-NAME)

STD-REMOVE-ALL-DIRECT-PROPERTIES (OBJECT)

STD-TIE-BREAKER-RULE (MINIMAL-ELEMENTS CHOSEN-ELEMENTS)

UNDEFINE-REPLY (NAME &KEY QUALIFIERS PARTICIPANTS)

UPDATE-ARG-INFO (MESSAGE LAMBDA-LIST)

VECTOR-CONS (X VECTOR)

WRAPPED-OBJECT (BOX)

MACRO

Public

DEFOBJECT (OBJECTS &OPTIONAL ((&REST PROPERTIES) NIL) &REST OPTIONS)

Standard object-generation macro.

DEFPROTO (NAME &OPTIONAL OBJECTS ((&REST PROPERTIES) NIL) &REST OPTIONS)

Words cannot express how useful this is.

Undocumented

DEFMESSAGE (NAME LAMBDA-LIST &REST OPTIONS &ENVIRONMENT ENV)

DEFREPLY (&WHOLE WHOLE NAME LAMBDA-LIST &BODY BODY)

UNDEFMESSAGE (NAME)

UNDEFREPLY (NAME &REST ARGS)

WITH-PROPERTIES (PROPERTIES OBJECT &BODY BODY)

Private

ACOND (&BODY CLAUSES)

Like COND, except result of each test-form is bound to IT (via LET) for the scope of the corresponding clause.

ACONSF (PLACE KEY VALUE &ENVIRONMENT ENV)

CONS is to PUSH as ACONS is to ACONSF; it pushes (cons KEY VALUE) to the PLACE.

AWHEN-PROG1 (TEST-FORM &BODY BODY)

A combination of AWHEN and PROG1; always returns the result of TEST-FORM.

CHECK-LIST-TYPE (LIST TYPESPEC &OPTIONAL (STRING NIL STRING-SUPPLIED-P))

Calls CHECK-TYPE with each element of LIST, with TYPESPEC and STRING.

DEFINE-BOUND-VARIABLE (VARIABLE &OPTIONAL DOCSTRING)

Define a global dynamic variable. If the variable is already bound, the binding will not be affected; otherwise, it will be bound to a recognizeable and unique value.

DELETEF (PLACE ITEM &REST REMOVE-KEYWORDS &ENVIRONMENT ENV)

Modify-macro for DELETE. Sets place designated by the first argument to the result of calling DELETE with ITEM, place, and the REMOVE-KEYWORDS.

ERROR-WHEN (CONDITION ERROR-DATUM &REST ERROR-ARGS)

Like `ASSERT', but with fewer bells and whistles.

FUN (&BODY BODY)

This macro puts the FUN back in FUNCTION.

NAMED-LAMBDA (NAME LAMBDA-LIST &BODY BODY)

Expands into a lambda-expression within whose BODY NAME denotes the corresponding function.

NCONCF (PLACE &REST LISTS &ENVIRONMENT ENV)

Modify-macro for NCONC. Sets place designated by the first argument to the result of calling NCONC with the place and the LISTS.

ONCE-ONLY (SPECS &BODY FORMS)

Each SPEC must be either a NAME, or a (NAME INITFORM), with plain NAME using the named variable as initform. Evaluates FORMS with names rebound to temporary variables, ensuring that each is evaluated only once. Example: (defmacro cons1 (x) (once-only (x) `(cons ,x ,x))) (let ((y 0)) (cons1 (incf y))) => (1 . 1)

PUSHEND (VALUE PLACE)

Destructively adds VALUE as the last element of the list PLACE.

WITH-GENSYMS (NAMES &BODY FORMS)

Binds each variable named by a symbol in NAMES to a unique symbol around FORMS. Each of NAMES must either be either a symbol, or of the form: (symbol string-designator) Bare symbols appearing in NAMES are equivalent to: (symbol symbol) The string-designator is used as the argument to GENSYM when constructing the unique symbol the named variable will be bound to.

WITH-OBJECT-HIERARCHY (OBJECT-AND-PARENTS &BODY BODY)

OBJECT-AND-PARENTS is a list, where each element is either a symbol or a list of the form (OBJECT &REST PARENTS), where OBJECT is a symbol and each of PARENTS is a form evaluating to produce a object object. Each OBJECT symbol is bound to a object with the corresponding PARENTS, and the nickname is set to the symbol to facilitate debugging.

Undocumented

AAND (&REST ARGS)

AIF (TEST-FORM THEN-FORM &OPTIONAL ELSE-FORM)

ANAPHORIC (OP TEST &BODY BODY)

APROG1 (VALFORM &BODY BODY)

AWHEN (TEST-FORM &BODY BODY)

COLLECT (COLLECTIONS &BODY BODY)

DEFINE-BACKEND (DEFAULT-FORM &BODY CUSTOMIZED-FORMS)

DEFINE-BOUND-VARIABLES (&REST VARIABLES)

DEFINE-PRINT-OBJECT (((OBJECT CLASS) &KEY (IDENTITY T) (TYPE T)) &BODY BODY)

DEFINE-SHEEPLE-CONDITION (NAME SUPER (&OPTIONAL STRING &REST ARGS) &REST CONDITION-OPTIONS)

DEFINE-UNBOUND-VARIABLES (&REST VARIABLES)

DO-REVERSED ((NAME LISTFORM) &BODY BODY)

ENSURE-FUNCTIONF (&REST PLACES)

ENSURE-FUNCTIONF/1 (PLACE &ENVIRONMENT ENV)

GENERIC-FUNCTION

Private

Undocumented

AUTOMATIC-MESSAGE-CREATION-MESSAGE-NAME (CONDITION)

CLOBBERING-FUNCTION-DEFINITION-FUNCTION (CONDITION)

DEPRECATED-FEATURE-FEATURE (CONDITION)

DEPRECATED-FEATURE-VERSION (CONDITION)

INSUFFICIENT-MESSAGE-ARGS-MESSAGE (CONDITION)

MESSAGE-LAMBDA-LIST-ERROR-ARG (CONDITION)

MESSAGE-LAMBDA-LIST-ERROR-LAMBDA-LIST (CONDITION)

MOLD-COLLISION-COLLISION-MOLD (CONDITION)

MOLD-COLLISION-NEW-MOLD (CONDITION)

NO-APPLICABLE-REPLY-ARGS (CONDITION)

NO-APPLICABLE-REPLY-MESSAGE (CONDITION)

NO-NEXT-REPLY-ARGS (CONDITION)

NO-NEXT-REPLY-MESSAGE (CONDITION)

NO-NEXT-REPLY-REPLY (CONDITION)

NO-PRIMARY-REPLY-ARGS (CONDITION)

NO-PRIMARY-REPLY-MESSAGE (CONDITION)

NO-SUCH-MESSAGE-MESSAGE-NAME (CONDITION)

OBJECT-PRECEDENCE-ERROR-CONFLICT (CONDITION)

OBJECT-PRECEDENCE-ERROR-OBJECT (CONDITION)

REPLY-ARGUMENT-CONFLICT-MESSAGE (CONDITION)

REPLY-ARGUMENT-CONFLICT-REASON (CONDITION)

REPLY-ARGUMENT-CONFLICT-REPLY (CONDITION)

REPLY-LAMBDA-LIST-CONFLICT-LAMBDA-LIST (CONDITION)

REPLY-LAMBDA-LIST-CONFLICT-MESSAGE (CONDITION)

SHEEPLE-CONDITION-FORMAT-CONTROL (CONDITION)

TOPOLOGICAL-SORT-CONFLICT-CONFLICTING-ELEMENTS (CONDITION)

TOPOLOGICAL-SORT-CONFLICT-CONSTRAINTS (CONDITION)

TOPOLOGICAL-SORT-CONFLICT-SORTED-ELEMENTS (CONDITION)

UNBOUND-DIRECT-PROPERTY-OBJECT (CONDITION)

UNBOUND-DIRECT-PROPERTY-PROPERTY-NAME (CONDITION)

UNBOUND-PROPERTY-OBJECT (CONDITION)

UNBOUND-PROPERTY-PROPERTY-NAME (CONDITION)

VARIABLE

Public

Undocumented

=ARRAY=

=BIT-VECTOR=

=BOXED-OBJECT=

=CHARACTER=

=COMPLEX=

=CONS=

=FLOAT=

=FUNCTION=

=HASH-TABLE=

=INTEGER=

=LIST=

=NULL=

=NUMBER=

=PACKAGE=

=PATHNAME=

=READTABLE=

=SEQUENCE=

=STANDARD-METAOBJECT=

=STANDARD-OBJECT=

=STREAM=

=STRING=

=SYMBOL=

=T=

=VECTOR=

Private

*BOXED-OBJECT-TABLE*

Lisp objects boxed by Objects are stored in here.

*MOLDS*

Maps parent lists to their corresponding molds. This is the global entry point to Sheeple's backend class system.

Undocumented

*FUNCALLABLE-MESSAGES*

=BOOLEAN=

CLASS

Public

Undocumented

OBJECT (&REST ALL-KEYS &KEY PARENTS (METAOBJECT =STANDARD-METAOBJECT=) &ALLOW-OTHER-KEYS &AUX (OBJECT (MAYBE-STD-ALLOCATE-OBJECT METAOBJECT)))

Private

LINEAGE

Information about an object's ancestors and descendants.

MOLD

Also known as 'backend classes', molds are hidden caches which enable Sheeple to use class-based optimizations yet keep its dynamic power.

Undocumented

%MESSAGE

ARG-INFO

REPLY

CONDITION

Public

OBJECT-PRECEDENCE-ERROR

Signaled whenever there is a problem computing the precedence list.

OBJECT-PROPERTY-ERROR

Encompasses all that can go wrong with properties.

SHEEPLE-MESSAGE-ERROR

Encompasses all that can go wrong with messages.

SHEEPLE-REPLY-ERROR

Encompasses all that can go wrong with replies.

Undocumented

AUTOMATIC-MESSAGE-CREATION

CLOBBERING-FUNCTION-DEFINITION

INSUFFICIENT-MESSAGE-ARGS

MESSAGE-LAMBDA-LIST-ERROR

NO-APPLICABLE-REPLY (&REST ARGS)

NO-NEXT-REPLY (&REST ARGS)

NO-PRIMARY-REPLY (&REST ARGS)

NO-SUCH-MESSAGE

REPLY-ARGUMENT-CONFLICT

REPLY-LAMBDA-LIST-CONFLICT

SHEEPLE-ERROR

SHEEPLE-WARNING

SPECIALIZED-LAMBDA-LIST-ERROR

TOPOLOGICAL-SORT-CONFLICT

UNBOUND-DIRECT-PROPERTY

UNBOUND-PROPERTY

Private

Undocumented

DEPRECATED-FEATURE

FUCK-OFF

MOLD-COLLISION

MOLD-ERROR

SHEEPLE-CONDITION

SHEEPLE-STYLE-WARNING