Sam Ruby <[EMAIL PROTECTED]> wrote:

> See: http://xrl.us/emnk

=> dynclasses/pydic.pmc

> Except for fromkeys, get_string, and __new__, the logic is not Python
> specific, and could easily be refactored into a common base class for
> others to use.

Yep. The problem is that all current usage of hashes inside Parrot is
utilizing a STRING* key. OTOH HLLs are using PMCs in the normal case.

I've already proposed to get rid of the STRING* type. It's neither
low-level (there is no hardware CPU support for it like there is for
FLOATVAL) nor does a separate STRING type have any performance benefits.
Just the opposite - it leads to code duplication due to STRING and PMC
variants of opcodes and vtables.

sizeof(STRING) is 40 bytes (32-bit, optimized w/o C<version>). That's
exactly double the size of a PMC. Thus STRINGs are really big
structures. Wrapping them into a PMC for HLLs usage makes things just
worse.

By unifying STRING and PMC structures the hashing problem would just vanish.

> - Sam Ruby

leo

Reply via email to