CompiledOperation


Overview

CompiledOperation is the type of all XMF compiled operations. A compiled operation can be invoked using 'invoke/2' or by applying it to its arguments. A compiled operation consists of machine code instructions. A compiled operation may be associated with its source code to aid debugging.



Parents Operation ,BehaviouralFeature ,TypedElement ,DocumentedElement ,NamedElement ,Contained ,Object ,Element


Constructors



Attributes
arityIntegerNo Documentation Specified
codeBoxElementNo Documentation Specified
dynamicsSeq(Element)No Documentation Specified
globalsElementNo Documentation Specified
isVarArgsBooleanNo Documentation Specified
propertiesSeq(Element)No Documentation Specified
sigSeq(Element)No Documentation Specified
supersSeq(Element)No Documentation Specified
targetElementNo Documentation Specified
tracedElementNo Documentation Specified
From TypedElement: type. From DocumentedElement: documentation. From NamedElement: name. From Contained: owner.



Operations
addDaemon(daemon:Element):Element Add a daemon to the operation. Any state changes to the operation causes the daemon to fire.
addNameChangedDaemon(d:Element,actionSource:Element):Element Use this operation to add a daemon that monitors the name of a compiled operation for changes. The args for the daemon are the new name and the old name.
arity():Integer Returns the number of arguments expected by the operation.
break():Element Causes the operation to enter a break-loop when it is called.
codeBox():Element Returns the code-box for the operation. The code-box contains the static part of the operation.
daemons():Seq(Operation) Return all the daemons for the operation.
dependencies():Set(Element) Calculate the set of name-spaces tht this operation relies on.
disassemble(out:Element,indent:Element):ElementNo Documentation Specified
disassemble():StringNo Documentation Specified
doc():ElementNo Documentation Specified
dynamics():Element Returns the imported name-spaces and gobl variables for this operation. The dynamics are a sequence of pairs where the head of each pair is a tag (1 or 2) and the tail is either a binding or a table of bindings. Usually, a table of bindings will be the contents table of a name-space.
fire(slot:Element,newValue:Element,oldValue:Element):ElementNo Documentation Specified
get(name:String):Element Handles access to the state of a compiled-operation as though the operation is an object.
getStructuralFeatureNames():Set(String)No Documentation Specified
globalValues():Seq(Element)No Documentation Specified
globals():Element Returns the closed-in variable storage for the operation. The storage is a linked-list of vectors. The first vector is local to the operation. The rest of the vectors are the storage for lexically enclosing operations. The linked list is implemented as vector pairs.
hasProperty(property:Element):BooleanNo Documentation Specified
hasSlot(name:String):BooleanNo Documentation Specified
importNameSpace(n:NameSpace):Element Imports the supplied name space and its contents to the receiver. If the name space is already imported then no change is made. Otherwise the name space is added as the most specific imported name space.
importNameSpaces(N:Seq(NameSpace)):Element Import all the supplied name-spaces into the operation.
imports(n:NameSpace):Boolean Returns true when the receiver imports the supplied name space.
imports():Seq(Element) Returns all of the name-spaces that the operation imports in most-specific to least-specific order.
init():ElementNo Documentation Specified
isVarArgs():Boolean If a compiled operation has variable arguments then it may be supplied with more than the required positional args. The rest of the arguments are processed by building a sequence from them and supplying the sequence as the value of the last argument.
lift():PerformableNo Documentation Specified
locals():Integer The number of locals required when the compiled operation is called. Does not include the arguments.
name():SymbolNo Documentation Specified
newListenerFor(class:Classifier):ElementNo Documentation Specified
owner():ElementNo Documentation Specified
paramNames():Seq(String) Returns the sequence of parameter names for the operation.
paramTypes():Seq(Classifier) Returns the sequence of parameter types that were declared for the operation.
parserImports():Seq(NameSpace)No Documentation Specified
properties():Element Get the properties of the operation. The properties are pairs of the form Seq{NAME | VALUE}.
property(property:Element):Element Returns the value of the supplied property or null if no property is defined.
removeDaemon(daemon:Element,target:Element):ElementNo Documentation Specified
removeNameSpace(n:NameSpace):Element Removes the supplied name space from the receiver so that it no longer imports all the names defined by the name space.
set(name:String,value:Element):Element Use set to treat the state of the compiled operation as an object.
setArity(arity:Element):ElementNo Documentation Specified
setCodeBox(codeBox:Element):ElementNo Documentation Specified
setDaemons(daemons:Element):ElementNo Documentation Specified
setDoc(doc:Element):ElementNo Documentation Specified
setDynamics(dynamics:Element):ElementNo Documentation Specified
setGlobals(globals:Element):ElementNo Documentation Specified
setName(name:Element):ElementNo Documentation Specified
setOwner(owner:Element):ElementNo Documentation Specified
setProperties(properties:Element):ElementNo Documentation Specified
setProperty(property:Element,value:Element):Element Set the property value. The property is created if necessary.
setSig(sig:Element):ElementNo Documentation Specified
setSource(source:String):ElementNo Documentation Specified
setSupers(supers:Element):ElementNo Documentation Specified
setTarget(target:Element):ElementNo Documentation Specified
setTraced(trace:Element):ElementNo Documentation Specified
sig():Element Returns the signature of the operation. This is a sequence of the parameters and the return type. The parameters are encoded as pairs being the name and the type. The signature types are encoded and can be decoded by Classifier::mapType.
source():StringNo Documentation Specified
supers():ElementNo Documentation Specified
target():ElementNo Documentation Specified
toString():StringNo Documentation Specified
trace():Element Sets the operation to be traced. The operation prints out debugging information when it is entered and exited. Note that tracing is implemented by setting the traced slot of the operation to a special operation that the VM will call as a proxy.
traced():BooleanNo Documentation Specified
type():ClassifierNo Documentation Specified
untrace():ElementNo Documentation Specified
From Operation: javaTypeName, deployJava, signatureArgs, populate, unbreak, untrace, traceFun, traced, trace, target, supers, source, sig, setTarget, setSupers, setGlobals, setDynamics, paramNames, name, matchesTarget, matchesSignature, matchesId, isKindOf, invokes, invoke, invoke, globals, fork, fork, dynamics, breakFun, break, arity. From DocumentedElement: setDoc, doc, ensureDoc. From NamedElement: href, toString, setName, repopulate, pathSeq, path, name, getNamedElement. From Contained: owner, deleteRecursive, allOwners, addTo, setOwner, removeFromOwner. From Object: slotMissing, slotMissing, setProperty, setHotLoad, setDaemonsActive, setDaemons, set, renameSlot, removeStructuralFeature, removeDaemonsWithTarget, removeDaemonsWithId, removeDaemonNamed, removeDaemon, machineInit, initSlots, init, hotLoaded, hotLoad, hasSlot, hasProperty, getProperty, get, hasStructuralFeature, getStructuralFeatureNames, hasDaemonWithTarget, hasDaemonWithIdAndTarget, hasDaemonWithId, hasDaemonNamed, fire, destroyDaemon, daemonWithIdAndTarget, daemonWithId, daemonNamed, daemonsActive, daemons, allDaemonsWithTarget, allDaemonsWithId, compositeValues, allCompositeValuesAndSelf, allCompositeValues, addStructuralFeature, addPersistentDaemon, addMultiDaemon, addDaemon. From Element: pprint, pprint, pprint, writeXMLFile, writeXMLFile, writeXML, lift, toSnapshot, toSnapshot, allHTMLEntries, allHTMLPackages, toHTML, writeHTML, writeHTML, writeHTMLAllEntries, writeHTMLAllPackages, writeHTMLIndex, writeHTMLOverview, yield, toString, systemId, setOf, send, save2, save, removeDaemon, removeDaemon, println, print, oclIsKindOf, oclIsTypeOf, noOperationFound, isTypeOf, isReallyKindOf, init, init, of, isKindOf, addTo, checkConstraints, copy, deleteRecursive, die, edit, equals, error, ferror, hashCode.