Parrot 0.2.0 "NLnet" Released!

2005-05-08 Thread Leopold Toetsch
Parrot 0.2.0 "NLnet" Released!
On behalf of the Parrot team I'm proud to announce the release of
Parrot 0.2.0 and I'd like to thank all involved pepole as well as
our sponsors for supporting us.
It's a pleasure and honor for me to be able to advertise (after 0.1.0) the
next leap release 0.2.0 with almost complete MMD support.
What is Parrot?
Parrot is a virtual machine aimed at running Perl6 and other dynamic
languages.
Parrot 0.2.0 changes and news
* parrot repository is now under subversion
* MMD (Multi Method Dispatch) refactored
* new unary and infix opcodes that return new result PMCs
* dynamic scalar PMCs inherit now almost all from Parrot core PMCs
* more unification of PMCs and ParrotObjects
* tailcalls for functions and methods
* PGE (Parrot Grammar Engine) reworked
* Pugs creates Parrot code and Pugs is a registered Parrot compiler
* new languages/lisp
* the usual bug fixes and improvements
After some pause you can grab it from
.
As parrot is still in steady development we recommend that you
just get the latest and best from SVN by following the directions at

Turn your web browser towards  for more
information about Parrot, get involved, and:
Have fun!
leo


Re: Overriding/redefining p6 built-in functions

2005-05-08 Thread Gaal Yahas
On Sun, May 08, 2005 at 07:20:04AM -0700, Larry Wall wrote:
> Absolutely everything is overridable in Perl 6, except the fact that
> the program is parsed as Standard Perl up till the first declaration
> (which might, of course, occur before the program file in a switch.)

On that note, http://perlnomic.org/ .

-- 
Gaal Yahas <[EMAIL PROTECTED]>
http://gaal.livejournal.com/


Re: Overriding/redefining p6 built-in functions

2005-05-08 Thread Larry Wall
On Sun, May 08, 2005 at 02:39:03PM +1000, Andrew Savige wrote:
: A crude hack sometimes used by gung ho p5 testers is to redefine
: perl built-in functions. For example:
: 
: BEGIN {
: *CORE::GLOBAL::read = sub (*\$$;$) { return undef };
: }
: 
: to test read failures (and so boost your Devel::Cover score :-).
: This technique is not very convenient (must be in a BEGIN block).
: Moreover, some p5 functions (e.g. print) cannot be overridden.

It's not clear that Perl 6 has *any* built-in functions in the sense
that Perl 5 does.  All global functions live in the * namespace, which
is the last place Perl looks.  Any lexical or package scope will
override a * function.

You can also do partial overrides of multimethods when you have enough
type information.

You also have control of the Perl grammar so that, even if something
is more "built-in" than a global function, you can change the grammar
rule that parses it.  On a small scale, this means you can define macros
in various grammatical categories.

: I was wondering how/if p6 will support the overriding of built-in
: functions (I imagine QA would be the main use for this).

Absolutely everything is overridable in Perl 6, except the fact that
the program is parsed as Standard Perl up till the first declaration
(which might, of course, occur before the program file in a switch.)

Larry


Re: receivers of pipes (the sharp end again)

2005-05-08 Thread Brad Bowman

> I guess the real question is whether ==> my $x is really assigning a
> list or binding an iterator to a Lazy slot somewhere.  It feels like
> the latter is more useful.  Which means that ==> @x can return as soon
> as it binds the iterator to @x.specs.  It doesn't have to wait for all
> the values to be produced, which an assignment implies (kinda sorta).

Iterators/streams would also help lazy pipelines play well with GC.
Using an array seems to require shifts to reclaim memory, an
iterator would do the right thing by default.

Brad

-- 
 Intelligence is nothing more than discussing things with others.
 Limitless wisdom comes of this. -- Hagakure