/
ChangeLog
4638 lines (4512 loc) Β· 245 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 2018.06:
+ Fixes:
+ Fixed numeric values in Signal enum [aa622a95][852c1bd3][f2b50378]
[774ec5a0][189c5a8a][b19cc4bd][c661c03c][5603771f][bfcfa5da]
[7e5a862e][cd8d0445]
+ Fixed premature .perl chopping in X::TypeCheck [a79de429]
+ Many improvements to POD parsing [75430ac9][cb66dfcc][6f1b1cb6]
[e1e7e4c6][cc28ce37][e776ded7][54aa17c6]
+ Fixed code execution code in elided duplicate argument pair values
[fc57f9f0][73297600]
+ Fixed `use isms <Perl5>` for `rand` [d1d31fd5]
+ Fixed miscompilation of chain ops [c10b1eec]
+ Fixed home path when setting up repositories [91b211ac][d06e70c3]
+ [JVM] Implemented canStore in RakudoContainerSpec [704b893c]
+ Additions:
+ Made "is DEPRECATED" work on attributes with auto-generated
accessors [7e3aa2f2]
+ Added :api<something> in preparation for full zef / ecosystem
support [affc218f]
+ Added .perl method to Distributions [18f9de61]
+ Removals:
+ Removed backwards compatibility with installers using the
old Distribution class [2acbe7fc]
+ Moved pack/unpack support to lib/experimental.pm6 [9472fdfd][edc6ac6b]
+ Renamed `use p5isms` to more general `use isms <Perl5>` [4109ce36]
[c80ea2f2][56dbd735][148d7c56][95aa77c9]
+ Efficiency:
+ Streamlined creation of HyperWorkBatchIterator [20bf96f9]
+ Made .minpairs/.maxpairs about 25% faster [788cda94]
+ Privatized a lot of methods for (now) better performance
[c940a0ed][ec5e51c8][7284a30f][c49bbc93][0ac5c4ff][09a9bbc0]
[caafcb38][0c265d49][48864774][0e835805][5621b262]
+ Added spesh plugin support [192083f6]
+ Made private method calls 6.6x faster (spesh plugin) [51ff83c7]
+ Made qualified method calls 12x faster (spesh plugin) [f6f43d58]
+ Internal:
+ Moved &DEPRECATED to Rakudo::Deprecations.DEPRECATED [472f6e48]
[89a4cf0d][afbbf8f8][2fa08d5e][874ead51]
+ Turned Hash.BIND-KEY into multis [1c1acbc2]
+ Various NQP β PerlΒ 6 fixes [e4ecf5e5][23af3491][7bc6e46f][cbb5ee5f]
New in 2018.05:
+ SPECIAL NOTES:
+ Corresponding MoarVM release introduces hash randomization to
prevent DoS attacks. Among other things, this may affect user
tests that expect keys or values returned from a Hash object to
be in the same order every run.
+ Fixes:
+ Made .assuming available in WhateverCodes [6e8dc6f1]
+ Fixed truncation of seconds in DateTime.later/.earlier [656ff77b]
+ Fixed spurious unhandled Failures caused by require [666eb3ab]
+ Made IO::Handle.seek to always return True [24a90774]
+ Made CallFrame skip over thunk-like things [0d216bef]
+ Fixed unwanted warnings in X::NYI when $.feature is omitted [a7c03101]
+ Fixed WHICH of non-reduced Rats [8cd70d1e]
+ Fixed smartmatch exception explosion [97d5d83e]
+ Made code detection in subsets more robust [ede507b7][febcb917]
+ Made build of BOOTSTRAP.moarvm reproducible [39227d54][56c03572][6ae0526f]
+ Simplified Signature.perl/gist for unnamed invocants [71159bed][f14dc6bd]
+ Made it possible to call .perl on uninitialized native strings [b12fba38]
+ Made .gist on native / non-native arrays similar [4e88fa15]
+ Fixed overzealous X::Syntax::NoSelf throwage [9b915f09]
+ Fixed smartmatching an Iterable type object [385308d3]
+ Fixed unexpected POD table failures [2cda7a19]
+ Made pass() and flunk() more consistent [82b3a894]
+ Fixed distribution path format on windows [4cacbf66]
+ Various fixes for the JVM backend [7d2940ee][cc57d06a][be35160d]
+ Various improvements to produced messages [7b336519][0de80523]
[b4973115][22d08069]
+ Additions:
+ Added shapes support for HAS scoped attributes [4c3807c5][7847768c]
+ Added NativeCall CArray.allocate method [a02131d5]
+ Added "use p5isms" pragma to stop complaints about PerlΒ 5 traps [8ae82a55]
[8ccda189][7bde26fc]
+ Removals:
+ Removed some 5to6 error messages [3f350912][4ac9915e]
[5ce24929][cf35764d][44538f50]
+ Build system:
+ Fixed Configure script to not assume gmake location [abd88a94]
+ Efficiency:
+ Made Int.lsb 2x faster [9e2dacd4]
+ Made Int.msb 2x faster [775a42ee]
+ Made Range slices on native arrays about 23x faster [67a31600]
[f038e12d][09cbe679][c69179cc]
+ Made .splice on native arrays up to 2x faster [ee1ba153]
[4ab2f2cd][da646aa2][e0ad668e]
+ Made Rat / FatRat stringification up to 200x faster [e0dca0cc]
+ Made creation of regexes up to 30% faster [32a78996]
+ Made @a.splice(offset) about 20% faster [8d12d5b4][a5d46b42][8bde96d2]
+ Made module loading 10ms faster by avoiding IO::relative [849ba56d]
+ Other minor optimizations [d53fe90a][aa18140e][776ff354]
[ac6e26e8][073a7f50][54e390f5]
+ Internal:
+ Introduced nqp::slice op [090432bb]
New in 2018.04.1:
+ Fixes:
+ Fixed hang in parsing of nums with huge exponents [4e38bc1f]
+ Fixed denormals and precision issues in num parser [cc93bc9a]
New in 2018.04:
+ Fixes:
+ Fixed bug mapping windows1252/windows1251 without a dash [c9c5f341]
+ Made sure .encode and .decode accept the same encoding aliases [5298b7aa]
+ Fixed `infix:<o>` identity function [87e43c4a]
+ Made builds reproducible [16daf02f]
+ Made build of NQP modules reproducible [2c882d96]
+ Fixed explosion in List.combinations(Range) [624b3f0c]
+ Consistified &combinations/&permutations with method forms [29dcde10]
+ Made .produce/.reduce nodal [08eb465f]
+ Fixed Channel iterator failing if Nil was sent [bdd8143e]
+ Fixed value drift & precision issues in Num creation [8422d7b4][17446fc1]
+ Made sure that values of `once` blocks are deconted [f97398cf][53c02d85]
+ Made Supply.interval a serial Supply [7572983a]
+ Fixed bug with iteration of negative empty character classes [20495f09]
+ Fixed crash in loop + FIRST + LAST when it's wanted [cfc6b109][879b3340]
+ Fixed error for .native-descriptor on closed handle [5d554ba3][c6c25159]
+ Fixed QAST::Block migration in `with` + loop-comprehended `for` [fc192212]
+ Fixed `infix:<->($n)` to not negate [edbbc442]
+ Fixed crash in double-sink `for ... { Package::foo }` [4402839a]
+ Fixed thinko in CURR conditional [9bcc8e52]
+ Fixed crash with unknown column in RAKUDO_REPORT_COLUMNS [c015f08d]
+ Fixed substr to handle non-int arguments properly [f0c85125]
+ Fixed hang in IO::Socket::INET.lines [6e37c7f0]
+ Made Setty.perl consistent with Baggy/Mixy.perl [c0212af9]
+ Fixed set difference for Bag (-) List [344a64e9]
+ Fixed @a[]:v and @a[*]:v to filter out deleted elements [08b951c8]
+ Fixed precision/value drift with Complex literals [43026662]
+ Fixed crash in NativeCall when calling into a C++ library [db8b218f]
+ Fixed dispatch with IO::Socket::INET.new: :!listen [ceeb3a00]
+ Fixed unwanted consumption of Seqs [9e6ae276]
+ Fixed proto .arity/.count for all core multi subs [4b5d36f3]
[6a65ed02][d17f7535][859178b0]
+ Various improvements to produced messages [db7361a3][299dc6fc]
[54137e8b][6c2f2445][5fee5891][91fe6b63][6cdee60d][4b2512a2]
+ Additions:
+ Added support for "api" adverb when loading modules [32c5c83c]
+ Added strict, replacement options for IO::Handle, Str.encode
[6458811a][2760753d][37fc2883]
+ Added ShiftJIS decode/encode support [646f9211][f4863601]
+ Added a way to get child process ID via Proc::Async [1321917d]
+ Added Proc.pid [05816139][5ad102ea]
+ Added fails-like routine in Test.pm6 [4abfd4ca]
+ Added Array.grab [a0e5e880][a393ff69]
+ Added support for "const" marked return values in C++
functions (NativeCall) [9b3a0b6f]
+ Added gist methods to AbsolutePath, NQP and Perl6 repositories [8f3237c2]
+ Build system:
+ Added missing tools/build/check-nqp-version.pl [26518055]
+ Fixed build when using a different nqp than the one in $PATH [eb71edcc]
+ Fixed the Makefile on Solaris [affeaa79]
+ Fixed build system not noticing change to BOOTSTRAP.nqp [2ae3f484]
+ Efficiency:
+ Made HyperIteratorBatcher.produce-batch 3x faster [684a50d1]
+ Made .hyper.grep batch producer at least 23% faster [3e9b705e][1c4eebe5]
+ Made Iterator.push-exactly about 8% faster [9d784dd0]
+ Made `grep :kv .pull-one` 1.5x faster [c40f0254]
+ Made `grep :p .pull-one` 1.5x faster [5db9ebc4]
+ Made `squish :as .pull-one` 1.5x faster [d2c88bcc]
+ Made `squish() .pull-one` 1.6x faster [c41b79c0]
+ Made `grep :k .push-all` 1.5x faster [e3aef509]
+ Made Blob/Buf comparisons up to 30% faster [9ffb06b2]
+ Made Capture.FLATTENABLE_(LIST|HASH) 30% faster [768cf9f2]
+ Made List cmp 20x faster [0d7b42fb][126d8a84][082f8152]
+ Made ORDER() about 7% faster (affects `infix:<cmp>`) [32b3ddc7]
+ Made List.roll($n) 6% faster [c71ff664][7327a33a]
+ Micro-optimized the Awaitable role (up to 10% faster) [266f4a22]
+ Made List.pick about 30% faster [de68bfc1]
+ Made List.roll about 20x faster [c53fde3e]
+ Made Map/TypedHash.roll about 30% faster [6a6bb23d][5981f81b]
+ Made unwrapped `dispatch:<var>` curriable (`*.&uc` 7.6x faster) [f174d4b4]
+ Made `%h<a>:delete` and `%h<a>:exists` about 1.5x faster [d3eefa21]
+ Made `@a[1]:delete` and `@a[1]:exists` about 1.5x faster [6ad6dcbb]
+ Implemented optimized Iterator methods for `42 xx ...` [5f256bae]
+ Made copying native arrays about 9% faster [5ec4a5ab]
+ Made CurriedRoleHOW.accept_type 1% faster [8c265f9b]
+ Made `my int @a = ^100` about 40% faster [e8ec81db]
+ Made int(8|16|32|64)/num(32|64) array initialization 9x faster [40815d16]
+ Made `my @a = ^100; my int @b = @a` about 9x as fast [b5318e6e]
+ Made native array iterator about 1% faster [a2d8c96b][bd238a7c]
+ Made native array.splice up to 47x faster [d1b3809a]
+ Made native array.STORE(Seq) about 2x faster [72473bd0]
+ Made native array.splice(offset,size,Seq) about 13x faster [a39d382e]
+ Made %h.head 2x faster [91421874]
+ Made Complex.Str 5%-10% faster [5ef05612]
+ ThreadPoolScheduler optimizations [4ef28a7b][8f4a5a53][d4254216]
[d0fbe744][c71fa17d][3468f690][637147af][17ca56b4][5bab5865]
[aaacc5a4][ae91db88][f8c44164][924310c5][b22421e7][ac5cf2bb]
+ Other minor optimizations
[dc921b60][caacb2e4][67f91572][739fd9c9][f4255d5a][6f42d19e]
[828cd4a8][232197da][8ce20ae1][75b6651b][18252b60][31b072c6]
[ec265706][153e892d][0344925f][81dbe4cb][348e6f45][6a66b359]
[c2eae41c][9f8231c6][72dfddfa][24ddff73][eefccc18][0756076b]
[a3da6ac5][8e2ee64e][29b7f464][111f67a4][7c510611][82b19b1f]
[74b75599][850765f7][1f98b1bb][617624f5][a53811cd][d9869e53]
[7b5ccaa6][518f2c31][d393b828][12a38f1f]
+ Internal:
+ Many improvements to .hyper and .race [7d978fb2][22849592]
[34b294d2][ae0cbc30][7af3b648][9532e9c3][d75f4cfc]
+ Moved proto method splice: Mu -> Any [88d61bd9]
+ Β±Inf/NaN are now treated as any other Num [e348b8f2]
+ Made sure native array splice won't splice from itself [28629905]
New in 2018.03:
+ SPECIAL NOTES:
+ Str.comb(Regex) was fixed to return a Seq instead of a List,
making Str.comb always return a Seq. Code relying on the
specifics of the previous behavior might require some tweaks.
+ Fixes:
+ Fixed various sleep() issues [e3c4db73]
+ Fixed <0/0> to be False [748d1a57]
+ Improved Test.pm6's like/unlike [7c1a6cac]
+ Fixed failure to sink last statements of `for` loops [4c5b81fe]
+ Removed unneeded candidates in &say and ¬e [3a0d53ce]
+ Made Str.comb(Regex) return a Seq [1da07530]
+ Fixed &say and ¬e to not auto-thread [b62e0eb7][355b2eb5]
+ Differentiated precomp NC sub setup markers [b27c548f][ec5edcae]
+ Moved chrs() logic to List.chrs and made chrs() the gateway [1894eace]
+ Moved ords() logic to Str.ords [61176475]
+ Fixed bug on ops with subclasses of Range [440fceac]
+ Fixed wrong assumption of Junction execution order [207313be]
[89f33bbe][e9cff795]
+ Fixed cases of mis-scoped QAST::Block of regexes [fb882d49]
+ Fixed .grep(Regex) on Hyper/Race Seqs [5e462e12]
+ Fixed &dd to not mark Failures as handled [7773c3d5][65874b15]
+ Enabled native-int candidates in bitshift operators [29fdb75a][3d735975]
+ Made Int:D (elem) Range:D be independent of size of Range [de30c162]
+ Straightened up `$/` handling in Str.subst[-mutate] [874fcdda]
+ Fixed Metamodel shortname assignments [ce08683f]
+ Fixed Pair.clone [5031dab3]
+ Improved Pod::To::Text to indent tables [57af8b84][dffbd68a]
+ Fixed precomp files of NativeCall users having absolute paths [51c4d4d8]
+ Made sure `samewith`-using routines aren't inlined [e12e305a]
+ Made sure MERGESORT-* don't leak low-level types [511bec0a]
+ Fixed code generation bug affecting private methods calls in roles
where the target private method used a role parameter [21997b62]
+ Various improvements to produced messages [a4f9090e][235d3f1c]
[3b350739][5ae1bbe1][52176c3c]
+ Additions:
+ Implemented IO::CatHandle.handles [d5baa036][eb064922][639c6da0]
+ Made signal handlers cancellable [db010b84][a31579c7]
+ βdatagramβ-oriented API for UDP sockets [67f36e36][b406b320][dd2c9019]
+ Added support for replacement and strict setting in Buf.decode [0d796fb0]
+ Added support to Encoding::Decoder to use replacements [ea92f550]
+ Removals:
+ Removed no longer used DELETEKEY helper sub [6f2cbcf7]
+ Removed Range.clone-with-op [440fceac]
+ Efficiency:
+ Optimized Uni.list to reify 15x faster (on 10000-char str) [8b7385d8]
+ Made Str.perl 43x faster for some chars [ba6b84bd]
+ Optimized Str.perl by making uniprop(Int, Str) 2.7x faster [6ac56cc0]
+ Made Rational.Str 28% faster [008b9279]
+ Made internal RETURN-LIST sub faster for common case [3a4056bf]
+ Made Num.Bool 9x faster [2a42cdbb]
+ Nano-optimized supervisor thread sleep [4617976d][85ad0eba]
+ Added special cases for 2-tuple infix:<,> that are 10% faster [b6e5d7fc]
[48c46fa7][90079357][ddf00078][d5a148c0]
+ Made Channel.receive/receive-nil-on-close 2.5% faster [4054ca68]
+ Reduced the number of DYNAMIC calls when hypering [598832cc]
+ Made Channel.poll 2x fast [eff92f94]
+ Made HyperIteratorBatcher.produce-batch 3.6x faster [8026cef8]
+ Many HyperToIterator speedups [0194ef46][6232d29e][34889beb]
+ Internal:
+ Turned many subs into multis [16b57af5][55bc053c][182b7ea5][63775474]
[c2d0d3ac][cdb45fa5][4f473867][bf5e3357][5210d702][b704a175][4c67498f]
[7d72387b][838782b7][abfbd1ab][6d6a69fd][c1d2a5bc][4da2418a][62fc3118]
[d3f50dba][b9f40fea][dfef8283][9a0a7bdd][32b08035][51fccdfe][474c512c]
[4f04698f][423e7cc0][ae4204c5][8cba0846][1b94ff6f][5490bacd][e1b711ae]
[a23684f3][804c009a][f5b23a55][4513c279]
+ Marked many subs as βonlyβ [1be26afb][25bedf88]
+ Marked set ops as βpureβ on their proto only [af353894]
+ Made Unicode operators aliases of corresponding ASCII subs [254f477e]
[aadd3c12][bc52fefa][a2100ec7][2e7a0e59]
+ Added nqp::getppid [fed92e3b]
+ Many profiler improvements, it now supports multi-threaded programs
[fed92e3b][a5a6c778][dd2c9019]
+ Made substr() just a front for Str.substr [7835652d][b688a6f3][15ccfd33]
+ Made substr-rw() just a front for Str.substr-rw [038837f8]
+ Moved substr/substr-rw catcher methods from Any to Cool [aad79f8a]
+ Remote debug support on MoarVM [ffeff74e][e32bda21]
New in 2018.02.1:
+ Fixes:
+ Fixed Whatever curry QAST::Block migration in stmt mods [5270471c]
New in 2018.02:
+ Fixes:
+ Fixed `no worries` pragma [f5b4d89f]
+ Fixed IO::Socket::Async losing :$scheduler in .print-to [7c451514]
+ Fixed postconstraints in `my (...)` being ignored [3745eff1]
+ Fixed optimizer crashes in `map` with certain args [f3efe5e6]
+ Fixed IO::Handle.get on TTYs blocking after EOF [359efef7][af4dfe82]
+ Fixed crash with colonpaired variable declaration [a35cd4e6]
+ Fixed crashes in degenerate .tail(Callable) [ba675971]
+ Fixed crash in `temp`/`let` with parameterized hashes [0a32e51b]
+ Fixed Hash.clone and Array.clone losing descriptor [0d7c4fe8][45560ac9]
+ Fixed `let`/`temp` on hashes losing Nils [8c4c979e]
+ Fixed crash in Any.skip(Callable) [8efba3a8]
+ Fixed crashes with native types in conditionals [d1a48efc]
+ Fixed many issues with block migration in thunk gen [1ee89b54][31ab8683]
+ Fixed "No such method 'prefix'" when there's no HOME directory [b6a7d7f6]
+ Fixed buf8 punning happening at INIT time instead of BEGIN [c6cc673d]
+ Fixed type constraint in Str.split's Seq [8afd791c]
+ Fixed Iterator.Rotor when cycle contains Whatever or Inf [ba7b4571]
+ Fixed crash with ENTER nested inside LEAVE [58de239c]
+ Fixed wrong error in REPL with none Junctions [2c36ab2e]
+ Fixed semantics of :b quoter tweak [deffe54b]
+ Fixed error when throwing error during setting compilation [c820e4be]
+ Fixed crashes with compile time evaluation of Whatever curry [7c1f0b41]
+ Fixed crash in Proxy.perl [902f45f5]
+ Fixed encoding of βΊΛΕΕΎΕΈβ’Ε‘ with windows-1252 (Latin) encoding [4507a565]
+ Fixed state vars in `do`-ed loops [299e8526]
+ Fixed whatever curry with regexes [d80fc376]
+ Fixed crashes with compile time evaluation of `where` thunks [95f23a56]
+ Fixed broken 2-arity sort of 2-el list [2e65de29]
+ Fixed postfix whatever curry with another curry inside [e8c6c259]
+ Fixed empty compiler version when the git repo has no tags [382024e6]
+ Fixed migration of in-regex blocks [c0c7756f]
+ Fixed missing decont in `cmp` [114e3735][25c5c488]
+ Fixed drift when reusing lazy iterables for indexing [f330d7fc]
+ Fixed crash in parameterized constraints on attrs with .= [562edfc5]
+ Fixed REPL adding empty lines to the history file [24fab707]
+ Fixed Parameter.usage-name to omit leading * and ! [3c73099c]
+ Fixed Any.tail(Callable) violating Iterator protocol [2cc7b631]
+ Fixed .perl of handled Failures [b2a21fa9]
+ Unified List.roll/pick invocant specification [311ef07f]
+ Fixed multi-threaded precompilation [ac87ea2a]
+ Fixed issues in constant type declarations [f559c6d8]
+ Fixed `if` with slurpies on its block [ef1d22f4][dfb6d951][59556c70]
[4b7113fa][00af9ce2]
+ Improved SprintfHandler [d419afe4][4ac67e73][684b99ea][13406517]
+ Fixed unwanted curries with HyperWhatever type object [57a1aa7a]
+ Made Backtrace.gist more helpful [555db42a]
+ Fixed ($ = 42) vs ($ = "42").subst-mutate [e7af9a6a]
+ Fixed Cool.subst-mutate to only mutate if there's a match [61015526]
+ Made Str.subst-mutate always return a List on :g [77794a28]
+ Made Str.match(:x) consistently return a non-Slip List [829ea8e3]
+ Fixed return of multi-match options of Str.subst-mutate [e0d39321]
+ Fixed .Numeric/.Real on :U numerics and .Real on :D allomorphs [1dc1f038]
+ Various fixes for the JVM backend [a2499c90][1f223190][f2188e45]
+ Various improvements to produced messages [8ffbc43b][7f07f68f][34b3356f]
[de2d8296][1c894e41][d419afe4]
+ Additions:
+ Added windows-1251 (Cyrillic) encoding to the list of possible encodings
[c73cb78f][4507a565]
+ Added support for .= to init sigilless vars [8ba3c86e]
+ Added compile time LiteralType error for native vars [e930e253]
[63a1d25a][30b82b98]
+ Efficiency:
+ Made `$ where Type1|Type2|Typeβ¦` typecheck ~8x faster [43b9c829][264a1a27]
+ Many compunit speedups [5bd33669][6fa1e78f][c268f55c][5be174bb]
[b188cc82][838beab9][a9a9e1c9][00cde175][ed9b287c]
+ Made certain conditionals with natives 2.1x faster [d1a48efc]
+ Improved dynamic optimization of nativecast [3ed2fbd5]
+ Reduced startup overhead of file I/O and module loading [db1e067e]
+ Made `dispatch:<var>` call up to 43x faster [ff31f0a3]
+ Shaved off 10ms when loading a native library [86e926c7]
+ Made compilation up to 6% faster (for 3000-line files) [f4732164]
+ Made Whatever currier up to 2.2x faster [752bb8b3]
+ Made list assignment with roll up to 20% faster [65d6fe48]
+ Moved `$*PERL` initialization to BEGIN time to save runtime [bdb4d34d]
+ Made Version.new 82x faster [02d2e2ca]
+ Added native `num` post-inc/dec to pre- optimization [4a5cc2c2][13e6ed8c]
[888328ef][971d17c4]
+ Made `.=` up to 63x faster [abea3242][01237782][2ba7634c]
New in 2018.01:
+ Fixes:
+ Fixed IO::CatHandle.read switching handles too soon [dc800d89]
+ Ensured &await can handle flattenable Iterables [1a4df4e1]
+ Made Array.gist limit output to 100 elements [08539c43]
+ Fixed .[count|bool]-only of combinations/permutations [5eed2b00]
[cda4a4d7][2c27eeaa][d4f53ed5][19604c2d]
+ Made sure subclasses of List create consistent .WHICH [18557da9]
+ Fixed Range.pick/roll in light of degenerate Ranges [5c228333][55cb8f3d]
+ Fixed Whatever.ACCEPTS with Mu:U [89d85baa]
+ Fixed signatures that had Int when Int:D was meant [3e044dc7]
+ Guarded subbuf against negative ranges [24f4609e]
+ Fixed some export issues [38897d19]
+ Fixed Slip wrapping of quoteword with one word [ad684de3]
+ Fixed Β±Inf/NaN Num to Rat conversions [042cb741][c91bcc2a]
+ Fixed USAGE with subsets/where and variables with quotes [27fbd7ab]
+ Fixed .gist dumping too much output in some cases [de21da30][53a85080]
+ Fixed crash in `eqv` with conted Versions [72ee58e2]
+ Fixed issues with smiley-ed coercers [a177fa99][8dcf9dac][3947a4c1][354a3848]
+ Made sure Rat calculation does not use type objects [9910b393][9adc58c3]
+ Fixed handling of type objects in Date.new [1d034df8][dfaa2282][038b1ea7]
+ Fixed CURFS/CURI .perl output [9cf2f998]
+ Made sure hashes are not interpolated in regexes [f719a471]
+ Fixed explosions when hypering over Buf [7ba50d86]
+ Made &dd more resilient to low-level stuff [99923747][d0be53a1]
+ Fixed .head/.tail to take any Callable [b4007070]
+ Fixed .skip with WhateverCode [d034cb58]
+ Fixed operator chaining with negated operators [ba111cfe][14c2cdb3]
+ Disallowed binding into a List [eed54cae]
+ Fixed `--optimize` flag propagation in EVAL code [e509c1a9]
+ Fixed RatStr .succ/.pred explosion [631875fc]
+ Fixed silent failure when binding to map keys [6a3db334]
+ Fixed R::I::Rotor calling .pull-one too many times [4a82b4b6]
+ Fixed `need` with versions [7537f899][0cdd82a2][0a73f19a][4d5e097a]
+ Fixed the lookup of many core symbols [efdbfeca]
+ Made .range consistently a Str in OutOfRange exceptions [90246e65]
+ Fixed superfluous parsing of β [626991e0]
+ Fixed cf, sc, STerm, Upper, space and White_Space properties [49dce163]
+ Fixed many POD issues [14c28cae]
+ Various fixes for the JVM backend [4945dc40][4909430c][333efa0b]
[00b7832a][70c57c3a][1e8c9762]
+ Various improvements to useless use warnings [d30e5b1e][c6b7012a]
[64803b0a][ef2dc1b8][99da4a5a][00188757][e9c9dc46]
+ Various improvements to other produced messages [a04c6164][548dcf46]
[6d65cf4f][51e0aa09][82dbada3][e543c890][0444a2c3][e5b4f37f][900c1b59]
[96a3582c][5571d7f7][34160bf0][01ffd0f9][6a6470f9][e91159c5][5f7fdfdd]
[f02606ce][cad66b72][79600d69][2dc93ac3][4ec5936c][ad60b947][732a25c3]
[f8953ee8][ddbf07e8][fa136be2]
+ Additions:
+ Added Str.uniparse as an alias to Str.parse-names [2a8287cf]
+ Added Cool candidate for .is-prime [f01c50f1][23701966][b2b39bad][893d09ff]
+ Added compile time error for misplaced whenever in v6.d.PREVIEW [7672e34c]
[0ec8e088]
+ Removals:
+ Removed deprecation fudge for native type instantiations [e0af68a0]
+ Removed :$CWD param in IO::Path.dir [b3e73b64]
+ Removed :$buffer param in IO::Handle.open [f415d61e]
+ Removed MONKEY BUSINESS env var [ac2e50c8]
+ Removed UInt64 (not to be confused with uint64) [cf154355]
+ Build system:
+ Fetch tags too to avoid potential missing tags [d93f8053]
+ Efficiency:
+ Made adding integers to Rats 22% faster [418fc068]
+ Made Blob.subbuf 1.8x faster [5f48c069]
+ Made `else`-less `if`/`with` blocks 3.4x faster in some cases [1815c368]
+ Made DateTime creation about 1.6x faster [36d71a39]
+ Made Date.new about 1.6x faster [b7170f83]
+ Made use of faster typechecks (7.5x faster) [4c9b84f8][8f71b0e0][10cd405f]
+ Made operator chains up to 2.4x faster [b77d8756]
+ Made `infix:<x>` with bools up to 2x faster [f99943d3]
+ Made `infix:<xx>` with bools up to 16x faster [ca4fcaca]
+ Made |(1,2,3) xx 42 about 3x faster [014f1712]
+ Slightly speeded up adding of `whenever`s [7230b765]
+ Slightly optimized Array.ASSIGN-POS [6e13bfa2][86d91f2d]
+ Made `$a ~= "b"` 70% faster [5dd9ed10]
+ Made constraint checks Num/Int/Str literals 1.1x-10x faster [65d4876d]
+ Micro-opted exit_handler [0415bb5f][b5b6e23b][421504bd][21bc5916]
+ Performatized MetaAssign with MetaReverse [858b659f]
+ Made .sum on 2-element Lists about 30% faster [0af3f4d1]
+ Optimized `supply emit <arg>` [81fe7b82]
+ Optimized Supply internals [32fbefab][9086f4c4][2548c2c5]
+ Improved first touch of Array/Hash variables [eeb3cc72]
+ Optimized more cases of private method calls [b6a236b9]
+ Tuned Lock::Async code stucture [f36a1f4e]
+ Special-cased one top-level whenever supply/react [e5f412d6][2192ddd1]
[2dbc2bcb][e072474e]
+ Made Promise construction slightly faster [2ac1ceaa]
+ Assorted internal improvements to CPU/memory use [00797d07][2130c097]
[7a3d9ce6][9c0db1cd][fbf432f9][4804003a][229b03fd][163f275b]
[83a619ec][64de571b][773d2b9e][0dc4f731][cdb53afa]
+ Internal:
+ Introduced ValueObjAt, the .WHICH for value types [202459ce][4790587f]
+ Introduced Proc!set-status [7a4743be]
New in 2017.12:
+ Fixes:
+ Various POD-related fixes [41514235][11d90cac][061c36d6][2cd266fe]
[8ea7a46f][2c951798]
+ Fixed resolve of IO::Path for Windows [eed733e2]
+ Fixed β op to do HashβMix conversion through Sets [eacf9b27]
+ Fixed incorrect attribute name in X::AdHoc.new [3166400d]
+ Fixed Supply.zip() to call `done` when some supply is `done` [1d0dae86]
+ Fixed Supply.throttle() when the source supply becomes `done` [c8370f21]
+ Fixed silent failures on invalid `is export` values [1668b4f0]
+ Fixed many cases of enum creation [d9021cf1][754664ed][65301756]
+ Fixed crash when using allomorphs as enum values [fc52143b]
+ Fixed <:Digit> to match digits correctly [0339b0f8]
+ Fixed some Telemetry.EXISTS-KEY issues [f3b1289f][91798547]
+ Fixed gut spillage in pseudopackages [cd24b1c5][a82e0e7d][1c7d15d7]
+ Fixed introspection on Mixins to Code:U objects [e31a414b]
+ Fixed let/temp to be able to take Mu [75229976]
+ Fixed autovivification container issues with `no strict` [e5b49ce3]
+ Fixed shaped array indexing to accept non-Ints [00632edb]
+ Fixed List.new to not create containers [d80df073]
+ Fixed incorrect .count-only/.bool-only implementation [af9812fa][0e228fab]
+ Made sure each Seq.skip gets a new Seq [854c10c2]
+ Moved attribute settage inside the lock [8df8ce09]
+ Made print/say/put/note handle junctions correctly [07616eff]
[9de4a60e][8155c4b8][3405001d]
+ Fixed WhateverCode curries losing `use fatal` [31db3acc]
+ Various improvements to produced messages [d85585ea][9fd5042b]
[c9699ab2][1da698ab]
+ Additions:
+ Implemented TR/// [f6958624][3d2fa915][8b27166f]
+ Implemented .toggle [694f534a][78caeb6b][ca7d0483][e7c0a644]
+ Consistified &[but] and &[does] with non-roles [575d31e2]
+ Added While/Until iterators [2c1a2860]
+ Added proper Supply.Seq method [aa3c2c5b]
+ Efficiency:
+ Made multi-needle split setup cheaper [5929887c]
+ Streamlined INDIRECT_NAME_LOOKUP a bit [76158136]
+ Made &[-]/&[+] with Rationals 30%-50% faster [6c299bf9]
+ Made DIVIDE-NUMBERS 6%-15% faster [78aeaf46]
+ Streamlined Hash.AT-KEY [6601da5c]
+ Streamlined Array.Slip.AT-POS like Hash.AT-KEY [fe8312b7]
+ Streamlined Array.AT-POS for better inlinability [af29a227]
+ Streamlined List.AT-POS a bit [9a2f5325]
+ Made Array.ASSIGN-POS about 1.7x faster [c5afc97e]
+ Made R:It:ReifiedArray 15% to 30% faster [a974de9b]
+ Streamlined Array.iterator.push-until-lazy a bit [ae02bc29]
+ Internal:
+ Abstracted prefix:<temp|let> logic into R:I [47f23fc6][126d7b55][6fb5c8c8]
+ Implemented Sequence.Numeric [6061f0bc]
+ Various improvements for the JVM backend [0a24efc3][f40c3818]
[fbf7beca][928ada08][74a13ae1]
+ Added tests for previously resolved issues [20d67a3d][831dab14]
[1b0be0f6][062c27f3][1101fea1][fed56be2][47552282][ced4af66]
[d4ad6fa9][eaf609ed][04eb1da6]
New in 2017.11:
+ SPECIAL NOTES:
+ Main development branch changed from βnomβ to βmasterβ [f40babb8]
+ Fixes:
+ Fixed Lock.protect to no longer leak Proxies [be9e19ef]
+ Fixed R:I:JSON to handle recursive Exceptions [3cba6204]
+ Fixed .perl output of an empty Set/SetHash [af3624d4]
+ Made some attribute defaults throw NYI instead of silently ignoring
[9f54bc98][0973b307][6dab5aad]
+ Fixed quote lang cache regression [ad16c6fb]
+ Improved stability by always setting up `$*PID` [a1866b7b]
+ Implemented hypered nodality for all methodcall variations [3c4041ea]
+ Fixed combinations with * endpoints [bdc73563]
+ Made Range.sum sensible for -β/β endpoints [5eeb72a9][21efe96f]
+ Made multi sub(:@c is copy) { } work [be1e2879]
+ Ensured CLOSE phasers have correct outer chain [96557571]
+ Fixed segfault on Bag.new.pick(1) [fe1f8632]
+ Improved handling of %b spacing sprintf [b2fbf893]
+ Made .head and .tail only take WhateverCode [5a29a0ce]
+ Moved signal() handling to the timer worker queue [1bc9936a]
+ Fixed default Encoding::alternative-names [2f0da94c]
+ Various improvements to warnings and error reporting [142c1d65][fff43fd7]
[c9360203][497e0582][ad7c97df][88d67516]
+ Additions:
+ Channel can now be closed with sub close() [91543fe3][ef84aafc]
+ my %h is (Set|SetHash|Bag|BagHash|Mix|MixHash) now DWIM [1949a2bc]
[6ac2b15c][aab2b983][b6a4d5b5]
+ Implemented metamethod shorthand syntax [5c96d554]
+ Kernel.cpu-cores returning the number of CPU cores available [61af87bc]
+ Kernel.cpu-usage exposed basic CPU usage information [c4d373c5]
+ Telemetry module providing an easy interface to system state reporting
[cbd4f212][273168d7][3e175c83][7f154fe2][3dfaa2ae][59a59be8][52440486]
[b30916f3][b30916f3][f7d21b5d][ae1f0fda][f72ad227][4b4429cc][58249a52]
[f51a3efc][8a0eb7fa][bc00894f][e95b02f1][ccbfaaa0][2f963b14][c1867ba1]
[8e4d3248][0a809698][824a5dc2][dcf3e28c][0bdda086][a2ae00ed][86d541f4]
[474feb09][5e7dfe52][3b4f0c6c][7144dc29][73e1faaa][cf1742dc][91e00e68]
[96751ee8][7e00908c][d21c31e1][0dc4a0eb][c2baf95e][e1a1b8d8][b380230d]
[fccc7515][1c2c7d84][2f12bea1][4ed91ed6][fea5612c][360eb228][9344d35d]
[d5fc6cbb][3e4ef2e0][4d21ad67][0f2f0cd3][22939bc8][77142fdb][ab03b54c]
[fc9e7241][948a3fa4][f8e1a5fa][17db03eb][14e2016c][2dcefa1c][345fbf5a]
[b80d486c][3e4ccce9][86e9f44a][f87d8ef8][5f4b61b1][e5912337][de961b81]
[d6f1077d][ba49b343][1aa83a78][06cbe9c2][246f4101][d6a3a7a1][88a9cb25]
[9381ffbc]
+ Efficiency:
+ Made .sum on native num arrays 11x faster [b849622e]
+ Made INITTIME a bit faster [e00f705d]
+ Made interpolation of variables into regexes a bit faster [6bca84fa]
[c93dc9e6][fa8bc549]
+ Made Buf ~ Blob about 7x faster, Blob ~ Blob 1.8x faster [8b47adad]
+ OS thread exhaustion is now handled more gracefully [fe799a98][57374490]
[14fbb5e7][6d8ed287]
+ Other more general ThreadPoolScheduler improvements [e513f19d][6ac53e42]
[2cd568f9][6bf58921][6de66df7][6aa150db][09e038cd][a7972a0c][260e4a3a]
[a9b8854a][09492179][6959349e][697e4ecf][b386963a][5d0ccf73][bfcc43ec]
[87e87202][92543962]
+ Minor IterationBuffer improvements [c15e80de]
+ Internal:
+ ThreadPoolScheduler now keeping internal statistics, e.g. for Telemetry
[2c84f77e]
+ Thread now keeping internal statistics, e.g. for Telemetry [68b2891d]
[77048b6a][cb4d8b66]
+ Changed how Int.new gets rid of mixins [6cb7ebfb]
+ Normalized proto bodies [0edd0cc9][102fbd51]
+ Set no_inline when the dispatcher is needed [c1df0b1b][0ff32c7f]
+ Various JIT-related changes [3bd756f5][0a029db6]
+ Repository cleanup [028b7d22][5baede59][825a8b0d][6ec6f1eb]
+ Various improvements for the JVM backend [ac738b98][b2725c12][4849c733]
[d6cd0d2f][8b24bf5c][38f51db9][581edd58]
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]