Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
laziness, impatience, and hubris
 
PerlMonks  

Parrot 0.8.0, "Pareto principle" released!

by particle (Vicar)
on Oct 21, 2008 at 23:24 UTC ( #718607=perlnews: print w/ replies, xml ) Need Help??

On behalf of the Parrot team, I'm proud to announce Parrot 0.8.0 "Pareto Principle." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 0.8.0 is available via CPAN (soon), or follow the download instructions. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on our source code repository to get the latest and best Parrot code.

Parrot 0.8.0 News:

- Implementation
  + float precision expanded to 15 significant digits from 6
  + large integers autopromoted in PIR so as not to lose precision
  + improved precision of complex square root
  + exception handlers can register types of exceptions they catch
- Languages
  + Cardinal (Ruby)
    - implemented gather, take, and yield builtins
    - Range, Time, Math, GC, Kernel classes
    - many more tests
    - added a new committer
  + Markdown : new lightweight markup language
    - start implementation with PCT/NQP
  + partcl (Tcl 8.5.4)
    - Moved to its own repository: http://code.google.com/p/partcl/
  + Rakudo (Perl 6)
    - split() works with regexes
    - implemented Str.comb
    - ord() and chr() builtins
    - improved parsing of literal numbers
    - support for hyphens and dashes in identifiers
    - next() on for-loops
    - fixed floating point constant precision
    - improved namespace handling, closer to STD.pm model
    - support for exporting symbols
- Compilers
  + P6object
    - now generates classes in nested namespaces instead of :: names
    - supports class creation in caller's HLL namespace
  + PCT / PGE
    - now using true nested namespaces instead of :: names
    - cleaned up HLLCompiler interactive prompts and readline mode
    - updated to use typed exception handler registration
    - added initial support for loop control exceptions
  + PIRC
    - fixed Heredoc preprocessor
    - cleaned up Macro preprocessor
    - many code clean-ups, warning fixes and consting
    - updated Makefile for easier compilation
  + IMCC
    - Added .tailcall syntax to replace .return in tailcall context
- Examples
  + pirric (BASIC)
    - an old style line numbered Basic interpreter able to use parrot objects
    - example connecting to mysql via nci
    - example using classes to write and run an embedded Basic program
- Documentation
  + Book
    - Added chapters for PCT, PMCs, and Opcodes/Runcores
    - Expanded and improved formatting in various chapters
    - Renumbered chapters

Thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next release is 18 Nov 2008.

Enjoy!

~Particle *accelerates*

Comment on Parrot 0.8.0, "Pareto principle" released!
Re: Parrot 0.8.0, "Pareto principle" released!
by dragonchild (Archbishop) on Oct 22, 2008 at 14:57 UTC
    Is there a sense of how much further we have to go before someone could actually use a language on top of Parrot in production? I'm not asking about P6 specifically, but what about any other language?

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      PCT (the tools used to implement languages) and probably Parrot as well need a little more work to namespaces and global storage to allow languages to interoperate without trampling all over each other. Parrot needs its install strategy fixed too in a few ways. Beyond that, mostly Parrot needs some spit and polish -- though PGE (the grammar engine) could use optimization and longest token matching. Mostly people just need time to write languages and file bugs.

        I don't think I asked my question very well. Let's say that I'm looking at a brand-new small application at work for internal use. I've been given complete carte blanche to implement it as I see fit. In fact, my boss is very interested in getting a Parrot-based app in so that we can get some experience with it. I'm going to be using a single language (doesn't matter which one) and I want to just use Parrot as a VM.

        The question is:

        • What language(s) are sufficiently implemented on parrot for internal production use?
        • Is there a list of what needs to be done in order for Parrot to safely support a single language?
        • Would it make sense for the Parrot effort to put some work into polishing those pieces right now?

        Personally, I think having software in a ready-to-ship state as soon as possible makes a lot of sense. I think that it makes even more sense with Parrot because of the "Duke Nukem Forever" tag that has been stamped upon the whole project. If there was at least one language that worked with Parrot and could be used for internal production use, that would go a long way. Then, as more languages are added, it just becomes a rolling boulder.


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Parrot 0.8.0, "Pareto principle" released!
by metaperl (Curate) on Oct 22, 2008 at 18:04 UTC
    Parrot is a virtual machine aimed at running all dynamic languages.
    So that would include stack-based and stackless ones?
      What do you call "stackless"? That's usually the property of an interpreter or a VM, not of a language.

      Or do you mean all languages that don't explicitly use a stack (like Perl, Python, Ruby...)?

      Anyway, there's also a (currently broken) parrot implementation of forth, which is explicitly stack based. So I guess your question should be answered with "yes" ;-).

        yes, that was a rather vague question.

        When I said stackless versus stack, I wasnt referring to a stack as a data structure (as used in forth/factor/joy), but in the sense of stackless python which is not actually stackless, but separates the frame stack from the C stack.

        Now practically what that means for me is continuations in the language as opposed to a library like Contize which allows for succinct web programming. The stackless python homepage mentions other benefits.

Re: Parrot 0.8.0, "Pareto principle" released!
by xiaoyafeng (Chaplain) on Oct 23, 2008 at 16:25 UTC
    Compared to 0.7.1, I don't see any exciting features in rakudo has been implemented. Does parrot 1.0 mean Rakudo 1.0?

    I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction
      Compared to 0.7.1, I don't see any exciting features in rakudo has been implemented.

      There's nothing really exciting, but some quite useful stuff, like the is export trait, and the Str.trans method, which can now handle regexes and closures (Thanks to cjfields).

      Does parrot 1.0 mean Rakudo 1.0?

      No. I think that a release goal for Parrot is to have two languages in a usable state, and I guess that it'll not be Perl 6, because Perl 6 is just too large a language for that. (My best guess is that it's <tcl lua cardinal>.pick(2) (cardinal is the ruby implementation on top of parrot).

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlnews [id://718607]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (12)
As of 2014-04-18 13:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (467 votes), past polls