-
-
Notifications
You must be signed in to change notification settings - Fork 373
/
ChangeLog
436 lines (412 loc) · 18.6 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
New in 2011.02 release
+ IPv6 support
+ more robust numeric exponentation
+ --ll-backtrace command line option for PIR level stack traces
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