Perl 6
rakudo feature status: Revision 23
{toc: }

^^ Common things that are known to have problems or not work in Rakudo

(As of 2009-01-10.)
Where appropriate, provide a reference to the corresponding RT ticket. Note that we aren't trying to make a list of all known bugs -- that's what RT is for. This should just be for the common issues that people will want to be aware of or work around when playing with Rakudo.

* reading array/hash elements causes them to autovivify ("RT #61882"<>)
* incorrect parsing of blocks followed by 'if', 'unless', 'while', 'until', 'given', etc. ("RT #57876"<>)
* accessing outer lexicals from eval
* handles handle only String and List of String, Tepy and Regex not work yet
* lazy lists
* lazy ranges
* prefix and postfix hyperoperators
* //= ("RT #61880"<>)
* operator overloading, defining new operators
* nested package/grammar/class declarations
* autothreading of methods over Junctions
* slices/indexing of Ranges ("RT #61848"<>)
* filling positional parameters by named argument ("RT #54808"<>)
* assigning values to %*ENV ("RT #57400"<>)
* methods on Match cannot be used as rule names ("RT #57864"<>)
* some things that should be readonly aren't
* autovivification of undefs to arrays/hashes
* my Int @a; ("RT #61926"<>)
* variables in regexes ("RT #61960"<>)
* Perl 6 closures in regexes (although it is possible to execute some PIR, on the form {{{{ PIR HERE }}}})
* code assertions in regexes -- i.e., <?{...}> and <!{...}> (but PIR forms are available, as <? {{{{ PIR HERE }}}}>)
* interpolations of arrays, hashes, and method calls in strings ("RT #62198"<>)
** Note that the { ... } form is a usable workaround

^^ Things that do (mostly?) work in Rakudo

See also the twitter feed at <>.

* scalar, array, hash variables
* sub, multi sub, sub and methods signatures
* OO stuff mostly works: classes, methods, submethod, roles; has, self, is, of, does, handles etc.
* for, loop, repeat, while
* if, elsif, else, unless, given, when
* junctions (auto-threading partiality works )
* selected infix hyperoperators, reduction operators, cross (X) and zip (Z) operators
* slicing syntax
* chained comparison operators ( if 1 < $a < 100 { ... } )
* whatever star in slices
* closures
* currying (i.e., .assuming)
* simple next/last/redo
* take/gather
* pointy blocks ( -> $foo { ... } )
* open (:w or :r) and slurpy files (and that is all, IO stuff mostly not implemented yet)
* eval and try/CATCH
* Ranges
* max, min built-ins (but minmax not implemented yet)
* m// .trans and .subst (s// not implemented yet)
* grammar and .parse method to match it
* .pick, rand

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.