Parrot 0.1.1 'Poicephalus' Released
Pan T. Hose writes "The long awaited release of Parrot 0.1.1 "Poicephalus" has been finally announced on perl.perl6.internals newsgroup and perl6-internals mailing list simultaneously by Leopold Toetsch followed by an announcement on use Perl by Will Coleda and now also on Slashdot." (Read on for a list of changes since the last release, as well as a number of useful links.)
Pan T. Hose continues "The most important changes since the previous version 0.1.0 (code-named 'Leaping Kakapo' and
released in February) are:
- Python support: Parrot runs 4/7 of the pie-thon test suite
- Better OS support: more platforms, compilers, OS functions
- Improved PIR syntax for method calls and <op>= assignment
- Dynamic loading reworked including a "make install" target
- MMD - multi method dispatch for binary vtable methods
- Library improvement and cleanup
- BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
- IA64 and hppa JIT support
- Tons of fixes, improvements, new tests, and documentation updates
And isn't this name a bit inappropriate?
Holy run-on sentence, Batman!
Actually, all jokes aside it looks like a valiant try.
I am especially interested in python support. I love python but it is some times a tad bit slow. I've seen lots of interesting initiatives to really improve performance (the starkiller python to C++ "compiler" for example), and am now very curious to see how good this one will perform. Besides, it would be quite funny to have perl and python united :-)
Why a new VM? Jython showed it is possible to "recycle" the java VM. Can anybody explain why this is better?
10 ?"Hello World" life was simple then
For those too lazy to click on the april fools links, the programming examples were some of the funnies things I've seen.
=====
Show us some Parrot code.
GvR: [...]
# copy stdin to stdout, except for lines starting with #
while left_angle_right_angle:
if dollar_underscore[0] =eq= "#":
continue_next;
}
print dollar_underscore;
}
[...]There's more than one way to do it, right, [...]
LW: [...]
while(@line = Sys::Stdin->readline()):
continue_next if $line[0] =eq= "#":
print @line;
}
============
From the minute I saw that I thought I'd love the language. Truely shows the power of open source.
from the faq:
Parrot is the new interpreter being designed from scratch to support the upcoming Perl6 language. It is being designed as a standalone virtual machine that can be used to execute bytecode compiled dynamic languages such as Perl6, but also Perl5. Ideally, Parrot can be used to support other dynamic, bytecode-compiled languages such as Python, Ruby and Tcl.
There are 10 kinds of people: Those that understand ternary; those that don't; and those that don't care.
Isn't there already a New York plunger company named something like this?
Intolerance for ambiguity is the mark of the authoritarian personality.
The world is very, very strange my friends. I mean, if that really were to happen, I think that man would no longer be a man. Consider the heavy claws of many parrots, and the sharp beak.
If I can run those as well as perl&python this project will be a home run.
When posting software projects (especially those whose version number 0) please add a quicky bit about the package for the lazy amongs us
My posts are definitive. Reality is frequently inaccurate.
Now can we have perl articles without every python weeny jumping up and down and shouting "perl sucks"?
oh yes and vice versa - I hope.
I would love to be able to write in a combination of python and ruby. How long until we'll be able to do that? How long until we'll be able to use even one of them with Parrot?
And how many more years until they decide they're taking the April Fool's joke way too far?
"[Parrot's aim,] to really unite Perl and Python one day (not to mention Tcl, Scheme, Forth and Ruby, to name just a few)"
Thank goodness someone is rounding up all of these languages onto a signle virtual machine. This should make it a lot easier to obsolete the whole bunch of them in favor of VBScript.
From reading the mini-summary of this wonderful new release, can anyone out there tell me what the hell this is?
NO! YOU CAN'T!
If you already know what it is, you could extoll its virtues to the world. If you know what it is, you probably already know about the new release and don't need to be told!. For the average
Please, people: When you submit a story about the new release of XYZ version 12423 (stupid animal pseudonym here) put in at least some vague description of WTF it is!
For anyone who didn't RTFA, Parrot is apparently the bastard-child of Python and Perl, using/supporting elements of both languages. Perl is a ridiculous, intentionally obfuscated language, and a Python ate my sister, so I have no interest in this.
...that would compile Ruby programs into intermediate compiler code so they could be run on Parrot.
He's done a few releases and appears to be making good progress here.
The Army reading list
I just started going through the joke links on the O'Reilly Parrot pages and started to wonder...
What happens to the joke pages when (if?) Parrot becomes mature enough to actually warrant a book?
There's so little difference between politics and jihad lately...
Ouch!
Now I'll get my thumb out of my ass and pass along my gratitude to everybody who's worked on Parrot. An open-source VM, particularly one targeted at existing open-source languages, is a mitzvah. It even has the nice side benefit of creating a little commonality between the communities. Thank you.
WWJD for a Klondike Bar?
Parrot assembler is the nicest asm dialect I've ever had the pleasure to work with. I'm looking forward to a new mod_parrot so I can do enterprise web apps, the way they should be done; in asm.
I spent far too long yesterday playing with parakeet, definately some interesting things happening in parrot land.
Or "Tarrowroot Head"
For anyone who didn't RTF-non-april-fools-A: Parrot is a virtual machine which just happens to be able to run both of them. Get a bloody clue.
Or...
wait for it...
Pudd'nHead
Say it right: "Nuc-le-ah Powah".
The Virtual Virtual Machine is, if I understand correctly, a virtual machine to build virtual machines.
-- Did you try Tao3D? http://tao3d.sourceforge.net
Parrot is a very interesting project indeed, and it looks as if it is now starting to seriously pick up steam. What we're looking at here is VM that works, and is optimised for Perl, Python, Ruby, Forth and all those other lovely scripting languages.
.NET and Java vs. C# people seemed to have missed Parrot creeping up from behind. Potentially Parrot can pull together Perl, Python and Ruby - imagine CPAN that works with all of those languages at once, but pulls in all the interesting Python and Ruby libraries too.
.NET via Mono or Java via JVM shoudl start considering Perl/Python/Ruby via Parrot as a very serious choice for doing the high level application programming.
Given all the current debate raging over JVM vs.
In general scripting languages have been looked down upon, but realistically the gap between scripting languages (and what you even mean by "scripting language") has been drastically narrowed to the point where it is increasingly less relevant. The only serious remaining issue is speed - and that's something Parrot can help fix, putting Perl, Python and Ruby code on a similar footing as Java and C# code running on their VMs. You'll take a small hit for using a higher level language, but it won't be as drastic as it is now.
Maybe all that GNOME discussion about
Jedidiah.
Craft Beer Programming T-shirts
As it said, Python, Perl, Ruby, Smalltalk, Lisp, and most of the languages targeted by Parrot are dynamically typed and have dynamic message passing (method calls). This means that typechecking is done by the run-time environment, not by the compiler. Likewise, it is not known untill runtime which if an object has a method. Therefore, the runtime has to do a fair amount of checking (mostly symbol table lookups). If you were to do this with a VM designed for static languages (JVM, .NET) that do not do this checking for you, then you would have to implement all of it as byte-code in the VM - in effect you would be writing a big chunk of a Perl interpretor in Java.
This approach would inevitably be slower than the existing Perl 5 interpretor, while the Parrot approach has managed to be significatly faster than the current Perl 5 interpretor. The reasons are that 1) all of the runtime checking is highly optimized native code 2) after the complex perl code is translated into a simpler form, the traditional compiler optimizations can be applied to the code.
Did anyone else read this as PolicePhalus?
Does anyone know why Perl 6 didn't start with the Python VM? It's certainly designed for dynamically typed languages, and is (as I understand it) pretty divorced from the bytecode generator
I told my perl buddies how perl could affect the readability of their day to day life language usage. Now we have this post as example :)
And no, it's apparently not a FA one.
.NET does? This is IMO the most exciting thing about .NET - once new languages are no longer guillotined in their infancy by the "but there aren't any libraries for it!" hurdle, a veritable renaissance in language design becomes possible, and maybe we can finally crawl out of the backward-compatibility tarpit.
Will Parrot, at some hypothetical point in the distant future, be able to decouple languages from libraries in the same way that
No.
Java's been in release for almost 10 years, .NET for 5 and the Parrot VM has made it to beta yet. So no, its not time to consider Perl/Python/Ruby via Parrot as a very serious choice for doing any high level application programming.
Well.. maybe. Or Maybe not. But Definitely not sort of.
"The Genus Poicephalus are small to medium sized, stocky birds with short, squarish tails and proportionately substantial bills." I guess it's just your basic African parrot, then. Funny, with the word "phalus" in it, I thought it would be something else...
"Freedom means freedom for everybody" -- Dick Cheney
The word you're looking for is ternary. The "bin" in binary comes from the Latin distributive numeral bini (meaning two each). Of course, the word decimal is derived from the ordinal decimus (meaning tenth), so you might also make a case for using tertial to describe a base three number system, but there's no need to do that when the word ternary has already existed for a long time.
What do you mean by unusable as an "embedding language" because of a lack of sandboxing?
I realise there could be some applications where you want to sandbox embedded python - e.g. in webbrowsers, but surely not for most applications...
> The amazing project which no one had any idea ...
> would go so far from the original April Fool's
> Joke by Simon Cozens (also posted on Slashdot on
> April 1, 2001) to really unite Perl and Python one
> day (not to mention Tcl, Scheme,
Saying that it in it's current state supports Scheme is, well, at best a joke (and I am in a good mood today). Havin a subdirectory named Scheme, doesn't actually mean they work.
-- A Mathematician is a machine for turning coffee into theorems. - Paul Erdös
With so many open source language implementations around these days, developing a VM that any of them can take advantage of is a fantastic idea.
One focussed effort on providing efficient JIT compilation will improve performance, and similarly this one layer to address portability could do more to break down OS barriers than java managed.
I'm excited about Parrot just for that, but if there is any possibility that different languages will be able to make use of libraries written in others, then that would be the icing on the cake. I can't tell if it should be possible, but if I could make use of someone else's library written in their favourite languge, from my favourite languge (by virtue of them both running on Parrot), software would be a whole lot more fun.
I read the topic, and only thought to myself: What the hell is a Poice Phallus? Those perl developers sure are kinky!
Jake
Dating: while( 1 ){ call_girl(); get_rejected(); drink_40(); } return 0;
I just love:this and:that style.
Really.
Parrot's runtime sounds a whole lot like what Mathematica does internally: dynamically typed language which compiles JIT into a bytecode for a register-windowing VM.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
That's funny you mention it because quite frankly I did preview it and in fact it was not until then when I decided to turn a list of comma separated values into a bullet list as well as brake the second then single-sentence paragraph into three separate sentences exactly because I was somewhat concerned readability-wise--though to be fair braking it into two parts and adding "Read on for a list of changes since the last release, as well as a number of useful links" we owe to Timothy, who has also removed quite a few important links for some reason--but nevertheless I am quite surprised if not outright disappointed that anyone who is even remotely interested in Perl 6 might lack basic linguistic skills to parse a paragraph of simple English, however on the other hand I can understand that for some people interested in the subject my story might indeed contain not nearly enough whitespace.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
There is nothing inappropriate in poicephalus as e.g. poicephalus gulielmi is just a Latin name of Red-fronted Parrot, well known for every bird lover, just like agapornis pullarius is a Latin name of Red-headed Lovebird, another proposed code-name for this release. You are probably thinking about phallus for some reason but instead of looking for Freudian connotations you might want to read more about parrots.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
Sterling Hughes and Thies Arntzen are working on getting PHP to parrot with their project Pint. They want some stuff in PHP and parrot would fit perfectly, but havin access to modules from perl or pythong is a nice extra bonus.
b4n
I hate Sam Ruby, he screws up all my google searches for ruby stuff. :(
The funny thing is that, as far as I remember, it will run java and .net bytecode. It's a little swiss army VM.
set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
The one true computer language on a VM built for PERL? RMS must be rolling in his grave!-- I know he's not dead yet but it strikes me as something RMS might like to do.
CPython ran in approx. 8 seconds and used approx. 4 MB RAM.
it runs all of them equally vapor-like.
Okay, perhaps I'm a bit harsh - it runs 4/7ths of any given language.
"Python support: Parrot runs 4/7 of the pie-thon test suite "
;).
But does Parrot run Perl as of now?
We don't have Editors. We have Site Maintainers.
I can't wait to include some INTERCAL modules in our applications. Sometimes perl is far to maintainable.
_O_
.|< The named which can be named is not the true named
Volunteers needed :)
Quidquid latine dictum sit, altum videtur
My version:
Your version:
Please take no offence but your version is hardly an improvement, not only because the dissonance between sentences (or impedance mismatch, if you will) makes it sound like a homework written by a six years old child, but most importantly becuase in addition to changing style you have also removed content by dropping quite a few important subtleties and overtones in the form of relations of different parts of the original sentence, as well as my emotional relation thereto. Why not "correct" more texts while you are at it! They might really need their "run-on sentences" broke into infantile series of three-word statements!
Now, on a much serious matter:
You have probably parsed it as: "I can understand that some people interested in the subject of my story might indeed contain not nearly enough whitespace" or "I can understand that for some reason people interested in the subject of my story might indeed contain not nearly enough whitespace" instead of the literal and correct "I can understand that for some people interested in the subject my story might indeed contain not nearly enough whitespace" which is parsable only one way, using dashes instead of whitespace for indentation:
It might be disambiguated using punctuation: "I can understand that, for some people interested in the subject, my story might indeed contain not nearly enough whitespace" or "I can understand that--for some people interested in the subject--my story might indeed contain not nearly enough whitespace" but even without such punctuation marks this part of the sentence is unambiguous nonetheless, fot there is no other way whatsoever for it to make any sense assuming it was written correctly in the first place, while you have presumably assumed otherwise (which itself is an insult).
Still, I am most disappointed (if not outright outraged) by the fact that you have completely missed the humour therein! I can only hope that some people who use some language named after a certain BBC show from 1969 are a somewhat better parsers because otherwise I would have to consider the time spent on writing that comment--and indeed submitting the whole story--completely wasted.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
> Isn't that the bird that sits on your dick? I think they should've called it Penisbird instead of Parrot.
No. You are thinking about 'Poicephallus' with double L:
| <o)
| (V\
| X
|8====D
Known from links to http://smoke.rotten.com/bird/
Dear rotten.com,
I am unsure if you are aware of the problems that your "Incident with the bird" picture has caused on the popular technology website slashdot (http://slashdot.org). Many users of this site's messageboards are posting links to http://smoke.rotten.com/bird and making text based representations of a bird on a man's penis. Frankly, while I am pro-freedom, this type of photo sickens me. Could you please move the location of the bird page on your site to keep slashdot readers from seeing things that are completeley unrelated to computers and technology? I'm not asking you to remove the content, just to relocate it.
FYI the text representation of the bird is:
|:<o)
|:(V\
|::X
|8====D
with a link to the offensive site (http://smoke.rotten.com/bird) underneath, these "Penis Birds" are posted by Penis Bird Guy, Penis Bird MAN and several other users
Regards, Andrew J. Tosh
[quote source]
http://www.google.com/search?hl=en&lr=&safe=off&q= ruby+-sam&btnG=Search
Hmm, perhaps one of these days the Parrot people will even think of making their code readable...
"Poicephalus" is Latin for PenisBird
No. You are thinking about poicephallus with double 'L'. Google for "The Incident With The Bird" for more info. For those who are too busy to follow links, here is a little ASCII-art version I have just made:
|:<o)
|:(V\
|::X
|8====D
Isn't it cute? I think it should be the official logo of Parrot project and a default prompt of Parrot debugger. What do you think?
Somewhat confusingly, Sam Ruby seems to be working on pirate (python on parrot).
Confusing is a serious understatement. When I first read that porting Python to Perl's VM is done by Ruby I was seriously considering quitting smoking crack. Seriously, I had a terrible headache just trying to think about it because I was sure it is some kind of sick Damian-Conway-style self-modifying or self-parsing or self-writing code idea or something like that... Frightening.
Parent was modded as Funny but in fact mod_parrot is not a joke! See Google. People should know that it is in fact a real project with very serious purpose. It won't be used for writing web apps in PASM or PIR (though it will be possible and sometimes even preferable to write Apache modules in PIR) but to use it in the future for what we use mod_perl today (and mod_php and mod_python and... you get the idea). It will be the most important Apache-Perl integration in the future for Perl 6 and Perl 5 (Pony) and indeed for Python, Ruby, PHP and Intercal. THIS IS NOT A JOKE.
It is phalus - not phallus for heavens' sake! Can't you people read Wikipaedia before you make stupid erotic jokes or even use Google for God's sake? Don't know how does poicephalus look like? Fine, then click here to see some pictures. But don't embarass yourself by showing your ignorance like that not being able to count L's in poicephalus! This is not funny.
Holy Crap! I must say that I looked toward the comments in this thread with a cringe. I've been a big fan of Perl 6 and Parrot, if for no other reason than that I'm interested in great (and proven) people trying to solve hard, polemical problems.
However, usually there is so much negativity about these projects on Slashdot, that I tend to lose faith in people's curiosity and gumption. (I believe the usual reply is, ".Net/Java are better.")
Will miracles never end? Congratultions to the Parrot team for picking up steam and converting the unwashed, gnashers of teeth! (-:
Does Parrot use Mark-Sweep Collection or Copying Collection (limited by physical memory)?
open4free ©
Unlike Perl 5 today, Parrot will not use reference counting. This is one of important difficulties which the Ponie project has to overcome. Please let me quote the most relevant parts of Parrot documentation.
Parrot FAQ:
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
mod_parrot up! I mean, mod parent up! Seriously, this is a very informative post raising many important points.