Skip to content

Consider supporting emscripten/webassembly as a build target #84461

Closed
@SimonBiggs

Description

BPO 40280
Nosy @warsaw, @brettcannon, @terryjreedy, @tiran, @mcepl, @pmp-p, @rdb, @ethanhs, @corona10, @miss-islington, @tirkarthi, @erlend-aasland
PRs
  • bpo-40280: Add wasm cross build targets (GH-29771) #29771
  • bpo-40280: Use Setup.stdlib static for wasm builds (GH-29784) #29784
  • bpo-40280: Move hard-coded feature checks to configure (GH-29789) #29789
  • bpo-40280: clean and ignore .wasm files (GH-29794) #29794
  • bpo-40280: Add configure check for socket shutdown (GH-29795) #29795
  • bpo-40280: Disable unusable core extension modules on emscripten (GH-29834) #29834
  • bpo-40280: Emscripten systems use .wasm suffix by default (GH-29842) #29842
  • bpo-40280: Emscripten has no support for subprocesses #29872
  • bpo-40280: Emscripten defaults to --with-ensurepip=no (GH-29873) #29873
  • bpo-40280: Emscripten with_ensurepip=no, second attempt (GH-29884) #29884
  • bpo-40280: Optimize ints and and startup on wasm (GH-29887) #29887
  • bpo-40280: Enable assertions in Emscripten debug builds #29892
  • bpo-40280: Update what's new (GH-29893) #29893
  • bpo-40280: Add Tools/wasm with helpers for cross building (GH-29984) #29984
  • bpo-40280: Disable epoll_create in Emscripten config.site (GH-30494) #30494
  • bpo-40280: Add build target for Emscripten/node.js #30495
  • bpo-40280: Skip IPPROTO_SCTP tests on Emscripten #30538
  • bpo-40280: Add --with-emscripten-target to build for browser or node (GH-30552) #30552
  • bpo-40280: Allow to compile _testcapi as builtin module (GH-30559) #30559
  • bpo-40280: Build WASM stdlib bundle and more modules for node (GH-30597) #30597
  • bpo-40280: Block more syscalls that are causing crashes in tests (GH-30601) #30601
  • bpo-40280: Skip subprocess-based tests on wasm32-emscripten (GH-30615) #30615
  • bpo-40280: Change subprocess imports for cleaner error on wasm32 (GH-30620) #30620
  • bpo-40280: Add requires_fork test helper (GH-30622) #30622
  • bpo-40280: Misc fixes for wasm32-emscripten (GH-30722) #30722
  • bpo-40280: Get help() working and more (GH-30858) #30858
  • bpo-40280: Use presence of msvcrt module to detect Windows #30930
  • bpo-40280: Address more test failures on Emscripten (GH-31050) #31050
  • bpo-40280: Block more non-working syscalls in Emscripten (GH-31757) #31757
  • bpo-40280: Skip dysfunctional pipe tests on Emscripten (GH-31770) #31770
  • bpo-40280: Skip more tests/features that don't apply to Emscripten (GH-31791) #31791
  • bpo-40280: Disable AF_UNIX, AF_PACKET, SO_REUSE* on Emscripten #31829
  • bpo-40280: select: Use NULL for empty fdset (GH-31865) #31865
  • bpo-40280: Detect presence of time.tzset and thread_time clock (GH-31898) #31898
  • bpo-40280: Skip wakeup_fd pipe tests on Emscripten (GH-31909) #31909
  • bpo-40280: Skip more tests on Emscripten (GH-31947) #31947
  • bpo-40280: Skip socket, fork, subprocess tests on Emscripten #31986
  • bpo-40280: Add wasm32-emscripten and wasm32-wasi SOABI #32095
  • bpo-40280: Emscripten fork_exec now fails early (GH-32224) #32224
  • bpo-40280: Add debug Emscripten flavors (GH-32233) #32233
  • bpo-40280: Enable most file-at() and nanosleep APIs again (GH-32238) #32238
  • bpo-40280: Detect if WASM platform supports threading #32243
  • bpo-40280: Add --enable-wasm-dynamic-linking (GH-32253) #32253
  • bpo-46315: Use fopencookie only on Emscripten 3.x and newer (GH-32266) #32266
  • bpo-40280: Add limited Emscripten REPL (GH-32284) #32284
  • bpo-40280: Detect missing threading on WASM platforms (GH-32352) #32352
  • bpo-40280: WASM defaults to no dynamic linking (GH-32360) #32360
  • bpo-40280: WASM docs and smaller browser builds (GH-32412) #32412
  • Dependencies
  • bpo-23325: Turn SIG_DFL and SIG_IGN into functions
  • bpo-33393: update config.guess and config.sub
  • bpo-41498: Undefinied _Py_Sigset_Converter function when HAVE_SIGSET_T not set
  • bpo-45881: Cross compiling on Linux is untested, undocumented, and broken
  • bpo-45886: Fix Program/freeze_module for cross compiling Python
  • bpo-45898: ctypes cfield.c defines duplicate ffi_type* symbols
  • bpo-46383: _zoneinfo module_free has invalid function signature
  • bpo-46390: Multiple test failures on Alpine 3.15 / musl-1.2.2-r7
  • bpo-46408: signal module wrongly relies on small int singletons
  • bpo-47162: Add call trampoline to work around bad fpcasts on Emscripten
  • bpo-47176: Interrupt handling for wasm32-emscripten builds without pthreads
  • bpo-47196: Function pointer cast in test_imp
  • bpo-47197: ctypes mishandles void return type
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = None
    created_at = <Date 2020-04-14.07:11:35.905>
    labels = ['type-feature', 'build', '3.11']
    title = 'Consider supporting emscripten/webassembly as a build target'
    updated_at = <Date 2022-04-08.10:17:32.793>
    user = 'https://bugs.python.org/SimonBiggs'

    bugs.python.org fields:

    activity = <Date 2022-04-08.10:17:32.793>
    actor = 'christian.heimes'
    assignee = 'none'
    closed = False
    closed_date = None
    closer = None
    components = ['Build']
    creation = <Date 2020-04-14.07:11:35.905>
    creator = 'Simon Biggs'
    dependencies = ['23325', '33393', '41498', '45881', '45886', '45898', '46383', '46390', '46408', '47162', '47176', '47196', '47197']
    files = []
    hgrepos = []
    issue_num = 40280
    keywords = ['patch']
    message_count = 65.0
    messages = ['366369', '366374', '366375', '366379', '369598', '394081', '406985', '406986', '407011', '407012', '407013', '407014', '407015', '407018', '407020', '407021', '407030', '407046', '407048', '407049', '407052', '407080', '407264', '407284', '407484', '407498', '407519', '407524', '407541', '408855', '410138', '410400', '410423', '410554', '410577', '410647', '410727', '410743', '411039', '411514', '411560', '411847', '412595', '414748', '414769', '414780', '414845', '414940', '415136', '415259', '415297', '415398', '415757', '415976', '416494', '416509', '416541', '416542', '416579', '416681', '416763', '416865', '416916', '416933', '416934']
    nosy_count = 14.0
    nosy_names = ['barry', 'brett.cannon', 'terry.reedy', 'christian.heimes', 'mcepl', 'pmpp', 'rdb', 'ethan smith', 'corona10', 'miss-islington', 'Roman Yurchak', 'xtreak', 'erlendaasland', 'Simon Biggs']
    pr_nums = ['29771', '29784', '29789', '29794', '29795', '29834', '29842', '29872', '29873', '29884', '29887', '29892', '29893', '29984', '30494', '30495', '30538', '30552', '30559', '30597', '30601', '30615', '30620', '30622', '30722', '30858', '30930', '31050', '31757', '31770', '31791', '31829', '31865', '31898', '31909', '31947', '31986', '32095', '32224', '32233', '32238', '32243', '32253', '32266', '32284', '32352', '32360', '32412']
    priority = 'normal'
    resolution = None
    stage = 'patch review'
    status = 'open'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue40280'
    versions = ['Python 3.11']

    Metadata

    Assignees

    No one assigned

      Labels

      3.11only security fixesOS-wasibuildThe build process and cross-buildtype-featureA feature request or enhancement

      Type

      No type

      Projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions