Steve Fink <[EMAIL PROTECTED]> wrote:
> On Oct-11, Melvin Smith wrote:
>>
>> set IO, P0[.BUFSIZE]
>> set P0[.BUFSIZE], 8192

> Actually, looking at that suggests that perhaps this should be done
> through the setprop/getprop interface instead, since that seems like a
> closer semantic fit to what you're doing.

IMHO is the keyed access clearly denoting what's goin on. The property
stuff is AFAIK for different things. You could attach e.g. an utf8 layer
via setting a property.

Either above or via method calls:

   set S0, "bufsize"   # method currently "setbuf"
   set P5, P0          # first param = PIO
   set I5, 8192
   callmeth
   # P0 is the method now

or

   find_method P1, "bufsize" # "setbuf"
   set I5, 8192
   invoke P1

s. t/pmc/io.t, t/classes/parrotio.pmc:enter_nci_method

OTOH, the property interface can have hints for creating a buffered PIO
object with a specific buffer size, e.g.

   new P1, .PerlHash
   new P2, .PerlInt
   set P2, 8192
   set P1["bufsize"], P2        # create property hash

   null P3
   new P0, .ParrotIO, P3, P1    # init_pmc_props
   assign P0, "< the_file"      # use existing handle for open TODO
   # or combine above 3 lines to an extended open opcode

Properies are probably more the static side of the moon, while method
calls are dynamic.

leo

Reply via email to