Changeset 14378 for ChangeLog

Show
Ignore:
Timestamp:
10/17/06 08:26:56 (2 years ago)
Author:
audreyt
svk:copy_cache_prev:
21206
Message:

* ChangeLog?: 47 lines left...

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r14376 r14378  
    137137* Array and Hashes now round-trips from Pugs to Perl 5 land and back 
    138138* Passing unboxed values across runtimes no longer leaks memory 
     139* When embedding Perl 5.8+, Unicode flag is now on for Pugs-to-Perl5 strings 
    139140 
    140141=== Lexical Syntax 
     
    149150* POD directives: `=begin`/`=end` and `=for` now terminate without `=cut` 
    150151* `%h<>` now means `%h{}` -- the entire hash, not the empty string as key 
     152* `1<2>` is now a fatal error: Odd numbers of elements in Hash 
     153* List comprehension: `for 0 < list(@x) < 10 {...}` 
    151154 
    152155=== Declarators and Operators 
     
    158161* Binding to qualified uninitialized symbols: `&fully::qualify := sub {...}` 
    159162* Postfix operators can be called with a dot: `.++`, `$x.++`, `$x.\ ++` 
     163* Mid-block redeclaration no longer allowed: `my $x; { $x = 1; my $x = 2 }` 
     164* Smart matching against implicit invocation: `$obj ~~ .meth`, `$obj ~~ .[0]` 
    160165 
    161166=== Blocks and Statements 
     
    169174* `do {...}` is now a loop block that takes standard loop controls 
    170175* New postfix `given` statement modifier: `.say given foo()` 
     176* `&take` now works in functions called from within a `gather {...}` block 
     177* `&take` no longer flattens array literals: `take [1,2,3];` 
     178* Implicit invocation in `when`: `when .true {...}`, `when .<key> {...}` 
     179* Loop topic is not forced into rw: `for 1..3 { $_++ }` now fails correctly 
    171180 
    172181=== Regexes and Grammars 
     
    180189* Allow space-separated adverbial named arguments: `f( :x<foo> :$y :!z )` 
    181190* Parse for the `proto` routine modifier: `proto method foo ($x) {...}` 
     191* Multi-dispatching now handles named, slurpy and optional arguments 
     192* Support for user-defined unary and optional-unary prefix macros 
     193* `sub f ($x is lazy) {...}` no longer evaluates $x more than once 
     194* `sub ($x = 0 is copy)` no longer allowed; say `sub ($x is copy = 0)` instead 
    182195 
    183196=== Classes and Objects 
     
    187200* Quantified method calls: `$obj.*meth`, `$obj.+meth` and `$obj.?meth` 
    188201* Default expression for attributes: `class C { has $.x = 123 }` 
    189  
    190 === Built-in Functions 
    191  
    192 * New `&quotemeta` primitive for escaping strings 
    193 * New `&printf` primitive for formatted printing 
     202* Attribute-like method call syntax: `@.method(1)`, `$.method: 2, 3, 4` 
     203* Role mixins: `role R {...} class C does R {...}` 
     204* Circular mixin is no longer allowed: `role A does A` 
     205 
     206=== Built-in Primitives 
     207 
     208* New `&quotemeta` function for escaping strings 
     209* New `&printf` function for formatted printing 
     210* New `&comb` function, a dual to `&split` but matches the wanted parts 
    194211* The `.as` method is renamed to `.fmt` for formatted printing  
    195212* Support for `%b` in formatted printing 
     213* The `.perl` method now returns Unicode strings 
    196214 
    197215--- >8 --- >8 --- >8 --- >8 --- >8 --- >8 --- >8 --- >8 --- >8 --- >8 --- 
     
    207225  as YAML 
    208226* Implemented staleness checking for .yml/.pm loader 
    209 * The following code is no longer allowed: 
    210     my $x; 
    211     { 
    212         $x = 1; 
    213         my $x = 2; 
    214     } 
    215 * "role A does A" is not allowed anymore 
    216 * "my $x; { $x; my $x }" now fails with a sensible error message 
    217227* Allow $::x to mean exactly the same as $x 
    218 * "sub ($x = 0 is copy)" is invalid; say "sub ($x is copy = 0)" instead 
    219228* Pugs.Parser: $() now means $$/, @() means @$/, %() means %$/, etc 
    220229* Added identity values for the builtin reduceable operators from S03 
    221230* Implement hyperfold and hyperscan: [>>+<<] and [\>>+<<] 
    222 * Unicode support for the embedded Perl5 bridge.  (This takes effect iff 
    223   the embedded Perl supports SvUTF8_on, typically Perl 5.8+.) 
    224 * Pugs.Parser: Support for attribute call syntax 
    225     @.foo(1, 2, 3);     # self.foo(1,2,3).'@' 
    226     $.bar: 4, 5, 6;     # self.bar(4,5,6).'$' 
    227  
    228 * Much improve multi dispatch system 
    229 * Implement quantified method calls: $obj.*meth, $obj.+meth, $obj.?meth, 
    230   as well as quantified dynamic method calls: $obj.[+*?]$meth 
    231 * User-defined macros now take effect even in prefix unary 
    232   and optional unary 
    233 * "Odd numbers of elements in hash" is now made fatal 
    234   (it was not even a warning) to help shake out incorrect 
    235   usages of things like 1<2> 
    236 * Pugs.Prim.Keyed: Instead of allowing "1.delete();" to return undef, 
    237   we now simply fail 
    238231* Pugs.Eval: Autovivification is now constrainted by typed variables: 
    239232    my Hash $x; 
     
    242235* Reduce standalone blocks even if nested: 
    243236    { { { say 3 } } } 
    244 * Make the closure trait blocks lazy 
    245 * Repair "use perl5:Foo" 
    246 * Implement smart matching against implicit invocation: 
    247     $obj ~~ .meth       # ?($obj.meth) 
    248     $obj ~~ .[0]        # ?($obj.[0]) 
    249     $obj ~~ .<x>        # ?($obj.<x>) 
    250 * Implement "when .[0]" and "when .<s>" 
    251 * Implement hyper methods: 
    252     @obj>>meth 
    253     @obj.>>meth 
    254     @obj>>.meth 
    255     @obj.>>.meth 
    256     @obj\  .>>\  .meth 
    257237* Reject named arguments that cannot find a matching named 
    258238  parameter or slurpy hash 
    259239    sub f () {...} 
    260240    f(y => 1); # used to bind silently, but now no more 
    261 * "for 1..3 { $_++ }" should die, not survive 
    262241* Primitive support for =@Array on both contexts 
    263242* Remove Judy from the Pugs build process 
     
    283262    } 
    284263    while 1; 
    285 * Pugs.Eval: Allow "redo" to redo the first repeat loop 
    286           (repeat.t now all passes.) 
    287 * "sub f ($x is lazy) {...}" is now guaranteed to not evaluate 
    288   its argument more than once 
    289264* Switch chained comparison such as "1 > 2 > die('not reached') 
    290265  to use "is lazy" parameters, so they can short-circuit properly 
    291 * Fix expected outut of head-neck-tail in examples/: 
    292   [1,2,3].say should print "1 2 3\n", not "123\n" 
    293 * Fix take [1,2,3]" shouldn't flatten into "take 1,2,3 
    294 * fix a couple of old s{}{} instances. comb potentially faster using lvalue 
    295   substr instead of copying string 
    296 * ".perl" now returns Unicode strings properly 
    297266 
    298267== Perl 6 on Perl 5 (under [misc/pX/Common/])