-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[wasm] Add incremental build support #57113
Conversation
Tagging subscribers to this area: @directhex Issue Detailsnull
|
MonoAOTCompiler: - Compiles assemblies to .bc files. - Hashes for the .bc files are stored in a json cache file. - And uses .depfile generated by mono-aot-cross, to figure out the if any of the dependencies have changed - Writes out the actual .bc file only if the assembly, or it's dependencies changed EmccCompile.cs: Support a `%(Dependencies)` metadata on the source files, to compile the files only when needed.
82b405a
to
3658e9e
Compare
Tagging subscribers to 'arch-wasm': @lewing Issue Details
Fixes #51013
|
otherwise xunit just shows a cryptic: ``` Wasm.Build.Tests.RebuildTests.NoOpRebuild [STARTING] Wasm.Build.Tests.RebuildTests.NoOpRebuild [FAIL] System.NotSupportedException : Specified method is not supported. ```
This reverts commit 1d031c0.
Splitting up the tests into separate jobs. So, disabled non-wasm jobs, to make sure that it's working. |
Ready for review |
… file on disk doesn't exist
`--depfile` isn't supported on aot config used by android, and fails with: ``` * Assertion at /__w/1/s/src/mono/mono/mini/aot-compiler.c:14216, condition `acfg->aot_opts.llvm_only && acfg->aot_opts.asm_only && acfg->aot_opts.llvm_outfile' not met ``` Instead, use hashes of the .bc.tmp files generated, with the existing .bc files.
c45f950
to
402c1e4
Compare
The earlier implementation assumed that there would be only one output file. But in some cases (eg. android), there are more than one, like `.s`, `.dll-llvm.o`.
failure in runtime (Libraries Test Run checked coreclr windows x86 Release) is
|
created #57452 |
Adds Inputs/Outputs to wasm targets, which msbuild can use for dependency checking
Updates tasks to write out to the files being used as inputs, only when there is a change
MonoAOTCompiler:
.dll -> .bc.tmp
.bc
file is overwritten only if the generated one is differentEmccCompile.cs: Support a
%(Dependencies)
metadata on the sourcefiles, to compile the files only when needed.
All the emcc args are written to rsp files, if different
Adds some tests
Use msbuild's resource API, to request cores for building in parallel
Also, updates the build output:
Fixes #51013