-
-
Notifications
You must be signed in to change notification settings - Fork 372
/
ChangeLog
4960 lines (4831 loc) · 263 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.10:
+ SPECIAL NOTES:
+ This is the first Rakudo release that comes with an additional
JS backend. See `6pad` project for running Perl 6 code directly
in your browser.
+ Deprecations:
+ Deprecated gethostname() in favor of $*KERNEL.hostname [f7fa5185]
+ Fixes:
+ Fixed/improved divide-by-zero errors in
`Rational.floor`/`.ceiling`/`.Str` [a639fa9c][6d70346c]
+ Fixed semantics of `[Nil]` [88e6de22]
+ Fixed issue with custom `bless` method [64137bd2]
+ Made nativecall's `postcircumfix:<[ ]>` return containers [be2d4cb4]
+ Fixed hash descriptor when doing `Hash[Int].new` [9acbf000][ea710414]
+ `Nil` is now allowed in initialization and assignment of hashes
[f61ba41a][605bcb39][7e86d4e3]
+ Fixed ContainerDescriptor for arrays with a dimension of three [a2e78ec8]
+ Fixed indexing of shaped arrays with a dimension higher than 3 [0307c366]
+ `.in-timezone`s value is now coerced to Int [c8438e6a]
+ Stub methods from roles are now verified [fd5d5bdf]
+ Fixed double-closing of handles in `.lines` when `:close` and
`$limit` are used [6edb142f]
+ Fixed closing of handles in `IO::Handle.lines` when `$limit`
is used [c1c75740]
+ Consistified Rat.base to fail instead of throw [a804ab57]
+ Fixed enforcing of return constraints on multi method stubs [abba67b2]
+ Various improvements to produced messages [cc2fcc9a][560e94ef]
[bf10f4c5][243a2f01][7d02b949][9894eda5][0243275d]
+ Additions:
+ [6.d] Constructs `$()`/`@()`/`%()` no longer have any `$/`-related
magic [bb88a032]
+ [6.d] DefiniteHOWs' (type smileys) default default is now the base
type [38b198c9]
+ Zero-Denominator Rationals are now normalized on creation [671c4115]
[75ec2248]
+ Made `my @a is List = 1,2,3,4` work [2bdf2b35]
+ Using `is Type` on `@` and `%` attributes is now allowed [b537ce2e]
+ Added a BOM on `open` for utf16 filehandles [959b89cf][479348f3]
+ Added initial support for Unicode 11.0 [5c272ee4]
+ Pluggable `MAIN` interface refactored, documented and tested
[f234b9af][35f3d83d][7c9b2955][33c24153][8c3a4131][fbfccfa2]][341190e2][24413b5f[2c43d2bf]
+ Usage message now limits itself to partially matching candidates
[0d1be77e]
+ Added additional dashed variants for utf16le and utf16be [4307996a]
+ Added `Parameter.coerce_type` method [0243275d]
+ Added `Code.cando` method to allow for `.cando` on all `Callable`s
[45eeab78][69533b50]
+ Removals:
+ Removed --encoding support [bea08ec6][31b19d09]
+ Efficiency:
+ Made Hash.push/append between 1.2x and 1.4x as fast [12cfde2a]
+ Made `"".ord` orders of magnitude faster [b22edce4]
+ Made `==` with Rationals up to 1.55x as fast [c5a2eb81]
+ Made Rational `===` Rational 2.47x as fast [97e8413b]
+ Made many cases of `for (range-like things)` up to 150x as fast
[2dd02751][645eeb52][dfd6450d][49baea70][89787028][2af789d7]
+ Made `[42]` not allocate anything anymore [8c4546bb]
+ Made `[@a]` and `[1,2,3]` about 1.4x as fast [e430813f]
+ Made `Array.List` coercion 1.5x as fast [3d405e89]
+ Made `.isa` about 2x as fast [4e8740c8]
+ Made `infix:<%%>` 10.42x as fast on natives [3d161a56]
+ Other minor optimizations [464a86b1][ab83b9d8][8cc3d5d7][b107cda5]
+ Internal:
+ Made `make` an only [369068ae]
+ Added skip-one method to appropriate PredictiveIterators [e54885e5]
+ More things are now initialized at setting compile time
[06dfbf02][688cbac1][92735770]
+ Simplified initialization of `CompUnit::RepositoryRegistry`
[0425d927][8e1cd01a]
+ Introduced `IterationBuffer.List` [8c10da6a]
+ Made it not go through `.new` if we can `nqp::create` [84311b77]
+ Made sure `.STORE` only works on instances [9daac683]
+ Added `$*INSIDE-EVAL` to mark that we're inside an `EVAL` [73b7c603]
New in 2018.09:
+ Fixes:
+ Made native arrays throw when storing a lazy Seq [fc8c7f84][bb963a25]
+ Fixed smartmatching of Seqs against Iterables [d3cac14e]
+ Made it possible to emit Mu [3f10e2d1][db3768e3]
+ Fixed setting of `$/` when matching NDF [cf1df1d7]
+ Fixed prefix calls with `.:< ... >` on integer literals [ec366c30]
[1835f280]
+ `.Array` on shaped arrays now returns a proper `Array` instead of
dying [efbd58c8]
+ Fixed `.keys` on one-dimensional native shaped arrays [5a9105ae]
+ Made `Parameter.twigil` also work on dynamic Parameters [39f2d68a]
+ Made sure the decoder is detached when closing handles [b07874e0]
+ Made sure `X` handles empty lists on RHS [6c93fde8]
+ Various improvements to produced messages [d419a313][c8db35e3]
+ Additions:
+ Added a `PredictiveIterator` role for `Iterator`s that can
determine how many values can still be generated, without
actually generating them [3ffacb9f][5cbbcc6e][842d4b32]
[78ae9028][000ac81e][c2c9df1c][cdf65305][ad64c757][eefbe6e1]
[da663afd][e717e21b][ca5825b4]
+ Added `use isms <C++>` and make `use isms` assume all available
"isms" (now 'Perl5' and 'C++') [57f89278][c6c2b6c4][528def48]
+ Partially implemented Pod `#` alias for `%config :numbered` [b4bf1660]
+ Added utf16 decodestream and file handle write support [8fcebb86]
[e8a7564d][0bf909bb][d275ea09]
+ Efficiency:
+ Made `Str.words` about 3x as fast [b8f37bfc]
+ Made `Str.lines` about 2x as fast [3dd09be3]
+ Made `IO::Handle.lines` about 1.2x as fast [874ec002][d198c1b7]
+ Made `IO::Path.lines` about 1.1x as fast [1905838c]
+ Made `Str.chop(N)` about 5x as fast [07089e89]
+ Made `Str.(r)index(needle,pos)` about 1.2x as fast [5d1d792a]
+ Improved `.elems` and `.Bool` on `Seq` by adding
`count-only`/`bool-only` methods [89055755][86468e1e][070780e0]
[64ddacab][9738dfbf][d1e80dfe][9ff17367][b1c645ed][bd832061]
[708ff624][5f3c2bfc][2a011a0e][faed3a9c][e73e3ecc][78bebc7a]
[d970c2b3][f5ebad98]
+ Internal:
+ Moved some iterators from Range to `R::Iterator` [fcd45ff8]
+ Streamlined quoted words handling [92951168][ae739adf]
+ Fixed a bug in the optimizer where optimizations were
improperly combining [e436f4e5]
+ Simplified `Map.kv` iterator [6977973d]
+ Replaced use of `p6bool` by `hllbool` and `hllboolfor` [672196cd]
[20feda70][170ffd40][7e69c640][3272207a][f1f6825b]
+ Removed obsolete p6settypes extop [de4e8225]
+ Standardized use of proto's on `.STORE` methods [ed9b48de]
+ Removed EmptySeq [a4db33e7]
New in 2018.08:
+ SPECIAL NOTES:
+ Changed filenames and permissions of many scripts in the repo
(e.g. install-dist.pl is now install-dist.p6) [07b4100c][9d8b6600]
[c5c4ea38][59a6f7d2][248ee79c][906bec8c][683ae67b]
+ Deprecations:
+ Deprecated RAKUDO_EXCEPTIONS_HANDLER [5e1df41b][d2116efd]
+ [6.d] Deprecated `undefine` [72bac670]
+ Fixes:
+ Fixed .assuming on subs with slurpies [93a8ec66]
+ Fixed auto-printing of low-level (non-`Mu`) objects in REPL [9ea427a3]
+ Made `Map.list` return a List instead of a Seq [60447c62]
+ Made internal safely_stringify routine safer [0e2a7d93]
+ Made .perl of `(|)` signature a bit more idiomatic [24467ed6]
+ Fixed coping with failures to open a directory in internal
`DIR-RECURSE` sub [e9351cba]
+ Fixed preservation of newlines in pod blocks [c6433838]
+ Fixed big int values in `BagHash` [fd779109]
+ Fixed several crashes and bugs involving meta assign operator [b9b0838d]
+ Fixed roundtripability of `QuantHash`es [84f60ada][ddf496c7]
+ Fixed `.comb` on allomorphs with leading 0's [f8d6a3f4][72ccd432]
+ Fixed crash when doing EVAL :lang<Perl5> from multiple threads [66683080]
+ Fixed potential race condition in EVAL [80bbfbb3]
+ Fixed `Test`'s `diag` to no longer die on `Junction`s [5ec2c96e]
+ Fixed Cool consistency in arguments of &round [e547811a]
+ Fixed &prompt to convert numeric data to allomorphs [38d7f2a0]
[0275ea29][07b032d0]
+ Many fixes and improvements to the contributors.p6 script
[7a87b7f5][8fee8d48][c5cfbc64][f6c8159d][1197c3f6][ade83c86]
+ Made `Routine.perl` more verbose / precise [d6c161ba]
+ Added some missing `is rw` [6caf86be][832ccd81]
+ Fixed problem in concatenation of 2 `Junction`s [4ef8433a]
+ Fixed failure to set up encoder/decoder in IO::Handle via
`.encoding` call in certain cases/encodings [86846ac5]
+ Made it impossible to assign to a Map [fffe89c5]
+ Fixed `Map.WHICH` to reflect subclasses correctly [199d276b]
+ Gave PseudoStash its own non-value based .WHICH [bb5db6a8]
+ Fixed `QuantHash`.hash/Hash return values [76298204]
+ Made `Proc.command` return an immutable List instead of Array [925c1134]
+ Fixed `loop` to always return Nil [aff96bae]
+ Made an uncomposed class type-check against roles that have been added
[38d046fa]
+ Fixed IO::Handle.encoding to check if$!decoder was set up [edf81bfe]
+ Fixed `is required($reason)` [7c349b7e]
+ Fixed `Range.roll(*)`/`roll(N)`/`pick(N)` with big ints [b30800c8]
+ Removed `<?before>` token in `term:sym<multi_declarator>` [51e41da8]
+ [6.d] Reserved `:sym` colonpair on names of routines [a68784a6]
+ Fixed a ThreadPoolScheduler memory leak whereby certain usage
patterns caused it to build up an ever-deeper call stack, due
to continuation mis-use [bf514c15]
+ Fixed misscoping of blocks in whatever curries [85495890]
+ Made sure that onlystar Routines cannot be optimized away when
wrapped [434ede49][1188f801]
+ Made it possible to use `Array::` as a top level namespace
in modules [a71e370b]
+ Fixed Distribution::Resource.^mro to not error [bb46381a]
+ [6.d] Changed `$*ARGFILES` to be based on `$*IN` inside sub MAIN
[84d45f07]
+ [6.d] Made `num` variables default to 0e0 [f045042d]
+ Made Rationals fully-immutable [5c429e4e]
+ Fixed problem in QuantHash.ACCEPTS [712d0f0f]
+ Slightly changed semantics of (+), (-), (&), (.), (^), (|) on QuantHashes
[3a6c1197][b826a07a][42595c27][f1693f26][64ab7179][8cedbbd1]
+ Fixed wrong math with largish Ints [fec1bd74][8e2c70fa][342c5a9c]
+ Fixed crash with attr + submethod TWEAK [d09756ae]
+ Removed sig from Routine.perl if it is empty [546d08c1]
+ Gave Routine its own .gist [6ad50d79]
+ Made sure `my ($a,$b)` does not have any runtime effect [90ef3061]
+ Prevented REPL from writing to filehandle when opening a file [07d00db1]
+ Fixed a couple of thinkos in Map.STORE [6587bf75]
+ Fixed Unicode Regional Indicators [80a7cff6]
+ Normalized the path portion of repo specs [aae0827f]
+ Gave Blob.subbuf the same feature set as Str.substr [26b49169]
+ Added support for Buf.subbuf(x,Any) [22f779a8]
+ Gave native arrays their own ACCEPTS [9726e644][6a481323]
+ Gave Buf/Blob their own ACCEPTS [9531455d]
+ Fixed occasional crashes in deprecation location handling code [0979b775]
+ Various improvements to produced messages [e2e42181][e2bbe3f0]
[35fec8e0][1956df25][21eb168c][7a7e5e96][e9e8cd55][2e90c660][03574546]
[4494a249][d60be5e4][9a45b2b8][2c7692fc][08b449e1][b5e92a55][ef61ce32]
+ Additions:
+ Added `X::ParametricConstant` exception [b6cd6122]
+ Added enforcement of type constraints on constants [1dea3034]
+ Improved auto-coercion of values to `@`- and `%`-sigilled constants
(the `%`- one requires use of `v6.d.PREVIEW` pragma) [1dea3034]
+ Added a warning on definition of anon sub in `sink` context
[d6c05395][08a54212]
+ Exposed host and port of IO::Async::Socket.listen via the Tap
[cb2ea932][2d16e12c]
+ Added ability to mixin roles on attrs, aka `has %.a does Foo` [3158ae7e]
+ Added Callable indexing candidate for CArray [541922a0]
[68ebe71e][2a803a39]
+ Added QuantHash.Setty|Baggy|Mixy coercer methods [3d9ea6eb][76e5f9c8]
+ Added proper handling of pod =defn block [6e8ca327]
+ Removals:
+ Use of syntax for parameterized constants now throws (such
constrains were never enforced) [1dea3034]
+ Removed unspecced/used pre-6.c jvm modules [e6c5e859]
+ Removed unused Universal role [2670236f]
+ Renamed `IO::Handle.*-internal` methods to their final names [03d79975]
+ Removed previously deprecated `$*INITTIME` dynamic variable [a37c6aa4]
+ Build system:
+ Bumped JVM memory limit to survive setting build [80dca6b7][8feb13cd]
+ Added passing of --execname to nqp so that nqp::execname() works
[359ac12d]
+ Efficiency:
+ Made `.first()` and `:first(:end)` without other parameters
about 2x as fast [e6e9daf1]
+ Made nested meta assign operators 3.9x as fast [b9b0838d]
+ Made `.?` 1.5x as fast by using a spesh plugin [708c1326][a167e6cc]
+ Marked `set()`, `bag()` and `mix()` as `is pure` [c37c3b59]
+ Made `Int != Int` about 4x as fast [b236faec]
+ Made native `int` array `.sum` between 2.2x and 36x as fast [88e913b6]
+ Made initialization of native `int` array from a `Range`
about 1.7x as fast [5682ee1f]
+ Made `Map` initialization logic 1.5x-4x as fast [ee800ada]
[8f090821][6850a64f][ae6058ce][9f524d0a]
+ Made `Map.WHICH` about 8x as fast [ac2fa03b]
+ Made the `for ^100` loop optimization about 1.02x as fast [f43f118a]
[7043559b][d69fd2f3][9b07e7bf]
+ Made Rational reduction 1.43x as fast [3d10a7f1]
+ Made argless Rational.round 5.7x as fast [097826ef]
+ Made creation of Rationals 1.19x as fast [db66a138]
+ Made `infix:<**>(Rational, Int)` more than 10x as fast
[d1729da2][f9963bbf]
+ Made `my @a = $string.comb` about 1.25x as fast [df5d82e8]
+ Made subbuf up to 8.5x as fast [4e56ce95]
+ Made Buf.subbuf up to 2.5x as fast [cd43c4f1][a50c0492]
+ Made @a[1,3] with literal indices 5.6x as fast [67a528f0]
[c1044bce][1978a2fc][a3a87125]
+ Made method LANG about 3.2x as fast [a6edf511]
+ Made string interpolation up to 2x as fast [3ae97e5f]
+ Simplified a lot of internal code [6e661e9e][0f1b36a7][bc2ca535]
[36d37cbc][81a5e4ba][9e71c22d][4da2f607][0601c43c][4eaff452]
[12bd328b][f0b705cd][9327f95b][934c3f9d][eee77141][1070fa0c]
[36841543][81bcc540][fc865a9a][7f1e41dd]
+ Other minor optimizations [8f807fc4][ecd899c9][c6033401]
[45df171a][327cae7c]
+ Many low level and other improvements [bd0a1f8b][aedf41ae]
[4f0b585c][6d271667][d3c5381b][8c0d9de8][3f832108][5e5c7870]
[c4076b70][bfe69474][397263e3][a7e3dce3][ea9cf08f][bdb9193a]
[593611ec][9ab3ad27][04b86ae0][1e825793][bfd9ee4e][3b40b1c7]
[40d19c75][a3c12486][a2208b0d][92026f54][35528c6c][52f1b89d]
[e9e89f88][ca2360a4][ebc6b124][27a7e9bb][4f4fb613][5b985f93]
[a30ae153][163e7759][beae9686][d1c755af][bff1bb83][7885f357]
[523ffae8][8d652761][59faed1d][5a6af277][0baeec02][d0aab741]
[05d7c39b][1b3dd35e][fa073679][ae25c4b0][8a76c00c][abfa1b15]
[980f692c][4766536b][8607f682][656b763d][0b1e6d54][99f7f4cc]
[1f65bf24][37c7e6e5][90f678f3][fa73bb48][fe5c8d49][db96cab3]
[f8be2a2d][bf9ab42e][a41c37c8][fd6164a1][9a5c538f][c60a347f]
[5559f4c9][ec7de841][8d8c755b][0b3fc077][574212ab][2b2f568a]
[66aa6892][06073c5b][34468f11]
\
More specifically:
+ Refactored Scalar and numerous container operations, resulting
in Scalar being one attribute smaller and paving the way for
a range of new optimizations
+ As part of the Scalar changes, also extensively refactored
auto-vivification to be cheaper and more optimizable
+ Implemented specializer plugin for type-check elimination for
assignments
+ Refactored the way return value handling is done, to generate a
shorter code sequence
+ Improved the code generated for signature binding so as not to
repeatedly decontainerize passed values, but rather to only do
this once
+ Avoided a number of exceptions that could be thrown and caught in
the optimizer, for a small performance win
+ Avoided a number of situations where parts of the compiler were
repossessed for serialization purposes, resulting in smaller
precompilation output
+ Tuned Map and Hash for better lookup and assignment
performance, as well as more compact code in numerous other
operations; this made it possible for single-element hash
access to be fully inlined
+ Tuned Array.AT-POS to enable it to be fully inlined
+ Tuned Array.ASSIGN-POS to do less work
+ Improved `p6bindattrinvres` code-gen quality, which is a slight
improvement for the many places in CORE.setting that use it
+ Made sure references to the Scalar type-objects compile into a
constant, not a lexical lookup
+ Internal:
+ Implemented `Perl6::World.lang-ver-before` for easier language
version check [4dcf5929]
+ Removed `Set`, `Bag`, `Mix` `.clone` special casing [7865bfa6]
+ Updated makeUNIPROP.pl6 with Unicode 10 property names [2ff46764]
+ Removed propname → propname mapping from Cool.pm6 [a9e844a8]
+ Made `infix:<!=>` for `Ints` consistent with other infix
operators [46e7640f]
+ Simplified `Hash` → `Map` coercion [c567af73]
+ `PseudoStash` "pseudoers" hash is now a native hash [8a8ce95e]
+ Various `Range` internal changes [6ad096c8][806752fb]
+ Tightened up some `trait_mod:<is>` signatures [f6209d73]
+ Renamed nqp::getstrfromname to nqp::strfromname [4522132d]
+ Changed install-dist.p6 to use and prefer full namespace for
builder identifier [0249afc2]
+ Turned p6reprname into a desugar [07cfbeb2]
New in 2018.06:
+ Fixes:
+ Fixed numeric values in Signal enum [aa622a95][852c1bd3][f2b50378]
[774ec5a0][189c5a8a][b19cc4bd][c661c03c][5603771f][bfcfa5da]
[7e5a862e][cd8d0445]
+ Fixed long class names being cut off in X::TypeCheck message [a79de429]
+ Many improvements to POD parsing [75430ac9][cb66dfcc][6f1b1cb6]
[e1e7e4c6][cc28ce37][e776ded7][54aa17c6]
+ Fixed code execution 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]