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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298
|
New in 2014.07
+ require and build parrot 6.6.0
+ Cool.eval and eval() are now removed
+ assigning a single itemized hash to a hash is now DEPRECATED (my %h = {...})
+ .hash now turns an itemized hash into a hash
+ added unpack directives "a" and "Z"
+ subbuf-rw specced and implemented
+ Supply.zip-latest specced and implemented
+ minute value is optional in Timezone offsets in DateTime.new(), also a colon
to delimit hours/minutes is now optional
+ file copy and creation operations on the MoarVM now give default file permissions of 0666
+ the tr/// operator is implemented and has the proper return value
+ improved string handling for MoarVM backend
+ fixed class A { my $.x = 42 } scoping on MoarVM
+ removed hack that kept (|)= & co from working
+ re-arranged infixish actions to support [[*]]= etc
+ optimized CompUnitRepo::Local::File
+ optimized takedispatcher to cleardispatcher
+ all backends now allow C pointer arithmetic and casting of pointers to Perl 6 types
(this funtionality is exposed by NativeCall)
+ made block inlining a level 2 optimization
+ small optimizations to number parsing
+ fixed Label.gist
+ fixed 'fail' so it also prints a backtrace
+ fixed a repeat until code-gen bug
+ added CompUnit.name and fixed .perl
+ removed hack for $Inf/$NaN: constants Inf/NaN are exposed since a while
+ made initial/max threads introspectable
+ naive implementation of IO.umask
+ make .WHICH also work on type objects
+ throw a X::Subscript::FromEnd for @foo[-1]
+ throw X::TypeCheck::Binding on all backends (was MoarVM only)
New in 2014.06
+ say/note now a little faster for single Str (which is most common)
+ an initial implementation of S11 (Compilation Units) is now available
+ .IO.{d|s|z} are now about 40% faster and return Failure if path doesn't exist
+ $*DISTRO now works correctly on OS X (with name "macosx")
+ $*KERNEL now works correctly on OS X (with name "darwin")
+ initial implementation of $*USER and $*GROUP
+ initial implementation of Supply.zip-latest
+ implement dummy Lock (for $lock.protect( {...} ) ) on parrot
+ @*INC now only contains elements for actually existing paths
+ more work on allowing slangs transparently (such as "v5")
+ IO::Socket::Async now also works on JVM
+ can close tap to stop listening on a socket
+ implement Supply.on_demand, for making on-demand supplies
+ fix race condition in async socket reading
+ can now also bind to dynamic variables
+ LAST phaser used to fire when not actually iterating, now fixed
+ (Set|Bag|Mix).pairs now return immutable Enums
+ (Set|Bag|Mix)Hash.pairs no longer allow changes feeding back
+ optimize :a(:$b) and attributive binding
+ optimize IO::Path.contents
+ optimize push, unshift, and comb
+ assorted optimizations to Junction construction and dispatch
+ optimize no-args case of @foo>>.bar
+ implement :42nd colonpair syntax
+ include correct version information in perl6-debug
New in 2014.05
+ asynchronous timers on MoarVM backend
+ added or updated many Supply methods:
act, batch, categorize, Channel, classify, delay, elems, flat, grab, last,
live, max, min, minmax, merge, migrate, Promise, reduce, reverse, rotor,
sort, squish, stable, start, uniq, wait, zip
+ add list functionality to 'on', as with new S17 spec
+ added .Supply coercer
+ added IO::Notification.watch_path / IO::Path::watch which return a Supply
of file system changes
+ added signal() which returns a Supply of Signals (such as SIG_HUP)
+ added IO::Socket::Async.connect, returns a Promise with a IO::Socket::Async
+ added IO::Socket::Async.send, returns a Promise with success / failure
+ added IO::Socket::Async.chars_supply, returns a Supply with chunks
+ added first-index, last-index, grep-index subs/methods
+ Pair.key was erroneously implemented "is rw"
+ added "subtest code, desc" to Test.pm (inspired by P5's Test::More)
+ added "throws_like" to Test.pm (formerly of Test::Util)
+ Test::Tap::tap_ok and throws_like are now 1 test (using subtest)
+ BagHash<foo>-- on non-existing key no longer fails (as per S02 spec change)
+ (Set|Bag|Mix)(|Hash) now have a .fmt method
+ deprecate $*OS, $*OSVER, $*VM<name>, $*VM<config>, $*PERL<name>
$*PERL<compiler>...
+ added $*KERNEL, $*DISTRO, $*VM, $*PERL as full blown objects
+ .delta (by recent spec change) in Date/DateTime now instead spelled
.later and .earlier
+ TimeUnit enum removed; string named and positional arguments used instead
+ optimized grep,grep-index,first,first-index,last-index with seperate
candidates for Regex and Callable.
+ "use v5" is no longer a noop, but actually tries to load the "v5" module
(soon available as part of Rakudo*)
+ implemented labeled loops and throwing of labels as payload
+ added various optimizations, like optimizing out %_ when unused
New in 2014.04
+ significant performance enhancement for MoarVM, spectest running 20%+ faster
+ S17 (concurrency) now in MoarVM (except timing related features)
+ winner { more @channels { ... } } now works
+ fixed pb with Parcelness of single element array slices with adverbs
+ implemented univals(), .unival and .univals (on MoarVM)
+ make .pick/.roll behave sanely on Enums
+ fixed Str.samespace and ss//
+ added .minpairs/.maxpairs on (Set|Bag|Mix)Hash
+ added Bag.kxxv
+ Capture.WHICH implemented so that identical Captures have the same .WHICH
+ Naive implementation of "is cached" trait on Routines
+ Hash.perl now randomizes key order, while Hash.gist sorts
+ NativeCall passes all its tests on all backends
New in 2014.03
+ Fix suggestions for unknown routines when specified with '&'
+ Match sigil in suggestions for unknown routines depending on specification
+ Improve suggestions for 'length' and 'bytes' being banned in Perl 6
+ fixed for-loops to be properly lazy
+ Zop= now works
+ numerous Pod parsing and formatting improvements
+ uniname, uniprop, and unival implemented on MoarVM backend
+ @<c> as shortcut for @$<c>, %<c> as shortcut for %$<c>
+ improved "unable to deduce sequence" error message
+ duckmap, deepmap implemented
+ list infix reductions no longer flatten
+ X and Z meta ops treat [] as items
+ unary hyper subscripts (@array>>.[0]) now work
+ fixed problem with .=uniq and .=squish
New in 2014.02
+ $*INITTIME implemented
+ improved code generation for loops on the JVM backend
+ eager and lazy statement prefixes
+ statementlist-level for-loops are now assumed to be in sink context
+ improved unspace parsing
+ don't itemize make's ast argument
+ allow definition of custom postcircumfix operators
+ :allow in pod code blocks works now
+ Configure: git protocol is now configurable
+ smartmatching against an IO::Path does the right thing now
+ perl6-debug-* is now installed by rakudo; the user interface is still a
module available from the ecosystem
+ lots of improvements for moarvm, such as client and server socket support
and opening pipes/subprocesses
+ finished NativeCall support on the JVM
New in 2014.01
+ Use .narrow on Numeric to coerce to narrowest Type possible
+ Can now supply blocks with multiple arguments as sequence endpoints
+ <prior> rule no longer exists
+ The eval sub and method are now spelled EVAL
+ Method calls and hash/list access on Nil give Nil
+ No longer need to separate adverbs with comma in argument lists
+ div on parrot will now always round towards -Inf
+ Added support for MoarVM; passes >99% of the spectests that Rakudo JVM does
+ Fixed gather/take stack overflow bug in JVM backend
+ Fixed closure in regex bug on JVM
+ Fixed some line number reporting bugs on JVM
+ Optimized Enum($value) coercion
+ Regexes: Aliased assertions now properly create sub-captures
+ Regexes: Improved detection/reporting of null patterns
+ Implemented IO::Async::File.spurt (JVM only)
+ Implemented Setty.kv and Baggy.kv
+ Use a global ByteClassLoader rather than one per class. (JVM only)
+ Implement more parts of NativeCall for the JVM
New in 2013.12
+ The Whatever Star now works inside chain operators like comparisons
+ Private attributes from roles are now visible in the classes they apply to
+ Use invokedynamic in some places on the JVM.
+ Memory improvements in ListIter
+ Faster method List.combinations
+ Simple lookahead assertions in regexes are optimized
+ Regexes do less superfluous scanning
New in 2013.11
+ Many concurrency primitives harmonized with new S17, but still pretty fluid
+ Refactored build system that allows building rakudo on both backends in the same place
+ Order::Increase/Decrease are deprecated. Please use Order::Less/More.
+ Leading whitespace is ignored for :sigspace
+ Better null pattern detection in regexes
+ The "gethostname" function implemented
+ Warn when private attributes are a marked rw or readonly
+ "is DEPRECATED" trait now produces report when process finished
+ Parcel.rotate implemented
+ Performance optimization: unfold junctions in 'when' clauses
+ capitalize/.capitalize have been removed, as per docs/deprecations
+ improved run()/shell(), these return Proc::Status-objects now
+ The ... range operator can now be chained: 1,2,3 ... 10,15,20 ... 100
+ various other bug fixes, optimisations and additional tests
New in 2013.10
+ postcircumfix {} and [] are now implemented as multi subs rather than multi methods. This should allow for better optimization in the future.
+ Add support for "is DEPRECATED", making it easy for early adopters to stay current.
+ Track multiple spec changes for various container classes.
+ Greatly reduce object creation during Regex parsing.
+ Various portability fixes.
+ qx// and run() now auto-quote correctly
+ Allow #`[...]-style comments in regexes
+ unlink() behaves like P5's, it deletes write-protected files on windows
New in 2013.09
+ candidate argument to bless removed (per spec change)
+ @a.VAR.name and %h.VAR.name implemented
+ The $var.++ and $var.() syntaxes work
+ Lots of improvements on the Set and Bag types
+ [op]() with relational operators vacuously return True
+ tr/// implemented
+ Sockets on JVM implemented
+ sleep(), sleep-time() and sleep-till() updated to spec
New in 2013.08
+ "is default" traits on variables, $/, $!, $_ are default Nil
+ "is dynamic" traits on variables, $/, $!, $_ are dynamic
+ "of TypeObject" trait on variables
+ .VAR.default/dynamic/of return the state of these traits
+ Assigning Nil, calling undefine() restores the default value
+ .WHAT more accurately returns a type object for specifically typed cases
+ Option --gen-nqp for ConfigureJVM.pl
+ Include file name in parser errors
+ Parse labels, tr/// (both don't do anything useful under the hood yet)
+ CALLER::<$var> now only works on dynamic variables, as per spec.
+ Improvements to Threads, including Channel and KeyReducer (JVM only)
+ Asynchronous file reading (JVM only)
+ Improved JVM interop, including 'use :from<java>' (JVM only)
+ Fixed subroutine inlining on JVM
+ Fixed %*CUSTOM_LIB on JVM
* Fixed sink context handling on JVM
+ Reimplementation of Buf as a role
+ Implemented Blob role
+ Implemented sized/encoded Buf/Blob types (buf8, blob8, utf8, etc.)
+ Str.encode now returns most specific appropriate type
+ "once" phaser fully implemented
+ Named parameters "with" and "as" on uniq/squish
+ "samewith()" for calling method on same dispatcher again
+ "will" variable trait partially implemented ($_ not set yet)
+ Interpolating strings into heredocs now dedents properly
+ Solved a slowdown when declaring custom operators
+ Improved P5-regexes (backslash sequences, code blocks)
+ Make type objects appear as Nil in non-scalar contexts
+ Placeholder variables $^A .. $^Z no longer allowed, as per spec
+ printf %d now supports bigints also on Parrot
+ my and our scoped methods no longer go into the method table
+ Implemented keybag(), KeyBag.push, KeyBag.categorize
+ Re-implemented hash iteration for a performance win
+ Various optimizations, code cleanups and error message enhancements
New in 2013.07
+ Huge progress in JVM backend (feature-wise almost on par with Parrot)
+ List.first is now lazy
+ unspace before argument lists is now supported
+ fixed handling of indented heredocs
+ basic support for threads and promises (JVM only)
+ improved sprintf and other formatting routines
+ keyof method for typed hashes to get key type
+ Hash.perl nows works for typed hashes
+ 'is parcel' and 'is default' traits (work in progress)
+ Parcel.new now works
+ slight optimization to join of many items
+ implemented canonpath for Win32 IO::Spec
+ implemented squish
+ made []:(kv|p|k|v) work according to spec
+ properly parse Pod formatting codes with brackets other than <...>
+ the POD_TO_TEXT_ANSI environment variable now leads to some formatting
being applied by Pod::To::Text
+ declaration of multiple operators in a scope now generates much smaller
serialized output
+ Int.round method now takes a scale argument
+ implemented Complex.ceiling, Complex.floor, Complex.round
New in 2013.06
+ JVM backend added - passes initial sanity tests
+ type captures in signature binder implemented
+ IO::Spec::Unix.canonpath made more efficient
+ IO::Handle methods gist, perl, path added
+ Int.msb and Int.lsb implemented
+ dir() is now lazy
+ lines($limit) now doesn't read an extra line
+ .^mro methods added to a few role metaclasses
+ $/ and $! now visible in eval/REPL
+ IO::Handle.copy moved to IO::Path.copy
+ .{} adverb combinations all implemented
+ :$<foo> colonpair syntax implemented
+ 'my &foo; multi foo() { }' gives better error message
+ reduce() more aware of fiddliness
+ &first now returns Nil instead of failing
+ $*CWD and $*TMPDIR now contain IO::Path objects
+ REPL bug fixed when same line issued twice
+ pick/pop/push/roll/reverse/rotate/sort/classify/categorize
now fail immediately if the list is infinite
+ categorize now returns a Hash, not a Parcel of Pairs
+ "undef" warning now refers to Any, not Mu
+ improved error messages for hash shapes
+ Hash.(classify|categorize) implemented
+ IO::Path.chmod implemented
+ IO::Path.succ and .pred implemented
+ syntax parser now allows a dot before hyper postfix
+ Str.succ added for codepoints \x2581..\x2588
+ Cool.path implemented
+ sequences between 1-codepoint strings implemented
+ div and / fail with X::Numeric::DivisionByZero (rather than dying)
+ doing .perl on Rat with denominator 0 doesn't go into an infinite loop anymore
+ Capture.exists implemented
New in 2013.05
+ IO::Spec, a port of Perl 5's File::Spec
+ support for exporting things form EXPORT subroutine
+ ?-quantifier in regexes doesn't create arrays in the Match object anymore
+ speedup of repeated shifts of large lists and arrays by 70%+
+ implemented Cool.lines
+ renamed IO to IO::Handle; IO is now a tag role, as per spec
+ simplify timezone handling
+ .Set and .Bag methods for List and Parcel
+ regex special characters can be used as delimiters
+ allow slice with :exists adverb on hashes …
+ .hash now accepts optional :type and :of named parameters
+ Make :exists and :delete up to spec …
+ fix for autoviv Typed hash problem
+ constant-fold infix:<~>
+ make decl and init of our-scoped arrays/hashes work
+ fix regex interpolation slowdown
+ fix exporting of subroutines
+ fix slurpy is-rw array-parameters
+ failed regex matches return Nil
+ add support for IO::Path::<os subclasses>
+ fix reporting of errors in gather/take.
+ added 125 extra opening/closing bracket-pairs
+ fix build failure on SPARC and PowerPC
+ underlying nqp layer supports parrot and JVM as backend, in preparation
for JVM support in a future Rakudo release
> more than 100 not listed changes
New in 2013.04
+ add Capture.Bool()
+ optimize getting size of numeric Range
+ for loops are eager again
+ improvements to DUMP()
+ wrap NQP objects in ForeignCode, allowing perl6 OO calls on them
+ improve some messages on parsefail.
+ add link and symlink to IO
+ reduce compile-time autothreading to avoid issues with !==
+ improve optimizer - caching, constants
+ fix List.ACCEPTS() for Whatever special case
+ bring 'require' closer to spec, esp. by taking paths
+ bring 'IO::Path' closer to spec
+ remove parrot dynops already provided as nqp ops
+ translate a dynop to nqp code
+ update from pir:: calls to nqp::
New in 2013.03
+ Type names now gist as (Any) rather than Any()
+ Warn when pure expressions are used in sink context
+ Cool.substr(...) now correctly accepts whatever-star closures
+ Fix character class subtraction bugs
+ Correctly detect undeclared variables in regex assertions
+ :i now respected in character classes
+ Improved output of Rat.perl
+ Implemented shellwords postcircumfix (%h<< $x 'foo bar' >>)
+ User-defined circumfixes now parse a semilist rather than just an expression
and handle whitespace correctly
+ Forbid null operators
+ Warn about leading 0 not indicating octal in Perl 6
+ Fix some automatic end of statement on "}" parse bugs
+ Better error message on for(...) {} being interpreted as a function call
+ Array interpolations now properly do LTM
+ Respect :i in constructs like /:i <$var>/
+ Autothread "none" and "all" junctions before "any" and "one"
+ Helpful error if you write "else if"/"elif" instead of "elsif"
+ Throw exception if a Range is used as a Range endpoint
+ Corrected argument order in IO.seek
+ Multi-dispatch now mostly implemented in NQP, not C
+ Fixed LEAVE (and thus UNDO/KEEP/temp) not firing in multis or upon 'next'
in a for loop
New in 2013.02
+ "Did you mean ..." suggestions for symbol-not-found errors
+ Compile-time optimization of some cases of junctions in boolean context
+ Date and DateTime now support a .delta method
+ IO::Socket.get now works again with non-Unicode characters
+ $() now takes $/.ast into account
+ proper return value for smartmatching against a substitution
+ better error reporting when a parent class does not exist
+ constant folding for routines marked as 'is pure'
+ natively typed variables now work in the REPL
+ better error reporting in the REPL
+ writable $_ in -p and -e one-liner
+ speed up eqv-comparison of Bufs
+ warnings for useless use of (some) literals, variables and constant
expressions in sink context
+ /../ and rx/.../ literals match against $_ in sink context
+ array variable interpolation into regexes
New in 2013.01
+ sink context; for-loops are now lazy by default
+ first mentioning a variable from outer scope and then redeclaring it
in the same scope (my $a; { $a; my $a }) is now an error.
+ the long-deprecated "SAFE" setting has been removed
+ 'require' now works with indirect module names
+ restored socket read semantics to returning the requested number of bytes
+ $obj.Some::Role::meth() now passes the correct $obj
+ try/CATCH now returns Nil when the CATCH is triggered, rather than the
exception; this brings it in line with try without a CATCH
+ whatever-star cases of splice now implemented
+ sequences with Junction endpoints now work
+ corrected precedence of various set operators
+ fixed binding of non-Any things into hashes and arrays
+ can now import multis with the same name from different modules,
provided all dispatchers are onlystar
New in 2012.12
+ ~/.perl6/lib is gone from the default include path
+ fixed indent method's handling of empty lines
+ fixed .indent(*)
+ parse errors now formatted like in STD, with color
+ location of parse error now indicated with context
+ highwater algorithm implemented, greatly improving accuracy of parse error
line numbers and locations in a range of cases
+ some parse errors now report what the parser was looking for at the time the
parse failed
+ better errors for unmatched closing brackets and two terms in a row
+ uniq now has === semantics as specified, not eq semantics
+ junction auto-threader optimized and is an order of magnitude faster
+ implemented sub term:<foo>
+ implemented texas versions of the Set and Bag operators
+ good error for use of . to concatenate strings
+ flattening large lists of Parcels now happens in about half the time
+ adopted STD panic/sorry/worry model, meaning that we now keep parsing
further and can report multiple issues in a range of cases
+ we now catch and complain about post-declared type names
+ variable redeclarations are now just a warning, not an error
+ a mention of an &foo that is never defined is now an error
+ fixed .perl output for a Pair with a Pair key
+ interpolation of undeclared arrays, hashes and functions now detected
+ { a => $_ } now correctly considered a block, not a hash as before
New in 2012.11
+ user-defined operators only affect the parser in the scope they are declared in
+ fixed pre-compilation of modules containing user-defined operators
+ implemented precedence related traits (equiv, looser, tighter, assoc)
+ Perl 6 grammar NFAs are pre-computed, saving some work on each invocation; this
shaved around 10% off the time needed to run the spectests
+ redeclaring a class as a role now gives a better error
+ the < foo bar > syntax in regexes now respects :i
+ << ... >> now interpolates, respecting quoting and pairs
+ fix error reporting for not-found dynamic variables
+ many protos now have much narrower signatures
+ quote parsing implementation aligned with the approach STD uses
+ regexes and quotes have better support for user-selected delimiters
+ quote adverbs
+ heredocs
+ carry out IO::Path.dir deprecation
+ implement infix:<andthen>
+ macro arguments now carry their lexical environment properly
+ postfix operators of the form '.FOO' take precedence over method calls
+ version control markers detected and gracefully complained over
+ INIT phasers now work as r-values
+ our ($x, $y) style declarations fixed
+ take and take-rw now evaluate to the taken value
+ implemented cando method on Routine
+ FIRST/NEXT/LAST can now be used in all types of loop (previously limited to for)
+ implemented operator adverbs
+ implemented :exists and :delete subscript adverbs and on hashes
+ implemented :p, :k, :v and :kv subscript adverbs on arrays and hashes
+ fixed shell words post-processing like << foo "bar $baz" >>
+ byte-order mark at the beginning of a file is now ignored
+ fixed bug that could lead to disappearing symbols when loading pre-compiled modules
+ Configure no longer passes --optimize to Parrot if --parrot-option is specified
+ deprecated current &foo semantics
+ fixed #`foo and friends at start of statementlist
+ simplify setting line number of compile-time exceptions
+ made :($a, $b) := \(1, 2) update $a and $b
New in 2012.10
+ :60[24, 59, 59] radix form
+ delegation to methods using the handles trait
+ fixed serialization of Buf
+ improved handling of :P5 regexes (more features, less bugs)
+ determining that an object lacks a method is usually now much faster
+ reduced memory usage of Match objects and optimized their construction a little
+ some code-generation improvements related to void context
+ implemented :dba('...') modifier in regexes
+ various error messages improved through use of :dba('...') in the Perl 6 grammar
+ implemented 'x' in pack
+ added $*CUSTOM-LIB
+ eval in a method can now see self, attributes and $?PACKAGE
+ each REPL line no longer implies a fresh GLOBAL
+ fixed some Pod parsing issues with Windows newlines
+ fixed interaction of :i and LTM (alternations and protoregexes now respect it)
+ import of custom meta-objects only affects the scope they are imported into
+ made <-> lambdas work
+ can now parse nested pairs of quote delimeters, like q{ foo q{ bar } baz }
New in 2012.09.1
+ is-prime and expmod
+ smart matching against Signature literals
+ binding to signatures in declarators
+ the is hidden and base traits
+ ability to set encoding on sockets temporarily removed (reverts to 2012.08 behavior)
New in 2012.09
+ class Iterable does not inherit from class Cool anymore
+ basic macro unquoting
+ basic support for m:P5/.../ regexes
+ support for indirect type names in routine and type declarations
+ compiler now built with QAST-based NQP, which generates better code, thus
making the compiler a little faster
+ support for "is export" traits on constants
+ implemented Str.wordcase
+ can now write more complex proto subs and methods, using {*} to enter the
dispatcher
+ tie-breaking with constraints now picks the first matching one rather than
demanding they be mutually exclusive
New in 2012.08
+ tclc implemented
+ --> ReturnType in signatures and prefix type constraints of routine return
types are honored
+ reduced memory usage at build time by around 35% - 40%
+ the argument to IO::Socket.recv is now interpreted as a number of characters
+ enum lists and arguments to parametric roles are now evaluated at compile time
+ switched to new internal AST and backend representations (QAST and PIRT)
+ removed deprecated routines Str.bytes and Str.lcfirst/&lcfirst
+ errors from traits now contain file name and line number
+ IO::File and IO::Dir have been removed
+ inliner has been improved and can inline a wider range of routines
+ simple implementation of the 'soft' pragma
+ fixed over-eager treatment of numeric literals as int rather than Int in cases
where they appeared each side of an infix operator
+ detect circularities in module loading
+ sigilless variables in signatures when proeceed by | or \
+ prevented blocks that declare variables turning into hash constructors
+ made pre-compilation complain if dependencies are not pre-compiled yet
+ fixed interpolation of double-quoted strings in regexes
+ fixed issue with Num.new not being friendly to subclassing
+ implemented handling of complex numbers in Str.Numeric
New in 2012.07
+ Deprecated SAFE.setting in favor of RESTRICTED.setting
+ Ranges can now interpolate in argument lists
+ The built-in meta-objects (such as Metamodel::ClassHOW) now inherit from Any
+ &open now supports :enc/:encoding
+ Exception.fail, .resumable and .resume
+ Changed &dir to return IO::Path objects, not strings
+ Deprecated .bytes, .ucfirst, and .lcfirst
+ &slurp now supports :bin
+ &spurt implemented
+ cleaned up Version implementation
+ fixed :s file test
+ recognize obosolete rand() and rand(N) forms at compile time
+ anonymous subset types 'subset :: of Int where { $_ > 0 }'
New in 2012.06
+ Rakudo is now compiled with the same regex engine as user-space regexes use
+ transitive longest-token matching in protoregexes
+ changed the output of Match.gist
+ string to number conversion now fails for non-numbers
+ string to number conversion now recognizes radix notation
+ string incrementation is now aware of more scripts
+ <|w> word boundary in regexes implemented
+ more errors from within the meta model now contain line number and file name
+ &push and &unshift functions can now autovivify
+ user-defined operators properly participate in LTM
+ Rakudo's C code is now compiled with optimization switches turned on
+ basic module loading tracing with the RAKUDO_MODULE_DEBUG=1 env variable
+ longest token matching with alternations
+ require with argument list
+ compile time errors in loaded modules now show a module loading backtrace
+ improved list and .map handling
+ can now use | to flatten a pair into an argument list as a named argument
New in 2012.05
+ meta ops //=, ||= and &&= now short-circuit properly
+ Failure objects don't blow up the REPL anymore
+ allow case insensitive regex matches without ICU in limited cases
+ %*ENV now propagates into subprocesses
+ RAKUDOLIB env variable supported in addition to PERL6LIB
+ -I and -M command line options
+ $?LINE and $?FILE variables
+ warnings now include line number from program, not from CORE.setting
+ reduction meta-operator on list-associative ops now has correct semantics
+ now have :th alias for :nth in Str.match
+ import collisions now report the name of the module that is to blame
+ ms// fixed
+ <$x> in regexes caches the compiled regex, which can be a big performance win
+ implemented temp and let
+ 'use' can now import by tag name
+ 'use' with positional arguments
+ lib.pm
+ updated calling conventions for traits
+ implemented fff flip-flop operator; improvements to ff form also
+ removed current directory from default library search path
+ 'import' works
+ symbols installed in EXPORT in all nested packages, not just UNIT::EXPORT
+ enumeration types can be used as roles
+ END phasers now run when program ends with exit or an exception
+ fix Rat.floor and .ceiling to work for large numbers
+ improved Rat stringification
+ Real is now a role, as it should be
+ implemented < foo bar baz > syntax for alternations in regexes
+ implemented <( and )> syntax for setting from/to of match in regexes
+ support for non-Int enums
+ basic support for Version literals
+ chmod now available as a function
+ roundrobin implemented
+ fixed a bug in precompilation of modules that use roles from other modules
+ basic implementation of pack and unpack
+ implemented substr-rw, which provides an l-value (assignable) substring
+ implemented <~~> (recursive call into self) syntax in regexes
+ 'LAZY' statement prefix
New in 2012.04.1
+ autvivification for arrays and hashes
+ more robust module precompilation
+ improved infrastructure for calling C code
+ $.foo style calls now contextualize correctly
+ &infix:<cmp> now return members of the Order enum in all cases
+ --doc=format now loads Pod::To::format and uses it for rendering
+ 'lib/' is no longer in the default include path
+ improved Parameter.perl
+ add .changed, .modified and .accessed methods to IO
+ improved --help output
+ install precompiled test module for speedup
+ fixed printing of backtraces when regexes are in the call chain
+ case insensitive regex matches now also work for interpolated variables
New in 2012.04
+ 'defined' is now a listop instead of a prefix op
+ fixed :16('0d...')
+ implemented simple interpolation in names in type declarations (class ::(const) { })
+ $=POD renamed to $=pod
+ fixed slicing of non-lists with infinite ranges
+ fixed accidental over-serialization, cutting ~300KB off each pre-compiled module
+ scalar positionals no longer treated as slices
+ implemented Routine.package
+ join will now always reify at least 4 elements of a list if possible
+ warnings now have line numbers
+ brought back Str.indent
+ ban declaring pseudo-packages, with a helpful error
+ a name followed by :: now returns .WHO, so Foo::<&bar> style lookups work
+ Exception.Bool now returns true
+ avoided re-parsing of longname, which speeds up the parse a bit overall
+ implemented MY, CALLER, OUTER, UNIT, CORE, SETTING and DYNAMIC pseudo-packages
+ implemented ::<$x> and ::{'$x'} style lookups
+ some small optimizations to various Str built-ins and MapIter
+ improved --doc output
+ added $*PERL
+ implemented IO::ArgFiles.slurp
New in 2012.03
+ updated to dyncall 0.7
+ infix:<eqv> now autothreads over junctions
+ more typed exceptions
+ pre-compiled modules/settings are now serialized, not re-built on load
+ startup time is now about 25% of what it once was
+ significant memory and time reduction (~40%) when pre-compiling modules/settings
+ BEGIN and CHECK now work in r-value context
+ constant declarator now works with non-literals on the RHS
+ implemented Set, Bag, KeySet and KeyBag types
+ implemented :exhaustive and :nth match adverbs
+ implemented ENTER, LEAVE, KEEP and UNDO phasers
+ implemented FIRST, NEXT and LAST phasers in for loops
+ implemented START phaser, including use of it in r-value context
+ implemented also syntax for adding traits inside a block/package
+ implemented macro declarations and quasi quotes (sans placeholders)
+ implemented anonymous enums
+ 'our multi' now dies (used to ignore the 'our')
+ implemented PRE and POST phasers
+ ~25% performance improvement to array indexing
New in 2012.02
+ catch duplicate accessor generation required of "has $.x; has @.x;"
+ many more typed exceptions thrown
+ undeclared attributes mentioned in signatures now caught at compile time
+ empty Buf is now False in boolean context
+ implemented <prior>
+ implemented /<Foo::Bar::baz>/ syntax
+ /<x>/ can call a predeclared lexical regex x
+ conjugate is now called conj
+ enumeration values .gist to just the key, not the full name
+ <!> in regexes fixed
+ implemented Match.make(...) method
+ better error reporting for improper use of nextsame and friends
+ initializers now parsed as part of a variable declarator
+ trailing whitespace now removed from Pod declarator blocks
+ List.tree made more useful
+ implemented rename and copy functions
+ ().pick and ().roll now return Nil
+ default MAIN usage message includes .WHY of the candidates
+ X::Base eliminated in favor of Exception
+ various range iteration fixes; Num ranges now produce Num lists
+ LHS of the xx operator is now thunked
+ can now declare state/constant/our in regexes (before, only :my worked)
+ improved backtraces
+ catch constructs that require an invocant but don't have one
+ catch uses of virtual method calls in submethods and attribute initializers
+ improved parsing and performance of reduction meta operators
+ Rat arithmetic now properly defaults to Num if the denominator is too big
+ FatRat implemented
+ implemented long forms of regex adverbs (e.g. "ignorecase" maps to "i")
+ fixed "but True" and "but False"
+ object hashes, with the my %h{SomeObjectType} syntax
+ implemented Int($x) style coercions
+ implemented Capture.perl
New in 2012.01
+ -c command line option re-implemented
+ take flattening bug fixed
+ duplicate named parameter names detected
+ fixed clone being too shallow with regard to containers
+ fixed negative modulo for bigint
+ better Routine.perl
+ .DEFINITE macro implemented
+ .^methods, .^attributes and .^parents now support :excl (the new default) and :all
+ Array.delete implemented
+ restored basic -n and -p functionality
+ improved parameter introspection
+ fixed operations on bigints when the first operand had been mixed in to
+ fixed multi-dispatch narrowness calculation for native types
+ binding to array and hash elements
+ added Order enumeration, and updated cmp and <=> to use it
+ adding various missing magicals, such as &?ROUTINE and ::?ROLE
+ accessor generation for my $.x and our $.x cases
+ fixed @x>>.() (hyper-invocation)
+ updated Complex.Str to match current spec
+ fixed eval to see GLOBAL properly
+ implemented 0 but Answer(42) style mix-ins
+ fixed various issues in scoping/handling of $/
+ fixed usage of make in a regex (previously, only worked in action methods)
+ optimized Range.roll and Range.pick for large ranges
+ fixed non-numeric, no-Str ranges
+ fixed build on Cygwin
+ fixed regex backtracking into subrules and captures
New in 2011.12
+ improved protoregex support, including NFA caching
+ <before ...> and <after ...> (lookahead and lookbehind)
+ backslash sequences in character classes
+ fixed quantified captures and :r interaction bug
+ optimized match object construction, ListIter, substr and chomp
+ improved performance of send/get on sockets
+ optimizer detects missing private methods and simplifies calls (level 3 only)
+ fixed some issues when an array was assigned to itself, maybe using .=
+ implemented .wrap and .unwrap, plus wrap handles with a .restore method
+ implemented .trans on strings
+ unicode properties can be matched against in regexes
+ binding to @, % and & sigils now checks for the appropriate role
+ assignments to variables declared with the & sigil now checked for Callable
+ typed hashes, partial support for typed arrays
+ some parametric role fixes
+ can now use but operator with a type object
+ smartmatching of regexes against arrays and hashes
+ socket IO now implements .write and custom input line separators
+ implemented getc
+ implemented .WALK
+ implemented ff, ^ff, ff^ and ^ff^
+ implemented .REPR macro
+ implemented Proxy class
+ some typed errors are now thrown from within the compiler
+ stubbed methods from roles now require those methods to be implemented
+ updated docs/ROADMAP
+ .WHICH now returns ObjAt objects
+ defining new operators
New in 2011.11
+ CATCH blocks are now much closer to spec
+ big integer support
+ basic protoregex support with NFA-driven LTM for some declarative constructs
+ correct default values for natively typed variables
+ fixed initialization of state variables
+ improved support for natively typed variables
+ catch more uses of undeclared variables
+ splice() is now implemented
+ uniq() is now implemented
+ several runtime errors now throw properly typed error objects
+ various performance improvements, for example to the X meta op and Str.succ
+ improved support for MAIN argument parsing
+ fixed lexicals/recursion bug
+ IO.copy is now implemented
New in 2011.10
+ operators and functions with native type arguments
+ detection of call to undefined routines at CHECK time
+ various optimizations: inlining of operators, CHECK time dispatch decisions
+ performance improvements of MapIter
+ support @$foo style derefencing/coercion
+ Exception.backtrace
+ eval() has stopped to catch exceptions
New in 2011.09
+ Rewritten meta object protocol and object storage
+ many speedups
+ Int, Num and Str are now far more lightweight
+ much more robust handling of infinite list
+ basic LoL (List of Lists) support
+ :U and :D type modifiers
+ protos and multis now conform to the new spec
+ improved enum support
+ basic 'constant' declarator
+ .WHAT and friends as macros
+ chrs sub and method
+ support for .gist
+ run() has been renamed to shell() to conform to current spec
+ hyper methods now descend into nested data structures
+ basic safe mode (through --seting=SAFE)
+ recording and reporting of test timings (tools/test_summary.pl)
+ Pod parsing and --pod=text option
+ basic support for .WHY
+ greatly improved BEGIN-time support
+ traits applied at BEGIN time for packages, routines and attributes
+ parametric roles reify types properly, fixing many bugs
+ better handling of type variables
+ support $?CLASS, which is generic in roles
+ support import/export of custom meta-objects for built in package declarators
+ custom meta-objects can override method dispatch
+ faster, allocation-free multi-dispatch cache
+ a custom BUILD does not suppress default values
+ undeclared attributes detected and reported at compile time
+ basic support for native int/num types on lexical variables
+ int/num as attributes are stored compactly in the object body
New in 2011.07
+ fractional powers of negative numbers now result in Complex numbers
+ obtain spectests from a specific branch of the `roast' repo
+ fix bug that prevented build on systems with little RAM
New in 2011.06
+ added take-rw built-in
+ numerous build system improvements
+ assignment now evaluates arguments right-to-left
New in 2011.05 release
+ added a call counter for builtins in Perl 6-level subroutines
+ gcd (greatest common divisor) and lcm (largest common multiple) operators
+ build system improvements
+ added --ignore-parrot-rev option to Configure.pl
+ Configure.pl now creates "config.status" file
+ fixed relational operators when used with NaN
+ implemented Int.base
+ speedup smart-matching against numbers and Str.comb with default arguments
+ added RAKUDO_SUBLOG environment var for tracking subroutine calls
+ overall performance speedups
New in 2011.04 release
+ implemented Str.indent
+ A new, much simpler API and implemention of IO::Socket::INET
+ Unified error messages to use "Cannot"
New in 2011.03 release
+ improved error message on type check failure in assignment
+ -n and -p command line options
+ Test.pm's skip() now has argument ordering consistent with todo()
+ implemented complex conjugation
+ more IO methods related to stat
New in 2011.02 release
+ IPv6 support
+ more robust numeric exponentation
+ --ll-backtrace command line option for PIR level stack traces
+ future-proof for upcoming generational garbage collector in parrot
+ various constructs now return Nil
+ infix:<orelse> implemented
+ infix:<^^> and infix:<xor> improved
+ negation metaoperator is now restricted to operators that return Bool
New in 2011.01 release
+ faster subroutine calls (type cache)
+ 'handles RoleName' now works
+ Test.pm: s/done_testing/done/
+ non-spec debugging pragma Devel::Trace
+ improved parsing of keyword boundaries
+ sped up .comb
New in 2010.12 release
+ new .trans algorithm
+ fixed $*PID on MacOS X
+ don't register names of anon types
+ configuration improvements
+ updated Any functions
+ fix $*IN_DECL leakage
+ implemented Hash.hash
+ Temporal updates
+ Buf.decode fixed
+ open() fixed for binary flag
New in 2010.11 release
+ now works with parrot on git
+ implemented qw//
+ 5x speedup of .trans
+ various improvements to Set
+ don't use deprecated charset ops anymore
+ Bool.Bool and Bool.so now return False
+ implemented &elems
+ improved error for Date.new(Str)
+ improvement on hyperoperators
+ indexings like .[0 .. *-1] work now
New in 2010.10 release
+ True and False now stringify according to the specification
+ basic form of 'require' for run time module loading
+ warnings from the setting now produce line numbers in the users' program
+ local time zone available as $*TZ
+ more consistent line numbers from warnings
+ getting and setting attributes via introspection
+ implement samespace, ms// and ss///
+ hyper operator invoving = can now modify their arguments
+ speed up Str.flip by over a factor of 100
New in 2010.09 release
+ new methods on IO concerning the modify and access time of files
+ S32::Temporal now completely implemented
+ Instants and Durations
+ speedup for slurp() and .reverse built-ins
+ various improvements to the Set type
+ revamp of series operator code, and adaption to new spec
+ implement ...^ up-to-but-excluding-series operator
+ allow :r and :ratchet modifiers on regex quoting constructs
+ Bool.pick
+ significantly improved enum implementation
New in 2010.08 release
+ syntactic adverbs on substitutions, rx quotes and m//, e.g. '$x ~~ s:2nd/a/b/'
+ updated ROADMAP
+ speedups for integer operations
+ the Match class's .perl method now produces useful, roundtrippable Perl code
+ the MAIN subroutine can now parse short arguments
+ the cmp and <=> operators now work on more numeric types
+ the Buf class now has .pack and .unpack methods with partial functionality
+ numeric bitshift operators now have the correct precedence
+ smartmatch against True or False is now an error
New in 2010.07 release
+ support for delegation via 'handles'
+ implemented binding with := and read-only binding with ::=
+ implement OS related built-ins like mkdir, cwd
+ improved diagnostics in Test.pm
+ basic binary IO, buffer encoding and decoding
+ magic $*ARGFILE file handle
+ more robust closures
+ multi-level Array and Hash element autovivification
+ perl6 --version now identifies the exact git sha1 and parrot version
+ implemented 'is rw' trait on classes
+ file tests now work through IO, ie. 'README'.IO ~~ :e
+ generic, multi-level Whatever-currying (eg grep !(* % 2), @list)
+ improved error reporting in many cases, especially multi-method dispatch
+ implemented backtracking into capturing groups and subrules
+ phasers refactored, they can now return results and see the setting
+ custom circumfix operators
+ basic .wrap and .unwrap implementation
+ weighted Hash.pick
+ .perl on custom classes now dumps attributes
+ Basic implementation of the ==> and <== feed operators
+ Int ~~ Num is no longer true, as per spec; use Numeric instead
+ Improvements to enumerations
New in 2010.06 release
+ new list model with immutable iterators, lots of fixes to lists and arrays
+ variable interpolation into regexes
+ compile time Whatever currying for infix, prefix and postfix operators
+ autoprinting in the REPL shell
+ in @*INC, the current directory '.' now comes at the end, as in Perl 5
+ basic Buf implementation: Str.encode/Buf.decode work for UTF-8
+ proper Perl 6 match objects
+ Backtraces with Perl 6 subroutine names and line numbers
+ MAIN and USAGE subs
+ basic version of Str.trans
+ mix-ins with non-roles (5 but 'string')
+ @*ARGS is now read-write
+ IO::Socket::INET again works in CORE
+ hash and array slices have been greatly improved
+ basic support for callframe() and CallFrame type
New in 2010.05 release
+ implemented lexical and anonymous classes and roles
+ manual pages are now installed
+ the .match method now understand the adverbs :c; :p, :nth, :x, :g, :ov
+ test reports with tools/test_summary.pl now record detailed timing information
+ many improvements to numeric handling
+ implemented S (sequential) meta operator
+ fixed placeholder parameters ($^a, $^b)
+ basic enum implementation
+ implemented List.classify
+ turned on an additional 47 test files
+ further improved error messages
+ implement zero-argument versions of many binary operators
+ basic interoperation with Perl 5 through the external Blizkost project
New in 2010.04 release
+ interpolation of expression ending in postcircumfixes into double-quoted
strings (for example "cards: @cards.sort()")
+ prefix and postfix hyper operators
+ multi subs now work properly when lexically scoped
+ implemented item assignment with tighter precedence than the comma operator
+ loading of .pm6 modules
+ Basic implementation of Numeric and Real roles
+ implementation of DateTime and Date built-in types
+ named regexes can be declared outside of grammars again
+ support for numbers with arbitrary radix, including fractional numbers (:16<DEAD.BEEF>)
+ implemented fmt(), printf() note() and IO.getc built-in routines
+ infix meta operators now inherit the precedence of the modified operator
+ &[+] short name for infix operators
+ hash slices
+ signature literals
+ smart-matching against signatures
+ more consistent implementation of prefix:<|> for interpolating things into
signatures
+ better error message on accidental usa of Perl 5 features such as << as
bit shift operators, and catch many perl 5 magic variables
+ implemented type Cool
+ implemented anonymous classes and roles
+ implemented $*PID
+ method introspection works again
+ better error message for calling non-existent routine in a namespace
+ now run programs with the setting as an outer lexical scope, as per spec
New in 2010.03 release
+ The trigonometric functions and the Rat class have received numerous
updates, making them faster and more complete
+ .^parent now works again
+ The invocation logic has received various speedups
+ Hash creation has been optimized
+ Various improvement related to constant internal strings have led to
slight speedups
+ .pick, .sort, .keys, .values, .kv, sprintf were reimplemented, ported
from the old 'alpha' branch
+ The statement modifier for loop works again
+ Various parsing bugs have been sorted out; one having to do with
closing curly braces at the end of a line not terminating the statement
+ .CREATE, .BUILDALL and .can in the OO system have received attention,
some of it leading to mild speedups
+ $*PROGRAM_NAME and @*ARGS now work
+ Deferral works again (nextsame/nextwith/callsame/callwith)
+ Array.delete works again
+ Fixed .?, .+ and .* along with matching latest spec on .?
+ Switch untyped variables to default to Any instead of Mu
+ &foo lookup syntax works again (including for operators)
+ Various cases of eqv operator implemented
+ Make overriding postcircumfix:<( )> work again, this time per spec
+ Make junctions of code objects invokable again
+ Lazy implementation of the Z operator
+ Added back @*INC
+ Read-only %*ENV support
+ Grammars work again
+ Implemented regexes taking parameters
+ Implemented proto-regex declarations
+ Initial work on getting subset types working again
+ Add back many of the file test methods
+ Added docs/S11-Modules-proposal.pod documenting how we intend to handle
modules through Rakudo *
+ First cut of locating and loading modules with a given version and/or
authority, and in absence of a requirement selection of the latest
version by default if multiple are available.
+ Many improvements to the series operator
+ Implemented 'need' and a first cut of 'import'; 'use' works in terms
of them
+ Import is now into the lexical scope by default, as per spec
+ Removed requirement to hand-pre-compile .pm to .pir for use with 'use'
+ Improved multi-dispatch candidate not found errors to include details of
the available candidates
+ Implemented 'use MONKEY_TYPING'
+ Many cases of smart-match work again
+ $x.Foo::bar() and $x.$y() work again
+ $.foo(1,2,3) works again
+ !, R, X and Z meta-operators work, albeit with some caveats
+ s/foo/bar/ and s[foo] = 'bar' substitution syntax implemented
+ Array.rotate added back
+ User defined operators (prefix, postfix, infix) working again
+ Many more small but important improvements to built-in types and functions
+ Various other bug fixes
+ ROADMAP updates
New in 2010.02 release
+ The branch formerly known as 'ng' becomes the new master branch
+ The previous master branch is now Rakudo/alpha
+ NQP-RX replaces NQP in the Parrot Compiler Toolkit, enabling the
source code of the compiler to be written in a subset of Perl 6 that
is much more powerful, most importantly with regexes, as the name
suggests
+ The revised Perl6/Grammar.pm is much closer to the canonical STD.pm
+ Regexes may declare contextual and lexical variables
+ Lazy lists and arrays are partly implemented
+ The object metamodel is largely written in NQP-RX instead of PIR
+ The name of the root of the object hierarchy is now Mu
+ The term 'undef' is gone, replaced by Nil, Mu or *.notdef depending on
context
+ Builtin classes derive from Cool which derives from Any
+ The refactored source code is more compact and more easily extended
+ The number of spectests passed has reduced from a peak of 32731 in
alpha to 24221, because porting the functionality to the new master
is still ongoing
+ Release numbering changes from 'dash' to 'dot' delimiter to get on
better with various package management systems
New in 2010-01 release
+ Added method form of eval.
+ Implemented :s and :l file operators
+ Added functions for logarithms using $base
+ Refactored subroutine calls to use new Context structures in Parrot 2.0.0
New in 2009-12 release
+ Only minor maintenance was done because all attention was being given
to the Rakudo/ng branch, bringing in the new nqp-rx bootstrap compiler
New in 2009-11 release
+ Rakudo now uses Parrot's updated calling convention features
+ support unpacking of arrays, hashes and objects in signatures
+ changed .pick to use :replace instead of :repl
+ many core setting optimizations and bugfixes
+ IO::Socket.recv() has been extended to accept a parameter specifying the
number of bytes which will be received
+ Rakudo now looks up %INC in the right namespace when loading libraries for
foreign languages
New in 2009-10 release
+ smolder reports for spectest runs
+ more Complex trig functions
+ pure Perl 6 implementation of the Complex type
+ some variants of the new series operator
+ correct construction of twigilled colonpairs
+ infix:<eqv>, .pred and .succ for the Rat type
+ when configuring with --gen-parrot, pass --optimize to parrot's Configure.pl
+ moved more operators to the setting and thus made them overloadable
+ { %hash } now correctly constructs a hash, not a closure
+ new, faster low level Signature type
+ improved Signature introspection
+ new, much faster signature binder
+ improved various error messages related to signature binding
+ signature literals now supported
+ binding of named arguments to positional parameters
+ attributive parameters implemented
+ package blocks now run as immediate blocks, as per the spec
+ lexical variables declared outside of packages now visible inside them
New in 2009-09 release
+ updates to numeric operators: infix</>(Int, Int) creates a Rat
+ Rat (rational) numbers
+ overloadable builtin operators
+ contextual variables
+ setting values in %*ENV now works
+ partial support for trigonometric functions of complex numbers
+ better handling of custom traits, many builtin traits moved to core setting
+ improved type dispatch for builtin operators, type coercions
New in 2009-08 release
+ Rakudo must now be built from an installed parrot, and can be installed
itself
+ separate Perl 6 meta class
+ introspection on roles
+ declaration of methods in the meta class by writing method ^newmethod($obj)
+ :tree options for parent class, attribute and role introspection
+ allow some custom postcircumfix:<( )> methods
+ moved more built-ins into the setting
+ implement operators infix:<!%> (divisibility test) and prefix [||] and [//]
+ updated ROADMAP in preparation for the Rakudo Star release
+ instead of throwing nasty parse errors, Rakudo now informs you that feed
operators are not yet implemented
+ improved testing: planless testing with done_testing(); better diagnostic
output from is()
+ the syntax for embedded comments has changed
+ embedded Pod comments are now recognized
+ support for defining traits and applying them to routines, classes and roles
+ "hides" trait (class A hides B { ... }), and "is hidden"
+ better handling of slurpy and optional in multi-dispatch
+ use of .?, .+ and .* with indirect calling form ($obj.+@cands)
+ .can improved; now returns something usable as an iterator
+ lastcall implemented
New in 2009-07 release
+ extensive refactor of the multi dispatch code to get closer to the spec
+ better handling of named arguments in multi dispatch
+ operators and traits can be defined in the setting
+ basic implementation of the series and eqv operators
+ refatored trait code to match updated specification
+ implemented more cases of smartmatching against hashes
+ fixed state variables to work with //= and ||= initialization
+ improved testing: when Rakudo dies with 'Null PMC Access' it is never
considered a success
+ implemented the :all flag to split which keeps captures
+ added List.rotate builtin
+ nextwith and callwith now also work properly with methods
+ take() without outer gather now merely warns
+ introspection of roles and attributes
New in 2009-06 release
+ refactored and corrected object initialization (BUILD/CREATE)
+ attributes initilizations can now use attributes defined earlier
+ method calls are now faster
+ basic safe mode that forbids IO and execution of external programs
+ implemented meta operators for user defined operators
+ initial implementation of Temporal (date/time related objects)
+ type checking of implicit return values
+ improved introspection methods
+ cleaned up IO methods
+ improved "is export" handling for modules and setting
+ automatically transcode to iso-8859-1 for faster parsing when possible
+ refactored and corrected assignment, .succ, .pred, C<++>, C<-->,
postcircumfix:<[ ]>, Whatever
+ "module Foo;" now allows statements before it
+ improved Unicode string handling
+ better support for Str increment/decrement in Unicode ranges
+ many performance improvements
New in 2009-05 release
+ updated docs/ROADMAP
+ basic support for custom operators
+ operators can now be referenced as &infix:<+>
+ meta operator support for custom operators
+ cross-language library loading
+ stack traces now include source file name and line number
+ implemented Regex type
+ .WALK (parent classes in configurable order)
+ .name method on routines
+ refactored enums, thereby fixing many enum related bugs
+ fixed namespace of eval()ed code
+ implemented parallel dispatch (@objects>>.methods)
+ initial support for «...» quotes
+ text files now default to utf8 encoding
+ fixes to Match.perl and Match.chunks
+ implemented 'constant name = $value'
+ documented build dependencies
+ grep() accepts general matcher, things like @list.grep(Int) work
+ trigonometric functions (sin, cos, ...) now available via 'use Num :Trig'
+ qx{} quotes now work (except on Windows)
+ hyper-operators on hashes now work (%a >>+<< %b)
+ initial implementation of $foo.@bar
+ refactored wrap and unwrap to work with candidate lists; fixes some bugs
+ refactored/improved callsame and callwith, and added nextsame and nextwith
(only work for dispatches of the form $foo.@bar and with wrap so far)
+ partial implementation of .^parents and .^methods
+ can initialize attributes in terms of others
+ many other bug fixes and performance enhancements
New in 2009-04 release (#16, "Bratislava")
+ wrap and unwrap for subroutines
+ calling a method on a Whatever star generates a closure
+ 1+*, *+1 and others generate closures (*-1 missing)
+ Associative, Positional and Callable are now parametric roles
+ typed arrays and hashes
+ parametric role subtyping (R[T1] ~~ R[T2] where T1 ~~ T2)
+ .invert and .push on Hashes
+ enforce return types of subroutines (partial implementation)
+ parallel testing
+ Configure.pl now supports passing options to parrot's Configure
+ support for lexical subroutines and multis
+ implemented \c[character name] in double quoted strings and regexes
+ implemented Perl 5 regexes
+ rx/.../ regex quoting
+ sockets support has been added (IO::Socket)
+ regex patterns may now be quantified by a separator regex
+ moved many methods to the setting
+ exporting and importing by tags, support :DEFAULT export tag
+ implemented START blocks
+ implemented roots builtin
+ implemented .ast on Match objects
+ added Match.caps and Match.chunks
+ split() now supports limits in all cases
+ prefix:<=> and the "fish operator" ( =<> ) are now gone
+ .readline is now .get
+ roles are now punned on any method call on the role
+ many other bug fixes
New in 2009-03 release (#15, "Oslo")
+ implemented $*PROGRAM_NAME magical variable
+ outer lexicals are now visible in eval()
+ next, last etc. work in grep()
+ added R metaoperator
+ add an initial draft of Match.perl
+ refactor Grammar and Match class hierarchy
+ fix if/unless/while/until/for/... on line after close curlies
+ add Q quoting, including Q:PIR
+ added "state" variables
+ //= fixed to short-circuit, and added short-circuiting &&= and ||=
+ multi-subs now have the Multi type and have a .candidates method
+ multi-method dispatch now looks up the class hierarchy
+ various fixes to using roles as type constraints
+ support bare sigils in signatures
+ more methods and functions moved to (Perl 6) setting
+ many other bug fixes
New in 2009-02 release (#14, "Vienna")
+ first release independent of Parrot releases
+ passing 7076 spectests (+796 since 2009-01 release)
+ build and use fakecutable (perl6.exe) by default
+ redesigned build, configuration, and test subsystems
+ add settings/ directory for builtins written in Perl 6 (was "prelude")
+ improve diagnostics in Test.pm
+ allow anonymous classes via C<::>
+ re-use existing parameterized roles instead of creating new ones
+ roles now pun classes when .new is called on them
+ 'proto' now marks all same-named routines as 'multi'
+ XopX is now Xop
+ implement <-> (rw) pointy blocks
+ added min= and max= metaoperators
+ many many bugfixes
+ publish release schedule
+ documentation improvements
|