Skip to content

Tracking issue for supporting asm.js and WebAssembly without Fastcomp #44006

Closed
@tlively

Description

@tlively
Contributor

Breaking Rust's dependency on Fastcomp will allow upgrades to Rust's LLVM to be much smoother because they won't depend on Fastcomp being updated. Smoother upgrades will allow LLVM to be kept up to date more easily (#42389), which will be beneficial across the board but especially for WebAssembly as its LLVM backend matures. It is necessary that the asmjs and wasm targets emit object files instead of LLVM bitcode so that bitcode version mismatches between Rust and Emscripten won't be a problem. Work that needs to be done to break the dependency on Fastcomp includes:

Activity

added
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
O-asmjsTarget: asm.js - http://asmjs.org/
O-wasmTarget: WASM (WebAssembly), http://webassembly.org/
on Aug 21, 2017
est31

est31 commented on Oct 5, 2017

@est31
Member

@tlively I guess #42420 would also be part of this? If so, can it be added to the list?

tlively

tlively commented on Oct 5, 2017

@tlively
ContributorAuthor

@est31 I'm not sure I understand why #42420 is part of this. Does NaCl/PNaCl support depend on Fastcomp as well?

est31

est31 commented on Oct 5, 2017

@est31
Member

@tlively I'm no LLVM expert, but when I look into rust's fork of LLVM, then lib/Target/JSBackend/NaCl/ is the place I can find the NaCl backend while upstream LLVM seems to lack the JSBackend subdir entirely. I also can't find any meaningful references to NaCl in upstream LLVM so it wasn't moved or something. It looks like an addition by fastcomp.

dylanmckay

dylanmckay commented on Oct 6, 2017

@dylanmckay
Contributor

Can confirm - the entire JavaScript backend lives inlib/Target/JSBackend/.

Every JS-specific modification to LLVM outside of this directory is decorated like so

@LOCALMOD-BEGIN
< .. js specific code .. >
@LOCALMOD-END

It looks like an addition by fastcomp.

It is

added a commit that references this issue on Oct 9, 2017

Auto merge of #45041 - est31:master, r=alexcrichton

est31

est31 commented on Nov 10, 2017

@est31
Member

80 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCO-asmjsTarget: asm.js - http://asmjs.org/O-emscriptenTarget: 50% off wasm32-unknown-musl. the savings come out of stdio.h, but hey, you get SDL!O-wasmTarget: WASM (WebAssembly), http://webassembly.org/

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @badboy@steveklabnik@alexcrichton@Pauan@rpjohnst

        Issue actions

          Tracking issue for supporting asm.js and WebAssembly without Fastcomp · Issue #44006 · rust-lang/rust