Jason -- Thanks for taking the time to look at this and comment on it.
> Actually you need to clarify what the semantics of an 'out' parameter are for S > and P registers. 'out' should indicate whether the value of the register (ie. > the value of the pointer) may change. > > For example, in : > > inline op set(PMC, NUM) { > $1->vtable->set_number_native(interpreter, $1, $2); > goto NEXT(); > } > > the PMC pointer passed in $1 will not be changed by the call to set, so > depending on the language being compiled the PMC pointer may be cached across > this op. I was thinking of these semantics: in - The value on entry into the op is used to determine the the out value(s) (if any) and/or the next op. out - The value is (potentially) changed by the op. I had not made a distinction between the two cases for reference types (STR and PMC): value - The value of the referred-to thing is effected. I think this is analogous to the semantics for value types (INT, NUM), so it could easily be the default. referent - The register's referrent is changed. Possibly we could use refout for this, but then it begs the need for refinout, but things start to feel pretty slippery at this point. I want to keep these annotations as concise as possible. I'll have to think on that one some more. Regards, -- Gregor ____________________________________________________________________ / Inspiration >> Innovation >> Excellence (TM) \ Gregor N. Purdy [EMAIL PROTECTED] Focus Research, Inc. http://www.focusresearch.com/ 8080 Beckett Center Drive #203 513-860-3570 vox West Chester, OH 45069 513-860-3579 fax \____________________________________________________________________/ [[EMAIL PROTECTED]]$ ping osama.taliban.af PING osama.taliban.af (68.69.65.68) from 20.1.9.11 : 56 bytes of data. >From 85.83.77.67: Time to live exceeded