Permalink
Switch branches/tags
Commits on Oct 27, 2017
  1. Revert "Display notice that `nom` was renamed"

    zoffixznet committed Oct 27, 2017
  2. Display notice that `nom` was renamed

    zoffixznet committed Oct 27, 2017
    The message is actually displayed twice: for 6.c setting and 6.d
    setting, but I figure that's good 'nuf and don't gotta be perfect.
    
    Twice is good.
Commits on Oct 26, 2017
  1. Merge pull request #1215 from rakudo/zoffer-post-release

    zoffixznet committed Oct 26, 2017
    "Do. Or do not. There is no try."
  2. [release] Bump VERSION to 2017.10

    AlexDaniel committed Oct 26, 2017
  3. Turns out we can nqp::clone after all

    lizmat committed Oct 26, 2017
    - but keep the nice helper function :-)
  4. Make sure we don't use nqp::clone

    lizmat committed Oct 26, 2017
    - as that's guaranteed to not be threadsafe after all
    - instead, introduce a "push-worker" sub
      - which copies the workers safely *and* adds the given worker
  5. Merge pull request #1213 from rakudo/ugexe-patch-1

    lizmat committed Oct 26, 2017
    Fix multiple options passed to include specs
  6. Parameterize using type objects instead of native ints

    pmurias committed Oct 26, 2017
    Native int pointer equality in parameterization depends on int caches
    and as such is fragile.
  7. Zoffix isn't speshul anymore

    zoffixznet committed Oct 26, 2017
  8. Generated announcement and fixed date

    AlexDaniel committed Oct 26, 2017
  9. Remaining ChangeLog entries

    AlexDaniel committed Oct 26, 2017
  10. Throw useful error with .new with no args on natives

    zoffixznet committed Oct 26, 2017
    This form never worked, so we don't need to bother passing it
    via deprecation period. Just start throwing same error all forms
    will be throwing once deprecation period expires.
  11. Remove one division from supervisor loop

    lizmat committed Oct 26, 2017
    Since the number of elements sampled is now always constant, we can
    factor that into the per-core calculation at compile time, so that we
    only need to sum it at runtime.
  12. Fix multiple options passed to include specs

    ugexe committed Oct 26, 2017
    Previously passing multiple options would result in the first option set (in %options) containing all the values for all the keys.
  13. Fix .STORE leaving behind elements on native arrays

    zoffixznet committed Oct 26, 2017
    - Occurs when non-Iterable value is assigned
    - Occurs when native-Iterable is assigned
  14. Fix accidentally-edited auto-generated part

    zoffixznet committed Oct 26, 2017
    The auto-generated part was accidentallyu edited[^1] directly.
    Propagate the change to generator script. I'm only assuming the
    same change was needed (or at least is not detrimental) to other
    types that are now included.
    
    [1] 714c188
  15. Test for deadlock heuristic more

    zoffixznet committed Oct 26, 2017
    Check for deadlock even if we have some completed jobs but still
    have a ton of total uncompleted ones.
    
    t/spec/S17-channel/stress.t on 4-core/4GB RAM VM takes:
    - On 2017.09, 7s to run
    - on HEAD, effectively hangs: eats up all the RAM before enough
        workers are available, unless the box is busy doing something
        else. The program itself does not generate enough CPU usage
        to trigger worker addition
    - with this commit: takes 27s to run
        the second part of the test file completes fast now but first
        one is still 2x slower; looking closer at that seems to be
        slower just due to new scheduler mechanics rather than some bug
Commits on Oct 25, 2017
  1. Make supervisor per-core-util calculator 2.8x faster

    zoffixznet committed Oct 25, 2017
    Most of this is from rewriteing &push to .push so it doesn't go
    through slippy candidate
  2. Polish off affinity worker prodder

    zoffixznet committed Oct 25, 2017
    Per https://irclog.perlgeek.de/perl6-dev/2017-10-25#i_15353842
    
    - Improve readability
    - Steal only one item from the queue
    - Prevent potential supervisor deadlock from elems'ing the queue
        and having a race empty it and for nqp::shift() to block
  3. Fix deadlock with affinity workers

    zoffixznet committed Oct 25, 2017
    Fixes tokuhirom/p6-WebSocket#15 (comment)
    and RT#132343: https://rt.perl.org/Ticket/Display.html?id=132343
    
    Make supervisor keep an eye on affinity workers and if we spot any
    that are working and haven't completed anything for a while, steal
    their queue into general queue. Per:
    https://irclog.perlgeek.de/perl6-dev/2017-10-25#i_15352262
  4. Fix poor error with some slurpies with defaults

    zoffixznet committed Oct 25, 2017
  5. Revert "Add hackish fix deadlock for supply in a sock"

    zoffixznet committed Oct 25, 2017
    This reverts commit ce7e544.
    
    This commit is pointless and doesn't fix the bug in real-life code.
  6. Add hackish fix deadlock for supply in a sock

    zoffixznet committed Oct 25, 2017
    tokuhirom/p6-WebSocket#15 (comment)
    RT #132343
    Test: perl6/roast@74445dd
    
    Just pop in another worker in a case where we have just one and
    whose queue is empty. This fixes the bug demonstrated by the test,
    but it doesn't address the core cause as I don't understand it.
    
    Need proper fixin'.
  7. Fix incorrect queue size measurement

    zoffixznet committed Oct 25, 2017
    We're mistakenly calling .elems on the AffinityWorker, which will
    just return 1, messing up our measures of which worker is less busy.
    
    Use its .queue instead; we already grabbed it into a var a few lines up.
Commits on Oct 24, 2017
  1. Bump NQP

    zoffixznet committed Oct 24, 2017
  2. Revert "Threadsafe List.reify-until-lazy a bit"

    lizmat committed Oct 24, 2017
    - This reverts commit 50324bb.
    - No longer needed because of 30462d7
    - Removes small overhead the commit caused
  3. HLL-fix for issue 1202

    lizmat committed Oct 24, 2017
    - more info: see #1202
    - changes all use of Lists for worker list to IterationBuffer
      - these have fewer concurrency issues
      - specifically, List.elems *could* change internal state of a List
    - this appears to make the sample code much more stable
    - a crash is now typically something inside of Moar, such as:
      - MoarVM panic: Heap corruption detected: pointer 0xdeadbeef to past fromspace
    
    So, I think there is at least one more gremlin living inside MoarVM
    related to this issue.
Commits on Oct 23, 2017
  1. Improve/Fix Int.new

    zoffixznet committed Oct 23, 2017
    - Don't use p6bindattrinvres with `bigint` attributes; it's
        questionable if it should work and fails on JVM (part of #1201)
    - Make Int.new: int candidate properly give a new object instead
        of a cached constant
  2. Threadsafe List.reify-until-lazy a bit

    lizmat committed Oct 23, 2017
    This is a bandaid for the 2017.10 release.  It fixes the most common
    place where #1202 goes awry.
    The result is fewer crashes, and if they crash, it's because MoarVM
    itself go thoroughly corrupted.
  3. Use lexical instead of state var when we can

    zoffixznet committed Oct 23, 2017
    Same reasoning as in
    6af44f8
  4. Some ThreadPoolScheduler tweaks

    lizmat committed Oct 23, 2017
    - make sure we can identify which .elems failed in stacktrace
    - use = instead of .= Lock like everywhere else
      - not sure about this one
  5. Reflect actual date, claim next release

    AlexDaniel committed Oct 23, 2017
  6. Tiny improvements to announcement generation

    AlexDaniel committed Oct 23, 2017
    This gets the generation in line with my monkey patching for last
    announcements (no trailing whitespace, more unicode, and Perl 6 with
    nbsp).