smash's Journal http://use.perl.org/~smash/journal/ smash's use Perl Journal en-us use 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:00 pudge pudge@perl.org Technology hourly 1 1970-01-01T00:00+00:00 smash's Journal http://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 &quot;Beautiful Parrot.&quot; <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 =&gt; 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> smash 2008-06-17T17:24:45+00:00 parrot Parrot 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> smash 2008-04-13T17:21:13+00:00 parrot Parrot 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> smash 2008-04-13T14:58:49+00:00 parrot Is 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> smash 2008-04-11T18:48:09+00:00 parrot