Skip to content

What runs today

This page is the plain list of what d/Python can do right now, what it cannot do yet and why, and what the browser playground can and cannot do, with the date each thing was measured. After it you will know exactly what to expect before you start.

d/Python is an initial, tested implementation of a broader set of promises. This page is the honesty table: every row points at test results, and a row moves only when the results move. The source commit and the measurements come from the bundle this site was built from; the section marked this build is regenerated every time the site is built.

Measured in this browser, when this site was built

What was measured Value How
Test programs that print exactly the expected text in this browser build 62 / 62 every single-file program was compiled and run by this site's own compiler and runtime when the site was built; see the test programs
Test programs made of several files, tested on the command line instead 4 the browser compiler takes one file at a time
Intents on d/OS's official list that can be called from Python 191 see intent coverage
Intents proven by a test that runs in both d/Python and d/BASIC 86 proven in part; none is called complete
Language features supported in part / not yet / complete 36 / 9 / 0 the compatibility table, as of 2026-09-12
Built-in functions supported in part / not yet / complete, of 69 42 / 27 / 0 the builtins table
Reference Python every test is checked against CPython 3.9.6 fixed in advance, down to the exact build
This build 2026-09-12 the footprint page lists the module sizes
Instructions a program may run before the browser gets a turn 5,000 why an infinite loop cannot freeze the page

Built, and tested

Piece State
Front end: the RustPython parser (0.4.0, MIT), Python analysis and translation, error messages with a line and column built; 62 single-file test programs compile and match in this browser
Shared back end (dos-dbc-backend): emitting bytecode, stack accounting, relocation, optimization, and checking every image it produces built; lifted out of the d/BASIC compiler, whose test suite kept passing
Integers of any size in a shared library file, .dbl, with Python's //, %, **, divmod, pow with a modulus, shifts and bit operations built; stored as decimal strings and charged against the runtime's budgets; not the final, fast representation
Unicode strings and bytes as different types; slicing, search, split, strip, replace, join, encode, repr, ascii, f-strings with !r/!a built; the compatibility table names the missing methods
Lists, tuples, ordered dictionaries with live views, sets and frozensets, ranges with any bounds; comprehensions; iter/next, enumerate, zip, map, filter, sorted, reversed; generator expressions built; one element type per list, dictionary or set
Functions with positional-only, keyword-only, *args, **kwargs; closures with nonlocal; lambdas; direct and mutual recursion with a catchable limit of 128 calls built
Classes with single inheritance, super(), __str__, __repr__, __bool__, __len__, __call__, __iter__/__next__, __enter__/__exit__, __index__; isinstance/issubclass built
Exceptions: raise, try/except/else/finally, assertions, catchable ZeroDivisionError, IndexError, KeyError, ValueError, TypeError, EOFError, StopIteration built
Modules and packages: sibling imports, aliases, from-imports, __init__.py, relative imports, circular imports, __main__ guards; compiled into one .dbc built on macOS (the browser compiler takes one source file)
Console programs with input() on the shared CONSOLE.READ_LINE_RESULT service; window programs with open, draw, resize, key, pointer and close built; this browser and macOS
On-screen widgets through the shared UI engine; 24 widget intents with the same test in both languages built; this browser and macOS
The dos module: all 191 callable intents can be called from Python, with fixed buffers, decimals and calls that return several results built; 86 intents have run in tests written in both languages
Calling published shared libraries with exact signatures and hashes; DPK2 packages with resources, icons and developer seals; installation tests built on macOS
Testing: 66 programs under CPython 3.9.6 and the real runtime; 416 tests pass; the same test in both d/BASIC and d/Python; byte-for-byte reference files; negative controls the repository, every build
macOS kit: both programs, seven compiled examples, 21 checks that it works from any folder built
Browser playground: compiler, runtime and font module as WebAssembly, console input, WebGL2 graphics, embeds that stand alone built; this site, tested 12 September 2026
Linux and Windows: the compiler, runtime and command-line suites pass on both; the check of the exported WebAssembly passed with nothing skipped 12 September 2026; see Conformance

Not yet, and said so

Piece Honest state
float beyond literals, true division /, round(), float formatting not yet; the number representation is shared with d/BASIC, and Python's float rules must be proven before they are exposed
Generator functions, yield, send/throw/close, async not yet supported
Descriptors, metaclasses, multiple inheritance, reflection, dynamic imports, getattr/setattr, property, staticmethod/classmethod not yet supported
Collections that mix types, changing a variable's type, and/or whose result could be either type the compiler explains why; what is missing is a way to carry a type tag with each value (the message calls it the tagged-value adapter)
String repetition, .upper()/.lower(), format specifications, % formatting, str.format not implemented; the compiler names each one
The standard library, open(), hashlib, contextlib, pip packages not yet; d/OS modules supply the platform's services instead
Custom exception classes, traceback objects, exception chaining the compiler stops and says so
Files, network and sound in the browser proven natively on macOS; this playground attaches no part of the host that supplies files, sound or the network, so those programs are declined before they start
Drag and drop, the pasteboard, messaging between programs (DOBJ), the DATA database and artifact rows 25 SERVICE intents and 40 DATA intents can be called from Python, and none has run in a test; listed as not yet in the intent coverage
A way to type text into a GUI field, a physical input method editor, testing across browsers and for performance separate work, named in the playground's test report
Terminal input() on Linux and Windows, native window hosts there the compiler, runtime and command-line suites pass on both (12 September 2026), but the raw keyboard input path is macOS-only: on Linux, 65 of the 66 test programs pass, and the one that calls input() is declined with SERVICE_ROUTE_UNAVAILABLE; window hosts exist only on macOS
Real d/OS hardware the platform's test results, not the language's

Measured on macOS

Measured on 12 September 2026 (see Conformance):

Measurement Value
Tests in the default suite 416 passing
Tests in the selected set for the release build 325 passing
Test programs whose debug and release builds produce identical compiled files 77 of 77
Console command-line program (with debug information) 6,872,672 bytes
Native graphics host program (with debug information) 8,714,704 bytes
Tic-tac-toe compiled program 17,968 bytes (measured natively, 11 September 2026)
Object identities available per run 256
Recursion limit 128 calls, catchable
Room for a program's strings and constants 65,535 bytes

Whole-file sizes include debug information; they are not the memory a program uses or the cost of a feature. See Footprint & Cost for what each figure does and does not mean.

When something above is missing, the program stops and says so by name, on every host. It does not pretend.