Branch: master
Commits on Feb 19, 2019
  1. Fix Date diff calculation

    lizmat committed Feb 19, 2019
    Fixes R#2707.
Commits on Feb 18, 2019
  1. Micro-optimize Lock::Async.lock/unlock

    lizmat committed Feb 18, 2019
    As these are heavily used in server applications, it seemed worthwhile to
    get the 2.5% improvement.  Benchmark based on basic react / whenever listen /
    whenever connection.Supply.lines -> $line block getting hammered by a single
    client for 100_000 times.
  2. Bump NQP to get the latest goodies

    lizmat committed Feb 18, 2019
Commits on Feb 15, 2019
  1. Remove 2 Scalar allocations from each Socket::Async.write

    lizmat committed Feb 15, 2019
    They're not needed, and reduce memory pressure in servers/clients.
Commits on Feb 12, 2019
  1. Hacky fix for R#2686

    lizmat committed Feb 12, 2019
    Compilation complained about IO::Glob not having a "flat" method.  This is
    strange, as IO::Glob does Iterable, and the Iterable role provides a "flat"
    The "flat" method was called during the setting up of the export of "glob"
    in Rakudo::Internals.  Since this code predates the GLR, and the intent seemed
    to be to iterate over whatever is in @*PACKAGES, it felt appropriate to
    replace the "flat" by a ".list".  This spectests clean and unbreaks IO::Glob.
    As to the deeper reason of why this worked, I have no idea.
  2. Add tests for R#2681

    lizmat committed Feb 12, 2019
  3. Speed up storing non-iterables in Buf/Blob

    lizmat committed Feb 12, 2019
    Use nqp::push_i instead of .ASSIGN-POS.  This also makes work
    (spotted while writing tests).
  4. Add test for R#2687

    lizmat committed Feb 12, 2019
  5. Add Buf/Blob.STORE candidates for non-iterables

    lizmat committed Feb 12, 2019
    For some reason we cannot make things like CArray an Iterable without
    breaking a lot of things (like R#2687).  This fixes R#2681 the hard way.
    If the native types are the same, this could be sped up quite a bit, but
    I don't see a quick way to introspect that and fast-path that.
  6. Revert original fix for R#2681

    lizmat committed Feb 12, 2019
    Which should at least unbreak R#2687 and associated
  7. Better fix for R#2681 and related

    lizmat committed Feb 12, 2019
    Instead of adding the Iterable role to the CArray class itself, apply it to
    each of the underlying roles that are used to compose the final class.  Not
    quite sure why that makes a difference, but it also makes the problem of
    R#2687 go away.
Commits on Feb 8, 2019
  1. Make Mu<> work as before

    lizmat committed Feb 8, 2019
    The original proto of postcircumfix:<{ }> was just |, so it also accepted
    Mu.  This adds Mu to the current signature, and fast-paths the <> case.
  2. Partially rollback 46409c0

    lizmat committed Feb 8, 2019
    So that we're back at the status quo of R#2676
  3. Fix one forgotten occurrence of .pos

    lizmat committed Feb 8, 2019
    Related to ccf350e , found in
    Problem spotted by MasterDuke++
  4. Make NativeCall::Types::CArray an Iterable

    lizmat committed Feb 8, 2019
    Fixes R#2681.  FWIW, the tests of the module pass ok now.  But I'm a bit
    baffled by the fact that there is no visible "iterator" method in the class,
    so I'm not 100% this is the solution.  It *is* however 'make test' and
    'make spectest' clean, and it makes all of the tests of Crypt::TweetNacl
Commits on Feb 7, 2019
  1. Make Baggy.ACCEPTS the same as Setty.ACCEPTS

    lizmat committed Feb 7, 2019
    Seems more correct to keep the same MMD logic between Setty and Baggy
  2. Tweak Range.ACCEPTS

    lizmat committed Feb 7, 2019
    As part of trying to figure out what's going on with R#2676, I found 2 things
    askew with Range::ACCEPTS:
    - a candidate taking Mu
      This means that any Junction will be handled inside the method, rather than
      outside.  Removed the type, so it now defaults to Any.  Even though this
      should not make a difference for the result of the issue, it did.  Alas,
      still wrong.
    - a candidate taking Range without :D
      Since this candidate accesses attributes, it will bomb when given a Range
      type object.  So added a :D
Commits on Feb 5, 2019
  1. Make sure we nqp::create on type objects only

    lizmat committed Feb 5, 2019
    Fixes R#2674
Commits on Jan 28, 2019
  1. Make Buf[Int].new(1,2,3) error less cryptic

    lizmat committed Jan 28, 2019
    Basically indicate that anything but a native int type is not allowed
    (and will most likely not ever be implemented, so remove the NYI also).
    Fixes R#2655
Commits on Jan 27, 2019
  1. Rename Block/WhateverCode.pos to .POSITIONS

    lizmat committed Jan 27, 2019
    To better indicate this is an internal method without any reliable outside
    usage.  This in response to R#2651
  2. Make IO::Path.dir throw rather than fail

    lizmat committed Jan 27, 2019
    In general, if something is returing an Iterable, we throw rather than fail
    to prevent exactly the problem that R#2650 describes.  Is spectest clean, so
    we weren't too strict about this anyway.
Commits on Jan 25, 2019
  1. Hacky fix for R#2640

    lizmat committed Jan 25, 2019
    After spending most of the day yak shaving for this, decided to just
    hack a solution for the release to get the pressure off.  I have a patch
    that will fix the re-composing of classes with meta methods in them, but
    that also unfortunately disables this hack.
    As was observed, a class with a ^parameterize in them will smartmatch
    correctly after having done a .^compose on them.  This commit will do that
    at the end of compiling the setting for the classes in the setting that
    have a ^parameterize method.  This will **not** fix any classes out there
    that also have a ^parameterize method.
  2. Oops, we already have an "is_composed" method, jnthn++

    lizmat committed Jan 25, 2019
  3. Add .^composed meta method to classes

    lizmat committed Jan 25, 2019
    For easier debugging
Commits on Jan 24, 2019
  1. Somehow bypass issue that causes LTA error of R#2640

    lizmat committed Jan 24, 2019
    Not sure why this makes a difference at all, but by replacing the
        when Failure
    by a much more low level
        if nqp::istype(Failure)
    we at least get a decent error message.  I assume this is somehow related
    to $_ scoping optimizations that have happened.
  2. Disable CATCH block for precomp errors for now

    lizmat committed Jan 24, 2019
    Its causing too many weird test errors
  3. Add some diagnostics when a module fails to precomp

    lizmat committed Jan 24, 2019
  4. Make sure $!daycount is nulled on subclasses of DateTime

    lizmat committed Jan 24, 2019
    Essentially the same fix as 9295616 was for Date.  Spotted
    by AlexDaniel++ / Blin++.  Fixes R#2615 (again)
Commits on Jan 20, 2019
  1. Merge pull request #2631 from MasterDuke17/move_some_Num_constant_rvs…

    lizmat committed Jan 20, 2019
    Move some Num constant rvs to their signature
  2. Make sure we do "my constant %foo = nqp::hash" only on moar

    lizmat committed Jan 20, 2019
    As a temporary fix for R#2628, to not longer block the release.
Commits on Jan 19, 2019
  1. Make Str.trim-trailing about 10-20% faster

    lizmat committed Jan 19, 2019
    Depending on string and amount of whitespace
Commits on Jan 18, 2019
  1. Make sure we parameterize parent specification

    lizmat committed Jan 18, 2019
    By adding a genetic trait handler that handles this case.  Fixes R#2611
  2. Make sure $!daycount is nulled on subclasses of Date

    lizmat committed Jan 18, 2019
    The problem was that subclasses of Date do not use the fast-path creation of
    objects, but go through .bless.  This missed an important part of the
    initialization of $!daycount.  Fixes R#2615
Commits on Jan 16, 2019
  1. Fix copy pasto

    lizmat committed Jan 16, 2019
    Fixes test failures in S32-basics/xxKEY.t since 87b71c2
Commits on Jan 15, 2019
  1. Oops, forgot to check on types in MixHash.AT-KEY

    lizmat committed Jan 15, 2019
    Found thanks to the power of tests!