Permalink
Commits on Apr 9, 2017
  1. Make Setty.pick/SetHash.(grab|grabpairs) 4x faster

    - for a 100 element Setty
    - uses new raw_keys functionality
    lizmat committed Apr 9, 2017
  2. Make Set.WHICH about 8x faster for 50 elem Sets

    - use new .raw_keys and R:S.MERGESORT-str to create sorted list of keys
    - use nqp::join/nqp::sha1 to create a fingerprint
    lizmat committed Apr 9, 2017
  3. Add QuantHash.raw_keys

    Returns a list_s of the keys of a QuantHash.  Handy for things like
    .WHICH creation (for Set), or things like .pick/.roll.
    lizmat committed Apr 9, 2017
  4. Abstract native array .sort into R:Sorting

    - so we can use this capability inside the setting
    - also have it use the given list as a work buffer
    - so we don't need to clone if the list is discardable anyway
    lizmat committed Apr 9, 2017
  5. Move sorting logic from R:I to Rakudo::Sorting

    This is just about moving code to a separate file, for two reasons:
    - to reduce size of Rakudo::Internals source file
    - to not make Rakudo::Internals any larger still with the coming commits
    
    This needs a re-configure of your build since a file was added.
    lizmat committed Apr 9, 2017
  6. Merge pull request #1058 from MasterDuke17/fix_creating_a_Bag_with_va…

    …lue_greater_than_an_int
    
    Fix Bags to allow values larger than a native int
    zoffixznet committed on GitHub Apr 9, 2017
  7. Fix Bags to allow values larger than a native int

    I believe this broke in e7e97c7.
    MasterDuke17 committed Apr 9, 2017
  8. [io grant] Delete code for IO::Spec::Win32.catfile

    The same implementation is already inherited from IO::Spec::Unix
    zoffixznet committed Apr 9, 2017
  9. [io grant] Remove type constraint in IO::Spec::Cygwin.canonpath

    To align its interface with all the other ::Spe::*.canonpaths
    zoffixznet committed Apr 9, 2017
  10. [io grant] Implement :parent in IO::Spec::Cygwin.canonpath

    The arg is taken by all the other *Spec*s; I suspect its omission in
    Cygwin was unintentional.
    zoffixznet committed Apr 9, 2017
  11. Make Setty use a use IterationSet instead of Hash

    Instead of having a Hash internally, with an IterationSet at its core,
    now we use the IterationSet directly.  This should save one object creation
    per Setty.  For those cases where we (still) need a Hash, e.g. for easy
    iteration, an internal .hll_hash method is provided for now.
    
    Makes creation of a Set about 3% faster (based on a 50 element Set).
    lizmat committed Apr 9, 2017
  12. Bump Moar nqp::index Knuth-Morris-Pratt/Crochemore-Perrin two-way 2x …

    …speed
    
    Uses Knuth-Morris-Pratt string search algorithm on Linux. On Windows and
    MacOS, uses Crochemore-Perrin two-way string matching. About 2x improvement in
    speed of literal regex. This is a change to only the nqp::index string op
    samcv committed Apr 9, 2017
Commits on Apr 8, 2017
  1. Make QuantHash.raw_hash return "inner" nqp::hash

    Because since that is a IterationSet, we can, and thus save on an
    extra nqp::getattr.  Small step towards making %!elems in QuantHash
    to be an IterationSet itself, rather than a Hash containing an
    IterationSet.
    lizmat committed Apr 8, 2017
  2. Code clean up

    - Wrap insanely long lines
    - Get rid of supersticious parens
    - Get rid of concatenation bonanza
    - Fix typo
    - Use .perl on strings in like/unlike default desc so that
        whitespace shows up properly
    zoffixznet committed Apr 8, 2017
  3. Merge pull request #1057 from jsimonet/nom

    [Test] Add default description.
    zoffixznet committed on GitHub Apr 8, 2017
  4. [Test] Add default description.

    Add description for like, unlike, use-ok.
    Rename some parameters for a more standardised naming (desc vs msg) for
    isa-ok, does-ok, can-ok and use-ok.
    jsimonet committed Apr 8, 2017
  5. [io grant] Fix return value of IO::Special methods

    The intent appears to have been to return a type object, but it's
    functioning as a return type constraint.
    zoffixznet committed Apr 8, 2017
  6. Remove comment

    While making $!abspath a native type no longer segfaults, it actually
    makes file tests about 8% slower. Due to boxing/unboxing?
    zoffixznet committed Apr 8, 2017
  7. [io grant] Remove IO::Path.abspath (part 2)

    The previous commit[^1] did not do a thorough job.
    
    [1] rakudo@cb323d5
    zoffixznet committed Apr 8, 2017
  8. [io path] Remove IO::Path.abspath

    The original plan was to make it a private method. However,
    IO::Path.absolute just calls to .abspath under the hood. So, instead
    of making it private, move the code to IO::Path.absolute.
    
    Net result: saved method call in IO::Path.absolute
    zoffixznet committed Apr 8, 2017
  9. [io grant] Clean up IO::Spec::Unix.abs2rel a bit

    - Shove $*CWD default into signature instead of using `Str` and
    then using an `if` on it in the body.
    zoffixznet committed Apr 8, 2017
  10. [io grant] Implement IO::Path.concat-with

    - Does what .child used to do
    - .child will be changed to throw for non-child paths
    zoffixznet committed Apr 8, 2017
  11. [io grant] Restore IO::Handle.IO

    After more thought, it was a bit too much to remove it along with
    other IO::Pathy methods. Bringing it back, mostly so that IO() coercers
    take it, just like they take Cools. And it makes far more sense to
    coerce an IO::Handle to IO::Path than it does to coerce a Complex.
    zoffixznet committed Apr 8, 2017
  12. Streamline Set(|Hash).clone

    - makes SetHash.clone about 250x faster (for a 10 element SetHash)
    - does not need to look at any keys at HLL level
    lizmat committed Apr 8, 2017
  13. Generalize Bag(|Hash).Mix(|Hash) coercion

    Also fix nodality
    lizmat committed Apr 8, 2017
  14. Generalize .Bag(|Hash) coercion a bit further

    Also fix nodality.
    lizmat committed Apr 8, 2017