Ethan Smith, uno dei principali sviluppatori di MyPyC, il compilatore di moduli Python in codice C, ha riferito dell'aggiunta al codice sorgente di CPython (l'implementazione di base di Python) di modifiche che consentono di compilare il ramo principale di CPython per funzionare all'interno di un browser, senza ricorrere a patch aggiuntive. La compilazione avviene in un codice intermedio a basso livello universale WebAssembly tramite il compilatore Emscripten.

Il lavoro è stato approvato da Guido van Rossum, il creatore del linguaggio di programmazione Python, che ha inoltre proposto di integrare il supporto per Python nel web service github.dev, che fornisce un ambiente di sviluppo interattivo completamente operativo nel browser. Jonathan Carter di Microsoft ha menzionato che attualmente sono in corso lavori per implementare il supporto per il linguaggio Python in github.dev, ma nel prototipo esistente dell'ambiente di calcolo Jupyter per github.dev è stato utilizzato il progetto Pyodide (una compilazione di Python 3.9 runtime in WebAssembly).
In discussione è stata sollevata anche la questione della compilazione di Python con supporto per WASI (WebAssembly System Interface) per utilizzare la rappresentazione WebAssembly di Python senza legami con un web browser. Si osserva che per implementare una simile possibilità sarà necessario svolgere un grande lavoro, poiché WASI non fornisce un'implementazione dell'API pthread e in Python è stata interrotta la possibilità di compilare senza l'inclusione del multithreading.
Fonte: opennet.ru
