pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Update rakudo to 2017.01.

Module Name:	pkgsrc-wip
Committed By:	Benny Siegert <>
Pushed By:	bsiegert
Date:		Mon Feb 6 10:25:44 2017 +0100
Changeset:	7b03d32f71f77bb7d2cd730601752ba5a1dd8b72

Modified Files:

Log Message:
Update rakudo to 2017.01.

New in 2016.03:
 + Fixes:
   + Buf.push|append|unshift|prepend now can take int arrays
   + Better error messages when trying to put illegal values into
   + The REPL now allows statements spread over multiple lines
   + No longer show compilation error twice when loading module with
   + Only Bufs can now be specified as parameter to subbuf-rw
   + Values in %*ENV now have allomorphic semantics
   + Supply.Channel / Channel.Supply no longer lose exceptions
   + Calling .prepend on a native array no longer infiniloops
   + Blob.WHICH now indicates a value (immutable) type
   + Better error reporting for problems with sprintf()
   + Some obscure unicode codepoints causing segfaults no longer
   + Directory listings now handle wrongly encoded data using utf8-c8
 + Additions:
   + Native str arrays (my str @a)
   + Buf.pop, Buf.shift and Buf.splice (similar to List.*)
   + Blob|Buf.allocate($elems, @init-pattern)
   + Buf.reallocate($elems) added
   + &*EXIT can be set to handle exit() statements (for embedding Perl
 + Efficiency:
   + Auto-generated accessors/mutators use less memory and are faster
   + Most Blob|Buf related options use less memory and/or are (much)
   + Same for much of the native array support and IO reading operations
   + Many Parameter/Signature related options are much faster
   + Punning a role is much faster
   + Modules can now be shared between rakudo versions

New in 2016.04:
 + Fixes:
   + "magic" inc/dec cleanup
   + utf8-c8 encoding crashes that occurred on random data
   + fix missing pre-comp store unlock
   + missing module error mentions line number
 + Additions:
   + Improved REPL
   + Add :kv to .first
   + Add provisional $*DEFAULT-READ-ELEMS
 + Efficiency:
   + Removed leaks associated with EVAL
   + Speed up .minpairs/.maxpairs
   + Speed up Object:D cmp Object:D
   + Speed up sort 3-15%

New in 2016.05:
 + Fixes:
   + Fix EVAL during precompilation
   + .substr fixes
   + many precompilation fixes
   + clean up error messages
   + Streamline some core classes
   + Harden Mu.Str against moving GC
   + JVM fixes
   + Simplify `$*USER`/`$*GROUP` initialization
 + Additions:
   + Ability to use a customer debugger module
   + `$*MAIN-ALLOW-NAMED-ANYWHERE` allows MAIN to be friendlier about
where it accepts flags
   + Add richer set of comparison operators for Versions
   + Many improvements to precompilation - building OS packages with
precomp'd code should now be possible!
   + Introduce .Map coercer
   + Implement alternate ways to call subtest
 + Efficiency:
   + Version comparisons are now 2x faster
   + List.minmax is about 3.5x faster
   + Num.perl is about 2.4x faster
   + Int division/modulus is about 1.5x faster
   + LoL accesses are about 3x faster
   + autothreader is about 2-3x faster
   + Make Any junction methods 14x faster
   + Make Junctions faster
   + Map.kv is about 10% faster

New in 2016.06:
 + Fixes:
   + Arrays with holes (e.g. from :delete) now correctly
   + Precompilation on file systems with coarse timestamps no longer
   + An issue with reverse dependencies of installed modules was fixed
 + Additions:
   + The "is-approx" sub from Test now allows for relative/absolute
   + A fail in a custom BUILD will now be returned, rather than thrown
 + Efficiency:
   + .map between 10% and 30% faster
   + .unique, .repeated and .squish 10% to 20% faster
   + gather/take about 10% faster
   + Basic object creation (using either .new or .bless) now up to 3x
   + (+@a), (*@a) and (**@a) signature handling between 20% and 4x
   + All routines now have less overhead, thanks to improved
implementation of
     return handlers (including those that do not use return)
+ Deprecations:
   + The "is_approx" sub (note underscore) from Test
+ Potential issues:
   + There's been an unconfirmed report this release fails NativeCall
     tests when attempting to build an .rpm package. Basic evaluation
     packaged NativeCall still works fine and currently the cause of
     failures is unknown.

New in 2016.07:
 + Fixes:
   + Mu can now be the result of a Promise
   + samewith() now also works on none-multi's
   + Many fixes in the area of pre-compilation and installing modules
   + count-only and bool-only now are optional methods in Iterators
     (only to be implemented if they can work without generating
   + IO::ArgFiles.slurp / IO::ArgFiles.eof are fixed
   + REPL whitespace and error handling
   + CompUnit::Repository::Installation no longer considers `bin/xxx`
     `resources/bin/xxx` the same content address
   + min/max on Failures throw instead of returning ±Inf
   + NativeCall's is mangled trait no longer ignored for CPPStruct
 + Additions:
   + Support for new leap-second at 31-12-2016 added
   + The "is required" trait on Attributes can now take a Bool or a Str
   + IO::[Path,Handle] gained a .mode method which returns the POSIX
file permissions
   + Distribution is now a role interface that enables encapsulating IO
     used for distribution installation
   + CompUnit::Repository::Installation now uses the new Distribution
   + Custom repository implementations now supported, including
 + Efficiency:
   + The MMD cache accepts candidates with named parameters if it can.
     (This made adverbed slices about 18x as fast)
   + Str.samemark is 50x faster
   + Str.contains is 6x faster
   + Baggy.pick(N)/pick()/roll()/grab() are 6x faster
   + Array.List is 5x faster
   + List.elems is 4.5x faster
   + for/map with 2 arguments is 4x faster (e.g. for @a.kv -> $i, $v {
   + Str.substr-eq is 4x faster
   + List.Bool is 4x faster
   + Map eqv Map is 3x faster
   + Make "for List.pairs {}" 2.5x faster
   + Array.pop is 2.5x faster
   + List.AT-POS/EXISTS-POS are 2.5x faster
   + Creating arrays with [] is 2.5x faster
   + Array.AT-POS/ASSIGN-POS/BIND-POS at least 2x faster for unreified
   + Array.DELETE-POS is 7x faster
   + Str.starts-with is 2x faster
   + Array.shift is 2x faster
   + Blob/Buf.AT-POS is 2x faster (underlying method of e.g. "$buf[2]")
   + List.STORE is 2x faster (e.g. "my ($a,$b,$c) = (1,2,3)")
   + Make "for List.kv {}" 1.8x faster
   + Array.push/append is 40% faster
   + Str.comb 30% faster
   + Map/Hash initializations are now 30% faster
   + A slurpy taking a list is 30% faster ("sub a(*@a) { }; a(1,2,3,4)")
   + is 10% faster
   + {}|[]:adverb is 2.5x faster

New in 2016.07.1:
 + Fixes:
   + `make DESTDIR` now correctly finds CompUnit::Repository::Staging
   + .polymod with a lazy list no longer loses mods if the list runs out
   + Output from Test.pm6's diag() is no longer lost in non-verbose
prove output
     when called at the start of the test file or during TODO tests
   + Bitwise operators that return int/Int no longer fail with candidate
     when given a native int argument
 + Additions:
   + Improved error message when is given incorrect
   + Improved error message when .polymod is given a zero as divisor
 + Efficiency:
   + Str.samecase is now 5x faster
   + Str.indices is 10% faster
   + Str.rindex is 30% faster
   + Str.index is 30% faster

New in 2016.08:
 + Fixes:
    + Numerous improvements to content of error messages and addition
        of new previously-undetected warnings, such as on sinks and ...
    + Concatenation/substr with strings constructed with repeat operator
        no longer results in incorrect strings
    + Fixed error for unknown symbol in parametric type
    + Fixed compilation and behaviour of :D on subsets
    + Assigning Nil to a :D variable now fails (unless its default is
    + Fixed merge global symbols failures when changing repositories
    + Fixed -Ilib and friends not overriding installed dependencies
    + Fixed <[a..z]> ranges breaking grapheme awareness
    + Fixed a race condition in Channel.Supply
    + Fixed an occasional deadlock when using the supply/react syntax
    + Fixed a race condition involving tearing down listening async
    + @a.splice now returns array with correct descriptor
    + Range.rotor with Rat arguments no longer crashes
    + .hash on Bag, Mix, BagHash, and MixHash types no longer
stringifies keys
    + .abspath on filenames starting with '-' no longer results in empty
    + loop and repeat now properly self-sink
    + for { ... .map } now properly sinks
    + Bool.Int now properly returns an Int
    + Starting the REPL with a module loading error, will now just exit
    + Fixed loading of modules when a FileSystem repo doesn't actually
 + Additions:
    + Str.samemark('') now returns self instead of failing
    + now provides bail-out()
    + Added PERL6_TEST_DIE_ON_FAIL env var in Test.pm6 to bail out of
        test suite on first failure
    + Implemented $?MODULE and ::?MODULE
    + Implemented CompUnit::Repository::Installation::installed
    + .min/.max can now be called on Hashes
    + Invocant marker (:) can now be used in bare signatures
    + Added X::Syntax::NonListAssociative exception type
    + Buf.push|append|unshift|prepend also allow Blob:D
    + .succ now increments additional 29 digit ranges, such as Thai
    + Implemented :exists on multi-dim assoc subscript literals
 + Efficiency:
    + Improved dynamic variable lookup (2x as fast)
    + Hash.AT-KEY is about 35% faster
    + Hash.ASSIGN-KEY about 2x as fast
    + Hash.DELETE-KEY about 2x as fast
    + Hash[Any,Any].AT-KEY about 20% faster
    + Hash[Any,Any].ASSIGN-KEY about 15% faster
    + Hash[Any,Any].BIND-KEY about 15% faster
    + Hash[Any,Any].EXISTS-KEY about 10% faster
    + Hash[Any,Any].DELETE-KEY 10% faster
    + Repeated calls on Bag.WHICH now 5x as fast
    + Backtrace creation 25% faster
    + .first/.first(:end) iteration is now about 10% faster
        after testing 1000 elements
    + .minmax about 25% faster
    + .min/.max about 40% faster
    + min/max/minmax on native arrays is between 15x and 25x faster than
        non-native equivalent
    + Array.splice() almost infinitely faster and is much easier on
memory (no
        longer copies anything but instead transplants internals)
    + Array.splice(offset,size) is now 20x to 40x faster for
        small offsets and sizes
    + Array.splice(offset,size,@) is about 10x faster
    + 10% improvement to .map/for in special cases of one-argument block
        has a return signature that excludes Slips,
        such as -> Int $_ --> Str { .Str }
    + Many Set/SetHash methods are now at least 5% faster
    + Coercing a MixHash/BagHash to a Mix/Bag is now 300x faster
    + Coercing a Bag/BagHash to Mix coercion is now 1000x faster
    + Coercing a SetHash to a Set is now 80x faster

New in 2016.09:
 + Fixes:
    + Various improvements to the content of error messages
    + Defaults on a slurpy params now throw instead of crashing at the
VM level
    + Distribution::Path now handles native libraries correctly
    + Junctions now work in .classify
    + Control statements (e.g. `next`) in toplevel REPL now show useful
    + IO::Handle.encoding now returns correct values
    + .comb/.split on binary handles now throws X::NYI
    + Fixed filehandle leak in precompilation
    + Regex in .grep and .first on Pairs now works correctly
    + Pod parser returns proper Bool instead of Int on passed config
    + Fixed PERL6_TEST_DIE_ON_FAIL=1 exiting the test suite too soon
        or dieing on failing tests inside TODOed subtests
    + Fixed failure to accept enums as types for optional arguments
    + Fixed blocking bug when using socket accept and threads
    + Fixed fatal bug when using Non-ASCII tokens in regex/grammars
    + Fixed missing adverbs and candidates in Cool.split; made same as
    + Fixed missing adverbs in Cool.trans; made same as Str.trans
    + Fixed NativeCall CArray hanging when created from empty list
    + Fixed various issues with reading chars from an async socket
        exceptions on decode errors, and mis-handling of graphemes and
        sequences over packet boundaries)
    + Fixed "%%foo @@bar" interpolation trying to find %foo and @bar
    + Fixed mis-compilation and possible compiler crash when using a
      like /$<cap>=@(1,2)/
    + Fixed a memory leak involving EVAL
    + Fixed a multi-dispatch cache unbounded growth bug involving calls
        with many named arguments
    + Fixed warnings emitted when using hyper operators on two hashes
    + Channel.elems now returns a Failure rather than eating all values
    + Fixed type error ion
    + Fixed …, ???, and !!! yadas not working to stub classes
    + Fixed tab-completion issues with non-identifiers in REPL
 + Additions:
    + Coercions now work in return types
    + Added RAKUDO_EXCEPTIONS_HANDLER env var to control exceptions
    + IO::Handle.slurp-rest now has :close flag
    + CompUnit::Repository::Installation now cleans up short-name
        folders when empty
    + Added support for very large numbers in :42foo colon pairs
    + Added a .Map coercer for object hashes
    + All Unicode quotes can now be used as quoters inside qqww/qww
    + LEFT/RIGHT DOUBLE PARENTHESIS characters can now be used with q
and others
    + Unicode digits can now be used with Match variables ($١), quote
        pairs (:۳<12>), negative numbers (-١), and radix bases
 + Efficiency:
    + Numerous improvements in CUR, offering up to 10x faster module
    + Baggy.ACCEPTS(Baggy) is now about 25x faster
    + Baggy eqv Baggy is now at least 10x faster
    + Infix === now checks identicality, offering performance gains on
        objects, such as a Bag with 1000 elements
    + Many metaops are now about 10% faster
    + Made Junction.Bool|ACCEPTS about 2x faster
    + Improvement in performance of IO::Path::child
    + Made permutations() about 5x faster
    + Made List.permutations about 40x faster
    + Made combinations() about 1.8x faster
    + Made List.combinations about 7x faster
    + Made Unix's canonpath several times faster for simple paths
    + Made Buf|Blob.reverse 1.5x faster
    + Made .IO.lines about 10% faster on large files
 + Changed APIs:
    + The operator precedence configuration rule `O()` has been changed
to be
        more precompilation-friendly; rather than taking a string
        colonpairs, it now takes named arguments directly. This is not
        strictly a Perl 6 change, but rather a change in NQP, and thus
        applies if you're doing fairly involved hacking on the grammar.
If the
        sentences above made no sense to you, your code is not affected
        this change.

New in 2016.10:
 + Fixes:
    + Many fixes and additions improving JVM backend support
    + Several improvements to error messages
    + Fixed .tree([&first]) incorrectly calling .tree($count) candidate
    + Fixed unwanted errors when smartmatching objects against IO::Path
    + Fixed is-deeply with Seqs showing in failure
    + Fixed concurrency race when setting up NativeCall routines
    + Fixed Match.list treating inner unmatched captures as end of list
    + .first now correctly handles Junction matchers
    + Fixed GLOBAL symbol clash re-compiling due to a repo change
    + Fixed candidate being uncallable
    + Fixed multiple bugs in Hash/Baggy.classify-list/categorize-list
    + Fixed PERL6_TEST_DIE_ON_FAIL not exiting on failed subtests
    + Fixed autovification using Junctions as keys
    + Fixed infix:<^^>(Mu, Callable) candidate being uncallable
    + Fixed IO.l for dangling symlinks
    + Fixed infinite recursion in duckmap when mapper returned Any
    + Fixed .subst/.subst-mutate treating incorrect arguments as failed
    + Fixed .subst-mutate not returning all matches with :x
    + Fixed hang on smartmatching Promises against numerics
    + Fixed failure to smartmatch Numeric:U against Numeric:D
    + Fixed hang on incorrect .splice arguments
    + Fixed hang on incorrect .split offset
    + Fixed multi-argument WhateverCode not detected in double closures
    + Fixed Baggy:U ~~ Baggy:D emitting gut-referencing warnings
    + Fixed uncallable Dateish.IO
    + Fixed Exceptions::JSON for exceptions with no `message` method
    + Fixed Exceptions::JSON for exceptions with non-JSON-friendly
    + Proc::Async decoding exceptions are now catchable
    + Prevented return handler being optimized out in `sub { 42.return
    + Fixed error reporting when trying to invoke a native parameter
    + Fixed uncallable 0- and 1-arg candidates of infix:<xx>
    + Fixed Cool.match not setting $/
    + Fixed Cool:U.IO coercion emitting internal warnings
    + Fixed Nil.chrs failing when called
    + Num:U++ now returns a Num zero instead of an Int one
 + Removals:
   + Removed argument-taking Dateish candidates for is-leap-year,
       days-in-month, and day-of-week [were never part of the spec]
   + Cool.IO no longer accepts any arguments
   + Overflow check has been removed from infix:<**>(int, int)
 + Additions:
    + Added basic Unicode 9 support (NFG changes for latest TR#29 still
to do))
    + X::Proc::Unsuccessful now includes command that was run
    + now uses 'utf8' encoding by default
    + Bare `put` now requires parentheses to call as sub
    + .head/.tail with no arguments now return the item and not a 1-item
    + Added basic native attribute parameter binding
    + Made nativecast and spurt multies
    + Added .^elems metamodel method to enums
    + Enums can now be used to declare array shapes
    + Added X::Invalid::ComputedValue exception
    + Throw when dereferencing a null pointer in NativeCall
    + It's now possible to refer to sigiless parameters inside `where`
    + Added extra candidates to .splice to allow for all combinations of
        Int|Whatever|Callable for both $start and $elems arguments
    + Made enums able to typecheck against the roles they do
    + Made return 0+0i
    + can now handle any value that can .Int
    + Added shortname() method to CurriedRoleHOW
    + Proc::Async new, stdout, and stderr methods now take :enc
    + IO::Socket::Async listen, connect, and Supply methods now take
    + .Date and .DateTime are now supported on :U/:D Date/DateTime
    + Trailing empty cells can now be omitted in Pod tables
    + Mix/MixHash with non-Int weights can now be coerced to
 + Efficiency:
    + Made List.reverse about 5% faster
    + Made auto-threading about 10% faster
    + Made huge improvement to performance
    + Made dir() about 20% faster
    + Made Regex.Bool about 2x as fast
    + Made Str.match about 3% faster

New in 2016.11:
 + Fixes:
    + Various improvements to warning/error-reporting
    + Fixed assigning values to shaped arrays through iterators
    + Fixed Str.Int not failing on numerics with combining characters
    + [JVM] Fixed <a b c>.antipairs breakage [dd7b055]
    + defined routine now correctly authothreads with Junctions
    + Fixed poor randomness when .pick()ing on ranges with >32-bit
numbers [34e515d]
    + Fixed infix:<x> silencing Failures [2dd0ddb]
    + Fixed edge case in is-approx that triggers DivByZero exception
    + (Windows) Fixed returning of an error even when succeeding in
mkdir [208a4c2]
    + (Windows) Fixed precomp unable to rename a newly compiled file
    + ( Fixed indent of multi-line diag() and test failure
messages [43dbc96]
    + Fixed a callframe crash due to boxing of NULL filenames [200364a]
    + ∞ ≅ ∞ now gives True [4f3681b]
    + Fixed oversharing with grammars used by multiple threads [7a456ff]
    + Fixed incorrect calculations performed by acotan(num) [8e9fd0a]
    + Fixed incorrect calculations performed by asinh(num)/acosh(num)
    + Fixed acosh return values for large negative numbers [5fe8cf7]
    + asinh(-∞) now returns -∞ instead of NaN [74d0e36]
    + atanh(1) now returns ∞ instead of throwing [906719c][66726e8]
    + Fixed missing close in IO::Path.slurp(:bin) [697a0ae]
    + :U QuantHashes now auto-vivify to their correct type and not Hash
    + Mix/MixHash.Bag/BagHash coersion now ignores negative weights
    + arity-0 infix:<Z> now returns a Seq instead of a List [3fdae43]
    + Fix augment of a nested package [87880ca]
    + Smartmatch with Regex variable now returns a Match instead of Bool
    + Empty ()[0] now returns Nil instead of False [f50e39b]
    + Failed IO::Socket::Async connection no longer produces unexpected
crash [f50e39b]
    + Quitting Supplies with no QUIT phasers no longer unexpectedly
crash [f50e39b]
    + Fixed NativeCall issues on big endian machines [627a77e]
    + Fixed broken handling of $/ in some uses of `.match` [ba152bd]
    + Fixed Lock.protect not releasing the lock on control exceptions
    + MoarVM now builds on any version of macOS [b4dfed2]
    + Fixed concurrency crashes due to garbage collection [6dc5074]
    + Fixed race condition in EmptyIterator [ed2631c]
    + Fixed hang with multi-threaded long-running NativeCall calls
    + Made my @a[10] = ^Inf work [aedb8e7]
    + Fixed [;]:delete [3b9c4c9]
    + Fixed incorrect handling of negative weights in ∪ operator
    + duckmap now preserves types of Iterables [43cb55f]
    + Fixed premature overflow to Inf with large Num literals [729d7e3]
    + Fixed race condition in NativeCall callsite used by multiple
threads [49fd825]
    + Fixed instabilities in programs launching many threads at startup
    + Fixed crash when reporting X::Composition::NotComposable or
        X::Inheritance::Unsupported exceptions [a822bcf]
    + Fixed clock_gettime issue on macOS [ee8ae92]
    + Fixed SEGV in multi-threaded programs with strings-as-strands
    + `regex` TOP Grammar rule will now backtrack if needed [4ccb2f3]
    + Fixed .rotate/.reverse on 1-dimmed arrays assigning to self
    + Fixed exponentiation involving zeros for Complex numbers [7f32243]
    + Fixed Label.gist [29db214][53d7b72]
    + Fixed certain edge cases of incorrect stringification of Rationals
        with .Str, .perl, and .base [b5aa3c5]
 + Additions:
    + Added TWEAK submethod for object construction [fdc90a2][9409d68]
    + Added DateTime.hh-mm-ss [bf51eca]
    + Added parse-base routine [7e21a24]
    + is-approx with no explicit tolerances now uses more complex
algorithm to
        choose a tolerance to use (same as old is_approx) [82432a4]
    + on failure, is-approx now displays actual values received
    + Added Iterator.skip-one to skip a single value [71a01e9]
    + Added Iterator.skip-at-least to skip several values [8d357af]
    + Re-imagined Str.match [b7201a8]:
        + the family of :nth is now lazy will return whatever can find
        + non-monotonically increasing :nth iterator values will now die
    + Str.match/subst/subst-mutate now have :as adverb
    + &infix:<eqv> now works with Setty objects [d92e1ad]
    + :ov and :ex adverbs are now illegal in Str.subst [b90c741]
    + Made nextwith/samewith/nextsame/callwith to be real subroutines
    + Added CX::Emit and CX::Done control exceptions [07eeea8]
    + Setty.Mix/.MixHash coercers now use Int weights instead of Bool
    + Implemented :kv,:p,:k,:v on 1-element multidim [;] [764cfcd]
    + .chrs can now also accepts codepoint numbers as Str [4ae3f23]
    + Added support for compilation of Rakudo on Solaris [a43b0c1]
    + IterationEnd.perl/gist/Str now returns text "IterationEnd"
    + Added X::Syntax::Number::InvalidCharacter exception [2faa55b]
    + .reverse/rotate on 1-dimmed arrays are now nodal [cd765e6]
    + .line and .file on core Code now references original source files
    + .rethrow now works on unthrown exceptions [58a4826]
    + All Reals now accept `Whatever` as the second argument to .base()
    + sub MAIN usage message shows possible Enum values if param is
        named and is an Enum [a3be654]
 + Efficiency:
    + Made slip(@a) about 1.2x faster [37d0e46]
    + Made initialization of 2+dimmed array 10x to 16x faster [dfb58d4]
    + Str.match is now about 5% faster [4fc17df]
    + Str.match with :nth feature is now about 2x faster [41e2572]
    + my @a = Str.match(...) is now about 5% faster [e472420]
    + Str.comb(Regex) is now about 7x faster [1794328]
    + Simple Str.subst/subst-mutate is now about 30% faster [364e67b]
    + Match.Str|prematch|postmatch is now about 2x faster [e65d931]
    + Match.Bool is now about 1% faster (not much, but used a lot)
    + Made ~~ /foo/ faster: 2% for successful/6% for failed matches
    + Made <foo bar baz> ~~ /foo/ about 2x faster [e4dc8b6]
    + Made %h ~~ /foo/ about 2x faster [33eeb32]
    + Frequent accesses of multiple adverbs (e.g. %h<a>:p:exists)
        is now 2x faster [f22f894]
    + Made infix:<eqv> faster: Str: 14x, type: 10x, Range: 3.5x,
        Int|Seq|Hash: 1.5x, Array: 1.2x [bc7fcc6]
    + IO::Spec::Unix.canonpath is now 7x to 50x faster [f3f00fb]
    + Baggy.roll/pick is now about 10% faster [fc47bbf]
    + Made copying shaped arrays 10x to 20x faster
    + Made setting up a shaped array 2x as fast [f06e4c3]
    + Made creation of typed shaped arrays 15% faster [f5bf6c1]
    + Made 2d/3d array accesses about 7x as fast [d3a0907]
    + Made AT-POS on 1,2,3dim arrays about 20x faster [feb7bcb]
    + Made creating a shaped array about 50% faster [1293188][576f3a1]
    + Made .AT-POS on 3+ dimmed arrays 20% faster [1bb5aad]
    + Made over-indexed .AT-POS on 1,2,3 dimmed arrays about 10% faster
    + Made multi-dimmed ASSIGN-POS about 30% faster [5b2bdeb]
    + Made .ASSIGN-POS for 1,2,3dimmed arrays about 40x faster [050cf72]
    + Made n-dimmed .EXISTS-POS about 1.5x faster [006f008]
    + Made .EXISTS-POS for 1,2,3dimmed arrays about 10x faster [b1c41b7]
    + Made n-dimmed DELETE-POS about 1.3x faster [6ccecb1]
    + Made .DELETE-POS for 1,2,3dimmed arrays about 20x faster [55b9e90]
    + Made n-dimmed BIND-POS about 1.3x faster [2827edb]
    + Made .BIND-POS for 1,2,3dimmed arrays about 20x faster [9f94525]
    + Made @a[10].STORE at least as fast as @a.STORE [8064ff1]
    + Made .kv on shaped Arrays about 4x faster [e42b68e]
    + Made .pairs/.antipairs on shaped Arrays about 2.8x faster
    + Made List.kv about 30% faster [7a2baf4]
    + for loops on 1-dimmed arrays are now 3x faster [ed36e60]
    + .kv on 1-dimmed arrays is now 7x faster [608de26]
    + .pairs/.antipairs on 1-dimmed arrays is now 3x faster
    + postcircumfix[;] on 2/3 dimmed arrays is now 9x faster [0b97362]
    + Assignment to [;] for 2/3 dimmed arrays is now 10x faster
    + [;]:exists for 2/3 dimmed arrays is now 7x faster [e3e3fef]
    + [;]:delete for 2/3 dimmed arrays is now 10x faster [3b9c4c9]
    + [;] := foo for 2/3 dimmed arrays is now 10x faster [eaf4132]
    + .iterator and .values on shaped arrays are now about 4x faster
    + Fixed optimization of shaped arrays that gives 10% gain on simple
        loops and likely will give larger gains on bigger programs
    + Made starting MappyIterator faster, affecting all Hash/Map/Baggy
        methods. 2-elem Hash iteration is 1.6x faster [97fb6c2]
    + Made starting a grepper faster: .grep on with no adverbs on
2-element list
        is now 20% faster [077c8f0]
    + Made Date/DateTime creation 20% faster [0e7f480]
    + Hashes now use 4 (32-bit) or 8 (64-bit) bytes less memory per
stored item  [395f369]
    + Rational.Str is now about 40% faster [b5aa3c5]
    + Rational.base is now about 30% faster [b5aa3c5]
    + Various streamlining of code that's hard to measure the final
impact of

New in 2016.12:
 + Fixes
    + Fixed inability to autocurry superscript exponents properly
    + Fixed Match.prematch and Match.postmatch for zero-width matches
    + Fixed Match objects being erroneously treated as value types
    + Made U+2212 minus work in places it didn't
    + prefix:<~> now calls .Str on Str types (helps with allomorphs)
    + Fixed errors in `$*ARGFILES.lines` limit counter [bd42363]
    + Fixed bug with add history for Readline module in REPL [f544e4c]
    + sum and [+] metaop now correctly work on Junctions [8d04bec]
    + Fixed various scoping bugs with NEXT/LAST/QUIT [6bb8823]
    + Fixed issues in QUIT handlers running asynchronously [c027e6a]
    + Fixed occassional hangs in Proc::Async [e4d78c6]
    + Fixed operations still running after supply deactivation [f928a20]
    + Fixed Iterator.flat occasionally skipping inner iterables
    + Fixed slurp not propagating :bin and :enc args on `$*ARGFILES`
    + Fixed negative zero handling in many places
    + Synthetics in numbers in colonpairs in :42foo format now throw
    + Fixed hang in .subst with no arguments [0a874fb]
    + Fixed sleep() with huge values failing to sleep
    + Fixed attributive binding not looking outward for `self` [843a6be]
    + Fixed sprintf($format) without args issuing spurious warnings
    + Fixed infix:<===> failing when both sides are allomorphs [4a59ab4]
    + Fixed data race in Supply.interval [47ffdea]
    + Fixed data races in supply/whenever [33f7456]
    + Fixed memory corruption in Proc::Async [74eb6b9]
    + Fixed handling of time resolutions below 1ms in Supply.interval
    + Fixed issues with `-Inf` being a single term [ae614f9]
    + Fixed Signature.gist stripping sigils from anon typeless scalars
    + Made permutations/combinations/grep die instead
        of fail()ing [ab3a59c][bc13bb5]
    + Fixed spurious warnings on .trans with regex pair complements
    + Fixed premature frees in async sockets when errors occur [b2ac4e4]
    + Fixed handling of superscript powers larger than int [0428b79]
    + Fixed Proc::Async sending empty string to taps on program exit
    + Fixed wrong results for .first on Numerics [8cb3e1b]
    + Fixed matcher-less .first not respecting its adverbs [ababb24]
    + Fixed `sink` statement prefix failing to explode Failures
    + Fixed regression in S:g/// not returning original string [5476d60]
    + Reverted .match/.comb to return empty List instead of Empty when
        to match [5476d60]
    + Fixed Mu.clone incorrectly marking all attributes as initialized
    + Fixed cloned Baggy having an undefined .WHICH [9a161fa]
    + Fixed smartmatching against UInt type object [f9d34a9]
    + Fixed some Date constructors accepting invalid dates [aa27d5c]
    + Fixed .rotor on empty list returning an internal iterator object
    + Fixed unimatch to check canonical short/alternate unicode props
    + Fixed uniprop to return correct values for na, uc, tc, lc
    + Fixed uniprop for 'Numeric_Value' not returning a numeric value
    + Fixed crash with Rat Ranges constructed with Range ops [1d46004]
    + Fixed crash with tapping supplies supplied by thunked block
    + Fixed .perl on parametarized Hashes with no items in them
    + Fixed .perl for itemized Slips [8eef234]
    + Fixed chained `andthen`/`orelse` operators returning internals
    + Fixed ThreadPoolScheduler.cue not applying delays to all cues
    + Fixed control exception propagation when thrown from within
        handled by `without`, `with`, `andthen`, or `noandthen`
    + Fixed Rand.rand generating value equal to excluded end point
    + Fixed `last` not working inside .grep's block [7021861][f775474]
    + Fixed .head not always returning a .Seq [69d808f]
    + Various fixes and improvements in error reporting
 + Additions:
    + Bare \b, \B, and \K in regexes now throw [08589d3][ee14067]
    + Added SQL as an output option for --profile-filename [f20b8b6]
    + Implemented native str Arrays [014d4cf][6d726f8]
    + sub MAIN now allows Enums as type constraints [546dbd9]
    + Count in .pick/pickpairs/grab/grabpairs can now be a Callable
    + REPL with Readline module now loads `inputrc` files [573ed59]
    + REPL with Readline module now saves history [9043f58]
    + perl6 --doc=Text now shows signature parameter pod [6ea6563]
    + Generated sub MAIN usage message now shows original program name
    + Added arity-1 infix:<~> for Blobs [77e9d4b]
    + Added IO::Handle.printf [8774f24][3c4ac3c]
    + Added ability to negate all numeric literals in signatures
    + Added .reverse/.rotate/.sum to shaped 1-dimmed arrays
    + Added Mu.emit [4e76827]
    + Added --with-nqp Configure option for having NQP in
        a different prefix [6f6e6db]
    + Added .gist, .perl, and .Str to BOOTSTRAPATTR [3dd2916]
    + Made .sum nodal [4fd6e94]
    + Implemented uniprops [f55ff82][0328422][05db996]
    + Added 5 new sets of matching brackets for available delimiters
 + Removals:
    + Removed X::Syntax::Number::InvalidCharacter exception [a8ff3b9]
 + Efficiency:
    + Made indirect type lookup 3x as fast [939d273]
    + Made shaped(int|num|str)array.AT-POS at least 15% faster [bfe89a5]
    + Made shaped(int|num|str)array.ASSIGN-POS at least 10% faster
    + Made shaped(int|num|str)array.EXISTS-POS at least 20% faster
    + Made 1-dimmed native arrays at least 3x faster [4a711bc]
    + Made native shaped array creation about 1.5x faster [1b840f1]
    + Made native 1-dimmed array init at least 11x faster [b6de5e8]
    + Made native 1-dimmed array copying at least 25x faster [b6de5e8]
    + Made use of native 2-dimmed arrays 2.5x–4x faster [172898e]
    + Made use of native 3-dimmed arrays 2.5x–4x faster [64343d7]
    + Made copying 1+ dimmed native arrays up to 9x faster
    + Made copying intX[2;2] to intY[2;2] native array just as fast as
        copying intX[2;2] to intX[2;2] [79090b2]
    + Made native shaped array initialization 4x–6x faster [d704820]
    + Made iteration of 1-dimmed native arrays 17x faster [947422b]
    + Made iteration of >1 dimmed native arrays 11x faster [3e93ddd]
    + Made .(anti)pairs for native shaped arrays 7x faster
    + Made .kv for native shaped arrays 16x faster [965fa4d][c1a3a3c]
    + Made native array.reverse|rotate about 20x faster [0ee6bc0]
    + Made @a[2;2] about 40% faster [b9e2ffa]
    + Optimized Int->int coercion [b2ac4e4]
    + Made infix:<..> on Nums 13x faster [a8ba26b]
    + Made uniprop with the default lookup 5x faster and other lookups
15% faster. [474ea33]
    + Made print, say and note 25% faster to stderr and stdout [e9ce28a]

New in 2017.01:
 + Fixes:
    + Fixed importing globals nested in imported packages [85d8b14]
    + Fixed "Object of type A in QAST::Var value, but not in SC"
    + Fixed use Foo::Bar; class Foo {my Foo::Bar $bar} not finding
Foo::Bar [5c4db5e]
    + Fixed class Foo { use Foo::Bar; my Foo $foo; } not finding Foo
    + Fixed our scoped nested package swallowed by lexically scoped
parent [85b9d8a]
    + Fixed imported nested enum colliding with symbols from outer scope
    + Multiple methods that return listy things now throw instead of
failing to
        avoid accidental Failure silencing through 1-elem lists
    + Made List.roll always return a Seq [bd4e1f4]
    + Fixed SEGVs and GC panics in certain deep recursions [58c79e2]
    + Fixed detection of runtime errors in threads [b8df3a6]
    + Made sure .sort on shaped arrays uses the leaves [a4bc51a]
    + Made U+2212 infix:<−> and prefix:<−> same as regular `-` for all
types [91af128]
    + Made sub MAIN usage ignore anon *% param [38ec79c]
    + Fixed lack of warning on unitilized values in infix:<x> [c498d5b]
    + Fixed Distribution::Path bin/resources file format [393afcf]
    + Fixed spurious warnings in List.reduce [1ee24cc]
    + Sorting uninitialized List now returns a new list [005166e]
    + Made .sort always return a .Seq [434bf75]
    + Fixed combinations() incorrectly returning 1-item list in some
cases [d86c419]
    + Made combinations() always return a Seq on succcess [db1836a]
    + Fixed useless "useless use" warnings in hypered ++ and --
    + Fixed numerous bugs with $limit in lines() [19df358]
    + Fixed regression with mutability of .pairs on shaped arrays
    + Fixed regression with infinite lists assignment to shaped arrays
    + Fixed regression with looping over uninitialized shaped array
    + Fixed regression with regex match against NFC [8d35951]
    + Fixed infix:<cmp> with 0-denominator rationals [a567eb4]
    + Fixed crashes in X::OutOfRange reporting with 0-denominator
rationals [b2332c2]
    + Fixed &infix:<==> on 0-denominator rationals [73182d4]
    + Fixed &infix:<===> on 0-denominator rationals [cb2476f]
    + Fixed incorrect .isNaN result for 0/0 rationals [7434a8f]
    + Fixed not parsing IPv6 URLs
        correctly [cb9ec03][df20d8b][fbd061b][8751f05]
    + Made fail when invalid port or family is
given [cb9ec03]
    + Fixed Range.AT-POS on int ranges failing for too-high indexes
    + Fixed (^) set operator on Baggies to take weights into account
    + Fixed incorrect dispatch in some cases of multi subs with where
clauses [0c0dd82]
    + Fixed unwanted role punning due to attached Pod [d487657]
    + Made Routine.prec(key) return '' rather than Nil on fail [d7d76b7]
    + Moved .prec from Routine to Code [a7ccfc6]
    + Fixed an occasional heap profiler crash, and prevent heap profiler
        from greatly reducing the number of full GC collections
    + Fixed specializer log slots keeping alive, and so leaking,
        objects once specialized code has been produced [e182deb]
    + Fixed build under some versions of MSVC [e182deb]
    + Fixed code-gen bug in dispatch:<hyper> [3d86286][ba8a284]
    + Fixed `1,*,3 Z~ <a b c>` case using Whatever value for the rest of
list [471f4ba]
    + Fixed threading issues in ||=, //=, and &&= [d1c2e76]
    + Fixed GC in spesh triggered by managed mutex use [25615c7]
    + Fixed bugs in interaction between inlining, GC, and threads
    + Fixed endpoint-exclusion on string ranges with non-alphanumeric
chars [daf7e51]
    + Fixed fatality of Nil.chomp/chop (back to just a warning)
    + Fixed infix:<eqv> on NaN and signed zeros [3f80e13]
    + Fixed crash in infix:<cmp> when comparing Real and RatStr
    + [TEST] tests no longer backslash every backslash in
descriptions [b183cab]
    + [TEST] Fixed TAP::Harness parsing of single backslashes in test
descriptions [b120ac4]
    + [TEST] Fixed TAP::Harness failing to parse full-file skip
directive [aee7af3]
    + [UNI] Fixed `ISO_Comment` property in uniprop [4ff2fb2]
    + [UNI] Fixed uniname() on "\x[80]", "\0" and other controls
    + [UNI] Made unival() use full Unicode names for Numeric_Value_*
    + [UNI] Fixed several aliases for Unicode characters
    + [UNI] Fixed number of characters reported for hundreds of Unicode
Emoji [823f0f7]
    + [UNI] Fixed compilation of /:ignoremark \"/ to actually ignore
marks [6188771]
    + [UNI] Fixed mismatched closers on U+298D/U+2990/U+298E/U+298F
brackets [76283f6]
    + [UNI] Fixed return value of uniprop Bidi_Mirroring_Glyph if no BMG
    + [UNI] Fixed breaking after Prepend characters [7c8b705]
    + [JVM] Fixed build issues [7bba13a][adcfb8b][e6ccb47][29f487e]
    + Assorted improvements in error reporting
 + Additions:
    + Made importing globals from loaded modules lexical [4b529c8]
    + Added degenerate Any.match [3fe5893][cc0f836]
    + Added infix +/- for DateTime/Duration [6b850ba]
    + parse-base() now allows for omitted whole part [3282813]
    + Using a Bool:D literal as type constraint in signatures now warns
    + Made Bool.ACCEPTS work with Junctions [9fc616f]
    + Made Proc::Async sub-class friendly [a2cc58a][1dc0c01]
    + Implemented .clone for SetHash, BagHash, and MixHash [1ee9c82]
    + Implemented .List on shaped arrays [8568dd1]
    + Added own .perl method to Empty [ec0258a]
    + Made Inf and Whatever work as part of rotor()'s cycle [7ddc5f7]
    + Made it possible to use Inf and Whatever in .head and .tail
    + Implemented `next` in `whenever` blocks [f97d5c2]
    + [TEST] Test::is() now handles Mu types [268dc92]
    + [UNI] uniprop now handles Emoji properties [3baffe7]
    + [UNI] Implemented Bidi_Mirroring_Glyph as an integer property
    + [UNI] Implemented Emoji grapheme breaking and other combined codes
    + [UNI] Added Emoji Unicode properties [7c8b705]
    + [UNI] Added secondary and tertiary Unicode collation support
    + [UNI] Re-implemented UTF8-C8 streaming decode
    + [UNI] Made all Nd chars accepted in ${} special variables
    + [UNI] Made all Nd chars accepted as regex quantifiers [e40a129]
 + Removals:
    + [UNI] Unicode 1 character names are now deprecated and issue a
warning [e7c1d51]
    + Removed IO::Path:U.chdir candidate on account of it being a
footgun [94df18c]
 + Efficiency:
    + [UNI] Made unival() slightly faster for repeated lookups [dbbf9dd]
    + [UNI] Made decoding UTF-8 text 14% faster [528ec53]
    + Made improvements to memory management of various aspects of
invocation records
        (aka call frames), greatly reducing memory pressure in a number
of cases,
        especially in applications that produce and store a large number
of closures.
        Up to 20% improvement to CORE.setting build time and ~10% peak
memory use
        reduction observed [e182deb]
    + Made I/O memory buffers properly contribute to full collection
        reducing memory overhead required [e182deb]
    + Made @a[*-1] 13% faster [b39c0d8][ab26b58]
    + Removed unnecessary caching on .elems in core code [ab26b58]
    + perl6 -ne '' <large file> is now about 40% faster [541d127]
    + Made IO::ArgFiles.lines about 10% faster [73797b7]
    + Made List.sort() about 4x faster [8d33b89]
    + Made native @a.sort() about 12x faster [4b2cea0]
    + Made Str.split(<a b c>) about 3x faster [f0398fb] and then 10%-40%
        on top of that, based on length of string [2496963]
    + Made Any.sort(&by) about 40% faster [1374fcf][def5262]
    + Made List.sort(&by) about 5% faster on reified List/Array
    + Made .sort on 0- and 1-element lists 10%-40% faster [340bc90]
    + Made .sort on 2-element lists about 50% faster [4724bd6]
    + Made Supply.sort a multi for faster dispatch [54cc06b]
    + Made Cursor.MATCH about 10-15% faster [9eef565]
    + Made QuantHash.AT-POS and about 5%-8% faster [c13e67b]
    + Made is nodal check a bit faster [0f25d83][996ab6a]
    + Made Capture.Bool about 3x faster [516e527]
    + Made sorting of 0,1,2 element native arrays about 30% faster
    + Made generating iterator after List.eager does not reify again
    + Added Seq.join that's 25% faster than List.join [3c52aa0]
    + Make @a Z @a 5x faster [4ab020f][3d1d699]
    + Made slow-path in grep 10% faster [362f674]
    + Made fast-path in grep about 1.4x slower as a result of a bug fix
    + Made internal improvements with Empty and SlippyIterator [ebe9147]
    + Streamlined .prec on operators [caba0d3]
    + Made zip(@a,@b,:with(&[+|~]) about 12x faster [62f7027]
    + Made zip(@a,@b,:with(&op)) about 7x faster [62f7027]
    + Made zip with generic listinfix ops (e.g.
        about 2x as fast [5c685f2]
    + Made zip(@a,@a,:with(&[=>])) about 5x faster [46cdf16]
    + Made generic right-assoc zip ops in zip(@a,@a,:with(...)) form
        at least 2x faster [6703b4c]
    + Made Zop handling (except for non-LHS-thunky ops) 13x faster
    + Made List.from-iterator about 10% faster [8f3476d]
    + Streamlined Array.from-iterator, making it 30% faster in some
cases [fab1a14]
    + Improved ||=, //=, and &&= by avoiding thunking and invocation
    + Made List.combinations(N) about 20% faster [1a54bba] and on top of
        made List.combinations() 1.5x, List.combinations(3..5) 2x faster
    + Made permutations() 2x to 24x faster [78edbbb][b5293c2][c64aeb3]
    + Made roundrobin() about 4x faster [73d0cec]
    + Made X and cross(...,:with) about 5x faster [8a3ff7b]
    + Made Xop about 7x faster [a26f513]
    + Made 1 X foo about 20% faster [d4a5b69]
    + Made List.rotor between 15x and 20x faster [d7b8214]
    + Made Range.excludes-(min|max|infinite|is-int) 2.5x as fast
    + Made reified List.Array about 3x faster [c9a9bc8]
    + Made List/Array.sum about 30% faster [017c6cf]
    + Made List/Array.fmt with no args about 60x faster [22e589a]
    + Made List/Array.fmt("%s") about 60x faster [7ef3682]
    + Made List/Array.join about 20% faster [ed482ec]

To see a diff of this commit:;a=commitdiff;h=7b03d32f71f77bb7d2cd730601752ba5a1dd8b72

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

 rakudo/Makefile |  2 +-
 rakudo/PLIST    | 41 ++++++++++++++++++++++++++++++++---------
 rakudo/distinfo |  8 ++++----
 3 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/rakudo/Makefile b/rakudo/Makefile
index 8c0d55fbc4..efb8e344ac 100644
--- a/rakudo/Makefile
+++ b/rakudo/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.9 2015/10/10 01:57:53 ryoon Exp $
-DISTNAME=	rakudo-2016.02
+DISTNAME=	rakudo-2017.01
 CATEGORIES=	lang perl6
diff --git a/rakudo/PLIST b/rakudo/PLIST
index ed305ffa83..d56b7976fa 100644
--- a/rakudo/PLIST
+++ b/rakudo/PLIST
@@ -7,6 +7,7 @@ bin/perl6-valgrind-m
@@ -22,20 +23,42 @@ share/perl6/runtime/RESTRICTED.setting.moarvm
+@pkgdir share/perl6/vendor/sources
+@pkgdir share/perl6/vendor/short
+@pkgdir share/perl6/vendor/resources
+@pkgdir share/perl6/vendor/precomp
+@pkgdir share/perl6/vendor/dist
+@pkgdir share/perl6/vendor/bin
+@pkgdir share/perl6/site/sources
+@pkgdir share/perl6/site/short
+@pkgdir share/perl6/site/resources
+@pkgdir share/perl6/site/precomp
+@pkgdir share/perl6/site/dist
+@pkgdir share/perl6/site/bin
+@pkgdir share/perl6/resources
+@pkgdir share/perl6/lib
+@pkgdir share/perl6/bin
diff --git a/rakudo/distinfo b/rakudo/distinfo
index b2afba4d41..8015b06da9 100644
--- a/rakudo/distinfo
+++ b/rakudo/distinfo
@@ -1,6 +1,6 @@
 $NetBSD: distinfo,v 1.1 2013/09/13 22:04:07 schmonz Exp $
-SHA1 (rakudo-2016.02.tar.gz) = 699df478f804eab1bd150b4275da37915b5c4468
-RMD160 (rakudo-2016.02.tar.gz) = 97f2200b1c08c46f9f3a4ede0e9598701d35079e
-SHA512 (rakudo-2016.02.tar.gz) = 9fa891a84e882626050772231dee15ad20f1c2d84b5b9ff985964efbff45f18e0a1940dad2cc1fbb8b91f69d9f7f2a3034998819e8ddbf0c380684b326d299ca
-Size (rakudo-2016.02.tar.gz) = 2691766 bytes
+SHA1 (rakudo-2017.01.tar.gz) = a408616fdf2d2d36233079da83f9641d3ef74404
+RMD160 (rakudo-2017.01.tar.gz) = 7cd9b5dc7b284d5f9378d84307ec6114b9a03e2a
+SHA512 (rakudo-2017.01.tar.gz) = 4de0ce2534cde19676b7f1d88dd80d1c4ad65ba16c86eba97dac09d703fa0aade6d163ec5cbfc2226b6b6bf096121100c2f3fea4202b6e071b5e96077ecaa6bf
+Size (rakudo-2017.01.tar.gz) = 2868425 bytes

Home | Main Index | Thread Index | Old Index