« Pugs 6.2.11-pre0 calls for test. |
Main
| Pugs 6.2.11 released! »
Bundled Modules
New Perl 6 modules
Updated modules
-
ext/File-Spec/ - Rewritten to define its own exported wrapper subs
-
ext/Locale-KeyedText/ - Rewrote with a strong resemblence to the original
-
Split up
translate_message()
for more granular Translator usage
-
Objects now become something useful when coerced into a string
-
Added
Locale::KeyedText::L::en
, LKT now throws Message exceptions
-
Template Modules now have a different variable interpolation format
-
Created 2 running examples/ from pod that was removed from KeyedText.pm
-
Deleted old test suite (yet to be replaced); now only tests compilation
-
ext/libwww-perl - Rewrote
HTTP::Header::Util
with gather/take syntax
-
ext/Test -
&fail
renamed to
&flunk
to avoid conflict with builtin
Experimental modules (in misc/, not installed)
-
misc/Parser-Mini/ - Experimental
thin
p6 parser
-
misc/Rosetta-Incubator/ broken up:
-
Locale::KeyedText was merged into the rewritten one in ext/
-
SQL::Routine and Rosetta were merged together, became Rosetta in ext/
-
The license of Rosetta is now GPL (with extra linking provision)
-
Remainder (SQLBuilder, SQLParser, Eng/Generic, Emu/DBI) was deleted
-
misc/sixpan/ - Prototype of new CPAN tools in Perl 5
Test, Examples and Documentations
Feature Changes
-
Adverbial number forms:
:16<deadbeef>
and
:16[14,15]
-
This change obsoletes
hex()
and
oct()
-
Calling private methods with
self!method
-
Deep eager sequential evaluation (aka
steamroll
) operator
&prefix:<**>
-
Multisub declarations in the same scope can now be exported selectively
-
Named arguments are now decided at parse time, not as runtime Pair objects
-
New YAML tree-dump backends:
-C Parse-YAML
,
-C PIR-YAML
,
-C PIL1-YAML
-
New
\x[abcd]
and
\x[1,2,3,]
forms instead of
\x{abcd} in qq-strings
-
New backend:
-CParse-Pretty
, to show a pretty parse tree
-
Parameter syntax changes:
-
+$arg
becomes
:$arg
-
++$arg
and
+$arg is required
becomes
:$arg!
-
?$arg
becomes
$arg?
-
Round-trip data serialization with
.yaml
and
eval(..., :lang<yaml>)
-
Support for multiline inputs in interactive shell
-
The build system now supports Cygwin again
-
Two or more underscores in numbers (eg.
1__0
) is no longer accepted
-
Unary
^
support:
^10
is a shorthand for
0..^10
-
$+x
is now accepted as a shorthand for
$CALLER::x
-
$CALLER::x
now only sees
env $x
in outer dynamic scopes, not
my $x
-
$obj.clone
support
-
%*INC
now contains module interface structures, not file system pathnames
-
&die
and
&fail
can take an object argument without stringifying it
-
eqv
is now spelled
===
-
pugs file.p6 --options
now passes options to the program, not to Pugs
-
self
is an alias for
$?SELF
-
use Module
now imports its symbols lexically at the consumer's use time
-
use Perl-6
parses correctly now
Bug Fixes
-
Bareword
foo.bar
now always parses as
::foo.bar
, never
foo(.bar)
-
Binding a block to
&infix:<operator>
in BEGIN time now affects parsing
-
Fixed embedding of threaded parrot
-
Fixed evaluation order in array and hash access
-
Fixed splice on scalar
-
Improved detection of null patterns; this fixes some endless loops
-
Improved hash parsing.
{("a"=>3),}.ref
is again ::Hash, not ::Block
-
Infix macros no longer cause parsefail
-
Lazy
{...}
executes its closure at most once
-
Method calls on simple index lookups now gets dispatched correctly
-
Parse (but no implementation) for scoped packages
-
When
m:P5/(...)?/
captures nothing, $0 no longer evaluates to true
-
$.foo.bar()
correctly dispatches on the runtime type of
$.foo
-
&splice
was destroying existing bindings on the array
-
.perl
stringification now escapes unprintable characters
-
1**Inf
,
0**0
and
Inf**0
are defined to 1 regardless of architecture
-
3..2
and
'z'..'a'
return empty lists
-
(1,2,3,4).elems
no longer throws an exception
-
zip(@a; @b; @c)
no longer flattens the arrays together
Backends
JavaScript backend
-
Division by zero raises an error, not return NaN like JS does
-
Fix problems with
[=>]
and related operators
-
New operators implemented:
+| +& +^ +< +> ~& ~| ~^ +^ ~^
-
PIL/JS compilation now works with exported multisubs
-
Support for using Perl 5 modules in JavaScript backend via
-B JS-Perl5
-
$*PID
-
.assuming
-
FIRST {...}
blocks
-
state $variable
-
unlink()
Parrot backend
-
Parrot 0.4.1+ is now required for Parrot targeting and embedding
-
Closure creation no longer triggers segfaults
-
Lexical variables are now truly lexical instead of emulated by temps
- Upon program exit, embedded Parrot/Perl5 objects are finalized correctly
-
Support for modules with lexical imports
-
When looking for an external parrot, look in
%ENV<PARROT_PATH>
first
PIL^N backend
-
New VM written in Haskell which uses the domain specific language PIL^N
-
Based on the Perl6-ObjectSpace prototype
-
Optionally built with
make pil
(and interactively as
make pili
)
-
See src/PIL/Native/ for the source code
-
Class Meta-Model written and bootstrapped in PIL^N
-
Basic tests for Meta-Model in t/pil/
-
Role Meta-Model partially complete in PIL^N
-
Some basic Container types written in PIL^N
-
Haskell implementation of Perl 6 Rules and precedence parser
Perl6-ObjectSpace
-
Prototype Perl 5 backend, served as the inspiration for the PIL^N backend
-
Core set of
native types
written in Perl 5
-
Class Meta-Model bootstrapped using only the native types
-
Role Meta-Model and Container types not yet supported
-
Based on work from the perl5/Perl6-MetaModel/
The comments to this entry are closed.
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
|
|
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 |
|
|
audrey - you are an insane coder. i am glad you are on our side. thanks for your hard work and insane output.
Posted by: grumpY! | 2006.02.02 at 06:59 AM