WASM Python integration milestone - game.py runs in browser
Major milestone for issue #158 (Emscripten/WebAssembly build target): - Python 3.14 successfully initializes and runs in WASM - mcrfpy module loads and works correctly - Game scripts execute with full level generation - Entities (boulders, rats, cyclops, spawn points) placed correctly Key changes: - CMakeLists.txt: Add 2MB stack, Emscripten link options, preload files - platform.h: Add WASM-specific implementations for executable paths - HeadlessTypes.h: Make Texture/Font/Sound stubs return success - CommandLineParser.cpp: Guard filesystem operations for WASM - McRFPy_API.cpp: Add WASM path configuration, debug output - game.py: Make 'code' module import optional (not available in WASM) - wasm_stdlib/: Add minimal Python stdlib for WASM (~4MB) Build with: emmake make (from build-emscripten/) Test with: node mcrogueface.js Next steps: - Integrate VRSFML for actual WebGL rendering - Create HTML page to host WASM build - Test in actual browsers Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
07fd12373d
commit
8c3128e29c
222 changed files with 80639 additions and 25 deletions
64
wasm_stdlib/lib/python3.14/keyword.py
Normal file
64
wasm_stdlib/lib/python3.14/keyword.py
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
"""Keywords (from "Grammar/python.gram")
|
||||
|
||||
This file is automatically generated; please don't muck it up!
|
||||
|
||||
To update the symbols in this file, 'cd' to the top directory of
|
||||
the python source tree and run:
|
||||
|
||||
PYTHONPATH=Tools/peg_generator python3 -m pegen.keywordgen \
|
||||
Grammar/python.gram \
|
||||
Grammar/Tokens \
|
||||
Lib/keyword.py
|
||||
|
||||
Alternatively, you can run 'make regen-keyword'.
|
||||
"""
|
||||
|
||||
__all__ = ["iskeyword", "issoftkeyword", "kwlist", "softkwlist"]
|
||||
|
||||
kwlist = [
|
||||
'False',
|
||||
'None',
|
||||
'True',
|
||||
'and',
|
||||
'as',
|
||||
'assert',
|
||||
'async',
|
||||
'await',
|
||||
'break',
|
||||
'class',
|
||||
'continue',
|
||||
'def',
|
||||
'del',
|
||||
'elif',
|
||||
'else',
|
||||
'except',
|
||||
'finally',
|
||||
'for',
|
||||
'from',
|
||||
'global',
|
||||
'if',
|
||||
'import',
|
||||
'in',
|
||||
'is',
|
||||
'lambda',
|
||||
'nonlocal',
|
||||
'not',
|
||||
'or',
|
||||
'pass',
|
||||
'raise',
|
||||
'return',
|
||||
'try',
|
||||
'while',
|
||||
'with',
|
||||
'yield'
|
||||
]
|
||||
|
||||
softkwlist = [
|
||||
'_',
|
||||
'case',
|
||||
'match',
|
||||
'type'
|
||||
]
|
||||
|
||||
iskeyword = frozenset(kwlist).__contains__
|
||||
issoftkeyword = frozenset(softkwlist).__contains__
|
||||
Loading…
Add table
Add a link
Reference in a new issue