(This is with parrot built from the subversion trunk, revision 16999)
Here's a bit of PIR that demonstrates my problem:

    .sub 'main' :main
            load_bytecode 'dumper.pir'
            .local ResizablePMCArray fields
            split fields, ",", "hey,you"
            _dumper (fields)

            .local pmc big
            new big, .BigInt
            _dumper (big)

            set big, "1234567890987654321"
            _dumper (big)

            unshift fields, big
            _dumper (fields)
    .end
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     ./parrot mutate.pir
    "VAR1" => ResizableStringArray (size:2) [
        "hey",
        "you"
    ]
    "VAR1" => PMC 'BigInt' { ... }
    "VAR1" => PMC 'BigInt' { ... }
    "VAR1" => ResizableStringArray (size:3) [
        "1234567890987654321",
        "hey",
        "you"
    ]

;;;;;;

what's puzzling is that "big" starts out as a BigInt, but seems to get
transformed into a string when I put it into the array.  I wanted that
last dumped value to contain a BigInt followed by two strings, but
instead it's three strings.  I would have thought that making my
"fields" variable be a ResizablePMCArray would have sufficed to ensure
that, but as far as I can tell, "fields" gets transformed from a
ResizablePMCArray to a ResizableStringArray after I assign the return
value of "split" from it.  What must I do to get what I want?

Thanks
-- 

 ハ  ハ
ミ^・^ミ
 `~~~´

Reply via email to