Permalink
Commits on Sep 4, 2012
  1. regenerate table

    demerphq committed Sep 4, 2012
  2. reduce the amount of tags used for short strings (so we can use the f…

    …or something else later)
    demerphq committed Sep 4, 2012
  3. unroll one liner. :-)

    Now you can do:
    
        perl -x srl_decoder.h
    
    to autoupdate the string table from the defines.
    demerphq committed Sep 4, 2012
  4. add tests and fix round trips of utf8 keys in the latin1 range

    Perl stores hashes in two forms: UTF8 and Latin-1 (binary).
    
    If a unicode key is stored in a hash then perl will see if it can be reencoded as
    latin-1 (binary). If it can then it is stored as latin-1 with the flag "WASUTF8".
    If it cant then it is stored as utf8 with the flag ISUTF8.
    
    If the key is latin-1/binary from the beginning then it is stored as latin-1 with
    neither flag set.
    
    When fetching the keys of a hash and the key has the WASUTF8 then perl upgrades
    the string before returning it to the user so it has the correct semantics. This
    means that we also have to do the same thing for WASUTF8 keys or they will not
    round trip properly.
    demerphq committed Sep 4, 2012
  5. Revert "Move back towards 585 compat"

    This reverts commit df5c7d3.
    
    Collision with Yves' more complete fix.
    tsee committed Sep 4, 2012
  6. Rework how we handle copy tags for hash keys so we do less work.

    Part of this patch also switches from using direct bitmap tests
    for ASCII tags with macros. This makes it easier to ensure all
    of these tests work properly should we need to change the logic.
    demerphq committed Sep 4, 2012
  7. Move back towards 585 compat

    tsee committed Sep 4, 2012
  8. Make the new hash logic work on p585

    It seems that back in the mists of time there was a static hv_fetch_common() which was
    refactored into hv_common(). So on ancient perls use hv_fetch().
    demerphq committed Sep 4, 2012
  9. fix bug - we would fail to deal with aliases in hashes right

    We need many more tests for aliases. :-(
    demerphq committed Sep 4, 2012
  10. Version bump to 0.02

    For internal test release.
    tsee committed Sep 4, 2012
  11. MakeMaker kind of requires two separate inc/ copies

    Due to how MakeMaker works, we need to maintain separate copies of the
    code in inc/ (which is required for Makefile.PL). Symlinks fuck of the
    make dist and make manifest stages of distribution building and we
    really don't want that.
    
    Yves, if this breaks your build again, try a fresh clone!
    tsee committed Sep 4, 2012
Commits on Sep 3, 2012
  1. add inc to .gitignore

    demerphq committed Sep 3, 2012
  2. fixup build issue

    demerphq committed Sep 3, 2012
  3. put keys in front of values (sigh) to avoid leaks from parsing keys

    We also switch to using hv_common in a more intelligent way.  This improves
    performance, and I dont think it actually violates the API either.
    demerphq committed Sep 3, 2012
  4. Ignore more cloned files

    tsee committed Sep 3, 2012
  5. Move shared things to the shared subdirectory

    This seems necessary for dist/manifest building.
    tsee committed Sep 3, 2012
  6. pass tests on 5.8.5

    Regexp logic was in the wrong place, and we werent created hashes with shared keys properly
    demerphq committed Sep 3, 2012
  7. Fix compiler warnings

    tsee committed Sep 3, 2012
  8. Always call av_extend - the 8 default size applies to hashes only

    We've been assuming that by default, arrays have an underlying C array
    of 8 SVs, but that's not true, as far as I can tell. sv.c has that logic
    for hashes, but not for arrays. So we always call av_extend - even
    though it could be argued that it shouldn't be called for length=0
    arrays, but the extra branch is probably not worth that comparatively
    rare special case.
    tsee committed Sep 3, 2012