Where things diverge
One row per type or operator, one dot per executed check, coloured by outcome. Sorted worst first, so the clusters are the top of each table.
all agreeRaku++ differsdocumentation staleRaku++ matches the docs, Rakudo does notall three differnot run
Over time #
One point per regeneration of the data, oldest first. The history is kept append-only in src/data/history.jsonl, so this chart can be replaced by something richer without losing the record.
okrakupp-differsdoc-driftrakudo-differsall-differ
Types
Each dot is one example from the official documentation, run on both engines and compared against the output the documentation asserts.
Operators
Each dot is the same expression run on both engines. Every operator that parses is listed, worst first — so the disagreements cluster at the top and the rest runs green.
| Operator | n | agree | differ | both reject | outcome |
|---|---|---|---|---|---|
but infix | 7 | 3 | 4 | ||
... infix | 7 | 4 | 3 | ||
^ prefix | 6 | 3 | 2 | 1 | |
+ prefix | 6 | 4 | 1 | 1 | |
- prefix | 6 | 4 | 1 | 1 | |
∪ infix | 7 | 6 | 1 | ||
⊎ infix | 7 | 6 | 1 | ||
⊖ infix | 7 | 6 | 1 | ||
temp prefix | 6 | 1 | 5 | ||
let prefix | 6 | 1 | 5 | ||
does infix | 7 | 1 | 6 | ||
coll infix | 7 | 6 | 1 | ||
unicmp infix | 7 | 6 | 1 | ||
!= infix | 7 | 6 | 1 | ||
≠ infix | 7 | 6 | 1 | ||
min infix | 7 | 6 | 1 | ||
andthen infix | 7 | 6 | 1 | ||
** infix | 7 | 6 | 0 | 1 | |
? prefix | 6 | 6 | 0 | ||
! prefix | 6 | 6 | 0 | ||
~ prefix | 6 | 6 | 0 | ||
| prefix | 6 | 6 | 0 | ||
+^ prefix | 6 | 5 | 0 | 1 | |
~^ prefix | 6 | 0 | 6 | ||
?^ prefix | 6 | 6 | 0 | ||
. infix | 7 | 0 | 7 | ||
* infix | 7 | 6 | 0 | 1 | |
/ infix | 7 | 5 | 0 | 2 | |
div infix | 7 | 5 | 0 | 2 | |
% infix | 7 | 5 | 0 | 2 | |
%% infix | 7 | 5 | 0 | 2 | |
mod infix | 7 | 5 | 0 | 2 | |
+& infix | 7 | 6 | 0 | 1 | |
+< infix | 7 | 6 | 0 | 1 | |
+> infix | 7 | 6 | 0 | 1 | |
~& infix | 7 | 7 | 0 | ||
~< infix | 7 | 0 | 7 | ||
~> infix | 7 | 0 | 7 | ||
?& infix | 7 | 7 | 0 | ||
gcd infix | 7 | 6 | 0 | 1 | |
lcm infix | 7 | 6 | 0 | 1 | |
+ infix | 7 | 6 | 0 | 1 | |
- infix | 7 | 6 | 0 | 1 | |
+| infix | 7 | 6 | 0 | 1 | |
+^ infix | 7 | 6 | 0 | 1 | |
~| infix | 7 | 7 | 0 | ||
~^ infix | 7 | 7 | 0 | ||
?^ infix | 7 | 7 | 0 | ||
?| infix | 7 | 7 | 0 | ||
x infix | 7 | 6 | 0 | 1 | |
xx infix | 7 | 6 | 0 | 1 | |
~ infix | 7 | 7 | 0 | ||
o infix | 7 | 0 | 7 | ||
∘ infix | 7 | 0 | 7 | ||
& infix | 7 | 7 | 0 | ||
∩ infix | 7 | 7 | 0 | ||
⊍ infix | 7 | 7 | 0 | ||
| infix | 7 | 7 | 0 | ||
∖ infix | 7 | 7 | 0 | ||
^ infix | 7 | 7 | 0 | ||
cmp infix | 7 | 7 | 0 | ||
leg infix | 7 | 7 | 0 | ||
<=> infix | 7 | 6 | 0 | 1 | |
.. infix | 7 | 7 | 0 | ||
..^ infix | 7 | 7 | 0 | ||
^.. infix | 7 | 7 | 0 | ||
^..^ infix | 7 | 7 | 0 | ||
== infix | 7 | 6 | 0 | 1 | |
⩵ infix | 7 | 6 | 0 | 1 | |
< infix | 7 | 6 | 0 | 1 | |
<= infix | 7 | 6 | 0 | 1 | |
≤ infix | 7 | 6 | 0 | 1 | |
> infix | 7 | 6 | 0 | 1 | |
>= infix | 7 | 6 | 0 | 1 | |
≥ infix | 7 | 6 | 0 | 1 | |
eq infix | 7 | 7 | 0 | ||
ne infix | 7 | 7 | 0 | ||
gt infix | 7 | 7 | 0 | ||
ge infix | 7 | 7 | 0 | ||
lt infix | 7 | 7 | 0 | ||
le infix | 7 | 7 | 0 | ||
before infix | 7 | 7 | 0 | ||
after infix | 7 | 7 | 0 | ||
eqv infix | 7 | 7 | 0 | ||
=== infix | 7 | 7 | 0 | ||
⩶ infix | 7 | 7 | 0 | ||
=:= infix | 7 | 7 | 0 | ||
~~ infix | 7 | 7 | 0 | ||
=~= infix | 7 | 6 | 0 | 1 | |
≅ infix | 7 | 6 | 0 | 1 | |
∈ infix | 7 | 7 | 0 | ||
∉ infix | 7 | 7 | 0 | ||
≡ infix | 7 | 7 | 0 | ||
≢ infix | 7 | 7 | 0 | ||
∋ infix | 7 | 7 | 0 | ||
∌ infix | 7 | 7 | 0 | ||
⊂ infix | 7 | 7 | 0 | ||
⊄ infix | 7 | 7 | 0 | ||
⊆ infix | 7 | 7 | 0 | ||
⊈ infix | 7 | 7 | 0 | ||
⊃ infix | 7 | 7 | 0 | ||
⊅ infix | 7 | 7 | 0 | ||
⊇ infix | 7 | 7 | 0 | ||
⊉ infix | 7 | 7 | 0 | ||
≼ infix | 7 | 0 | 7 | ||
≽ infix | 7 | 0 | 7 | ||
&& infix | 7 | 7 | 0 | ||
|| infix | 7 | 7 | 0 | ||
^^ infix | 7 | 7 | 0 | ||
// infix | 7 | 7 | 0 | ||
max infix | 7 | 7 | 0 | ||
minmax infix | 7 | 7 | 0 | ||
ff infix | 7 | 7 | 0 | ||
^ff infix | 7 | 7 | 0 | ||
ff^ infix | 7 | 7 | 0 | ||
^ff^ infix | 7 | 7 | 0 | ||
fff infix | 7 | 7 | 0 | ||
^fff infix | 7 | 7 | 0 | ||
fff^ infix | 7 | 7 | 0 | ||
^fff^ infix | 7 | 7 | 0 | ||
=> infix | 7 | 7 | 0 | ||
not prefix | 6 | 6 | 0 | ||
so prefix | 6 | 6 | 0 | ||
: infix | 7 | 0 | 7 | ||
Z infix | 7 | 7 | 0 | ||
X infix | 7 | 7 | 0 | ||
and infix | 7 | 7 | 0 | ||
notandthen infix | 7 | 7 | 0 | ||
or infix | 7 | 7 | 0 | ||
orelse infix | 7 | 7 | 0 | ||
xor infix | 7 | 7 | 0 | ||
==> infix | 7 | 0 | 7 | ||
! infix | 7 | 0 | 7 |