smash's Journal
http://use.perl.org/~smash/journal/
smash's use Perl Journalen-ususe Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.2012-01-25T02:45:44+00:00pudgepudge@perl.orgTechnologyhourly11970-01-01T00:00+00:00smash's Journalhttp://use.perl.org/images/topics/useperl.gif
http://use.perl.org/~smash/journal/
Parrot 0.6.3 "Beautiful Parrot" Released!
http://use.perl.org/~smash/journal/36707?from=rss
<p>On behalf of the Parrot team, I'm proud to announce Parrot 0.6.3
"Beautiful Parrot." <a href="http://parrotcode.org/">Parrot</a>
is a virtual machine aimed at running all dynamic languages.</p><p>Parrot 0.6.3 is available via <a href="http://search.cpan.org/dist/parrot">CPAN</a>
(soon), or <a href="http://parrotcode.org/source.html">follow the download
instructions</a>. For those who would like to develop on Parrot, or help
develop Parrot itself, we recommend using <a href="http://subversion.tigris.org/">Subversion</a> on
<a href="https://svn.perl.org/parrot/trunk/">our source code repository</a> to get the latest
and best Parrot code.</p><p>Parrot 0.6.3 News:</p><ul>
<li>Specification
<ul>
<li>updated pdd09_gc.pod</li>
</ul></li>
<li>Languages
<ul>
<li>Cardinal:
<ul>
<li>dramatically improved parsing speed</li>
<li>added support for defining and instantiating classes</li>
<li>started fleshing out the builtin class hierarchy</li>
<li>added support for hashes and arrays</li>
</ul></li>
<li>Chitchat: added the start of a smalltalk compiler</li>
<li>Pheme: updated to match PGE changes</li>
<li>Pynie: return statement, other minor updates</li>
<li>Rakudo:
<ul>
<li>added working list and hash contexts</li>
<li>added 'return' statements</li>
<li>added => pair constructor</li>
<li>added ?? !! ternary</li>
<li>added Range, range operators, Complex</li>
<li>added common List, Hash methods</li>
<li>refactored base classes</li>
<li>added Mutable, Perl6Scalar classes</li>
<li>added type-checking, is readonly/rw/copy for parameters</li>
<li>added make localtest, docs/spectest-progress.csv</li>
<li>fix named unaries</li>
</ul></li>
<li>Squaak: implement return statement</li>
<li>Tcl: updated control flow exceptions to use new builtin types</li>
</ul></li>
<li>Compilers
<ul>
<li>All tools converted to P6object metamodel</li>
<li>PGE:
<ul>
<li> is now a zero-width match</li>
<li>reduced backtracking to improve parsing speed</li>
</ul></li>
<li>PCT:
<ul>
<li>added "return" PAST.op node type for subroutine returns</li>
<li>added "keyed_int" scoping to PAST::Var</li>
<li>fixed calls to closures</li>
<li>automatically transcode 7-bit unicode to ascii for faster processing</li>
</ul></li>
<li>NQP: added "return" statement, ?? !! ternary operator</li>
</ul></li>
<li>Configuration
<ul>
<li>expanded step gen::opengl</li>
</ul></li>
<li>Implementation
<ul>
<li>updated function and macro names to match pdd09_gc.pod</li>
<li>removed Super PMC</li>
<li>add ".namespace []" as alternative to ".namespace"</li>
<li>"make codetest" target runs standard coding tests</li>
</ul></li>
<li>Miscellaneous
<ul>
<li>added P6object class for Perl 6 interfaces to objects in Parrot</li>
<li>ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants</li>
<li>generate OpenGL/GLU/GLUT bindings by parsing system headers</li>
<li>new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs</li>
<li>new float4.pir structure-packing benchmark</li>
<li>reduced memory use for variables</li>
<li>improved constant string caching</li>
<li>made code g++ and gcc (with optimizations) safe</li>
<li>the usual collection of bugfixes and optimizations</li>
</ul></li>
</ul><p>Thanks to all our contributors for making this possible, and our sponsors
for supporting this project. Our next release is 15 July 2008.</p><p>Enjoy!</p>smash2008-06-17T17:24:45+00:00parrotParrot benchmarking, introducing recursion
http://use.perl.org/~smash/journal/36140?from=rss
<p>Recursion is a very common technique used in today's programs. Although recursion is a very easy method to solve problems, it can easily introduce unwanted overhead that can quickly worsen program's performance.</p><p>The facts,<br>
1) We created a recursive function to calculate the number of nodes in a full binary tree, given as argument the tree's height.<br>
2) We implemented this function in Parrot, and also on interpreted and compiled languges.<br>
3) We ran the programs several times increasing the height of the tree.</p><p>Here are the results: <a href="http://nrc.homelinux.org/parrot/bintree.png">http://nrc.homelinux.org/parrot/bintree.png</a>.</p>smash2008-04-13T17:21:13+00:00parrotParrot versions benchmarking
http://use.perl.org/~smash/journal/36139?from=rss
<p>This benchamarking covers several Parrot versions. It still uses the very dumb algorithm to calculate how may prime numbers exist between 1 and a given argument, used on previous benchmarkings.</p><p>Link to results: <a href="http://nrc.homelinux.org/parrot/parrot_primes.png">http://nrc.homelinux.org/parrot/parrot_primes.png</a>.</p>smash2008-04-13T14:58:49+00:00parrotIs your program fast enough?
http://use.perl.org/~smash/journal/36131?from=rss
<p>In the process of submitting an article to <a href="http://workshop.perl.pt/2008">http://workshop.perl.pt/2008</a> about Parrot, we felt the urge to do some simple benchmarking, to have a glimpse of Parrot's current performance.</p><p>First, the facts:<br>
1) We created a very dumb algorithm (intentionally <b>not</b> efficient) to calculate how may prime numbers exist between 1 and a given argument.<br>
2) We implemented this algorithm in several well know interpreted languages, in Parrot of course, and also in C and Java to have a bottom line to draw comparisons. Basically we only used <i>while</i>s and <i>if</i>s and tried to make all implementations as similar as possible.<br>
3) We run every program (unfortunately on a slow machine) several times, incrementing the argument in steps of 10000, from 10000 to 90000, and watched has they took more and more time to run.</p><p>Finally, check the results: <a href="http://nrc.homelinux.org/parrot/primes.png">http://nrc.homelinux.org/parrot/primes.png</a>.</p>smash2008-04-11T18:48:09+00:00parrot