Skip to content

Remove fastcomp #11319

Closed
Closed
@kripken

Description

@kripken

Almost a year ago, in last July we declared the upstream LLVM backend ready for testing, described its benefits (such as faster compile times and smaller code), and said that we’d like to eventually remove fastcomp. After that, in version 1.39.0, which was released on October 18 last year, we switched the default to the upstream LLVM backend. It has been around 8 months since then, and after a lot of work we’ve all been doing (thanks to everyone that helped with issues and PRs!) we are not aware of any remaining things that should block people from using the upstream backend, and so we’ll soon (in the next release) start showing a deprecation warning when using fastcomp, as @sbc100 mentioned on the mailing list earlier

We’d now like to make concrete plans for removing fastcomp from the master branch, including a timeline. “Removing fastcomp” means that in new releases after the cutoff point only the upstream LLVM backend will be available. That is, as always

emsdk install latest

will install the latest version using the upstream backend (which has been the default for a while as mentioned earlier). What will change is that, after we remove fastcomp, you won’t be able to do this:

emsdk install latest-fastcomp

That is, there will be no fastcomp version of “latest”. You will still be able to use older versions that we released with fastcomp, for example

emsdk install 1.39.10-fastcomp

So you can keep on using fastcomp with those older versions if you absolutely have to - but we strongly recommend upgrading to upstream since it has significantly better code size and compile times.

All of this is what will change once fastcomp is removed from master, so it isn’t happening yet. But we’d like to do it soon, since we’ve already been focusing all new development on the upstream backend as much as possible. Removing fastcomp will let us do so much more efficiently since we won’t need to make sure every commit works in both backends. As a result we’ll be able to get new code size improvements, support for new wasm features like native exceptions support and SIMD, etc., more quickly!

Please let us know if you have any concerns about removing fastcomp, bugs that we are not aware of or that haven’t been prioritized properly, etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions