Commits on Jul 26, 2016
  1. @moritz

    Bump to an even newer NQP

    where hopefully the version number generation is not broken by the "parrot" tag
    moritz committed Jul 26, 2016
  2. @moritz
Commits on Jul 25, 2016
  1. @TimToady

    term:<...> could also indicate missing args

    When we warn, we should give suggestions on both sides of
    the ambiguity.
    TimToady committed Jul 25, 2016
  2. @TimToady

    better warnings on sequence ... in term position

    Instead of inflicting the overhead of the ... test on every comma parse,
    we instead look backwards from much less common term:sym<...> parser and
    check for a stub following a comma or a function call.  Also, change panic
    to worry as the TODO suggested.
    TimToady committed Jul 25, 2016
  3. @lizmat

    Streamline .first(:end) iterating (about 10% faster)

    - when finding match after testing 1000 elements
    - rewrite in nqp::ops
    lizmat committed Jul 25, 2016
  4. @lizmat

    Streamline .first iterating (about 10% faster)

    - rewrite in nqp::ops
    - finding match after testing 1000 elements
    lizmat committed Jul 25, 2016
  5. @lizmat
  6. @lizmat

    Streamline .grep adverb handling

    Reduces the overhead by 10% (no adverbs) to 30% (:v adverb) by
    using the underlying native hash for checking.
    lizmat committed Jul 25, 2016
  7. @lizmat

    Streamline .first adverbed result handling

    - rewritten using nqp ops
    - use underlying native hash for adverb checking
    
    On a .first that returns the first element, there's 25% improvement
    without any adverbs, and 2x when using the "kv" adverb.
    lizmat committed Jul 25, 2016
  8. @lizmat

    Streamline warning handling a bit

    The big problem is still in $backtrace.first-none-setting-line, which
    we need to make leaner (by not completely reifying the frames inbetween)
    lizmat committed Jul 25, 2016
  9. @lizmat

    Merge pull request #829 from skids/nilwithsmilies

    Fix RT#127958 on moarvm... :D smiley containers assigned from Nil
    lizmat committed on GitHub Jul 25, 2016
Commits on Jul 24, 2016
  1. @lizmat

    Make Backtrace creation 25% faster

    Which in turn benefits Failure creation, which in turn helps situations
    such as:
    
      my @a; @a.pop // 42;
      $*FOO // "default foo";
    
    aka, anything that potentially can return a Failure.
    
    This is a work in progress: many more avenues of optimisation to check
    out.  But small changes here have large repercussions  :-(
    lizmat committed Jul 25, 2016
  2. @skids
  3. @niner

    Fix precomp file for Staging repo containing build path

    The only bundled module still containing $BUILDROOT in the generated
    precomp file was CompUnit::Repository::Staging itself. That's because
    we need the Staging repo to get the relative paths in the first place.
    
    Break this bootstrap issue by calling .precompile directly instead of
    through .install
    niner committed Jul 24, 2016
  4. @lizmat

    Merge pull request #831 from MasterDuke17/reword_usage_text

    Reword the 'perl6 --help' text
    lizmat committed on GitHub Jul 24, 2016
  5. @MasterDuke17

    Reword the 'perl6 --help' text

    Make punctuation/capitalization consistent, show when arguments to long options are optional/required, and better explain how to get JSON profiles
    MasterDuke17 committed Jul 24, 2016
  6. @niner

    Fix CURF's resolve generating the wrong repo-id

    Instead of a SHA1 like those generated when creating a precomp file
    as result of a .need, we got the source file's path as repo-id.
    Therefore the equality check always failed causing unnecessary recompiles.
    
    Fixed by using the same code for generating the id in both methods.
    niner committed Jul 24, 2016
  7. @niner

    Merge pull request #830 from ugexe/patch-8

    Return InstalledDistribution where appropriate
    niner committed on GitHub Jul 24, 2016
Commits on Jul 23, 2016
  1. @lizmat

    Streamline Hash[Any,Any].keys|value|kv|pairs|antipairs

    - the MappyIterator role already handles uninited / empty hashes
      so no need to check for definedness here as well
    - rewrite pull-one's in nqp::ops
      which should specifically help .kv
    - this now returns Seq for uninited / empty hashes (before: List)
      as it should have from the beginning
    lizmat committed Jul 23, 2016
  2. @lizmat

    Make Hash[Any,Any].DELETE-KEY 10% faster

    - rewrite in nqp::ops
    - actually 25x faster when checking hash without storage
      well, could be more, because this is now not doing an unneccesary .WHICH
    lizmat committed Jul 23, 2016
  3. @lizmat

    Make Hash[Any,Any].EXISTS-KEY about 10% faster

    On an initialized hash.  Again, not much, but basic functionality.
    lizmat committed Jul 23, 2016
  4. @lizmat

    Make Hash[Any,Any].BIND-KEY about 15% faster

    - rewrite in nqp ops
    - be smarter about handling uninitialized hashes
    lizmat committed Jul 23, 2016
  5. @lizmat

    Make my %h{Any}; (%h<a> = 42) = 666 work

    Not sure if this ever worked before, but it should, as
    
      my %h; (%h<a> = 42) = 666
    
    and:
    
      my Int %h; (%h<a> = 42) = 666
    
    have always worked.
    lizmat committed Jul 23, 2016
  6. @ugexe

    Return InstalledDistribution where appropriate

    Gives CompUnits returned from CURI a Distribution with proper content access
    
        my $cur   = CompUnit::RepositoryRegistry.repository-for-name("site");
        my $spec = CompUnit::DependencySpecification.new(:short-name("Inline::Perl5"));
        my $cu    = $cur.resolve($spec);
        say $cu.distribution.content("lib/Inline/Perl5.pm6").open.slurp-rest
    ugexe committed on GitHub Jul 23, 2016
  7. @lizmat

    Make Hash[Any,Any].ASSIGN-KEY about 15% faster

    - rewritten using nqp ops
    - smarter handling of empty typed hashes
    
    Almost not worth it, but such a basic functionality can use all the
    optimization it can get
    lizmat committed Jul 23, 2016
  8. @lizmat

    More of the same of a37cd22

    - Bag.total
    - Mix.WHICH/total
    - Set.WHICH/total
    lizmat committed Jul 23, 2016
  9. @lizmat

    Streamline dynamic variables setup/initialization

    - write in all nqp ops
    - create a Failure in INITIALIZE-DYNAMIC
      so we don't need to check for it in DYNAMIC
    
    Looks like this shaved off 1msec of bare startup time
    lizmat committed Jul 23, 2016
Commits on Jul 22, 2016
  1. @skids

    Fix RT#127958 on moarvm... :D smiley containers assigned from Nil

      There is no sensible default default for :D types, blame Kurt Gödel.
      This breaks the assumption that a type's default is a legal value.
      So, check the assigned type even when assigning from the_default.
    skids committed Jul 22, 2016
  2. @lizmat

    Make repeated calls on Bag.WHICH 5x as fast

    - by using nqp::attrinited rather than //=
    lizmat committed Jul 23, 2016
  3. @lizmat

    Make Hash[Any,Any].AT-KEY about 20% faster

    - rewritten using nqp ops
    - smarter handling of empty typed hashes
    lizmat committed Jul 22, 2016
  4. @lizmat

    Make Hash.DELETE-KEY about 2x as fast

    - rewrite using nqp ops
    lizmat committed Jul 22, 2016
Commits on Jul 21, 2016
  1. @niner
  2. @jnthn

    Correct handling of -> ASubsetType:D $x { }.

    We took the base type of the definiteness type, and just assumed it
    was already a simple nominal type. Now it is further analyzed, which
    fixes the compilation and behavior of the above construct.
    jnthn committed Jul 21, 2016
  3. @jnthn

    Make sure we don't stick a 0 into the AST.

    Instead, put a Nil there if we have an empty statement.
    jnthn committed Jul 21, 2016
  4. @jnthn

    Avoid an infinite loop in optimizer.

    Also make some debug output only show if debugging is enabled.
    jnthn committed Jul 21, 2016