Talk:Parrot virtual machine

Focus
How many points of focus are required before something is unfocused ?


 * focused on license compatibility (Artistic License 2.0),
 * platform compatibility across a broad array of systems,
 * processor architectures compatibility across most modern processors,
 * speed of execution,
 * small size (around 700k depending on platform),
 * being flexible enough to handle the varying demands of Perl, and most, if not all, other modern dynamic languages.
 * improving introspection, debugger capabilities, and
 * compile-time semantic modulation.

Glover (talk) 16:17, 27 February 2009 (UTC)

"700k depending on platform"? How can 700k depend on platform? Perhaps "About 700k for many platforms", if that is accurate. —Preceding unsigned comment added by 160.109.98.44 (talk) 23:14, 22 August 2008 (UTC)

Which ones of the current implemented compilers which compile to the Parrot machine code could already be considered somewhat useful? Hirzel 19:04, 16 Jun 2005 (UTC)
 * Brainfuck? ;) porges 07:31, 18 January 2006 (UTC)

What on earth is "compile-time semantic modulation"? Does it involve flux capacitors or sonic screwdrivers somehow? State the obvious, please. 23:32, 28 November 2005 (UTC)

“Up until version 0.3.0, Parrot typically provided 32 registers of each type, with the possibility of enabling 64 registers. Later versions provide an unlimited number of registers; each function can allocate as many registers of each type as it needs.” Is this correct? I was reading Parrot docs just the other day and it seemed to say you could use any number of registers in PIR, but they’d be converted to “real” registers on compilation. -Ahruman 12:20, 31 March 2006 (UTC)

Yes this is correct. In the IMCC compiler there is an analyzer that determines how many registers are needed. The registers are allocated accordingly, so no spilling occurs any more. PASM is somewhat lagging behind. The PASM compiler still knows only about 32 registers. Note that PIR and PASM are independently compiled down to PBC. It is not PIR to PASM to PBC. - Bernhard Schmalhofer

Register-Based Bytecode
Is anyone else severely bothered by the following statement?
 * The developers see it as an advantage of the Parrot machine that it has registers, and therefore more closely resembles an actual hardware design, allowing the vast literature on compiler optimization to be used generating code for the Parrot virtual machine so that it will run bytecode at speeds closer to compiled languages like C.

While a register-based bytecode would be faster if executed by an interpreter on a machine that had sufficient registers, the compiled code (once compiled by a JIT compiler) shouldn't be any faster, right? And wouldn't this make the JIT compiler's job of producing good code harder? -- Steve3003 (Oct 11, 2006)


 * Are you asking what we think in general, or what can be cited in the article? Keep in mind that the former constitutes original research, where the existing text is simply citing the documentation that is available. We could, I imagine, debate the pros and cons of the design endlessly, but little of that would be encyclopedic. Now, if someone has demonstrated that these assertions are incorrect or sub-optimal, and can be cited from a reliable source, we should certainly cite their work. -Harmil 08:52, 12 October 2006 (UTC)

The article states it as a fact, but doesn't add a citation. Do we have any citation that can be added? -- Steve3003 (Dec 9, 2009) —Preceding undated comment added 21:33, 9 December 2009 (UTC).

"There is strong interest in parts of the Ruby community"
As of Feb. 10, 2008, googling "ruby parrot" only brings up videos of a parrot named Ruby who has a particularly dirty mouth. The only project I've been able to find, Cardinal (http://cardinal2.rubyforge.org/), seems to be dead as well. It seems like this sentence (and possible the entire "Possible future languages and projects" section) should be taken out. Wolever (talk) 00:34, 11 February 2008 (UTC)


 * Cardinal is not dead at all, it simply moved from rubyforge to the offical parrot repo. -- FF-Wonko T&bull;C 06:48, 12 November 2008 (UTC)

Defining "active" languages (and activeness of Parrot itself)
This page currently lists a rather optimistic 20 "actively maintained" languages, and a further 18 "inactive" ones. The official Parrot site, used as one of the references, currently lists only 3; the others (and many more) are still on the wiki page but that page has changed only by three characters since 2011 so its definition of "active" is pretty dubious. Indeed, I clicked through to the projects for Cardinal (Ruby support) and Pipp (PHP support), and see several years since development. Even the lua project linked directly from the Parrot site has no modifications since 2012; maybe they just got it perfect already?

So, I think the idea of "active languages" on this page needs a rather major rethink, and the "inactive" list could easily just become a web directory of "people who've played around with the toolkit". Maybe ditch the list altogether, and have a couple of sentences mentioning that languages other than Perl6 have targeted Parrot, not seen wide adoption? (But then, we're back in the definition game: we can't reference a lack of adoption any easier than we can reference "active maintenance"...) - IMSoP (talk) 23:14, 18 June 2015 (UTC)


 * Hello! IMHO, the whole  section should be converted into some more prose for the  section; that prose would list a few major languages as examples, using this web page as a reference.  Speaking or another reference, wikis in general aren't considered reliable sources, and this one in particular doesn't seem to be maintained while the whole point of such lists is regular maintenance.  That's as much as we can do, to follow the references. &mdash; Dsimic (talk &#124; contribs) 23:53, 18 June 2015 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 3 one external links on Parrot virtual machine. Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive https://web.archive.org/20131031061118/http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html to http://www.parrotblog.org/2008/06/announcing-parrot-foundation.html
 * Added archive https://web.archive.org/20090509161210/http://docs.parrot.org:80/parrot/latest/html/docs/book/ch04_compiler_tools.pod.html to http://docs.parrot.org/parrot/latest/html/docs/book/ch04_compiler_tools.pod.html
 * Added archive https://web.archive.org/20090720034439/http://docs.parrot.org:80/parrot/latest/html/docs/book/ch03_pir.pod.html to http://docs.parrot.org/parrot/latest/html/docs/book/ch03_pir.pod.html

When you have finished reviewing my changes, please set the checked parameter below to true to let others know.

Cheers. —cyberbot II  Talk to my owner :Online 16:36, 28 August 2015 (UTC)


 * one of the archived versions, we need the early one that works. &mdash; Dsimic (talk &#124; contribs) 21:04, 29 August 2015 (UTC)