Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ponie: Perl On New Internal Engine

timothy posted more than 11 years ago | from the clopclop-clopclop dept.

Perl 47

caseywest writes "Today at his State of the Onion speech during the 2003 O'Reilly Open Source Convention, Larry Wall announced the Ponie project (somewhere within his legendary humorous presentation). Ponie involves rewriting central parts of the Perl 5 interpreter to run on Parrot, the Perl 6 virtual machine, including a C API emulation layer to make existing XS code work. Arthur 'sky' Bergman is sponsored by his employer Fotango to develop Ponie. Currently, a press release and a FAQ are available. More details will be available in due time."

cancel ×


Sorry! There are no comments related to the filter you selected.

first perl post (-1, Offtopic)

larry bagina (561269) | more than 11 years ago | (#6397600)

ooh yeah

2nd p0st!! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6397674)

Well that's cool. :-)

Unfortunately Parrot will never be completed... ;-)

Re: parrot (1)

RadagastTheMagician (469373) | more than 11 years ago | (#6397707)

Parrot was in good shape and blazingly fast, last time I spoke to Dan Sugalski.

PISAPOS GARL (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6397692)

Perl Is Such A Piece Of Shit. Get A Real Language.

hidden agenda's (1, Funny)

denthijs (679358) | more than 11 years ago | (#6397738)

This is all just a plot to get tickets to YAPC::Europe []
And a damn good one too, i'm going. Hope we'll get some scoop on this too
One year has passed since the last YAPC and they defenately confused me enough to make me want to hear The Damian [] explain it to me all over again, or anyone who understands it for that matter ;)
Funny how he won over the complete hall of coders using only two words: "less chars"


Anonymous Coward | more than 11 years ago | (#6397742)

The Perl Foundation announces project Ponie to bridge Perl 5 and Perl 6
Two year investment from Fotango to lead the development of Perl 5 running on top of Parrot.
OSCON 2003, Portland, OR (July 8, 2003) -- The Perl Foundation (TPF) is pleased to announce the formation of the Ponie Project, a bridge between Perl 5 and Perl 6. The Perl 5 interpreter will be rewritten to run on Parrot, the Perl 6 virtual machine. This will ensure the future of the millions of lines of Perl 5 code at thousands of companies around the world.
Fotango's two-year commitment will allow Arthur Bergman, a Senior Developer at the company and the main contributor to the Perl 5.8 threading effort, to help TPF coordinate and steer the Ponie project externally with the Perl community and internally within Fotango.

"Ponie changes all the rules. Parrot will be the heart of Perl 6. Bringing Parrot to the heart of Perl 5 is very exciting," said Simon Wardley, Fotango's COO. "Ponie will offer a clear road forward for companies contemplating the Perl 5 to Perl 6 transition."

"Fotango has been working with the Perl community for some time now." said Allison Randal, President of The Perl Foundation. "Ponie is not only important for Perl 5, but for Perl 6 as well. With Fotango's involvement and sponsorship we are confident in the route the Ponie project is taking."

Perl 6 is the next version of the Perl programming language. Perl 6 is currently in the design stage and is coordinated by Larry Wall, inventor of the Perl language, Damian Conway, the author of 'Object Oriented Programming in Perl' and Allison Randal, the president of the Perl Foundation, and Jeff Bates, convicted child molester. Parrot, being coordinated by Dan Sugalski, is the virtual machine designed for dynamic languages that will run the next version of Perl.

The Perl Foundation is dedicated to the advancement of the Perl programming language through open discussion, collaboration, design, and code. The Perl Foundation is a unit of the Yet Another Society (YAS), a non-profit, 501(c)(3) organization based in Holland, Michigan.

Fotango is a creative solutions group providing consultancy on software projects and interior decorating tips. Fotango employs a large number of open source contributors and other homosexuals. Fotango is based in London, UK.

Press Contacts:

Pierre Denis
Fotango Ltd.
+44 (0) 20 7251 7010

Allison Randal
The Perl Foundation
170 College Ave.
Suite 230
Holland, MI 49423

$perl %syntax @sucks (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6397857)

variables in perl suck.

Consider this -- most slashdot readers look down upon fortran because the type of a variable depended on the first letter of it's name (f* = float, i* = integer, etc). And make fun of BASIC for using $ and () to denote a variable as a string or an array.

Yet perl uses $, %, and @ for scalar variables, arrays, and hashes, and slashdot readers consider that a good thing!

consider: @a = localtime(); and $a = localtime(); -- this cannot be correctly executed by a context-free grammer, leading to the Larry Wall-ism "Only Perl can parse Perl".

Worse, is how the type modifer is inconsistent: @numbers = (1,2,3); $numbers[2] = 0;. This violates the programmer/languge contract as purported by Djiekstra and endorsed by Knuth (Seminars in Computer Science, Volume 4, series 6), and again makes parsing a context-sensitive proposition.

PHP is able to use a single variable identifier ($) to signify scalars, and associative arrays (which work as lists and hashes), while being fully context-free and LALR(1), resulting in faster parse and execute times.

Re:$perl %syntax @sucks (0, Troll)

toomuchPerl (688058) | more than 11 years ago | (#6399622)

If languages are defined by their community, then PHP is not a real language, because the vast majority of PHP coders I have seen are idiots. PHP is coming up alongside VB and Java as the #3 language for web hacks (by hacks I mean people who DO NOT know what they're doing ;-) to learn.

Re:$perl %syntax @sucks (4, Interesting)

ichimunki (194887) | more than 11 years ago | (#6400205)

Um. There are scads of Perl web development books written by people who DO NOT know what they're doing. And thousands more actual web developers working in Perl who don't know what they're doing as a result. I know. I used to be one of them. Language wars are a waste of time. The original post was probably off-topic, since this is not a general "criticize Perl" thread. Indeed, the sigil change issue has been answered for Perl 6. The sigils will no longer change. However, there are many of us who find the character indicates type characteristic of Perl to be distracting. In a truly OO language, this can only lead to pain and suffering. If Perl OO is to be more than a hack, the sigils have got to go.

In any case, the concerns about context are completely baseless. So what? It's not like context is subjective in Perl. It's just a factor to deal with when programming. It makes the code more expressive with less effort. That's one of the stated goals of Perl: laziness. In this case, it's a great idea. Not one that is perfectly implemented in Perl, necessarily, but nonetheless a fantastic notion.

Perl is not context free (0)

Anonymous Coward | more than 11 years ago | (#6400083)

Nor were there ever claims that it was.

Pony??? I blame (4, Funny)

babbage (61057) | more than 11 years ago | (#6398001)

The proof is in the CPAN [] :

David Cantrell > Acme-Pony-1.1.2 > Acme::Pony
Module Version: 1.1.2 Source


Acme::Pony - An encoding scheme for Silly People

use Acme::Pony;

print "Hello world";

The first time you run a program under use Acme::Pony, the module removes all that nasty text stuff from your source file, turning it into a lovely ASCII-art rendition of a pony. In the spirit of other modules, the ASCII-art will consist entirely of the characters matching /[buffy]+/i, thus fulfilling Greg, Leon and Dave's fantasy of seeing Buffy riding a Pony.


Can't pony '%s'
Acme::Pony couldn't access the source file for modification.

Can't unpony '%s'
Acme::Pony couldn't access the source file for execution.

David Cantrell

This is based on Leon Brocard's 'Buffy' module and inspired by Damian Conway's brief talk on his Bleach module.

Leon contributed the code for scaling a vector Pony and filling it, replacing the bitmap Pony from the previous versions.

Copyright (c) 2001, David Cantrell. The Artistic Licence applies.

I don't think I need to mention that Leon Brocard works for Fotango [] , and that Fotango owns up [] to adding their share of silly libraries to CPAN.

And now they've gotten to Larry Wall himself.... :-)

So, is there a URL for the State of the Onion talk this year then?

Re:Pony??? I blame (2, Informative)

chromatic (9471) | more than 11 years ago | (#6398447)

Good detective work! You're exactly right; the name was chosen (in part) to please

I'll try to get the State of the Onion talk up on or the O'Reilly Network tomorrow.

State of the Onion (0)

Anonymous Coward | more than 11 years ago | (#6427418)

Is it there yet? I can't find it.

Re:State of the Onion (1)

chromatic (9471) | more than 11 years ago | (#6428666)

Not yet, sorry. By the time I talked to Larry, all of the producers were out of the office for the weekend. Please check back on Monday or Tuesday.

We might end up transcribing the remainder of the talks, but I intend to put them online as soon as possible.

Let's wish this project good luck (0, Offtopic)

Anonymous Coward | more than 11 years ago | (#6398324)

Let's wish them good luck. Until the project completion, we will have to use expensive obfuscators like this one from Stunnix [] to hide our Perl source code..

Re:Let's wish this project good luck (1)

davorg (249071) | more than 11 years ago | (#6399368)

Please don't expect Stunnix to give you any level of security. You should read the discussion [] on Perlmonks.

Re:Let's wish this project good luck (1)

archeopterix (594938) | more than 11 years ago | (#6399409)

Please don't expect Stunnix to give you any level of security. You should read the discussion on Perlmonks.
Yeah... perl obfuscator. What next? Fish bather? Doornail killer?

Re:Let's wish this project good luck (0)

Anonymous Coward | more than 11 years ago | (#6400523)

I've posted a reply to you to the parent of your post - please check it.

Re:Let's wish this project good luck (0)

Anonymous Coward | more than 11 years ago | (#6400409)

Which *reliable* and irreversable ways to obfuscate your source code would you recommend then?
Stunnix Perl-Obfus gives the best possible source protection IMHO. What's better?! There are no tools better than it.

Re:Let's wish this project good luck (1)

davorg (249071) | more than 11 years ago | (#6400661)

This is covered in the Perl FAQ.

How can I hide the source for my Perl program? []

There is no way to do what you want. Any reasonable Perl programmer can undo Stunnix obfuscation in minutes. All that's left is the strange variable names.

By all means use it if you want. But don't expect it to give you any protection from people reading your source code.

Re:Let's wish this project good luck (0)

Anonymous Coward | more than 11 years ago | (#6401023)

The complexity to study Perl source code with variable names mangled by Perl-Obfus is the same as of studying disassembled object-code with the professional decompilers (IMHO). So with tools like one from Stunnix one gets source code protection comparable to compiling compiled languages like C++ to machine-language binaries.

Re:Let's wish this project good luck (1)

shotgunefx (239460) | more than 11 years ago | (#6405277)

Perl programs in my experience tend to by much shorter than their C equivalent so I don't think it's a fair comparison.

Re:Let's wish this project good luck (1)

davorg (249071) | more than 11 years ago | (#6407256)

You've not seen B::Deobfuscate [] yet then :)

Scheme (2, Interesting)

Skeme (687563) | more than 11 years ago | (#6398508)

Last I heard, Dan Sugalowski said they planned to design Parrot so it could run Scheme code, as well as Python and Ruby, except it wouldn't be able to do continuations (which you need for Scheme). Anyone know more about this?

Also Dan said that Parrot is more suitable for dynamically typed languages like those, while Mono and dot net are better for statically typed, like C# and Java. Anyone know more about that?

Re:Scheme (3, Informative)

baka_boy (171146) | more than 11 years ago | (#6398741)

Last I heard, Parrot was definitely intended to support continuations, as a low-level primitive for microthreading, generators, and coroutines. At least that's what Dan told me at LL1, and what the Parrot dev list summaries seem to keep indicating. That's not to say that all languages compiling to Parrot will use continuations, of course, but it will be there for those (Scheme, Ruby, and perhaps some day Smalltalk?) that do.

Parrot is indeed designed to be a more dynamic runtime environment than Java, C#, etc., but that's really more of a compiler-level issue than a VM one -- i.e., compile-time type checking isn't something you implement at the VM level. And since Parrot supports a number of primitive types within the VM core, you could quite conceivably compile a low-level, C-like language to very efficient Parrot code.

Re:Scheme (3, Interesting)

toomuchPerl (688058) | more than 11 years ago | (#6399668)

Parrot is more dynamically typed, yes, but they also made the wrong choice when choosing a VM. They wanted to support dynamic languages, so they should've chosen a Scheme VM and modified it from there. Consider that Scheme and Perl have very similar semantics in many cases, and that a modified Scheme VM could easily run Perl programs, matching the Perl semantic model.
A system that combined some of the semantics of Lua with Scheme would actually be the most suited to this type of task. If you don't know what Lua is, well, it has hooks that allow you to specify events which occur when certain things happen. Like, when a hash table is accessed, you can overload that behavior (which Perl has with TIE), or when an undefined subroutine might be called, you can override that behavior. (which Perl has with AUTOLOAD). Lua 5 just got coroutines, lexical closures, and tail calls - sounds an *awful* lot like Scheme, no? :)

Re:Scheme (2, Interesting)

Elian (10270) | more than 11 years ago | (#6402673)

Choosing a Scheme VM would've meant we'd have chosen a VM written for a language that nobody in the perl internals development community is fluent in, and use it to implement a language that most of the folks I know of in the Scheme community view with a (at best) barely disguised loathing. Rolling our own was the least bad of the options available.

Re:Scheme (1)

toomuchPerl (688058) | more than 11 years ago | (#6402881)

It's not just for Perl though. Parrot is for everything, right? Scheme's going to be on it at some point, then. You can already match Python and Ruby's semantic model in Scheme, and AFAIK, most of Perl too if not all of it. It's therefore only sensible to look at it and think "Well, here is a solution".

Re:Scheme (1)

Elian (10270) | more than 11 years ago | (#6403361)

Yeah, and the python and ruby folks don't do Scheme either. True, a Scheme interpreter is a solution, but for a variety of social, political, technical, and engineering reasons it's not a good solution for the problem. (Parrot isn't a great solution as a Scheme interpreter either, so it goes both ways, of course)

Re:Scheme (2, Interesting)

toomuchPerl (688058) | more than 11 years ago | (#6403926)

What are these social, political, technical, and engineering reasons? Has this ever been discussed anywhere prior?

Whether or not my perspective is wrong, my view is this:

  • Social and political reasons are really one and the same. Social reasons *are* political reasons, and vice versa.
  • The same ties in with technical and engineering problems.
  • What exactly do politics have to do with programming languages?
  • There are no engineering reasons to back down from anything, if everything you do is a kludge upon the old system. (flame coat on) See Perl 5 for example. :)

Also, to reiterate, I'm not saying a pure Scheme interpreter. But the semantic model of Scheme matches all these languages very closely, and there are a good number of Scheme bytecode-based interpreters available. It makes sense to not only support Scheme, but to also seriously consider it from a design standpoint.

Why is Scheme viewed as the ugly cousin, with Perl, Ruby, and Python ganging up? And more importantly, why do Ruby and Python communities look down so snobbishly upon Perl?

Re:Scheme (1)

yerricde (125198) | more than 11 years ago | (#6407772)

What exactly do politics have to do with programming languages?

One word: Ada [] .

There are no engineering reasons to back down from anything

If cost-benefit analysis indicates that a ground-up rewrite would provide better value than refactoring, even in the face of Joel's article [] , then what do you do?

Perl 6 development schedule (1)

truth_revealed (593493) | more than 11 years ago | (#6412612)

The original Perl 6 development schedule from 2000:


Design finished (end of 2001)
Alpha released (Mayish 2002)
Beta release (Julyish 2002)
Perl 6.0.0 (Octoberish 2002)

What stage are we at now?

Re:Scheme (2, Interesting)

makapuf (412290) | more than 11 years ago | (#6399917)

this blog [] seems to be very interesting about how and why continuations, coroutines, closures, and the usual suspects (microthreads, ..) will be implemented in Parrot, by one of the main contributor of Parrot (he wrote the book about perl6)

So ... RTFB

Re:Scheme (3, Informative)

Elian (10270) | more than 11 years ago | (#6402704)

Yup, we're doing continuations. We've actually switched to a full continuation-passing calling scheme, as it makes a number of things rather easier.

We have, however, hidden that in most cases, so you generally don't need to fiddle with, or even care about, continuations if you don't want to. They're certainly not exposed by default at the language level so the python folks, for example, will never have to deal with them. (Nor will the perl or ruby folks if they don't want to) It's only if you're writing assembly directly, and even then it's pretty darned easy to not have to think about them.

Re:Scheme (1)

Skeme (687563) | more than 11 years ago | (#6402871)


Re:Scheme (1)

The Bungi (221687) | more than 11 years ago | (#6403635)

Yes, because .NET does that. So we have to play catch-up.

Not true. CLR/Mono run dynamic languages fine (0)

Anonymous Coward | more than 11 years ago | (#6407254)

The CLR is perfectly fine for dynamic languages. Both Microsoft and Ximian both independtly offer Basic and Javascript, as an example. They also run quite quickly.

The Java VM, which is very similar to the CLR VM offers a multitude of dynamic languages including Jython, Rhino (javascript), Scheme, Beanshell, just to name a few.

Hopefully Ponie's front end code will be portable (0)

Anonymous Coward | more than 11 years ago | (#6407670)

so that Perl 5 can easily target other back-end VMs such as the JVM, CLR, a Scheme VM, Lua or whatever with a single code base. It would very be useful to have in-process Perl 5 language support on many platforms integrated into other languages. This scenario would not be unlike Tk being used as a GUI toolkit for many scripting languages other than its native TCL.

Perl... (0)

Anonymous Coward | more than 11 years ago | (#6399064)

...was used by Talibans in their anti-aircraft missile defense system [] .

Could anyone please explain why? (2, Insightful)

Deagol (323173) | more than 11 years ago | (#6401357)

Don't get me wrong -- I fell in love with perl ten years ago. I bought myself a handful of O'Reilly books that began my journey as a competant unix admin: Learning Sed and Awk, Learning Vi, and Learning Perl. Each book seemed to naturally lead to the other. While the first two have each had one update since then, the perl book had three (I think).

I use sed, awk, vi, and perl the same way I did back then -- as the best damned text processing tools on the planet. Sed, awk, & perl haven't really changed at all.

Sure, there's no reason that I can't continue to use perl the same way I always did. And I don't berate people for using perl's vast capabilities.

But why does this once-elegant and simple tool continue to mutate and grow into the monstrosity it is? Why didn't Larry just start a totally new project? Why didn't perl (at around, say, version 4) just stop growing and simply go into maintenance mode (for example, adapting to larger capacity since memory and disk have grown by leaps and bounds since then)?

I ask an honest question from soneone who's only sat on the fringes of programming. I used (and still use) perl only for basic text massaging. What need does the now-huge perl fill? Do these new-fangled languages like ruby and python fit the same need, just different approaches?

Re:Could anyone please explain why? (1)

larry bagina (561269) | more than 11 years ago | (#6404408)

I think you can consider perl 6 to be a new project. I don't care about backwards compatability (as long as you can have dual installs of perl6 and perl5), but I care about cleaning up a lot of perl cruft.

If it was an MS program, slashdorks would be complaining about MS adding unneeded crap. But not when it's poster boy perl.

An excuse to charge double? (1)

yerricde (125198) | more than 11 years ago | (#6408006)

I don't care about backwards compatability (as long as you can have dual installs of perl6 and perl5)

But then watch as web hosting companies charge double for having such dual installs.

Bubba got an Answer (1)

Arbogast_II (583768) | more than 11 years ago | (#6405584)

From the peanut gallery for sure...

I learned Perl in an amateur way in last year and half.

Seems to me after you use it to glue all the cool stuff on a Linux box and web together with Perl, it is way, way beyond a text language. I know I wrote a wicked cool family history program in Perl. Seems like with all the modules, and the fact computers are so fast a scripting language is even quick enough for very nice 2-D graphics, there is more need for a language like Perl than ever before.

I'd say from looking around, that Perl is really way underutilized and highly underated. Seems to me, Perl has only started its journey in life??? Take its normal uses, add some system calls to various Linux programs, use some modules, and Perl could be used alot more than it is perhaps.

Stricly a Bubba non pro IT guy opinion.

PS and somewhat off topic (1)

Arbogast_II (583768) | more than 11 years ago | (#6405621)

As someone exposed to Perl and not really any other languages, there is one thing I dont get. There are all these complaints about Perl punctuation. Too my eyes, that punctuation makes it far EASIER to understand what a Perl Script is doing. That criticism really confuses me.

Re:Could anyone please explain why? (0)

Anonymous Coward | more than 11 years ago | (#6407618)

But why does this once-elegant and simple tool continue to mutate and grow into the monstrosity it is?

Wall has decided he doesn't like Lisp. So now he's Frankensteining Common Lisp's ugly brother from the ground up and he's probably unaware of it.

A bit like Microsoft actually.

Re:Could anyone please explain why? (1)

horos2c (683085) | more than 11 years ago | (#6408402)

one reason... CPAN. The power that you bemoan, say gets in the way and you don't use a lot of *other* people use. You don't see it directly, you see it when you use modules that come from CPAN. Without the 'hacks' you talk about CPAN would not be possible. I personally find the functionality quite useful. Ed

But will Parrot ever be finished? (0)

Anonymous Coward | more than 11 years ago | (#6407352)

That's the real question. It's been over 2 years and still no implemented exception support, no thread support, opcodes are still changing, no object support. At least with Ponie, the Parrot team with effective leadership by Leo will have a target to aim for. Currently, with the ever changing Perl 6 definition and questionable goal of supporting all major languages, Parrot's design is completely directionless. A Perl 5 implementation will finally give Parrot a concrete target and a footing in reality.
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?