/
ChangeLog
4054 lines (3938 loc) Β· 213 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
New in 2017.10:
+ SPECIAL NOTES:
+ This release includes fixes to || alternation in :ratchet
mode. Code that was unintentionally relying on buggy behavior
(backtracking in :ratchet mode) may now produce unwanted
results (namely will fail to match) [963a0f06]
+ Security:
+ Restricted dynamic lookup metasyntax in rx EVAL [1d63dfd2][2448195d]
+ Deprecations:
+ Deprecated .new on native types [9d9c7f9c][cc6c0558]
+ Deprecated :buffer `open` arg in favor of :out-buffer [f9c10c21]
+ Fixes:
+ Fixed Hash.perl to include Scalar indicators [47d6c66e]
+ Fixed :delete with lazy Arrays [0385b2aa]
+ Fixed sanitization of on-demand Supplies [93a66d75]
+ Fixed duplicate done/quit messages [9e179355]
+ Fixed non-blocking `react { await blah() }` [29863a0b]
+ Fixed issues with Int.new [dff7d9b2][0d2ca0d7][0834036d]
+ Fixed isa method on a subset [cee1be22]
+ Fixed Supply.zip to eager-shift its values [f9400d9a]
+ Fixed two utf8-c8 bugs [963a0f06]
+ Fixed infinite loop in .^roles of a class that does Rational [0961abe8]
+ Changed uniname to give better strings for non-unique names [9dba498f]
+ Fixed .push-all/.skip-all on SlippyIterators [41896b7b]
+ Fixed and improved `**` regex quantifier [681d6be9][4ca1fc3c]
+ Made cmp-ok to try harder to give useful description [8479a1ba]
+ Made List.ACCEPTS non-fatal for lazy iterables [1b9638e2]
+ Fixed some unspace parsing cases [11070e0f]
+ Fixed &chdir failing to respect :CWD attribute [4906a1de]
+ Fixed Blob.gist to trim its guts to 100 elements [ac8e5f43]
+ Improved .perl and .gist methods on Maps and Hashes [aad8991e]
[39461368][381c4c3b]
+ Fixed explosion in IO::CatHandle.nl-out [83008443]
+ Fixed .pick and .roll on object hashes [12fcece4]
+ Made cmp-ok take its arguments raw [3684384d]
+ Fixed `is default(Mu)` on attributes [54507ac9]
+ Made Array.List fill holes with Nil [e1351219]
+ Fixed BagHash.grab with large values [975fcf6c]
+ Fixed .tail with large values [43e7b893]
+ Improved .gist of nodal methods [b6982e68][bb1df2cb]
+ Fixed IO::Pipe.close not always returning the Proc [74328278]
+ Fixed handling of type objects in set operators [8a88d149]
+ Fixed location of errors coming from Channel [82a38c29]
+ Fixed lockup when scheduling with degenerate delays [df01ad97][031f8cf7]
+ Fixed segfault in getlexdyn [4f5fc520][4c370072]
+ Fixed poor error with some slurpies with defaults [a92950fb]
+ Fixed Int.new to properly give a new object [e4a5bb17]
+ Fixed .STORE leaving behind elements on native arrays [a85c8d48]
+ Various async improvements [633a15b8][ef4d16fe][f53d3963]
[26a9c313][9d903408][0d600a0c][54783920][e0e5e6fa][b16aba01]
[d8890a82][73aeee6c][2a826238][3deda842][f58ac999][40c2d0cd]
[c46de00f][e5c17462][6e42b37e][80f883bc][6af44f8d][e70969e3]
[30462d76][97b11edd]
+ Various fixes and improvements to hyper/race [cc2a0643][2352efe5]
[d43b3738][dfa230f7][1fdc84fe][cef4806f][ea51d19b][374ee3e2]
[ad0dd8e7][41729e93][d74ba041][83676112][2580a0a6][cf1673d9]
[7e9b9633][870eaa31][d37a19ea][da977785][270e7c8a][ee3f0f4f]
[a042fd92]
+ Various improvements to warnings and error reporting [38186fcd]
[cf95ce81][66c2d05f][a845ac3d][48a84d6a][bb45791c][279bae08]
[6542bb80][5747bc71][c7a82d45][fb7abf06][ac97a401][64b001a1]
[1ea3297b][56eef696][25c87d0d][5d3ebc09][de2b9ff7][084078e1]
[3acde358][b3bb8c40][e611978f][12774237][33e113a2][9554a97c]
+ Additions:
+ Improved .Capture semantics on all core types [4ba12ff1]
[bad9fefd][cd5864cf]
+ Added trim* subroutines taking Cool instance [5a19dffa]
[691f8b7b][e01e5bc3]
+ Added Lock::Async [53dd776c][4a8038c2][85bdd38a][38896402][6170cb9d]
+ Added atomic reference op support on JVM backend [32e4a1de][59c4117f]
+ Added $*USAGE [0b15f672]
+ Added :bin parameter to IO::Handle.slurp [e2ec569b]
+ Added support for Bufs in &EVAL/&EVALFILE [6c928d61]
+ Added warning on typical precedence errors with infix:<..> [26bdc95c]
+ Added --repl-mode command line option [9ce896d8][20518454]
[5c7bbea0][93e599db][de0533c4]
+ Implemented typed pointer increment and array dereference
[3ca6554f][bc5fbfcb][2fba0ba0]
+ Added X::Numeric::CannotConvert exception type [2e726528]
[b377de1c][f04bd1d6]
+ Added IO::Handle.out-buffer for controlling the buffer size
[f9c10c21][765dd694]
+ Added IO::Path.parent(Int) for getting up more than one level
[7bea3a2d][78d8d509]
+ Removals:
+ Removed $*MAIN-ALLOW-NAMED-ANYWHERE [9cb4b167]
+ Removed support for ornate parenthesis from quoting constructs [9ce896d8]
+ Renamed $*INITTIME to $*INIT-INSTANT according to the spec
[6bdb2dd3][bd6c6403]
+ Build system:
+ Reworked REPL tests [be4d57de][338a0972][7c8a2739][f8edb829][1ce3a36d]
+ Various changes related to v6.d prep [7d830d5c][6cb810d2][36bc8e2d]
[31cbdada][16f64182][50d2013d][f62950dc][dd8a6102]
[36122f15][2a512f0c][03b1febc][edce8f53][c6ff787a]
+ Efficiency:
+ Made startup time up to 5 ms faster [48406db6][a09f5f21][bb5583ae]
+ Made chained ops up to 36x faster [a92d0369]
+ Made β₯, β€, and β unicode ops as fast as ascii equivalents
[6ec21cb4][1af2a745][43c348a8][9ff2f98f][6ad06fad]
+ Made &infix:<cmp> with Version:Ds 7.2x faster [1d9553f0]
+ Made &DEPRECATED 27% faster when vfrom is too large [145e3156]
+ Made Blob.gist 26x faster [20a99fc3]
+ Made Hash.gist 24% faster [69af24c4]
+ Made @a[42..*] 4.2x faster [456358e3]
+ Various NativeCall speedups [a06ebaf2][269fe7db][80d6b425]
+ Significantly faster interpolation of variables into regexes
[1761540e][0a68a18f][d73d500b][1775259a][e8003c87]
[4d3ccd83][04b171bd][317ae16c][dd880cad][2262cc47]
+ Other small optimizations [9d4a833b][6902c590][fb4eb666]
[b9c98531][4fae0711][921db910][c91c4011][98fae3d8]
[a462d0a2][16c2a157][5f6896bd][397692ac][476741e7]
+ Internal:
+ New JIT [2724a851][ff063e7b]
+ Better scheduler [d2eb7423][80b49320][340d8ed3][c50d35a9][9af5607d]
[683037be][7c18112c][c285b489][b5605c2d][3b98fb9e][596611c8]
[6f6e62ea][176a6fae][43b7cfde][59bfa5ab][27590e8b][e95eb42c]
[2c4868b8]
+ Added RAKUDO_SCHEDULER_DEBUG_STATUS env var [de311f46]
+ Bumped libuv to the latest version [198b8497]
+ Reworked BUILDALL method autogeneration [9837687d][63cf246f]
[5ad2fffe][31a03a41][eb9c3d4d][346dfeff][70ca505a][af2ab751]
[5cd9197f][6824e192][7363f898][4959df3f][dd943ede][d3c48185]
[371befe8][4d0ead24][92f239b5][7fa707db][d76af6aa][e513b857]
[f80a8461][fcbd8adb][21788c89][e2f8a57d][b58bd8fb][0dd6af71]
[f946bd35][cef3bf3e][92e51c3d][5144216f][ebd6440c]
New in 2017.09:
+ Fixes:
+ Fixed NativeCall signature check for unsupported native types [4077842c]
+ Fixed .made called on a Match on which .make was never called [5db5b1db]
+ Fixed flattening of a typed hash [6cec6b72]
+ Fixed iterator on pairs with Mu's [a5014fd0]
+ Fixed Supply.batch with non-int elems and elems == 1 [98f9fffe][7d1ece80]
+ Improved error message on nameless postfix `.::` [5969f21e]
+ Fixed ::("GLOBAL") [1f6a782c]
+ Refined merging of one() junctions [79604a88]
+ Fixed error message with leaking variable name in FailGoal [ed4f6cc9]
+ Implemented missing Instant.Instant [51709e01]
+ Fixed thread safety issues with signal introspection [1f411693]
+ Fixed thread safety issues in the `signal` sub [13b6a33c]
+ Fixed thread safety of "foo{$x}bar" [59454b03]
+ Made Bool.enums consistent with Enumeration.enums [e7a58806]
+ Fixed doubled path issue in IO::Notification.watch-path [2362dfd6]
+ Disabled interactive REPL for non-TTY input [b6a60236]
+ Fix ignoremark and casechange operations of graphemes which begin with
Unicode Prepend characters [7f526c1e]
+ Suppress line number in X::Package::Stubbed [edac1d68][7ba9b7cd]
+ Fixed race condition in Channel awaiter [b30ac08a]
+ Fixed NYI compilation of NativeCall sigs with optional params [1818de98]
+ Fixed missing deconts in nqp::eqaddr() tests [880b33e2]
+ Fixed Enumeration:D === Enumeration:D [8d938461]
+ Fixed non-blocking await when holding locks [f26d1e24]
+ Fixed non-blocking await-all to respect Slip [a137c0de]
+ Additions:
+ Added support for Str operations with Junctions [753c9a5e][7cd153f4]
[95a70ca3][0b19baf0][d2f31bb7][e18291e2][8b5d283c]
+ Added support for Unicode 10 [64dd94c2]
+ Added complete Unicode Collation Algorithm implementation [9b42484a]
[5f335065][ec18efa0]
+ .collate/coll/unicmp operators are no longer experimental
(Note: $*COLLATION dynamic variable is still experimental) [5f335065]
+ Added Thread.is-initial-thread method [59a2056a]
+ Added output buffering for non-TTYs [44680029][4b02b8aa]
+ Made temp and let on a Failure throw it [80a3255b]
+ Made sure that open files are properly closed on exit [3c9cfdba]
[97853564][347da8e5][dd8d0d89]
+ Implement pred() and succ() for the Enumeration role [2645a1e9]
[8d442a52][8df53f34][43e41ec6][55aa7f28][f925c648][69dae1f3][2ad51a0f]
+ Added isa method to SubsetHOW [0704cd97]
+ Build system:
+ Made t/harness* use 6 TEST_JOBS by default [8019c15b]
+ Added --ignore-errors option to Configure.pl [0bc1c877][1da075f9]
+ Fixed `make test` without `make install` first [fb0b3eb5]
+ Made Configure.pl refuse to work without ExtUtils::Command [3f4a9ffa]
+ Fixed non-installed gdb/valgrind runners [4e3f0fca]
+ Efficiency:
+ Knuth-Morris-Pratt string search has been implemented for string
indexing operations (needles between 2 and 8192 in length) [593fa5f8]
+ 1.5-2x speedup of most string operations involving strands [5ebbc5ba]
+ 2.5x speedup for eq() for comparing two flat strings (1.7-2x for others)
+ 9x speedup when indexing with a needle one grapheme in length [8a215876]
+ Made `Any ~ Str` and `Str ~ Any` about 25% faster [815faa35]
+ Made index and eqat operations 2x faster [5ebbc5ba]
+ Made all(@a), none(@a), one(@a) about 9x faster [51c3d86c]
+ Various improvements to BUILDPLAN and BUILDALLPLAN [7da0c215][0ca5ffa4]
[760530a5][80e069a4][2574f883][b706b843][963b28d1][532f7092]
+ Made object creation 25% faster in some cases [62fd5093]
+ Internal:
+ Simplified setting up auto-threading [8a0f6ac1]
+ Streamlined Junction .defined, .Bool, .ACCEPTS [e8137b45]
+ Added --no-merge option to t/harness5 to pass through STDERR [4af1d95c]
[84b40cf5]
+ Various improvements to INTERPOLATE [215a5fa7][ea57cbec][c6aacafd]
[47439e69][4c25df74][fc632cd8]
+ Some minor cleanup on R:I.FirstNThenSinkAll [9dbc3c50]
+ Fixed --ll-exception to give full thread backtrace [0877278e]
+ Various heap analyzer API changes [bfee5a1e]
+ Streamlined exit / END phaser handling [1adacc72]
+ Made junction optimizer only look at candidates [4de858a5]
+ Assortment of low-level improvements [cbce6721][8a215876]
[9b42484a][a4ce97ca]
New in 2017.08:
+ Security:
+ Removed '.' and 'blib' from nqp's default module search paths [7e403724]
[a331c804][1eeb9434]
+ Fixes:
+ Fixed IO::Path.new with 0 allomorph [45cd1a97]
+ Fixed erroneous closing of standard handles in DESTROY [0e578c4f]
+ Fixed handling of already existing .moarvm files during install [02667bd8]
+ Fixed --ll-exception [559c9255]
+ Fixed native callbacks called from other threads [b81597bd][1d941643]
+ Fixes concat with combining codepoints and repetitions [1f7fa683]
+ Fixed TODO test handling inside TODOed subtests [5b77a8aa]
+ Fixed formatting of X::Numeric::DivideByZero [3f99d1d0]
+ Fixed potential concat issue [3028466c]
+ Fixed null handling in List.join [9b5cce0a]
+ Fixed handling of default values in Array [12d7d5b4][2fb8c725]
[0970ba33][ccaa0665]
+ Fixed error message for postcircumfix [ ] called with a type object [1a74a8c3]
+ Made .unique|repeated|squish return containers if applicable [51e59eeb]
+ Fixed string comparison issues [0564891e]
+ Fixed is-lazy of iterators created with R:I.FromIndexes [4db23064]
+ Fixed pull-one of iterators created with R:I.MonotonicIndexes [0c19f549]
+ Fixed compiler explosion with import statement [3e078d4d]
+ Fixed is default() trait on Attributes [a7d2ad1d][148ba7f2]
+ Made sure to stop socket reader on close [21359560]
+ Fixed missing tap closes in `whenever` [59f4123e]
+ Fixed missing tap closes in Supply [c59b9867]
+ Fixed potential memory leak of supply/react [5fcce673]
+ Fixed Mix.roll with fractional weights [a91ad2da]
+ Fixed reproducibility of RAKUDO_MODULE_DEBUG output [ec7bc25c]
+ Fixed Pair.WHICH [4f1322d0][c229022c]
+ Fixed ignoremark issues [7b81f0f9][a3b95749]
+ Fixed bad assumption about methods being closures [231cb3f5]
+ Stopped hllizing and sinking the result of .+, .* and .= method calls [2b8115f0]
+ Fixed native shaped array index to return l-value [61e1f4d5]
+ Fixed handling of test descriptions with new lines [9303a6e4]
+ Fixed wrongful escaping of `# SKIP` TAP instruction [eb529f14]
+ Fixed returned exit code when running a MAIN script with --help [fcf61f7b]
+ Various improvements to produced messages [9b31d1f5][998535ed]
[6d3ba60c][365a1d08][cff51ea1]
+ Additions:
+ Added Buf subbuf-rw method [d7af4aeb]
+ Added ACCEPTS method to Map to compare Maps [45ca084e]
+ Treat :ver<...> like a version instead of a string [247fc649]
+ Improved Version smart match with different lengths [01dbd874]
+ Added new peer/socket host/port values in async sockets [76af17a8]
+ Added .Complex coercion method to Cool [c9de2184]
+ Added atomic operations (β) [9b1e252a][92707fac][c67d7dd5][ca8aafc1]
+ Build system:
+ Added --libdir option to Configure.pl [e4d65ac9]
+ Fixed quotes for windows [90a0f2e0]
+ Added 'install' test target on appveyor [9c0d40ab]
+ Efficiency:
+ Made `$s (-) $s (-) $s` on a 26 elem set about 1.5x faster [d7fcb314]
+ Made .Str and .perl 2x faster, .gist 1.4x faster (on a ^100 .Set) [5b6cd406]
+ Made .Str 30% faster, .perl 2x faster (on a ^100 .Bag) [21b9a720]
+ Made string concatenation more efficient [1f7fa683]
+ Made Mixy.roll up to 2x faster [d3f260c9][e2ca1ffa]
+ Made Baggy.roll up to 1.5 faster [e548b743]
+ Made Baggy.roll(N) about 1.5x faster [752a3265]
+ Made List.roll(*) about 1.5x faster [b147217e]
+ Made .unique(:as) 3% faster [a636fa8f]
+ Made .unique(:with) about 4x faster [47d9bd9b]
+ Made .unique(:with(&[===])) about 20% faster [26789cc7]
+ Made .unique(:as,:with) about 12x faster [acf9f90d]
+ Made .repeated(:with) about 4x faster [d9056207][c3851aee]
+ Made .repeated(:as,:with) about 12x faster [a3a3d1a9][32ce4afd]
+ Made .pairup about 1.5x faster [8f73d77b]
+ Made .codes 350% faster for short strings [3c6277c7][e051dd2d][4eff4919]
+ Various improvements made by using `is default` on attributes [08f705b9]
[d0419a0f][9f5686ec][c8c5c712][40d5b27d][fb5db592][413b7116][fbdbe6fb]
+ Made Map eqv Map about 10% faster [15b2596e]
+ Decreased the cost of Supply block teardown [5d200f1e]
+ Saved 2 method calls per NativeCall call [aca4b941]
+ Speeded up NativeCall by replacing the subroutine code in setup [46ef1b5b][9a0afcbc]
+ Speeded up NativeCall subs by compiling specialized subroutine body [cd7dc4ce]
+ Internal:
+ Introduced Mixy!total-positive [f49c49bb][ccf6da9e]
+ Set debug_names of DefiniteHOW and CoercionHOW types [b22d189e][c040f1a6]
+ Simplified `infix:<(+)>(**@p)` and `infix:<(.)>(**@p)` [d82db18f][a0775e5e]
+ Ensured Scalar fetch can never return a NULL [2f5a6cd9]
+ Changed RAW-KEYS to create iterator early [710fa800]
+ Made sure Setty at least has a R:I:IterationSet type object [2dd5963c]
+ Made R:I:Mappy roles also take IterationSets [ab08bd04]
+ Made Setty.values use R:I.Mappy-values directly [250ae102]
+ Made R:I:Mappy* roles use a more abstract name for low-level hash [b7953d0d]
+ Retired R:Q:Quanty in favor of R:I:Mappy [d9055e80]
+ Introduced R:Q.RAW-VALUES-MAP [923c32e6]
+ Simplified the .Seq coercer [5d89cef9]
+ Changed Baggy to no longer use HLL hash internally [fb7ecb60]
+ Changed Supply implementation to use iteration, not recursion [ed87f998]
+ Added tests for native int as index to CArray [6cc858a0]
+ Simplified Hash creation for auto-vivification [84d052a0]
+ Various spesh, JIT, GC and other improvements [86cb1363][8bed4a67]
[9658dd98][c1e41f9f][f590863e][4561c269][947376e2][1455a03b]
+ Introduced R:I.TwoValues [20e93d89][50f0508f]
+ Fixed some issues with R:I.OneValue [3ad33469]
+ Streamlined the standard Seq methods on Pair [30584dac]
New in 2017.07:
+ Deprecations:
+ Deprecate `(<+)` βΌ `(>+)` β½ in favor of `(<=)` β `(>=)` β [35cc7c0e]
+ Fixes:
+ Fixed perl6-debug-m debugger [6d4691fb]
+ Fixed finding proper %?RESOURCES for non-lib CURFS [71ffb164]
+ Fixed Mixy (-) Mixy behaviour for missing keys [4a37de7b]
+ Fixed Mixy.Setty coercion [b31b159c]
+ Fixed .perl of empty Bag and Mix [f72c97cb]
+ Fixed crash on dotless version literals given to `use` [fe7ea124]
+ Fixed various coercion related issues with (-) [19a1caa3]
+ Fixed Baggy/Mixy (-) Any/Iterable [a2133dbc]
+ Made sure we catch lazy lists on right of (-) and (|) [62d54c75][c16334e5]
+ Fixed mix() (-) `<a b c>.Mix` [c727462c]
+ Fixed multi-dispatch with numeric literals and native types [1c0ed61a]
+ Fixed enum.Real coercion [ad9ed1cb][c226b71a]
+ Fixed (:e).Bag|Mix coercion using a Bool as a weight instead of just Int [d765f186]
+ Fixed outstanding issues with coercions done by (+) [c7922f14]
+ Fixed a data race in Proc::Async [2a8d1e7c]
+ Fixed `(&)`'s handling of lazy lists [cb06ebac]
+ Made set ops properly handle lazy lists [04746490][3058ba0d]
+ Made sure unhandled failures don't coerce QuantHashy [43fc751b]
+ Fixed sprintf octal format with precision [d7e10466]
+ Fixed 'is export' on constants assigned to routines [d067abf4]
+ Fixed Deprecation.report case where "removed" is set and "from" isn't [1b6d048b][e20817fb]
+ Fixed crash in coercers used with sigilless vars [c76d9324]
+ Made sure IO::Socket passes a list to set-line-separators [a2090821]
+ Prioritized .pm6 extension over .pm when files with both extensions exist [e1e9091f]
+ Fixed SEGV in Proc::Async.new [f6d4fbd2]
+ Fixed a few edge cases of (^) wrt QuantHash type permutations [b3916926]
+ Fixed regression in Map intialized with `<...>` having writable containers [4894a75d]
+ Fixed overflow in uniprop lookups [4f5a1e20]
+ Made improvements to segmentation of Emoji w/ GCB=Other [4f5a1e20]
+ Fixed break after ZWJ for Emoji=True + GCB=Other [4f5a1e20]
+ Removed faulty Iterable (^) Iterable candidate [4c91b522]
+ Fixed faulty Map (^) Map candidate [8afbfe6f]
+ Fixed inconsistent semantics in `<a b>.Bag (<) <a b b>.Bag` [4b8bc617]
+ Fixed unwanted de-Bool during optimization of some constructs [83e15701]
+ Fixed handling of actions in .refine_slang [c40a2122]
+ Fixed baggy semantics of Mix `(<)` Mix [a526d839]
+ Fixed semantics of `mix() (^) (a=>-42).Mix` [8d5f3324]
+ Fixed precomp deps left open when up-to-date check failed [37250ed5]
+ Properly implemented Baggy semantics for `(<=)` and `(<)` [4101581d][c6cc1a7a]
+ Fixed handling of `[(^)]` with absentee keys and Mixies correctly [0c02f93e]
+ Fixed faulty dynamic cache invalidation in continuations [d74ebd82]
+ Fixed issues with calling `infix:<β>` with more than 2 params [aee4a46c]
+ Fixed Proc :merge [c86090e3]
+ Made sure we call done/quit on all taps [32b72cda]
+ Ensured empty string PERL6LIB var does not get interpreted as `.` [075ddefa]
+ Fixed floating point noise in denominator of Rat literals [f6e25b54]
+ Fixed .getc and .readchars reading too much at EOF [80bbfcdd][49f555a2][f6279c34]
+ Fixed SEGV and memory leak in MoarVM that impacted parameter destructuring [f6279c34]
+ Made `exit()` coerce its argument to Int [caa9ef81]
+ Made IO::Handle.new coerce `:path` to IO [fec90956]
+ Various improvements to warnings and error reporting [bde28209][06379113][d5d3bd27]
[d39f7b9a][1dda8622][d74ebd82][88acdbb7]
+ Additions:
+ Added full Unicode 9.0 and Emoji 4.0 text segmentation support [c40a2122]
+ Implemented tentative API for custom user encoder support [d0995f68][5ab4036e]
+ Implemented experimental buffering support in IO::Handle [86e7b2bd]
+ Collation object updated to work with new unicmp_s semantics [4da85879][47678077]
+ Allow getting native descriptor in Proc::Async [82301128]
+ Re-worked Proc so :in($p1.out) will plumb file descriptors [6dae179a][abfd7d95]
+ Added plumbing stdout/stderr to stdin in Proc::Async [11b02d2c]
+ Allow for "does Rational" and "does Rational[foo]" [41ed2c03]
+ Added `%*SUB-MAIN-OPTS` [40b0169d][da6c6584]
+ Implemented baggy semantics of `(<)` and `(<=)` [75797af3]
+ Added perl6-lldb-m for debugging MoarVM on the LLVM debugger [00dc4947]
+ Efficiency:
+ Made Baggy (-) Baggy about 100x faster [2a88c20c]
+ Made [(^)] Set, Set, Set about 35x times faster [0cdd6c25]
+ Made Setty (-) Setty at least 20x faster [10f840fc]
+ Made .BUILD/.TWEAK calls 15x faster when ther are no args to .new [43c1767b]
+ Made (Bag|Mix).WHICH about 8x faster [b2d2bf59][c585f370][d8c94353]
+ Made Map (+) Map between 3x and 6x faster [495fb5f8]
+ Made Baggy eqv Baggy upto 3.5x faster [49b1b03b]
+ Made Setty.ACCEPTS(Setty) about 3.5x faster [93d81d61][48c18f58][1ab4fd80]
+ Made Map.(Bag|Mix) 2.5x to 5x faster [72e5d614]
+ Made Setty eqv Setty between 2x and 3.5x faster [25047984]
+ Made Setty (-) Map between 2x and 3x faster [9936a3be]
+ Made Setty (-) Iterable about 3.5x faster [b66d8783]
+ Made Str.subst(Str,Str) upto 3x faster [327c8409]
+ Made Setty (+) Map about 2.5x faster [201a0bfb]
+ Made Any (-) Map|Iterable about 2x faster [e4f3358f]
+ Made Mix (+) Mix about 1.5x faster [d1838461]
+ Made Baggy (-) Baggy about 1.5x faster [36823ab1]
+ Made starting of installed scripts 46% faster [92f8abe0][4693ec86]
+ Made Baggy.keys about 40% faster [c65652d8]
+ Made Iterable (+) Iterable about 20% faster [38509227]
+ Made Setty (-) Setty about 20% faster [bacaa051]
+ Made internal nqp::index op used by many string operations 16% faster [4f5a1e20]
+ Made Setty.(Bag|Mix) about 5% faster [ae4c04ce]
+ Made Str:D (elem) Map 3%-10% faster [099a84b4]
+ Made Stash.AT-KEY a few percent faster [2ce5b678]
+ Gave Nil methods a much more efficient "take any args" signature [9a2127f2]
+ Made Exception messages created only when gisting [1a4d9493]
+ Made Any.tail() use iterator's .count-only if available [9c04dfc4]
+ Reduced cases when string concatenation needs renormalization [c40a2122]
+ Improve the speed of Unicode normalization [c40a2122]
+ Made all non-Texas set operators aliases where possible [f6025eb9]
+ Simplified `infix:<(|)>(**@)` candidate [46e009bf]
+ Fixed various VM errors in CallFrame. [e2ec7bdf]
+ Improved speed of `try` when exceptions are caught [1a4d9493]
+ Assorted internal improvements to CPU/memory use [3d2a521c][5a80412c][c4e14731][19be8722]
[f03a176c][fff43337][f71cbed4][79ce1a99][640404fc][b4561229][30619e8d][9d14a724][a2a0d5c6]
[66aef589][a95c70bd][d7e10466][73c3bcc6][7f109ed7][80b3e89b][05c255c1][2fb109f1][c0eeebde]
New in 2017.06:
+ Fixes:
+ Fixed incorrect auto-boxing to native candidates in multi dispatch [ccfa5e51]
+ `^Inf .elems` now fails instead of returning Inf [20310d7d]
+ Made IO::Handle.print/.put signature consistent [613bdcf8]
+ Made sure that Setty:U is treated like any type object [ad8fa552]
+ Fixed behaviour of set() `(<)` X.Set [e6506bfd]
+ Made sure VM.osname always returns lowercase string [122aca1c]
+ Fixed List.Capture with non-Str-key Pairs [5b25836f]
+ Fixed inconsistency in .Int on zero-denominator Rats [6dbe85ed]
+ Fixed crash in smartmatch of non-Numerics with Numeric [43b03fc6]
+ Fixed occasional Windows file permission issues with installation of modules [8ec4dc5b]
+ Fixed crash in `X` operator used with empty List [9494cbd3]
+ Fixed spurious warnings/crash with certain `=para` Pod blocks [5e339345][807d30c2]
+ Fixed output of `CArray[Pointer].^shortname` [1ed284e2]
+ Fixed crash in Test.pm6's bail-out when used before tests [cb827606]
+ Fixed object Hash -> Set coercion failing to consider values [160de7e6]
+ Fixed Seq.perl for containerized Seqs [b22383fe]
+ Fixed Proc::Async.new not slurping first positional [92c187d2]
+ Fixed Proc::Async.kill failing to kill sometimes [99421d4c]
+ Fixed hang in deepmap with Iterable type objects [252dbf3a]
+ Fixed crash when Junctioning empty array after .elems'ing it [aa368421]
+ Fixed crashes/LTA errors in Junction.new w/wrong args [61ecfd51]
+ Fixed `infix:<orelse>` calling .defined one too many times [77d3c546]
+ Made `fail` re-arm handled Failures given as arguments [64e898f9]
+ Fixed output of IO::Special.perl [7344a3d2]
+ Made IO::Handle.open with path '-'.IO properly handle non-default `$*OUT`/`$*ERR` [3755c0e7]
+ Fixed Promise.then to not lose dynamic variables [36bc4102]
+ Fixed allomorph smartmatching with Str values [8a0b7460]
+ Fixed IO::Path.extension with Range `:parts` when endpoints were excluded [8efffb1d]
+ Made coercion of lazy Iterable to Setty fail [211063c7]
+ Made Mixy/Baggy.new-from-pairs with a lazy Iterable fail [c9dfa840][e5719d6a]
+ Fixed byte.Range returning an incorrect range [af85d538]
+ Fixed edge-cases (e.g. Nan/Inf) in Mixy.roll [fb9e1a87]
+ Made sure that Mixy types only take Real values [7fa85682]
+ Fixed incorrect results in ignorecase+ignoremark regex matches [1ac7996a]
+ Fixed issues with `$*CWD` inside &indir when using relative paths [9151ebaa][326faed6]
+ Fixed crash with Seq:U.List [5c56e9e7]
+ Fixed various issues with Map `(<=)` Map [e1563a76]
+ Fixed various issues with Map `(<)` Map [b03d8044]
+ Fixed 4 cases of crashes with labeled `next` [3b67b4ac]
+ Made Proc.status/Numeric/Bool/exitcode/sink wait for Proc to be done [e4468c61]
+ Fixed Pair.perl with type-object components [c6b03c45]
+ Fixed bad shell quoting in Proc::Async on Windows [e9b30933]
+ Fixed crash when RAKUDO_MODULE_DEBUG was set to a non-numeric value [96e6b338]
+ Fixed Kernel.signals on OpenBSD [9435c14e]
+ Various improvements to warnings and error reporting [1c16bf2e][85bef661][e22508d4]
[b6694bd0][ec51e73f][f2fca0c8][f9403b3b][86fe766a][c81b7a4b][7cf01296][fb7dd8a4]
[7783fcab][9bf3ea3a][02614f64][e538cbc5][86c3d7aa][c2497234][b0a1b6c3][97298aca]
[69b1b6c8][5e037736][e824266f]
+ Additions:
+ Implemented IO::CatHandle [5227828a]
+ Implemented support for merged STDOUT/ERR output Proc and Proc::Async [ac31c5df][05d8b883]
+ Implemented Complex.cis [a243063c]
+ Implemented Failure.self [0a100825]
+ Implemented Any.Seq [5c56e9e7]
+ Improved consistently to have .Supply on a type object it as Supply [52d39576]
+ Slightly changed IO::Handle.encoding; Nil now means 'bin'
[95b4e5d5][27f09e9d][9c0362cb][51c73ba0]
+ Gave `(<=)` Baggy and Mixy semantics for Bags/Mixes [b1d83f9d]
+ Makde `use lib` accept IO::Path objects [3ff29d42]
+ Added IO::Socket.nl-out attribute [12d31e36]
+ Added Setty.pickpairs [e3695b16]
+ Added Str type constraints to IO::Spec::Win32 .join and .catpath [232cf190]
+ Made it possible to call &prompt with no args [0646d3fa]
+ Made IO::Socket::INET update localport if it binds on port 0 [bc98e671]
+ Improved support for Unicode properties `Prepend` and `Regional Indicator` [56e71d59]
+ Gave IO::Handle.read default value for size arg [b7150ae1][aa9516be]
+ Added default output for Mu.WHY [23d6d42d][cc4d9091]
+ Added support for binding to standard handles in Proc::Async [6b2967d7]
+ [JVM] Implemented Proc::Async [5154b620]
+ Removals:
+ Removed TAP.pm6 from core. Available as `TAP::Harness` in the ecosystem [ae891f93]
+ Removed all methods from IO::ArgFiles and made it a subclass of IO::CatHandle [f539a624]
+ Removed IO::Socket::INET.ins [75693b0b]
+ Removed NYI IO::Socket.poll method [cb404c43]
+ Efficiency:
+ Made Any (elem) Iterable:D between 1.3x and 110x faster [e65800a8]
+ Made `(<=)` and `(>=)` about 50x faster [32eb285f]
+ Made IO::Spec::Win32.catpath 47x faster [7d6fa739]
+ Made `(<)` and `(>)` about 40x faster [431ed4e3]
+ Made IO::Spec::Win32.join 26x faster [494659a1]
+ Made IO::Spec::Win32.splitdir 25x faster [2816ef71]
+ Made Map `(<=)` Map about 15x faster [0cb4df44]
+ Made Map `(<)` Map about 15x faster [f6f54dcf]
+ Made Str.subst(Str) without :g 14x faster [0331fb9d]
+ Made Setty.roll about 11x faster [e6192ca8]
+ Made IO::Spec::Unix.splitdir 7.7x faster [6ca702fa]
+ Made invocation of Proc.spawn and &run 4.6x faster [93524fb9]
+ Made SetHash.grab(N) about 3.5x faster [67292a1e]
+ Made SetHash.grabpairs(N) about 3.5x faster [0e9ee0d1]
+ Made invocation of Blob.decode() 2.7x faster [222b4083]
+ Made Baggy/Mixy.(hash|Hash) about 2.5x as fast (on a 26 elem Bag/Mix) [06cd0bc3]
+ Made Setty.roll(N) about 2x faster [18dd0741]
+ Made Setty.pick about 2x faster [10e9c8ba]
+ Made Set.new(@a) about 2x faster [b55a0f16]
+ Made Baggy.new(@a) about 2x faster [11f27a30]
+ Made SetHash.grab about 1.8x faster [d28540be]
+ Made Str:D (elem) Map:D 1.3x faster [b43303f2]
+ Made `$*KERNEL.signal` 64% faster, overall [79b8ab9d][01d948d2]
+ Made Iterable.Bag about 60% faster [f2876281]
+ Made Iterable.Mix(|Hash) about 40% faster [bba6de5f]
+ Made Setty.pick(N) about 30% faster [071c88cb]
+ Made StrDistance 25% faster [2e041b06][9185fa2c]
+ Made (Bag|Mix).AT-KEY about 10% faster [b43db636]
+ Made `infix:<β>` about 10% faster [abfb52be]
+ Made Str.starts-with 8% faster [7ecb59dc]
+ Made .Set, .Bag, and .Mix coercers a few percent faster [8791b447][4139b96e][8c7e4e51]
+ Fixed lost optimization of for ^N {}; now its 3x faster [46b11f54]
+ Made &DYNAMIC about 1% faster [74242e55]
+ Made ^Inf marginally faster [446dc190]
+ Assorted internal improvements to CPU/memory use [2efd812c][07bff0e5][1369632f][2ac120ce]
[539415cf][5ebf307a][ed07b2c3][0104a439][a91a2e4d][bd292225][8ff980e7][7edf9da6][241d2925]
[7e8bac9b][3363c7b9][6f932687][e9b30933][51b63bf9][57553386][1171e67e]
+ Internal:
+ Refactored handle encoding. Non-binary read methods now throw when used
on handles in binary mode [41bb1372][b3cd299e]
+ Refactored socket encoding [8ee383e3]
+ Made syncronous IO to not use libuv [05f3e9a0]
+ Made syncronous sockets to not use libuv [6f202fbe]
+ Moved encoding and line ending bits to IO::Socket [d6fd2491]
+ Moved get and lines to IO::Socket role [9cec9408]
+ IO::Path.Int method removed; handled by Cool.Int now [d13d9c2e]
+ Re-implemented Proc in terms of Proc::Async [ac31c5df]
New in 2017.05:
+ Fixes:
+ Made Promise subclass-friendly [a61746fe][a7c23aa2]
+ Fixed unwanted warnings on Windows with `$*HOME` [4ae7c697]
+ Fixed handling of `<1` and NaN in Baggy.pick/.roll [40e4e132][e5d2c6f6]
+ Fixed NaN and empty Baggy handling with Baggy.pick/.(pick|grab)pairs
[abc0509c][22ba2317][22ba2317][44c89ed9]
+ Fixed SetHash.(iterator|values|kv) to have same semantics
as (Bag|Mix)Hashes [e5b5d346][e9ae0047]
+ Fixed off-by-one in `lines` routines when `:close` is given [bf399380]
+ Fixed `$*CWD` inside IO::Path.dir's :test Callable [b2a64a13]
+ Fixed regression with IO::Handle.close's value sunked in .slurp [84eb3599]
+ Made spaces and quotes escaped in MAIN() usage message [22bd2bbd]
+ Fixed dispatch hang in Str.match: Nil [1c21974d]
+ Made &slurp/&spurt/&get/&getc/&close `fail` instead of throwing [6fa4bbcb]
+ Made &lines/&words/&slurp/&spurt/&get/&getc/&close pass all of the
given arguments to the methods they use [6fa4bbcb][34b58d1b]
+ Fixed handling of 8 digit hex literals in 32-bit systems [01dd2138]
+ Fixed $?BITS on 32-bit systems [d057efdb]
+ Fixed time stamp check interfering with packaging modules [ff4a034d]
+ Made perl6 usage message print to STDERR instead of STDOUT when an
invalid cmd line option is used [2a6d3d1e]
+ Made sure Setty (^) Setty always returns a Set [4e37e7c5]
+ Fixed typed optional Array and Hash parameters [9f5c8e94][6231ecb0]
+ Made `$*HOME` default to Nil, not Any [7412184f]
+ Fixed crash on ^D to `$*IN` when reading with IO::ArgFiles [4b8fd4a4]
+ Fixed REPL crash when `$*HOME` is not set [1b0e41f9]
+ Fixed Test.pm6's &like crash when a non-Str is passed [ba3cf4e5]
+ Fixed Seq.perl for cached Seqs [54f50956]
+ Fixed crash in `eqv`, .iterator, .Slip, .join, .List, .list, .eager, .Array, .is-lazy,
and .sink on cached Seqs [400f4ec8][c13d89b3]
+ Fixed role mixins with native attrs with defaults [6179ab34]
+ Fixed `andthen`-`orelse` chaining [37316f82][e1994d94][1ed76a90]
+ Fixed issues when `Empty` passed as arg to `andthen`/`notandthen` or postfix `with`/`without`
[3c8822e8][e1994d94][1ed76a90][fdb2b2ab]
+ Fixed error in Iterable (+) Iterable if the Iterable contained Pairs [3d99321f]
+ Fixed .perl for IO::Path and subclasses [134efd83]
+ Fixed .IO on :U of IO::Path subclasses [69320e7f]
+ Fixed SetHash retaining the containers [551b8a69]
+ Fixed (Bag|Mix)Hash.values/.iterator/.pairs/.kv failing to check validity of assigned
values [c1bd844e][0e0ac2fb][0338ce46][14e09532][c61c7f88]
+ Fixed 'ambiguous call' error in `eqv` and `cmp` with mixed allomorphs [e5870c11]
+ Fixed IO::Path.copy/move when source/target are same [08a8075f]
+ Fixed premature deletion of bin wrappers [c7aef59a]
+ Fixed ghost elements remaining when popping off an Array [c776c087]
+ Fixed rotate on empty list [b5c14bd1]
+ Fixed hang in .join/.gist in certain cases of flat slurpy positional arg [5e6b3878]
+ Fixed Str.comb(Int, $limit) for `<1` combers [a9959666]
+ Fixed Str.comb with empty-string comber [aa711c14]
+ Fixed unwanted split on read-chunk-size boundaries in IO::Handle.comb/.split by
making them .slurp the entire file [973338a6]
+ Fixed crash in BagHash.pickpairs when given negative arguments [08b5c101]
+ Fixed incorrect results in `+>` for large negative numbers [ef29bb9f][66e8e72c]
+ Fixed is-deeply for Junction args [1c4d8451][dc5eece9]
+ Fixed crash in is-deeply when Seq type objects are given [f3f99b3a]
+ Fixed dispatch infiniloop in (elem) and (cont) [407bce1d]
+ Fixed issues with combiners on `/` in IO::Spec::Unix.is-absolute [f4309de9]
+ Fixed issues with combiners on `/` in IO::Spec::Win32.rel2abs [c96727aa]
+ Fixed crash when setting .nl-in/.encoding on unopened IO::Handle [06d8800e][70038855]
+ Made IO::Handle.open respect attribute values [95e49dcb]
+ Made IO::Path.parts a Map instead of Hash [9021a486]
+ Made IO::Spec::Unix.path consistently return a Seq in all cases [05479793]
+ Fixed IO::Spec::Win32.path failing to flatten resultant Seq [8992af13][816b2d4b]
+ Fixed IO::Handle.perl.EVAL round-trip [a282b8c8]
+ Made IO::Path.resolve set CWD to $!SPEC.dir-sep [a4127884]
+ Fixed unwanted padding Nils from Str.words($limit) [4bcf84a2]
+ Various improvements to warnings and error reporting
[9962d2b6][9ed89d94][d87de586][6d28d788][8511081f][4f9fa6b0][12cec7a7][d1a81b30]
[85c54db8][fc5698bd][1cf7ccba][0bd39de2][12c50b63]
+ Additions:
+ Made user grammars work more like real classes [db42d62f]
+ Loading deps no longer uses file timestamps [ca0a7439]
+ Changed type constraint on &slurp/&dir from Cool:D to IO() [6fa4bbcb][d0cd1372]
+ Added IO::Handle candidate for &spurt [6fa4bbcb]
+ Added Pair.Pair method [bd9e5730]
+ Added Seq.Capture method (makes it possible to unpack Seqs in signatures) [98e137b1]
+ Added QuantHash.Capture [5e74017d]
+ Made `(^)`, `(+)`, `(.)` multis [8b8f66c0][44893e6a][48ce8701]
+ Added primary and foreign key constraints and renamed some fields in
profiler's SQL output [c776c087]
+ Added WhateverCode candidates to Map.roll and (Bag|Mix)Hash.grabpairs [1e58925c][2bda2703]
+ Made Baggy.roll/.pick/.grab Int-ify their $count arguments [31be5128]
+ Added big int support for `+<` and `+>` ops [6409ee58][ef29bb9f][66e8e72c]
+ Made Date.clone take a formatter [a9a161ae]
+ Added `$*DISTRO` and `$*KERNEL` information to `perl6 -V` output [94c4e7bf][b6496eda]
+ Made `perl6 -V` sort its output [85230d06]
+ Added support for `$*KERNEL.archname` [0c46aff2]
+ Added `$*PERL.compiler.verbose-config` [85230d06][c3b47280]
+ Added typed exceptions to IO::Handle.flush [b43ed18f]
+ Added support for building the dist in install-dist.pl [4298dd5e]
+ Simplified getting osname from VM.config [7c8f8d3e][18706852]
+ Added VM.osname as a rough equivalent to Perl 5's `$^O` [e79d7498][505ee33d]
+ Now show `System::Info` information with -V if module is installed [5feb3906][541597b8]
+ Made IO::Handle.encoding settable via .new [7e9496dd]
+ Added Proc::Async.ready [d76206e7]
+ Implemented $limit arg for IO::Handle.words [84502dc2]
+ Removals:
+ Removed IO::Handle.iterator that existed for a couple of releases [eb8d006e]
+ Removed unspecced Seq.is-ready method [59f6f485]
+ Removed broken Exception.resumable method [f2af3db1]
+ Removed argument forwarding from Instant.DateTime coercer [6bb1b5b4]
+ Removed IO::Path.dir's :absolute and :Str arguments [aa72bdef]
+ Removed .tell info in IO::Handle.gist [276d4a7e]
+ Removed `:directory` from Map returned by `IO::Spec::*.split` [6ed14ef6]
+ Efficiency:
+ Made Mixy (^) Mixy about 150x faster [9f0b1218][bea8ac68]
+ Made Baggy (^) Baggy about 150x faster [ee459360]
+ Made IO::Spec::Win32.is-absolute about 63x faster [c6fd7361]
+ Made Map (^) Map about 50x faster [13924397]
+ Made Setty (+) Setty about 45x faster [14568496]
+ Made Baggy (+) Baggy about 50x faster [ab5cd11b]
+ Made Mixy (+) Mixy about 45x faster [92df7d5c]
+ Made Setty (.) Setty about 35x faster [1562da07]
+ Made Baggy (.) Baggy about 35x faster [3f97831d]
+ Made Mixy (.) Mixy about 35x faster [226cd8b6]
+ Made IO::Spec::Win32.path 26x faster [8992af13][816b2d4b]
+ Made IO::Spec::Cygwin.is-absolute 21x faster [48cf0e67]
+ Made Setty (^) Setty about 20x faster [d92a2123]
+ Made Iterable (+) Iterable about 18x faster [6de08933]
+ Made Map.pick()/roll() about 7x faster [2fb6872b]
+ Made Baggy.pickpairs about 5x faster [c0270c66]
+ Made IO::Spec::Unix.path 4.6x faster [05479793]
+ Made (Bag|Mix)Hash.grabpairs/.grabpairs(N) about 4x faster [911b43de][3670720a]
+ Made Str.words/.lines with $limit arg lazy and up to 3.6x faster [4bcf84a2]
+ Made Iterable (^) Iterable about 3.5x faster [b2332816]
+ Made Map.roll(N) up to 3x faster [c74d37ba]
+ Made Mixy.roll(N) about 3x faster [b9222061]
+ Made IO::Spec::Unix.rel2abs 2.9x faster [277b6e5b]
+ Made Map (+) Map about 2.5x faster [a85b654d]
+ Made Map (.) Map about 2.5x faster [9c9ebd0b]
+ Made Iterable (.) Iterable 2.5x faster [3d99321f]
+ Made Mix.roll() about 2.5x faster [a2602b9c]
+ Made `notandthen` and postfix `without` 2.5x faster [fdb2b2ab]
+ Made `andthen` and postfix `with` 2.5x faster [3c8822e8]
+ Made `orelse` 2.4x faster [37316f82]
+ Made IO::Path.is-relative about 2.1x faster [ff23416b]
+ Made Baggy.pickpairs(N) about 2x faster [0f21f511]
+ Made 1-arg IO::Handle.say up to 2x faster [76af5367]
+ Made BagHash.roll 1.7x faster [07feca67]
+ Made MixHash.total 1.4x faster [5e459bce][4c813666]
+ Made IO::Spec::Win32.split about 82% faster [894ba82d]
+ Made IO::Path.is-absolute about 80% faster [74680d44]
+ Made `&say(**@args)` up to 70% faster [204ea59b]
+ Made `&put(**@args)` up to 70% faster [6d7fc8e6]
+ Made `+>` about 55% faster [ef29bb9f]
+ Made `<+` about 12% faster [6409ee58]
+ Made IO::Spec::Unix.join about 40% faster [d2726676]
+ Made IO::Handle.put($x) about 5%-35% faster [50429b13]
+ Made BagHash.grab 30% faster [2df7060c]
+ Made IO::Path.dir up to 23% faster [aa72bdef]
+ Made Baggy.roll about 15% faster [9e7d0b36]
+ Made BagHash.grab(N) about 10% faster [87a95fc1]
+ Made Baggy.EXISTS-KEY about 8% faster [451a2380]
+ Made List.AT-POS about 5% faster for common path [736be4d4]
+ Made IO::Spec::Win32.rel2abs 6% faster [c96727aa]
+ Made Hash.EXISTS-KEY about 1% faster [eb1ce414]
+ Micro-optimized reg/init dynamic [1d6a0023]
+ Speeded up module loading a bit by persisting source checksum [3829488f]
+ Assorted internal improvements to CPU/memory use [89f2ae4f][3c7cd933][aa23a91f]
[7c531835][ccedd6b1][3dc08553][514124e3][146f3a39][9cb26c09][afd24a88][f2fc5674]
[6641df83][d6cf518c][f18d0dc0][1a920dcc][bdb5391b][b1fbd133][7404c706][762fd239]
[fec547a1][5ec8a464][8088f080][45305eca][e7087f29][f4017c32][3f7d1334][6ea2f12e]
[788e6de6][3fb3c27e][09506dc8]
New in 2017.04.3:
+ Fixes:
+ Fix REPL history file failure with Linoise on [6c66c1b88c]
+ Fix `)>` to work whenever .MATCH is called [2f143f476d][0150c7b8c5]
+ Fixed issues with false positive case-insensitive regex matches
when only start of string and end of string match [f756b4b54f][25048824c8]
New in 2017.04.2:
+ Fixes:
+ Fix "Cannot invoke this object (REPR: Null; VMNull)" [4a560aa]
+ Improve relations between %?RESOURCES and Native trait [647abfe]
+ Support all appropriate IO::Path methods on Distribution::Resources [f4f1c42]
New in 2017.04.1:
+ Fixes:
+ Removed unwanted debugging output [c9ebfc20]
+ Reverted 9d8e391 IO::Path.resolve fix for JVM, as it does not yet know
how to do utf8-c8 decode [88a6facc]
New in 2017.04
+ SPECIAL NOTES:
+ There are two Upgrade Notifications for this release:
- Part 1: http://rakudo.org/2017/04/02/upgrade
- Part 2: http://rakudo.org/2017/04/03/part-2
- Part 3: http://rakudo.org/2017/04/17/final-notes
+ Changes for Texas operators listed in this release also apply to their
fancy Unicode alternatives. https://docs.perl6.org/language/unicode_texas.html
+ Fixes:
+ Fixed infinite loop due to wrong args in many Cool methods [8c88b0c]
+ Fixed failure to distinguish rw args in Capture.WHICH [4605d52]
+ Fixed regression in .rotor with negative gaps [5917b81]
+ Fixed a 1-arg-no-phasers path in .map stopping after 1 value [86dc997]
+ Fixed containerization issues in listinfix metaops [16f950b]
+ Fixed Inline::Perl5 detection in t/harness6 [b15cd20]
+ Fixed incorrect number of tests run in t/harness6 [8766370]
+ Fixed t/harness5 incorrectly failing NOTESTS runs [f28c515]
+ Fixed crash in S/// and s/// for some combinations of adverbs [43e0902]
+ Fixed crash when doing EVAL from multiple threads [218f8c4]
+ Fixed errors in concatenations of Hangul script with \r\n in it [a123eb3]
+ Fixed case insensitive string compare with synthetics in haystack [e87179d]
+ Fixed case insensitive regex with synthetics [666ce35]
+ Fixed issues with foreign lang cursor without a name [ffeb896]
+ Fixed introspection of attributes with explicitly typed keys [a6ba994]
+ Fixed spurious warnings in define_slang [666ce35]
+ Fixed issues in :exists with multidimensional hash slice lookup [a758c0b]
+ Fixed unwanted overflow when too-large values were *assigned* to native attributes [666ce35]
+ Fixed failure to set $/ by matching routines when used in loops [a62b221]
+ Fixed handling of Baggy (|) Mixy, Mixy (|) Baggy in dispatch [48619f8]
+ Fixed Allocations tab in --profile output [c16cdb2c]
+ Made `is equiv` to not propagate operator's `assoc` value [f9f0883]
+ Made Code.ACCEPTS pass take its parameter `is raw` [c0eb9bd]
+ Fixed SEGV in IO::Pipe.t [3e275dd]
+ Made `dynamic` default to False instead of Nil on Scalar/Hash/Array [28a6e80]
+ [IO] Fixed wrong results in IO::Path.resolve for paths with combiners on `/` [9d8e391]
+ [IO] Fixed a crash when using Whatever limit in in IO::Pipe.lines [0c62815]
+ [IO] Fixed crash in smartmatch of Cool ~~ IO::Path for some Cools [c360ac2]
+ [IO] Made IO::Path:: subclasses instantiate a subclass, not IO::Path [a0b82ed]
+ [IO] Fixed crash when very large files were read with IO::Path.slurp [d0924f1]
+ [IO] Ensured IO::Handle.Str coerced .path to Str [1f689a9]
+ [IO] Fixed crash when binary slurping large files with &slurp/IO::Path.slurp [756877e]
+ [IO] Fixed occasional zero byte read when binary slurping files [756877e]
+ [IO] IO::Handle.symlink/.link now take name of the link as argument;
the invocant is the target [8c09c84]
+ Various improvements to warnings and error reporting [6a77cda][d90c6bf][f9968b3]
[27f5469][41ac4b4][75c3f29][87fe800][7ba2fc5][093bb89][d3c93ad][6ee71c2][490ffd1][7112a08]
+ Additions:
+ Gave `Thread` a numeric representation [e5528dd]
+ Made Any.maxpairs/.minpairs use `cmp` and return Seq [5927186]
+ Made `Parameter` object available in bind error [0f9f000]
+ Added typed exception for parameter constraint failure [f1cd8e3]
+ Allowed nativesize to be unset in NativeHOW, but still compose [af4aae2][932b59f]
+ Made sure that Baggy and Setty handle bare objects [7433947][e660a57]
+ Added experimental coverage reporter tool with MoarVM backend (so far works with
reports for core code; more work needed to expand for wider use) [932b59f][d0924f1]
+ Made it possible to assign to system dynamic vars on initialization [1b9d53c]
+ Broadened acceptance in `(<+)`/`(>+)`: all Quanthashes can be considered Settys
and all Baggys can be considered Mixys [1ebeeb3]
+ Implemented `skip-all` option in &plan in Test.pm [14b6d5f]
+ Made it possible to use `.head(*-N)` (all but last N) [1fea495]
+ Made it possible to use `.tail(*-N)` (all but first N) [188b7b1]
+ Allowed `*` and `Inf` args to Array|List.tail [1b34ea6]
+ Made .Set, .SetHash, .Mix, .MixHash, .Bag, and .BagHash nodal [189615c][3e412b9][7025050]
+ Made `infix:<(&)>` a multi and added basic candidates [e8cb9a2]
+ Made `(-)` a multi [495f970]
+ Added default descriptions for Test.pm's `like`, `unlike`, and `use-ok` [4b915f7]
+ Made `is rw` on optional params throw a typed exception instead of generic one [8370675]
+ Made it possible to pass IO::Path to `is native` trait [9984080]
+ Implemented bypass of dependency resolution in the Staging repo
via RAKUDO_RERESOLVE_DEPENDENCIES env var [5b862a3][d4d6a99][2a0a2d3]
+ Merged Cursor into Match; in preparation of for future removal of Cursor [b7c036c][cdd625b]
+ [IO] Added more powerful features to IO::Path.extension [b1e7a01][15a25da]
+ [IO] Added IO::Path.add [40217ed][0b5a41b]
+ [IO] Implemented IO::Path.sibling [8bacad8]
+ [IO] Implemented IO::Handle.lock [214198b]
+ [IO] Made IO::Path throw when path contains NUL byte [e681498]
+ [IO] Implemented `:completely` param in IO::Path.resolve [6a8d63d][51e4629]
+ [IO] Implemented IO::Handle.slurp [f1b4af7]
+ [IO] Made IO::Path.dir a `multi` method [fbe7ace]
+ [IO] `$*TMPDIR` now has a container, so it's possible to `temp` it [b62d1a7]
+ [IO] Allowed IO::Path.z to be called on directories, to mirror .s [b6838ee]
+ [IO] Implemented IO::Handle.spurt [a5800a1]
+ [IO] Implemented &indir [a0ef2ed][ca1acb7]
+ [IO] Implemented IO::Path.concat-with [966a7e3]
+ [IO] Made `&*chdir` return new `$*CWD` [5464b82]
+ [IO] Expanded accepted arguments from Cool to IO() in &spurt [099512b]
+ [IO] Implemented :parent in IO::Spec::Cygwin.canonpath [0c8bef5]
+ [IO] Made IO::Path.lines lazy again (reversal from last release) [90da80f]
+ [IO] Re-added :close param to IO::Handle.lines (reversal from last release) [90da80f]
+ [IO] IO::Handle.lines($limit, :close) now closes the handle when $limit is reached [90da80f]
+ [IO] Added IO::Pipe.path and .IO methods to return an IO::Path type object [d46e8df]
+ [IO] Made IO::Path.mkdir return invocant on success [c01ebea]
+ [IO] IO::Path now `does` role `IO`. This exists solely as a future compatibility feature with
`IO()` coercer type check and provides no new methods [87987c2][c95c4a7][fd503f8]
+ [IO] &chdir and IO::Path.chdir now support :r, :w, :d, :x args for
file tests and default to :d test only [a0ef2ed]
+ [IO] Changed coercers from Str() to IO() in `&*chdir`, &chdir, IO::Path.chdir, &rename, &move,
© to avoid limitations of IO::Path.Str and race conditions with `$*CWD`
[2483d68][a0ef2ed][ff97083]
+ [IO] Changed a Capture of remaining args to be passed to the delegate IO::Handle
methods, instead of the internal .open call in IO::Path .lines, .words, .comb,
.spurt, and .split [099512b][90da80f]
+ [IO] The following now return Failures instead of throwing: &chdir, `&*chdir`, &spurt,
IO::Path.spurt, IO::Handle.spurt, IO::Path.slurp, &symlink, &link, &rename, &move, ©
[a0ef2ed][2483d68][5464b82][c13480c][da1dea2][ff97083]
+ Removals:
+ Removed unused $.pid from Proc [5b8d4c2]
+ [IO] Removed &mkdir candidate that creates multiple dirs [0d9ecae]
+ [IO] Removed IO::Path.abspath [cb323d5][a432b3d]
+ [IO] Made IO::Path.new-from-absolute-path a private method [7f73f92]
+ [IO] Removed vestigial IO::Path.pipe [a01d679]
+ [IO] Removed unused Capture in signatures of some .IO coercers [0c7e4a0]
+ [IO] Removed IO.umask method [87987c2][fd503f8][c95c4a7]
+ [IO] Removed :bin argument in IO::Handle.Supply; now uses handle's mode instead [184d499]
+ [IO] IO::Handle and IO::Socket no longer `does` role `IO` [87987c2]
+ [IO] Removed .chmod, .e, .d, .f, .s, .l, .r, .w, .x, .modifies, .accessed,
.changed, .mode, and .watch methods from IO::Handle [36ad92a][50aea2b]
+ [IO] Removed &tmpdir and &homedir
+ [IO] :$test param on &chdir and IO::Path.chdir is now deprecated
and will be removed in 6.d language [a0ef2ed]
+ Efficiency:
+ Made .Set/.SetHash.clone about 250x faster [d673ea7]
+ Make Baggy (&) Baggy about 80x faster [e9a3075]
+ Made Mixy (&) Mixy about 60x faster [03ef4be]
+ Made Str (elem) Map / Map (cont) Str 50x faster [a8c6eca]
+ Made Setty (&) Setty about 40x faster [89b5d65]
+ Made Setty (-) Setty about 40x faster [49c0ab6]
+ Made Baggy (|) Baggy at least 40x faster [4facf10]
+ Made Mix.BagHash and Mix.Bag coercions about 28x faster [2d8ac1e][af50e06]
+ Made Setty `(<+)`/`(>+)` Setty at least 25x faster [224e40f]
+ Made Mix.MixHash coercion about 25x faster [de983bc]
+ Made Map (|) Map 15x to 20x faster [9470d1c]
+ Made Setty (|) Setty about 25x faster [49807eb]
+ Made Object Hash.Set(Hash) coercion 12x faster [fb5d726]
+ Made .invert about 10x faster [7ea0f66]
+ Made Baggy coercion to Set|SetHash 10x faster [f947a19]
+ Made @a.first(Foo) 6x-10x faster (also affects many set operators) [9671ffe]
+ Made Iterable (|) Iterable about 9x faster [80062b0]
+ Made Set.WHICH about 8x faster for 50 elem Sets [167a0ed]
+ Made Set.SetHash coercion 12x faster [2731087]
+ Made coercion of Map to Set(|Hash) about 8x faster [4683e83]
+ Made Setty coercion to (Bag|Mix)Hash 7x faster [6686abb]
+ Made Map (&) Map about 7x faster [605e9e9]
+ Made Baggy `(<+)`/`(>+)` Baggy at least 6x faster [928a406][0672082]
+ Made Mixy `(<+)`/`(>+)` Mixy at least 5x faster [38b341a][0672082]
+ Made (cont)/(elem) 25% to 5x faster for QuantHashes [5b7ef3e]
+ Made Setty.hash about 4x faster [10fe02a]
+ Made Setty.pick/SetHash.(grab|grabpairs) 4x faster [6c9f31b]
+ Made Iterable.Set(|Hash) about 4x faster [f849df3]
+ Made m:i// regex matching 1.8x-3.3x faster [3e275dd]
+ Made Enum.ACCEPTS(Enum) 2.9x faster [17d34cd]
+ Made Iterable (&) Iterable about 2x faster [0fc3751]
+ Made internal nqp::index 2x faster, affecting many methods that work with strings [f1fc879]
+ Made case-insensitive regex 2x faster [822566f]
+ Made Baggy.new-from-pairs 1.5x faster and use less memory [ff52b74]
+ Made concatenation with control chars at end 30% faster [027aa54]
+ Made Baggy.new, bag(), and mix() about 25% faster [ae3ff5c]
+ Made Iterable.flat about 20% faster (also affects `*@foo` slurpy params) [f532f81]
+ Made Numeric.ACCEPTS(Any) about 15% faster [89457f8][e0e0800]
+ Made Hash.Bag about 15% faster [e7e97c7]
+ Made generic handling of `(<+)` and `(>+)` about 15% faster [5ae4549]
+ Made Set.new(42) about 8% faster and use less memory [fb60621][1471527]
+ Made Set.new-from-pairs about 4% faster for Pairs [213a72c]
+ Made Any.unique a few percent faster [6060bd3]
+ Streamlined tai/epoch conversion / leap-second check [dcebce4]
+ Added fastpath for `infix:<(|)>` with empty list of args [e24980f]
+ Made multiple memory use reductions in internals in MoarVM [d0924f1]
+ Made Grammars pre-compute their NFAs during precompilation [064b585]
+ Improved FSA which gives better multithreading performance [20af51f]
+ [IO] Made IO::Spec::Unix.split 36x faster [4fdebc9]
+ [IO] Made IO::Spec::Unix.catpath 9x faster [55abc6d]
+ [IO] Made IO::Spec::Unix.join 8.5x faster [55abc6d]
+ [IO] Made IO::Spec::Unix.is-absolute about 4.4x faster [4eef6db]
+ [IO] Made IO::Spec::Unix.catdir 3.9x Faster [0111f10]
+ [IO] Made IO::Pipe.lines 3.2x faster [0c62815]
+ [IO] Made IO::Spec::Win32!canon-cat 2.3x faster [0e36bb2]
+ [IO] Made IO::Path.child 2.1x faster on `*nix` [55abc6d]
+ [IO] Made .IO.slurp about 2x as fast [b4d80c0]
+ [IO] Made IO::Handle.open 75% faster [4032953]
+ [IO] Made IO::Spec::Unix.rel2abs 35% faster [dcf1bb2]
+ [IO] Made IO::Path.slurp 12%-35% faster (for small files) [c13480c]
+ [IO] Made IO::Path.new 7% faster when creating from Str [ae5e510]
+ Assorted internal improvements to CPU/memory use [1132b1a][a123eb3][1bacc61][c3c849e]
[fa9aa47][666ce35][e7e97c7][213a72c][fab9f87][9671ffe][08a9735][8a4df162][b64f210][1277fb5]
[463898a][3f36508][65037c3][e408e47][6ef7b59][a4b30dc][7875eaf][d793e21][bf63719][9a2446c]
[0dbe451][1867099][2694f5d]
New in 2017.03
+ Fixes:
+ Made IO::Path.lines non-lazy so it can always close the file handle [0083c4f]
+ Fixed unwanted container re-use in `infix:<x>` [5b7b7fb]
+ Made Emoji_Modifier_Base return Bool instead of int with uniprop [2125d4d]
+ Fixed JIT rounding bug for negatives in nqp::div_i [deac603][f73d984]
+ Fixed failure in `\c[]` with non-ASCII names [deac603]
+ Fixed issues in `infix:<div>` optimization [deac603]
+ Fixed .split(...:skip-empty) not skipping with empty strings [fc86084]
+ Fixed duplicated .done/.quit on Channels in Proc::Async on exit [c4a4c84]
+ Fixed error handling when Proc::Async process failed to spawn [f73d984]
+ Made sure `infix:<xx>` always returns a Seq [1eb7b1f]
+ Partially fixed `infix:<xx>` being non-lazy [f190f24]
+ Fixed SC collision when loading identical modules from
different dists [254f76a]
+ Fixed CURI loading of modules with identical short-names [c1a0fa7]
+ Fixed SEGV in exception handler resolution in sub/INIT/return [b2eb115]
+ Fixed SEGV on `xx` with a huge repeat values [1cafc67]
+ Fixed SEGV on chars with a huge number of combiners [1cafc67]
+ Fixed SEGV when `Scalar` type object is processed by `unique` [cfe0e04]
+ Fixed .comb(Int) failing to work on Cool [a08e953]
+ Fixed hang in dispatch of .lines/.words when given wrong args [7425737]
+ Fixed cases of lack of panic upon with quantifiers in regexes [91a4ac5]
+ Fixed broken thunking of infix:<notandthen> [5e6f30a]
+ Fixed failure to thunk RHS on `or=`, `and=`, and `notandthen=` [3e88c41]
+ Fixed precision loss with `cmp` involving Rationals/Int [9e8ecb7]
+ Fixed crash in .Bool, .so, .not, .hash, and .elems on Baggy:U [e8af855]
+ Fixed crash in .Str on Bool:U [3de5fb2]
+ Fixed crash in IO::Special .WHICH/.Str [dd4dfb1]
+ Fixed install wrapper when no binaries are found [796b6a8]
+ Fixed crash when calling .sort on reified empty Array [8e250db][75e070f]
+ Fixed `Nil` being displayed as `Mu` in REPL [a274bdd][cd47e2a]
+ Fixed previous output silencing exceptions in REPL
[db70a1f][61a65ce][7f9235c]
+ Fixed loss of data when using a hash in assignment to itself [ae7bcf1]
+ Fixed IO::Path.e failing to detect changes on the filesystem [76f7187]
+ Fixed `infix:<eqv>` with Seq/List containing same elements [f9eb811]
+ Fixed CArray to pass NULL when for type object elements [26e6993]
+ Fixed GC deadlock when event loop worker thread was spawned [26e6993]
+ Fixed `:i` in regexes using lowercase instead of fold case [26e6993]
+ Fixed parsing issue with detached methods in `[β¦]` metaop [e1ebb50]
+ Fixed unwanted list flattening in triangle reduce [10f5f74]
+ Fixed Range.int-bounds for NaN and Inf end points [79f2681][16ef21c]
+ JVM backend fixes [b1def95][2f6d2c6][dc19892][cef41b2]
+ Various improvements to error reporting
[dc5fb20][d66c382][b11dc88][6cb9be2][3bf734f][26e6993]
[20fa14b][127338a][1934a56][27dc7b1][1e24666]
+ Additions:
+ Made symbol imports of `require`d modules lexical. For more information,
see http://rakudo.org/2017/03/18/lexical-require-upgrade-info/
[63cf5ca][3e86d0f][5b98caa][6771dee][9da6de4][4fce405][030c4c5]
+ Added β€, β₯, β as Unicode versions of <=, >=, and != [5c68ea6]
+ Made it possible to hyper ops that return a Seq [e2db7b8]
+ Made `infix:<β>` keep RHS's .count and .arity and LHS's .of [032b283][cb149a8]
+ Made purity propagate up through meta-meta ASTs [68a40f7]
+ Made Proc::Async default to translating newlines [05add43][2973ccd]
+ Implemented Str.parse-names [5c1761a]
+ Added `$epsilon` argument to Complex.Rat/.FatRat [a4af702]
+ Fixed loss of precision in Instant.Rat [a4af702]
+ Implemented .FatRat coercer in Cool and Numeric [a4af702]
+ Added Mu candidate for `infix:<xx>` [e270a15]
+ Implemented Mu.iterator [81fcd1b]
+ Made sure Str.split always returns a Seq [f595733][8301a30]
+ Made List.reverse return a Seq [beda576]
+ [EXPERIMENTAL] Added support for Parameter.set_default [d6c95ea]
+ Implemented new internal braids API to make future optimizations easier.
This affects any slang modules that access `%*LANG`, `%*PRAGMAS`, and
`$*ACTIONS` internals using unofficial API.
+ Removals:
+ Removed IO::Path.Bridge [212cc8a]
+ Removed support for IO::Handle.lines(:close) agument [76a59cf]
+ Efficiency:
+ Made min/max/min=/max= about 3x faster [a9c5196]
+ Made .WHICH of numerous types about 1.8x faster [79bb179][65b0040]
+ Made case-insensitive regex match 20%-30% faster [5b6e0fb][f73d984]
+ Made triangle reduce right op with 2 params 2x faster [e114d52]
+ Made triangle reduce right op with 2+ params 1.5x faster [d04c47f]
+ Made IO::Handle.lines about 10% faster [9019a5b]
+ Made IO::Handle.getc about 3% faster [9019a5b]
+ Made reduce chain op about 5% faster [9cec31a]
+ Made IO::Handle.lines about 10% faster [9da50e3]
+ Made List.reverse 0%β30% faster and reduced memory pressure by up to 70%
[beda576]
+ Made loops/maps with NEXT phaser about 5% faster [80e0bce]
+ Made `infix:<%%>` about 14x faster for Int,Int case [755e25b]
+ Made `infix:<%>` about 8x faster for Int,Int case [5ec2517]
+ Made Junction creation about 20% faster [fafe663]
+ Made callframe() about 20% faster [7966dad][9a74cd0]
+ Made meta reduce with right-assoc. op 30%β200% faster [60a8f9e][2cf9b53]
+ REMOVED caching of IO::Path.e results to fix unwanted behaviour [76f7187]
+ Assorted internal improvements to CPU/memory use
[b2e0ac0][25a3cc5][b61b3c7][829762a][45b3af8][7010ae9][556db9d][9e9a4ad]
[8e8cd14][7556498][adb6f87][9a109c9][3de7b08][b283e52][0be7247][74573d0]
[79d5670][313e7b2][e723e00][5843ee6][7c279c3][318f8ee][4ef1e69][9d497e9]
[b597398][4bc826d][9da50e3][2a2e460][0633f03][d444f65][f94a2c7]
New in 2017.02