Changeset 10908 for ChangeLog

Show
Ignore:
Timestamp:
06/26/06 05:32:39 (3 years ago)
Author:
audreyt
svk:copy_cache_prev:
14685
Message:

* Finish changelogging

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r10906 r10908  
    1 = Changes for 6.2.12 (rXXXXX) - June XX, 2006 *** up to r10905 
     1= Changes for 6.2.12 (r10910) - June 25, 2006 
    22 
    33== Licensing Changes 
    44 
    5 * The src/ tree and the `pugs` executable are now released under the 
    6   permissive MIT license, in addition to Artistic and GPL. 
    7 * A new third-party/ tree to hold bundled prerequisites originated 
    8   from non-Pugs projects. 
    9  
    10 == Bundled Modules 
    11  
    12 === New Perl 5 modules 
    13  
    14 * `v6.pm`: `use v6-pugs; say "Perl 6"; use v5; print "Perl 5"` 
    15 * Module::Compile - precompile Perl 5 modules transparently 
    16 * Pugs::Compiler::Rule - Compiler for Perl 6 Rules 
    17 * Pugs::Compiler::Perl6 - Compiler for Perl 6 (implements 'v6') 
    18 ** Still fails many of the sanity tests, as well as nearly all of the other tests 
    19 * Data::Bind - Implement Perl 6's calling/binding convention on Perl 5 
    20  
    21 === New Perl 6 modules 
    22  
    23 * [ext/Relation/]: Relation type for Perl 6 (incomplete). 
    24 * Getopt::Std - simple command-line parsing 
    25  
    26 === New Haskell modules 
    27  
    28 * `HsSyck` - Haskell bindings to `syck` 0.61, a fast YAML library in c. 
    29 * `HsJudy` - Haskell bindings to `Judy` 1/0/3, a fast collections library in c 
    30  
    31 === Updated modules 
    32  
    33 * [ext/Locale-KeyedText/] - Added export_as_hash() methods. 
    34 * [ext/Rosetta/]: Multiple additions and rewrites. 
    35 ** Merged ext/Rosetta-Engine-Native/ in, renamed to ::Example. 
    36 ** Now officially incorporates "The Third Manifesto". 
    37 ** Rewrote half of Language.pod. 
    38 ** Updated the DESCRIPTION and class list of Rosetta.pm. 
    39 ** Added new core module Rosetta::Shell and example shell.pl. 
    40 ** Added new documentation file Rosetta::SeeAlso. 
    41 ** Various other documentation additions and edits. 
    42 * [ext/Test/]: Avoid the use of junctions to make Parrot/Perl6's life easier. 
    43  
    44 === Experimental modules (in misc/, not installed) 
    45  
    46 == pX effort (Perl 6 on Perl 5) 
    47  
    48 * misc/pX/Common is a place where people can collaboratively hack 
     5* The [src/] tree and the `pugs` executable are now released under the 
     6permissive MIT license, in addition to Artistic and GPL 
     7* A new [third-party/] tree to hold bundled prerequisites originated 
     8from non-Pugs projects 
     9 
     10== New Perl 6 modules 
     11 
     12* [ext/Relation/] - Relation type for Perl 6 (incomplete) 
     13* [ext/Getopt-Std/] - Simple command-line parsing 
     14 
     15== Updated modules 
     16 
     17* [ext/Locale-KeyedText/] - Added export_as_hash() methods 
     18* [ext/Rosetta/]: Multiple additions and rewrites 
     19** Merged ext/Rosetta-Engine-Native/ in, renamed to ::Example 
     20** Now officially incorporates "The Third Manifesto" 
     21** Rewrote half of Language.pod 
     22** Updated the DESCRIPTION and class list of Rosetta.pm 
     23** Added new core module Rosetta::Shell and example shell.pl 
     24** Added new documentation file Rosetta::SeeAlso 
     25** Various other documentation additions and edits 
     26* [ext/Test/]: Avoid the use of junctions to make Parrot/Perl6's life easier 
     27 
     28== Perl 6 on Perl 5 (under [misc/pX/Common/]) 
     29 
     30* Data-Bind - Implement Perl 6's calling/binding convention on Perl 5 
     31* Inline-Parrot - a C version of Inline-Parrot - uses NCI for data exchange 
     32* Module-Compile - precompile Perl 5 modules transparently 
     33* P5_to_P6_Translation - beginning of a Perl 5.9 MAD tree parser and translater to Perl 6 
     34* Pugs-Compiler-Perl6 - Compiler for Perl 6 (implements 'use v6-pugs'): 
     35    use v6-pugs; say "Perl 6"; use v5; print "Perl 5" 
     36* Pugs-Compiler-Precedence - an operator precedence parser, built around Parse::Yapp 
     37* Pugs-Compiler-Rule - Compiler for Perl 6 Rules 
     38* Pugs-Grammar-MiniPerl6 - translate Perl 6 rules into haskell Parsec 
     39* Pugs-Grammar-Perl6 - a Perl 6 parser - parses Test.pm! 
    4940* lrep - a bootstrapped, very minimal Perl 6 compiler written in Perl 6 
    50 ** compiles itself to Perl 5 code - does not depend on pugs or parrot. 
    51 ** still depends on Perl 5 for unimplemented parts. 
    52 ** supports simple macros. 
    53 ** 'lrep-compiler' is the development version. 
    54 * Pugs-Compiler-Rule - a compiler for Perl 6 Rules - published in CPAN 
    55 ** uses Module::Install 'pmc' magic for executing Perl 6 from plain Perl 5. 
    56 ** the "Rule" grammar is written in Perl 6, and it is compiled to Perl 5 using 'lrep'. 
    57 * Pugs::Compiler::Perl6 - Compiler for Perl 6 (implements 'use v6-pugs') 
    58 * Pugs-Compiler-Precedence - an operator precedence parser, built around Parse::Yapp 
    59 * Inline-Parrot - a C version of Inline-Parrot - uses NCI for data exchange. 
    60 * Pugs-Grammar-Perl6 - a Perl 6 parser - parses Test.pm! 
    61 * re-override - moved to /perl5/re-override - swaps in an alternate regexp engine: 
    62   `./perl -we 'use Regexp::Perl6; print "a" =~ /<word>**{1}/;'` 
    63 * Pugs-Grammar-MiniPerl6 - translate Perl 6 rules into haskell Parsec, such that 
    64   Parser.hs can be generated from the Perl 6 grammar. 
    65 * P5_to_P6_Translation - beginning of a Perl 5.9 MAD tree parser and translater to Perl 6 
     41* re-override - Swaps in an alternate regexp engine: 
     42    ./perl -we 'use re::override-perl6; print "a" =~ /<word>**{1}/;' 
    6643 
    6744== Test, Examples and Documentations 
    6845 
    6946* Restored this ChangeLog's entries for v6.0.0 thru v6.0.8, which were 
    70 truncated in r8916, apparently from gnome's copy-paste buffer limit. 
    71 * [docs/Perl6/Doc] hierarchy, installable `Perl6::Doc`. 
    72 * Gaal's OSDC talk "A Peek into Pugs Internals" in `docs/talks/peek.spork`. 
    73 * Juerd's talk "Perl 6 Myths" in `/docs/talks/p6myths2.html`. 
    74 * [examples/qotw/]: Added the QOTW 8 Expert solution. 
    75 * [examples/rules/]: Added a sample BASIC parser. 
    76 * [examples/concurrency/]: Added sample usage on Software Transactional Memory. 
    77 * [docs/Perl6/FAQ/Capture.pod] - FAQ on the new Signature/Capture calling convention. 
    78 * [docs/Perl6/FAQ/FUD.pod] - Fears, Uncertainties and Doubts about Perl 6. 
     47truncated in r8916, apparently from gnome's copy-paste buffer limit 
     48* [docs/Perl6/Doc] hierarchy, installable `Perl6::Doc` 
     49* [docs/Perl6/FAQ/Capture.pod] - FAQ on the new Signature/Capture convention 
     50* [docs/Perl6/FAQ/FUD.pod] - Fears, Uncertainties and Doubts about Perl 6 
     51* [docs/talks/p6myths2.html]: Juerd's talk "Perl 6 Myths" 
     52* [docs/talks/peek.spork]: Gaal's OSDC talk "A Peek into Pugs Internals" 
     53* [examples/concurrency/]: Added sample usage on Software Transactional Memory 
     54* [examples/qotw/]: Added the QOTW 8 Expert solution 
     55* [examples/rules/]: Added a sample BASIC parser 
    7956* [src/Pugs/Parser] - Perl 6 grammars for Capture.pg and Signature.pg  
    8057* [util/cperl-mode.el] - Emacs mode for Perl 6 
     
    8259== Feature Changes 
    8360 
    84 * Pugs now builds in a single pass. 
    85 * Removed support for GHC 6.4.0 and added support for GHC 6.5. 
    86 * Removed support for Parrot 0.4.4 or below and added support for GHC 0.4.5. 
    87 * Use `Data.ByteString` instead of `Data.FastPackedString` for fast 
    88   string representation. 
    89 * Compile `Prelude.pm`, and possibly additional modules, to YAML bytecode for faster loading 
     61* Pugs now builds in a single pass 
     62* Removed support for GHC 6.4.0 and added support for GHC 6.5 
     63* Removed support for Parrot 0.4.4 or below and added support for GHC 0.4.5 
     64* &?SUB is replaced with &?ROUTINE; $?SUBNAME is replaced with &?ROUTINE.name 
     65* Arguments beginning in parens, such as `f ('x')=>1`, is now always positional 
     66* Array and hash sigilled match variables, such as `@0`, `@<foo>` and `%<bar>` 
     67* Assignment with non-obviously-scalar left-hand side is now in list context: 
     68** `@a = 1,2,3` now parses as `@a = (1,2,3)` 
     69* Broke down Parser and AST.Internals to smaller files so rebuilds are faster 
     70* Builtin functions no longer defaults to `$_`; write `.ord` instead of `ord` 
     71* Compile `Prelude.pm` and `Test.pm`, to YAML bytecode for faster loading 
     72* Declarators are now lexical: `{ $x++ unless my $x }` increments `$OUTER::x` 
     73* Declarators can now occur at expression position: `my $x + my $y` works 
     74* Declarators no longer take qualified names: `our $Foo::x` is invalid 
     75* Experimental support for Software Transactional Memory and atomic blocks 
     76* Hash initializers now revert to bias-to-left behavior as in Perl 5 
     77** In `{X => 1, X => 2}`, the value of X is 2, not 1 
     78* If a block ends on a line by itself, an implicit `;` is assumed if possible 
     79* In the interactive shell, :d and :D (dump parse tree) now continues the parse 
     80from the current environment; use :reset to reset the environment 
     81* More helpful diagnostics when calling unsafe builtins under safe mode 
     82* Multiline support in the interactive shell reports unrecoverable parsefails 
     83* Names of named arguments must always be a bareword now, such as: 
     84    f(name=>1); f(:name(1)); 
     85* New AST-dumping backends: `Parse-Pretty`, `Parse-YAML`, `Parse-HsYAML` 
     86* Parse-time binding `::=` is now fully supported  
     87* Proper desugaring of `.=` expressions, such as `@a .= map(&sqrt)` 
     88* Prototype objects: `my Dog $fifo` now assigns `::Foo` into `$fido` 
     89* Removed support for `require ::Class::Literal` 
     90* Removed support for `rx_` macros in Prelude for user-defined rule handlers 
     91* Quotelike constructs such as `rx` and `qq` no longer takes `#` as delimiter 
     92* Support for Unicode bracket characters for quotelike operators 
     93* Support for bracketed comments: #(...), #<<< ... >>>, etc 
     94* Support for controlled backtracking and whitespace sensitivity via distinct 
     95`token`/`regex`/`rule` delecarators 
     96* Support for environmental variables such as `$ENV::PWD` and `$+PATH` 
     97* Support for implicit-topic dereferences such as `.[0]` and `.<foo>` 
     98* Support for long dot syntax: $foo\   .blah 
     99* Support for scan metaoperators: `[\+] 1,2,3` evaluates to `(1, 3, 6)` 
     100* The `-M` command line switch can take import arguments: `pugs -Mlib=foo` 
     101* The parser is now much faster by being mostly predictive (non-backtracking) 
     102* The postfix infiniterange is no more; write `1..*` instead of `1...` 
     103* Two `my $x` declarations in the same scope is now no-op instead of an error 
     104* Use `Data.ByteString` for fast string representation 
     105* Using libraries from embedded Perl 5 can import functions now 
     106* Whitespace disambiguation implemented on `if`, `unless` and `for`: 
     107   if %ENV{ 3 } { 4 }   # hash lookup on %ENV 
     108   if %ENV { 3 } { 4 }  # %ENV by itself 
    90109* YAML bytecode is now versioned to reduce incompatibilities 
    91 * New AST-dumping backends: `Parse-Pretty`, `Parse-YAML`, `Parse-HsYAML` 
    92 * Broke down Parser.hs and AST.Internals.hs to smaller files, making rebuilds faster. 
    93 * q:code {...} gives ASTs in macros 
    94 * readline and =$fh autochomp: they are now complements to &say, not &print. 
    95 * `make upload-smoke` now uploads smoke test automatically. 
    96 * Support for bracketed comments: #(...), #<<< ... >>>, etc. 
    97 * Support for long dot syntax: $foo\   .blah 
    98 * More helpful diagnostics when calling unsafe builtins such as `system` under safe mode. 
    99 * &?SUB is replaced with &?ROUTINE; $?SUBNAME is replaced with &?ROUTINE.name. 
    100 * `:!foo` is now a shorthand for `foo => False`. 
    101 * The parser is now much faster by being mostly predictive (non-backtracking) 
    102 * Whitespace disambiguation implemented on `if`, `unless` and `for`: 
    103     if %ENV{ 3 } { 4 }  # hash lookup on %ENV 
    104     if %ENV { 3 } { 4 } # %ENV by itself 
    105 * Support for Unicode bracket characters for quotelike operators 
    106 * The rx_ macros in Prelude for user-defined rule handlers has been discontinued 
    107 * Proper desugaring of `.=` expressions, such as `@a .= map(&sqrt)` 
    108 * If a block ends on a line by itself, an implicit semicolon is assumed if possible 
    109 * Support for implicit-topic dereferences such as `.[0]` and `.<foo>` 
    110 * Multiline support in the interactive shell now recognizes unrecoverable parsefails 
    111 * Array and hash sigilled match variables, such as `@0`, `@<foo>` and `%<bar>` 
    112 * Two `my $x` declarations in the same scope is now no-op instead of an error 
    113 * Quotelike constructs such as `rx` and `qq` no longer takes `#` as delimiter 
    114 * Support for controlled backtracking and whitespace sensitivity via distinct `token`/`regex`/`rule` delecarators 
    115 * In the interactive shell, :d and :D (dump parse tree) now continues the parse from the current environment; use :reset to reset the environment. 
    116 * Support for environmental variables such as `$ENV::PWD` and `$+PATH` 
     110* `&not` is now unary instead of a list operator 
     111* `:!foo` is now a shorthand for `foo => False` 
    117112* `bool::true` and `bool::false` are renamed to `Bool::True` and `Bool::False` 
    118 * Arguments beginning in parens, such as `f ('x')=>1`, is now always positional 
    119 * Names of named arguments must always be a bareword now, such as `f(name=>1)` or `f(:name(1))` 
    120 * Support for scan metaoperators: `[\+] 1,2,3` evaluates to `(1, 3, 6)` 
    121 * Builtin functions no longer defaults to `$_`; write `.ord` instead of `ord` 
    122 * `&not` is now unary instead of a list operator 
    123 * `require ::Class::Literal` is no longer supported 
    124 * The postfix infinite-range operator is no more; write `1..*` instead of `1...` 
    125 * Experimental support for Software Transactional Memory and atomic blocks; the syntax is subject to change 
    126 * Hash initializers now revert to bias-to-left behavior as in Perl 5: In `{X => 1, X => 2}`, the value of X is 2, not 1 
    127 * The `-M` command line switch can take import arguments: `pugs -Mlib=foo` 
    128 * Using libraries from embedded Perl 5 can import functions now 
    129 * Declarators no longer take qualified names: `our $Foo::x` is invalid 
    130 * Assignment with non-obviously-scalar left-hand side is now in list context: `@a = 1,2,3` now parses as `@a = (1,2,3)` 
    131 * Parse-time binding `::=` is now fully supported  
    132 * Declarators can now occur at expression position: `my $x + my $y` works 
     113* `make upload-smoke` now uploads smoke test automatically 
    133114* `my $!x` is now recognized as an alternative spelling for `my $x`  
    134 * Prototype objects: `my Dog $fifo` now assigns `::Foo` into `$fido` 
    135 * Declarators are now strictly lexical: `{ $x++ unless my $x }` increments `$OUTER::x` 
    136  
    137 == Bug Fixes 
    138  
    139 * @foo.perl works correctly when @foo is recursive 
    140 * slurp utf8 files correctly 
    141 * openFile now turns the autoflushing bit on with a file, as 
    142   otherwise it doesn't get closed upon program exit. 
    143 * short-circuit operators didn't. Fixed. 
    144 * (1.3 % 1) was evaluating to 0 like Perl 5 does.  Now it evaluates 
    145   to 0.3 like everybody else. 
     115* `q:code {...}` gives ASTs in macros 
     116* `readline` and `=$fh` now autochomps 
     117 
     118== Bug Fixes 
     119 
     120* (1.3 % 1) was evaluating to 0; now it evaluates to 0.3 like everybody else 
     121* An uninitialized Code is no longer nullary: `my &f; f 1` is not a parsefail 
     122* Chained assignments now return lvalues properly: `$x = %y = (1,2,3,4);` 
     123* Implicit variables ($^x) is no longer allowed in statemeent-level bare blocks 
     124* Implicit variables following a declarator was broken: `{my $x; $^y}.(42)`  
     125* In `(@x, @y) = (1,2,3)`, the `@y` is now cleared into an empty list 
     126* Invalid rules in embedded Parrot no longer triggers an uncatchable `exit` 
     127* Lexical imports are no longer discarded upon block reentry  
     128* Method invocant is `self` and `$?SELF` but no longer `$_` 
     129* Named-only subs such as `sub f (:$x!) {}` no longer parse as unary positional 
     130* Opening a file for writing now turns autoflushing on by default 
     131* Short-circuit operators now works again 
     132* Statement-level `return` and `yield` now propagates contexts correctly 
     133* Statement-level bare blocks now counts as one scope for `OUTER`, not two 
    146134* Statement-level bare blocks now runs under all contexts: (sub { { 3 } }).() 
    147 * Implicit variables ($^x) is no longer allowed in statemeent-level bare blocks. 
    148 * `1.` was parsed as a valid integer, causing ambiguities; it's now invalid. 
    149 * `sign` and `<=>` now fails on underfined arguments, instead of returning undef. 
    150 * Implicit variables following a declarator was broken: `{my $x; $^y}.(42)`  
     135* Strings outside ASCII range no longer raises exceptions at the PGE/Parrot bridge 
    151136* The bogus comma-less block argument form `map {$_} 1,2,3` is no longer supported 
    152 * In `(@x, @y) = (1,2,3)`, the `@y` is now cleared into an empty list 
    153 * Strings outside ASCII range no longer raises exceptions at the PGE/Parrot bridge 
    154 * Statement-level bare blocks now counts as one scope for `OUTER`, not two 
    155 * Named-only subs such as `sub f (:$x!) {}` is no longer parsed as unary positional 
    156 * Statement-level `return` and `yield` now propagates contexts instead of resetting it to void 
    157 * An uninitialized Code is no longer considered nullary: `my &f; f 1` is not a parsefail 
    158 * `&slurp` and `&readline` now evaluates eagerly an no longer races breaks with e.g. an `&unlink` afterward  
    159 * Lexical imports use the `state` instead of `my` storage class now, so they are are no longer discarded upon block reentry  
    160 * Chained assignments now return lvalues properly: `$x = %y = (1,2,3,4);` 
    161 * `sub f (@x) {}` no longer confer slurpy context to its argument, so `f([1,2,3])` works now 
     137* `%.foo` and `@.foo` now always flattens in argument lists 
     138* `&slurp` and `&readline` evaluates eagerly and no longer races with `&unlink` 
     139* `1.` was parsed as a valid integer, causing ambiguities; it's now invalid 
     140* `@foo.perl` works correctly when `@foo` is recursive 
    162141* `f(())` now passes `&f` an empty list, not `undef` 
    163 * `%.foo` and `@.foo` now always flattens in argument lists 
    164 * Invalid rules in embedded Parrot no longer triggers an uncatchable `exit` 
    165 * Method invocant is `self` and `$?SELF` but no longer `$_` 
     142* `sign` and `<=>` now fails on undefined arguments, instead of returning undef 
     143* `slurp` works correctly on UTF-8 files 
     144* `sub f (@x) {}; f([1,2,3])` now works as it's no longer under slurpy context 
    166145 
    167146= Changes for 6.2.11 (r8934) - Feb 1, 2006