Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

autrijus (1505)

autrijus
  (email not shown publicly)
http://pugs.blogs.com/

Journal of autrijus (1505)

Thursday March 24, 2005
03:16 PM

Day 52: pugscc --runparrot mandel.p6

[ #23829 ]
Pugs can now compile the mandelbrot generator, example/mandel.p6 , into mandel.imc .

Running the line below generates 100 copies of this pretty picture. Time for some benchmarking!

% time pugscc --runparrot examples/mandel.p6 > /dev/null
real    0m5.548s
user    0m5.325s
sys     0m0.078s

Compare this with the perl5 version:

% time perl examples/mandel.p5 > /dev/null
real    0m5.774s
user    0m5.629s
sys     0m0.016s

It is also worth noting that this is on FreeBSD 5-STABLE, where perl5 was built with -O by default. The --runparrot above uses an unoptimized parrot, with vanilla runcore, and with no type inference (so all variables are PMCs). That means even though Pugs/Parrot is heavily handicapped, it still performs better than Perl 5.

Our Mad Porter iblech exhibited superhuman productivity, and ported five CPAN modules to Perl6 in one day:

  • Commands-Guarded
  • Email-Simple
  • Geo-Distance
  • Mail-Address
  • URI

All I can say is "Wow". In other news, after ingy's 2-days-fight with MakeMaker, Inline Haskell/C modules now finally works. It requires GHC 6.4 for the Template Haskell powered wrapper generation code. SHA1.pm is our first working example.

Mad Golfer asavige committed our first golf-based test script, which combines the best parts of golf-driven development with test-driven development. :-) I added in $*EXECUTABLE_NAME and $*PROGRAM_NAME support for him, too.

Stevan asked for s:perl5:g/// to complete his File::Spec port, which I promptly implemented. He also started picking up Haskell, and hacked in -d and -f all by himself. Yay!

Some other developments of today:

  • nothingmuch hacked in pugs -Ilib support.
  • hcchien and viirya both committed tests to make sure that grep {...} @list still works.
  • gaal implemented a nice YAML harness as a replacement for the vanilla Test::Harness.
  • theorbtwo wrote a Test Graphing tool that generates HTML coverage reports from test results produced by the yaml harness.
  • And, in Kwid-related news, ingy and gugod just ported Kwid as a Spork/Kwiki formatter, so YAPC::Taipei speakers can write their slides in Kwid, and have them converted to S5

It's getting late, so I'll sleep now. YAPC::Taipei starts in 30 hour or so. Stay tuned!

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • 0 ~/devel/pugs$ time pugscc --runparrot examples/mandel.p6 > /dev/null

    real 0m17.017s
    user 0m13.900s
    sys 0m0.290s
    0 ~/devel/pugs$ time perl examples/mandel.p5 > /dev/null

    real 0m9.504s
    user 0m8.740s
    sys 0m0.020s

    That's with the latest parrot and pugs from the repo vs OS X's perl5 (5.8.1RC3). Probably a consequence of Parrot not being as optimized for PPC.

    Anyhow, it sure is damned impressive.
  • Autrijus!

    I can not really tell you, how pleased I am that my humble golfing efforts landed in the Pugs repository. Maybe, some 10 or 20 years from now, some wicked Perl 6 user will dig into the sources of the Perl 6 compiler and find my blatant golfing attempts thare, and will be shocked to recognize, how creative (or stupid?) his ancestors were...:-)

    Keep up the fantastic work! and thanks for Mad Golfer too!

    rg0now

  • I've been reading this blog everyday lately. These are exciting developments.

    The pointer to S5 was appreciated. That looks like a useful system. However, even after I STFW, I couldn't find the link that translates from kwid into S5. Anyone?

    Spork seems to be different from what I can tell.

        Mark
    • So far Spork::S5 is on ingy's svn server, and Spork needs patch, so that we will probablly release both a new Spork, and Spork::S5 to CPAN.

      --
      Cheers, Kang-min LIu