This is my response to Alan Furman's question about temporary objects in FMS: the possibility of having temporary objects in a colon definition that are automatically destroyed at the end of the word in FMS. I tried the SWOOP example from the SwiftForth documentation with the portable version of SWOOP from Stephen Pelc's FLAG ( http://soton.mpeforth.com/flag/index.html ) but that version does not appear to support the [OBECTS construct. So I tried the following in SwiftForth itself and of course it worked just fine: \ -- begin SWOOP code -- class point variable x variable y : show ( -- ) x @ . y @ . ; : dot ( -- ) ." point at " show ; end-class : try ( addr -- ) [objects point names sam objects] sam dot ; : test [objects point makes joe objects] joe try ; \ -- end SWOOP code -- As I mentioned, PowerMops has temporary objects that behave in an analogous manner: \ -- begin PowerMops code -- :class point super{ object } var x var y :m show: x @ . y @ . ;m :m dot: ." Point at " show: self ;m ;class : try { sam -- } \ sam is any object that responds to dot: dot: sam ; : test \ any number of temporary objects can be declared between temp{ and } temp{ point joe } joe try ; \ -- end PowerMops code -- Here is what can be done in FMS as it is now. Note that the syntax of TEST is not as convenient, but the syntax of TRY is very simple as it is in Mops. It would not be difficult to have the FMS TEST word behave just like the PowerMops TEST, but I think implementation might have to be system specific: \ -- begin FMS code -- :class point var x var y :m show: x @ . y @ . ;m :m dot: ." Point at " self show: ;m ;class : try { sam -- } \ sam is any object that responds to dot: sam dot: ; : test heap> point { joe -- } joe try joe