Feature | Rakudo MoarVM | Rakudo JVM | Links |
---|---|---|---|
Basics | |||
Basic control structures | +
|
+
|
spec code code code code code code code code |
Lexical variables | +
|
+
|
spec spec code code code code |
Dynamic variables | +
|
+
|
code code |
Basic types (strings, numbers) | +
|
+
|
spec spec code code code code code code |
Basic file IO | +
|
+
|
spec code code code code |
Basic OO | +
|
+
|
spec spec code code |
Basic multi dispatch | +
|
+
|
spec code |
Basic regex support | +
|
+
|
spec code |
Subroutines | +
|
+
|
spec code code code code |
Blocks | +
|
+
|
spec code |
Pointy blocks (lambdas) | +
|
+
|
spec code code |
Placeholder blocks | +
|
+
|
spec code |
Special variables | +
|
+
|
spec code |
eval | +
|
+
|
spec code code |
Constant declarations | +
|
+
|
spec code code |
State variables | +
|
+
|
spec code |
Loops as list generators | +
|
+
|
spec |
Labeled loops | +
|
+
|
spec |
goto | −
|
−
|
spec |
Classes | |||
Classes, attributes, methods | +
|
+
|
spec code code code |
Single inheritance | +
|
+
|
spec code |
Multiple inheritance | +
|
+
|
spec code |
Read-only accessors | +
|
+
|
spec code |
Read-write accessors | +
|
+
|
spec code code |
Default constructor | +
|
+
|
spec code code |
Private methods | +
|
+
|
spec |
Submethods | +
|
+
|
spec |
Trust relationships | +
|
+
|
spec |
Natively typed attributes | +
|
+
|
|
Delegation | +
|
+
|
spec |
Roles | |||
Roles with attributes and methods | +
|
+
|
code code |
Composing roles into classes | +
|
+
|
code |
Composing roles into roles | +
|
+
|
|
Parametric roles | +
|
+
|
code code |
Types | |||
Subset types | +
|
+
|
code code |
Enums | +
|
+
|
code code |
Mixins | +
|
+
|
code |
Regexes | |||
Quantifiers, alternations | +
|
+
|
code code |
Match objects | +
|
+
|
code |
Named and positional captures | +
|
+
|
code code |
Conjunction | +
|
+
|
|
Longest-Token Matching | +
|
+
|
code code |
Character classes | +
|
+
|
code |
Unicode properties | ± 1
|
± 1
|
|
Embedded code blocks | +
|
+
|
code |
Variable interpolation | +
|
+
|
code |
Grammars | +
|
+
|
code code |
Categories across derived grammars | +
|
+
|
code |
Double colon LTM stopper | −
|
−
|
spec |
Matching streams | −
|
−
|
spec |
Signatures | |||
Positional args/params | +
|
+
|
code code |
Named args/params | +
|
+
|
code code |
Slurpy args/params | +
|
+
|
code code |
LoL args/params | +
|
+
|
|
Nested signatures | +
|
+
|
code code code |
is rw, is copy | +
|
+
|
code code code |
Argument coercion | +
|
+
|
spec |
Type captures | +
|
+
|
spec code |
Built-in types and functions | |||
Strings, split, join, case folding, substr | +
|
+
|
spec code code code |
Basic numbers, arithmetic operations | +
|
+
|
spec code |
Big integers | +
|
+
|
code |
Complex numbers | +
|
+
|
spec code |
Rat type | +
|
+
|
code code |
Hashes, Pairs | +
|
+
|
spec code code |
Lists, arrays, map, grep | +
|
+
|
spec code code code code |
Autovivification | +
|
+
|
spec |
Lazy lists, gather/take | +
|
+
|
code code code code code code |
Ranges | +
|
+
|
code code code |
Trigonometric | +
|
+
|
code code |
Probabalistic (rand, pick, roll) | +
|
+
|
code |
sprintf, .fmt | +
|
+
|
code code code |
Object hashes, Sets, SetHash, MixHash, ... | +
|
+
|
code |
Buf, buf, utf8 | +
|
+
|
spec spec spec |
NFG as default | +
|
−
|
spec spec |
DateTime, Date | +
|
+
|
code code code code |
Native operators | ±
|
±
|
|
Compact arrays | +
|
+
|
spec |
Shaped arrays/hashes | ± 2
|
± 2
|
spec |
ObjAt from WHICH | +
|
+
|
spec |
Multi dispatch | |||
Multi method dispatch | +
|
+
|
code |
Multi sub dispatch | +
|
+
|
code code |
Protos | +
|
+
|
code |
Based on arity | +
|
+
|
|
Based on types | +
|
+
|
code code |
Proper narrowness analysis | +
|
+
|
|
Additional constraints | +
|
+
|
code code |
nextsame, nextwith, callsame, callwith | +
|
+
|
code |
Overloading built-in operators | +
|
+
|
code code code |
Module management | |||
use | +
|
+
|
code |
need | +
|
+
|
|
require | +
|
+
|
|
Basic module versioning | ±
|
±
|
|
Operators | |||
Smartmatch | +
|
+
|
spec code code code |
Numeric bitops | +
|
+
|
spec code |
Buffer bitops | +
|
+
|
code |
Junctive | +
|
+
|
spec |
Chaining | +
|
+
|
spec |
File tests | +
|
+
|
code code code |
List infixes | +
|
+
|
code |
Sequence | +
|
+
|
code code code code code code code |
Flipflop | +
|
+
|
|
Interpolating word list | +
|
+
|
|
Logic cascade (andthen, orelse) | +
|
+
|
|
Meta operators | |||
Reduction | +
|
+
|
code code code code |
Triangle | +
|
+
|
code code |
Assignment | +
|
+
|
code code code |
Negation | +
|
+
|
|
Reverse | +
|
+
|
code |
Zip | +
|
+
|
code code code code code |
Cross | +
|
+
|
code code code code code |
Hyper | +
|
+
|
code code code code code code |
Syntax flexibility | |||
Defining new operators | +
|
+
|
code code code code code |
Precedence, thunkiness, and associativity of new operators | +
|
+
|
|
Basic macros | ± 3
|
± 3
|
code |
Macro hygiene | ±
|
±
|
|
Delayed declarations | −
|
−
|
|
Concurrency | |||
Basic threads | +
|
+
|
|
Synchronization | +
|
+
|
|
start blocks | +
|
+
|
|
Promises | +
|
+
|
|
Channels | +
|
+
|
|
Supplies | +
|
±
|
|
Parallelized hypers and junctions | −
|
−
|
code |
Feed operators | ± 4
|
± 4
|
code |
Phasers | |||
BEGIN/CHECK/INIT/END | +
|
+
|
code |
CATCH | +
|
+
|
code code |
ENTER/LEAVE | +
|
+
|
|
FIRST/NEXT/LAST | +
|
+
|
|
PRE/POST | +
|
+
|
|
Misc | |||
Junctions, autothreading | +
|
+
|
spec code code code |
Priming (aka 'currying') | +
|
+
|
spec code |
Whatever-priming | +
|
+
|
spec code code |
REPL | +
|
+
|
code |
MAIN | +
|
+
|
spec code code |
run, qx | +
|
+
|
spec spec code |
Environment vars | +
|
+
|
spec code |
PROCESS, GLOBAL, CALLER, DYNAMIC | +
|
+
|
spec |
CORE, SETTING, UNIT, OUTER, MY, OUR, CLIENT | +
|
+
|
spec |
DESTROY | +
|
−
|
|
Meta-Object Programming | |||
Introspection | +
|
+
|
code code |
Adding methods | +
|
+
|
|
Role composition | +
|
+
|
|
Overriding dispatch | +
|
+
|
|
Lexing and Parsing | |||
Multiline Comments | +
|
+
|
spec |
Embedded Comments | +
|
+
|
spec |
Bracketing Characters | +
|
+
|
spec |
User-selected Brackets | +
|
+
|
spec |
Heredocs | +
|
+
|
spec |
Unspaces | +
|
+
|
spec |
Pod | +
|
+
|
spec |
Indirect method calls | +
|
+
|
spec |
Please note that this feature matrix generally represents the state of the latest development versions of the compilers, not that of the latest release.
This page is generated by process.pl
from
template.html
and features.json
, all of
which can be found in the raku/features
repository. The canonical location for this page is at
http://raku.org/compilers/features
and is updated at least hourly.
If you find any information here lacking or inaccurate, please fix it in the repository mentioned above. If you don't have commit access yet, please ask on the #raku IRC channel.
The data to generate this page was last updated Wed Nov 15 15:51:27 2023 GMT; The page itself was updated Wed Nov 15 16:04:49 2023 GMT