Execute the method for selector in class.
xt is the method for the selector selector-xt in class.
xt is the method for selector in class.
[bind]
( compile-time: "class" "selector" – ; run-time: ... object – ... ) objects “left-bracket-bind-right-bracket”
Compile the method for selector in class.
Start a new class definition as a child of parent-class. align offset are for use by field etc.
map is the pointer to class’s method map; it points to the place in the map to which the selector offsets refer (i.e., where object-maps point to).
Give the size specification for an instance (i.e. an object)
of class;
used as class-inst-size 2 ( class -- align size )
.
xt is the new method for the selector sel-xt in class-map.
Drop class’s wordlists from the search order. No checking is made whether class’s wordlists are actually on the search order.
Add class’s wordlists to the head of the search-order.
Initialize the data fields of object. The method for the
class object just does nothing: ( object -- )
.
xt is the method for selector in the current class.
[current]
( compile-time: "selector" – ; run-time: ... object – ... ) objects “left-bracket-current-right-bracket”
Compile the method for selector in the current class.
Variable: contains the class or interface currently being defined.
allot
and initialize an object of class class in
the dictionary.
name execution: -- class
End a class definition. The resulting class is class.
End a class definition. The resulting class is class.
name
execution: -- interface
End an interface definition. The resulting interface is
interface.
End an interface definition. The resulting interface is interface.
Switch back from defining methods of a class to normal mode (currently this just restores the old search order).
exit
from a method; restore old this
.
allocate
and initialize an object of class class.
The current class implements interface. I.e., you can use all selectors of the interface in the current class and its descendents.
Initialize a chunk of memory (object) to an object of
class class; then performs construct
.
name execution: -- w
w is the value of the field name in this
object.
name execution: -- addr
addr is the address of the field name in
this
object.
Start an interface definition.
Start a method definition; object becomes new this
.
Start a named method definition; object becomes new
this
. Has to be ended with ;m
.
End a method definition; restore old this
.
name
execution: ... object -- ...
Create selector name and makes xt its method in
the current class.
Makes class the current class. This is intended to be used for defining methods to override selectors; you cannot define new fields or selectors.
the ancestor of all classes.
replace default method for selector in the current class
with xt. overrides
must not be used during an
interface definition.
[parent]
( compile-time: "selector" – ; run-time: ... object – ... ) objects “left-bracket-parent-right-bracket”
Compile the method for selector in the parent of the current class.
Print the object. The method for the class object prints the address of the object and the address of its class.
Set the compilation wordlist to the current class’s wordlist
Restore the compilation wordlist that was in effect before the
last protected
that actually changed the compilation
wordlist.
name execution: ... object -- ...
Create selector name for the current class and its
descendents; you can set a method for the selector in the
current class with overrides
.
the receiving object of the current method (aka active object).
store w into the field xt in this
object.
store w into field name in this
object.
Set this
(used internally, but useful when debugging).
Make a new object, using xt ( align size -- addr )
to
get memory.