Conformance · measured, not claimed
How much QBasic actually runs.
QBasic has no official test suite, so this is a curated ledger: every row names a test and where its expectation came from — for most rows, the real QB64-PE.
96.6%476 of 493 in-scope ledger rows
- Authority
languages/QBasic/tests/corpus/manifest.tsv- Arbiter
- QB64 Phoenix Edition (row by row, named in each row's
oraclecolumn) - Unit
- ledger row
- Measured
- 2026-08-02 02:33
- Raw data
- raw measurement (JSON)
breakdown
Breakdown by corpus area
| corpus area | tests | passing | not yet | wrong | out of scope | pass rate | split |
|---|---|---|---|---|---|---|---|
| strings | 60 | 60 | 0 | 0 | 0 | 100.0% | |
| types | 58 | 57 | 1 | 0 | 0 | 98.3% | |
| files | 57 | 54 | 0 | 3 | 0 | 94.7% | |
| control | 49 | 49 | 0 | 0 | 0 | 100.0% | |
| numeric | 41 | 40 | 0 | 0 | 1 | 100.0% | |
| convert | 36 | 36 | 0 | 0 | 0 | 100.0% | |
| procs | 34 | 34 | 0 | 0 | 0 | 100.0% | |
| console | 32 | 32 | 0 | 0 | 0 | 100.0% | |
| dos | 25 | 20 | 0 | 1 | 4 | 95.2% | |
| errors | 18 | 11 | 5 | 2 | 0 | 61.1% | |
| io | 14 | 14 | 0 | 0 | 0 | 100.0% | |
| records | 14 | 14 | 0 | 0 | 0 | 100.0% | |
| gfx | 14 | 14 | 0 | 0 | 0 | 100.0% | |
| data | 13 | 12 | 1 | 0 | 0 | 92.3% | |
| basics | 10 | 10 | 0 | 0 | 0 | 100.0% | |
| audio | 6 | 6 | 0 | 0 | 0 | 100.0% | |
| ops | 5 | 5 | 0 | 0 | 0 | 100.0% | |
| arrays | 4 | 4 | 0 | 0 | 0 | 100.0% | |
| misc | 3 | 3 | 0 | 0 | 0 | 100.0% | |
| (root) | 3 | 0 | 3 | 0 | 0 | 0.0% | |
| clock | 1 | 1 | 0 | 0 | 0 | 100.0% | |
| shell | 1 | 0 | 1 | 0 | 0 | 0.0% |
blockers
What blocks the rest
The ten most expensive blockers. Next to each is how many ledger rows it costs — one compiler gap can stop a whole file, so the cost is what matters, not the count of distinct errors.
| cost | reason — the measurement's own words | blamed |
|---|---|---|
| 3 | ERL | errors/ERL_01_line_numbererrors/ERL_02_unnumberederrors/ERL_03_no_lines |
| 2 | RESUME | errors/RESUME_01_retryerrors/RESUME_NEXT_02_in_loop |
| 2 | COMMAND | dos/COMMAND_S_01_emptydos/COMMAND_S_02_expr |
| 1 | BYVAL | types/BYVAL_01_reject |
| 1 | ON | errors/ON_ERROR_03_sub_propagates |
| 1 | DATA | data/DATA_05_out_of_bounds |
| 1 | SHELL | shell/shell |
| 1 | Hardware/memory features are explicitly rejected | oos_01_hardware_reject |
| 1 | OS clock setters are explicitly rejected | oos_02_os_clock_reject |
| 1 | Device/debug features are explicitly rejected | oos_03_device_reject |
A further 8 ledger rows are blocked by smaller causes; the full list is in the raw measurement (JSON).