Skip to content
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

Bump to version 117 #101

Merged
merged 663 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
663 commits
Select commit Hold shift + click to select a range
dfd8c7e
Add missing includes (#6049)
tlively Oct 25, 2023
ef8e424
[analysis] Simplify core analysis code (#6034)
tlively Oct 25, 2023
9af7abd
[analysis][NFC] Rename `makeLeastUpperBound` to `join` and move it to…
tlively Oct 25, 2023
2b65663
[analysis] Implement a Bool lattice (#6036)
tlively Oct 25, 2023
a09ea69
[analysis] Implement an Int lattice (#6037)
tlively Oct 25, 2023
6ba0f3d
[analysis] Add a FullLattice concept and Inverted lattice (#6038)
tlively Oct 25, 2023
ea6bcd0
[analysis] Implement Flat lattice (#6039)
tlively Oct 25, 2023
7a6d962
Precompute: Check defaultability, not nullability (#6052)
kripken Oct 25, 2023
1dcc859
[analysis] Implement a Lift lattice (#6040)
tlively Oct 25, 2023
889422e
Fix Alpine CI by removing old node flag (#6054)
tlively Oct 26, 2023
0aa46e4
Allow rec groups of public function types in closed world (#6053)
kripken Oct 26, 2023
57e0b2f
[analysis] Improve lattice fuzzer (#6050)
tlively Oct 27, 2023
7dcc532
Support one-line-one-function file format for asyncify lists (#6051)
caiiiycuk Oct 30, 2023
e8dd518
[analysis][NFC] Rename parameters to join and meet methods (#6056)
tlively Oct 30, 2023
bdc8b4d
[analysis] Implement an array lattice (#6057)
tlively Oct 31, 2023
220196e
[analysis] Implement a vector lattice (#6058)
tlively Oct 31, 2023
68ba799
[analysis] Add a tuple lattice (#6062)
tlively Oct 31, 2023
fad0698
OnceReduction: Optimize bodies of trivial "once" functions (#6061)
kripken Oct 31, 2023
c82627e
[NFC] Improve OnceReduction comment (#6068)
kripken Oct 31, 2023
74237bf
[analysis] Add a lattice for value types (#6064)
tlively Nov 1, 2023
5618d21
[analysis][NFC] Refactor lattice unit tests (#6065)
tlively Nov 1, 2023
1890834
NonNullable => !Defaultable in SimplifyLocals (#6070)
kripken Nov 1, 2023
b14bf89
[Wasm64] Fix PostEmscripten::optimizeExceptions on invokes with an i6…
kripken Nov 1, 2023
f1d5b26
Fuzzer: Better handling of globals from initial content (#6072)
kripken Nov 1, 2023
34cbf00
Support '%S' placeholder in update_lit_checks.py (#6075)
caiiiycuk Nov 2, 2023
bc88d5d
[analysis] Add a "Shared" lattice to represent shared state (#6067)
tlively Nov 2, 2023
f191ace
[analysis] Simplify the stack lattice (#6069)
tlively Nov 2, 2023
2c3860b
[analysis] Allow joining a single vector element efficiently (#6071)
tlively Nov 2, 2023
4fba26a
[analysis] Make it easier to implement a transfer function (#6077)
tlively Nov 2, 2023
e3d2716
Implement table.copy (#6078)
kripken Nov 6, 2023
ba2ebea
Update CFGWalker to generate consolidated exit blocks (#6079)
tlively Nov 6, 2023
0167c65
Fix build failure on older Ubuntu (#6085)
tlively Nov 7, 2023
3640f9c
[Parser] Parse `call` and `return_call` (#6086)
tlively Nov 8, 2023
9627c83
LocalCSE: Do not optimize small things like global.get (#6087)
kripken Nov 8, 2023
7849601
Move --separate-data-segments into a pass so it can be run from wasm-…
sbc100 Nov 8, 2023
d6df91b
[analysis] Add an experimental TypeGeneralizing optimization (#6080)
tlively Nov 8, 2023
c37fc09
Heap2Local: Fix an ordering issue with children having different inte…
kripken Nov 9, 2023
536b066
[NFC] StackIR: Add comments on local2stack handling of tuples (#6092)
kripken Nov 9, 2023
b8422c5
[NFC] Simplify LiteralUtils::canMakeZero (#6093)
kripken Nov 9, 2023
b289577
[Parser][NFC] Filter out unused instructions in gen-s-parser.py (#6095)
tlively Nov 9, 2023
af93434
[NFC] Add explicit deduction guides for CTAD (#6094)
tlively Nov 9, 2023
84f51cd
[Outlining] Adds Outlining pass (#6110)
ashleynh Nov 13, 2023
c0d1902
OptimizeAddedConstants: Handle a final added constant properly (#6115)
kripken Nov 14, 2023
53e6e86
[NFC] Add LocalLocation for future use (#6105)
kripken Nov 14, 2023
1c3a5be
[Outlining] Add SKIP_OUTLINING macro
ashleynh Nov 14, 2023
77facb1
Remove various testing spam (#6109)
kripken Nov 14, 2023
9846aab
[Parser] Parse ref.func (#6097)
tlively Nov 15, 2023
8eb4899
[Parser] Parse br_table (#6098)
tlively Nov 15, 2023
325d588
[Parser] Parse ref.test and ref.cast (#6099)
tlively Nov 15, 2023
b01c950
[Parser] Parse BrOn expressions (#6100)
tlively Nov 15, 2023
89fd9c8
[Parser] Parse RefAs expressions (#6101)
tlively Nov 15, 2023
1496f97
[Parser] Parse array.new_fixed (#6102)
tlively Nov 15, 2023
001be44
[Parser] Parse call_ref (#6103)
tlively Nov 15, 2023
20fe882
SignatureRefining: Notice LUB requirements of intrinsic calls (#6122)
kripken Nov 15, 2023
bf76357
Implement more TypeGeneralizing transfer functions (#6118)
tlively Nov 15, 2023
1fcb57e
[NFC] Refactor out subtyping discovery code (#6106)
kripken Nov 16, 2023
2412c32
[Outlining] Adding more tests (#6117)
ashleynh Nov 16, 2023
0e37557
Add followup test to #6122 (#6123)
kripken Nov 16, 2023
5241d87
Update IRBuilder to visit control flow correctly (#6124)
tlively Nov 16, 2023
b43b70d
Use clang 15 to avoid ASan test flakes that 14 has (#6125)
kripken Nov 16, 2023
7ae1185
[Outlining] Adds filter tests (#6119)
ashleynh Nov 17, 2023
67f2fdc
[Outlining] Test single and multivalue return (#6120)
ashleynh Nov 17, 2023
a1e8bdc
[IRBuilder] Add visitCallIndirect and makeCallIndirect (#6127)
ashleynh Nov 21, 2023
beb816b
Fix a bug with unreachable control flow in IRBuilder (#6130)
tlively Nov 21, 2023
cccc7a6
[Parser] Parse tags and throw (#6126)
tlively Nov 21, 2023
c5db74c
Add browser target for binaryen toolchain utilities (#6131)
tomayac Nov 21, 2023
e031490
[wasm-emscripten-finalize] Remove --separate-data-segments (#6091)
sbc100 Nov 27, 2023
2ea7668
Improve browser build target (#6135)
tomayac Nov 28, 2023
dbcac17
[NFC] Move InstrumentedPass logic out and use it in another place (#6…
kripken Nov 28, 2023
2474258
C API: Add BinaryenTableGetType and BinaryenTableSetType (#6137)
mobsceneZ Nov 30, 2023
71b9cc0
[Parser] Parse try/catch/catch_all/delegate (#6128)
tlively Nov 30, 2023
a191d66
wasm-metadce: Improve name deduplication (#6138)
kripken Nov 30, 2023
42cddbf
wasm-metadce all the things (#6142)
kripken Nov 30, 2023
66277f9
Inlining: Inline trivial calls (#6143)
kripken Dec 5, 2023
f722171
Add no-inline IR annotation, and passes to set it based on function n…
kripken Dec 6, 2023
4a83a0f
[Parser] Parse tables and element segments (#6147)
tlively Dec 7, 2023
89ad929
[Parser] Parse call_indirect and return_call_indirect (#6148)
tlively Dec 7, 2023
b8cf386
[Outlining] Fix outlining control flow
ashleynh Dec 7, 2023
e28efb0
[Outlining] Improve debug logging
ashleynh Dec 7, 2023
2049ee8
[Outlining] Add loop instruction support
ashleynh Dec 7, 2023
f2eea9d
[Outlining] Add variations of call_indirect tests
ashleynh Dec 7, 2023
9efe1d0
[NFC] Use a reference instead of a pointer in Inlining (#6153)
kripken Dec 7, 2023
7dec416
binaryen.js: Remove closure flags that set the ES version (#6157)
kripken Dec 8, 2023
48373b6
[test] Move basic tests in lit/ to lit/basic/ (#6156)
aheejin Dec 8, 2023
1d615b3
[EH] Add exnref type back (#6149)
aheejin Dec 8, 2023
cfb2a6e
[CI] Use --break-system-packages on Alpine (#6167)
kripken Dec 12, 2023
9e07c82
[test] Make get_tests return only files (#6164)
aheejin Dec 12, 2023
cba8e18
[test] Remove / move *.js tests from test/ (#6163)
aheejin Dec 12, 2023
8613b14
[test] Remove asm2wasm tests from scripts (#6162)
aheejin Dec 12, 2023
5db8eb2
[test] Tweak RUN commands of test/lit/basic/ (#6159)
aheejin Dec 12, 2023
ee113c7
[test] Fix wasm2js stale check failure (#6168)
aheejin Dec 12, 2023
0b70948
[EH] Use random value for exnref encoding when legacy GC is used (#6166)
aheejin Dec 12, 2023
36e21c6
Inlining: Copy no-inline flags when copying a function (#6165)
kripken Dec 12, 2023
71dad87
Add J2CL optimization pass to binaryen. (#6151)
gkdn Dec 12, 2023
a2a59e9
Update `tuple.make` text format to include arity (#6169)
tlively Dec 12, 2023
a6c1165
Add a `tuple.drop` text pseudoinstruction (#6170)
tlively Dec 12, 2023
da18e25
J2CL: Add extra guardrails (#6171)
gkdn Dec 12, 2023
b59b2fc
[Parser] Parse table operations (#6154)
tlively Dec 12, 2023
28bea54
Add an arity immediate to tuple.extract (#6172)
tlively Dec 13, 2023
8e91992
[Parser] Parse rethrow (#6155)
tlively Dec 13, 2023
9e63685
[Parser] Parse the remaining array operations (#6158)
tlively Dec 13, 2023
0024c8b
[test] Port tests in test/ to test/lit/basic/ (#6160)
aheejin Dec 13, 2023
1da1363
[EH][test] Slice test code into different functions (#6177)
aheejin Dec 13, 2023
61c3666
J2CL: Use a more future proof naming convention for once functions (#…
gkdn Dec 13, 2023
94f9b9a
[EH][test] Split EH tests into old and new spec (#6178)
aheejin Dec 13, 2023
e9b012f
Preserve multivalue drops in IRBuilder (#6150)
tlively Dec 13, 2023
7adc82b
[Parser] Parse tuple operations (#6174)
tlively Dec 13, 2023
bdd96e8
[Parser] Parse explicit exports (#6179)
tlively Dec 14, 2023
cad983c
Remove empty _ARRAY/_VECTOR defines (NFC) (#6182)
aheejin Dec 14, 2023
4c53361
[EH] Add instructions for new proposal (#6181)
aheejin Dec 19, 2023
eb5666e
Add tuple.drop validation (#6186)
kripken Dec 19, 2023
11e3af0
[EH] Add validation for new instructions (#6185)
aheejin Dec 20, 2023
a5235cb
[NFC] Fix typo in Inlining (#6187)
kripken Dec 20, 2023
2b81d39
[EH][test] Add a few more tests (#6189)
aheejin Dec 20, 2023
fb7d00b
Drop support for non-standard quoted function names (#6188)
tlively Dec 20, 2023
98cef80
Unify method pairs with and without Type param (#6184)
aheejin Dec 21, 2023
95ed4f3
Match names more precisely in update_lit_checks.py (#6190)
tlively Jan 2, 2024
5e3f81c
[Parser] Support standalone import definitions (#6191)
tlively Jan 2, 2024
4acd476
wasm-reduce: Improve tryToReduceCurrentToConst() (#6193)
kripken Jan 2, 2024
260fdfc
[EH] Misc. fixes for EH (#6195)
aheejin Jan 3, 2024
a6bc954
[Parser] Parse folded instructions that contain parentheses (#6196)
tlively Jan 3, 2024
c923521
Drop support for type annotations on array.len (#6197)
tlively Jan 3, 2024
328bd7a
[Parser] Parse br_on_cast{_fail} input annotations (#6198)
tlively Jan 3, 2024
1878403
[Parser] Go back to "sub final" intead of "sub open" (#6199)
tlively Jan 3, 2024
0ed42cf
Use the standard shared memory text format (#6200)
tlively Jan 3, 2024
a58281c
Require `then` and `else` with `if` (#6201)
tlively Jan 4, 2024
d312604
[Parser] Parse br_if correctly (#6202)
tlively Jan 4, 2024
bdafd11
[NFC] Add some const annotations (#6203)
kripken Jan 5, 2024
436d639
Rename CMake vars for modified intrinsics file (#6204)
kripken Jan 6, 2024
c3b2f24
Fix branches to loops in IRBuilder (#6205)
tlively Jan 6, 2024
82057de
Fix cmake dependency on wasm-intrinsics.wat (#6206)
sbc100 Jan 6, 2024
cc0fab9
Fix incorrect wat in tests (#6207)
tlively Jan 8, 2024
1850199
Fix global effect computation with -O flags (#6211)
kripken Jan 9, 2024
75145b7
[NFC] Add more const annotations + a trivial == (#6216)
kripken Jan 9, 2024
20b1ccc
Testing: Write out and read back in the big binary in c-api-kitchen-s…
kripken Jan 9, 2024
97a61bd
[Parser] Parse remaining heap and reference types (#6218)
tlively Jan 10, 2024
141f7ca
Precompute into select arms (#6212)
kripken Jan 10, 2024
e5948a9
wasm-merge: Sort globals to ensure proper validation (#6221)
kripken Jan 11, 2024
b4dee3d
Typed continuations: resume instructions (#6083)
frank-emrich Jan 11, 2024
1db044e
[NFC] Fix "initialised" => "initialized" (#6222)
tlively Jan 12, 2024
2dfa01f
Make blockifyWithName correctly use name and type (#6223)
aheejin Jan 16, 2024
823bf60
C API: Add BinaryenFunctionAppendVar (#6213)
mobsceneZ Jan 17, 2024
3049fb8
SimplifyGlobals: Apply constant globals to segment offsets (#6226)
kripken Jan 18, 2024
459e0d2
Remove incorrect validation of segment sizes (#6228)
kripken Jan 22, 2024
e06e17e
[EH] Rename -eh lit test names to -eh-old (#6227)
aheejin Jan 22, 2024
c23253f
[EH] Support Stack IR for try_table (#6231)
aheejin Jan 23, 2024
de223c5
Rename stack variables in CFGWalker (NFC) (#6232)
aheejin Jan 23, 2024
9090ce5
Stop propagating/inlining string constants (#6234)
kripken Jan 24, 2024
1ce851d
[EH] Add translator from old to new EH instructions (#6210)
aheejin Jan 24, 2024
6453fd5
Memory flattening: Check for overflow (#6233)
kripken Jan 24, 2024
c0e688e
[Parser] Parse try_table (#6237)
tlively Jan 25, 2024
482f3aa
wasm-ctor-eval: Eval strings (#6244)
kripken Jan 25, 2024
976bd6d
[Parser] Parse throw_ref (#6238)
tlively Jan 25, 2024
0375d95
C API: Add BinaryenArrayNewData (#6236)
ericvergnaud Jan 25, 2024
662835a
RemoveUnusedModuleElements: Do not remove unused-but-trapping segment…
kripken Jan 25, 2024
5fb2137
MemoryPacking: Ignore empty segments (#6243)
kripken Jan 25, 2024
d23a63f
[EH] Support CFGWalker for new EH spec (#6235)
aheejin Jan 26, 2024
5d297dc
Update the text syntax for tuple types (#6246)
tlively Jan 26, 2024
6454f5b
Add `wasm-metadce` to tools list (#6248)
tomayac Jan 29, 2024
053b591
[Docs] Clarify FAQ entry about name (#6241)
kripken Jan 29, 2024
9a31d7e
[Parser] Parse tuple types (#6249)
tlively Jan 29, 2024
c0046ad
[Parser] Parse local.set and global.set of tuple values correctly (#6…
tlively Jan 30, 2024
88d6b7c
Update pop text syntax (#6251)
tlively Jan 30, 2024
9361edf
[Parser] Parse pops (by doing nothing) (#6252)
tlively Jan 30, 2024
8b85d5d
Directize: Handle overflows and out of bounds (#6255)
kripken Jan 30, 2024
8504571
[Parser] Parse start declarations (#6256)
tlively Jan 30, 2024
cf14a9f
[EH] Change translator option name (#6259)
aheejin Jan 31, 2024
396a826
[PostEmscripten] Fix calcSegmentOffsets for large offsets (#6260)
sbc100 Jan 31, 2024
dfcae55
StringGathering pass (#6257)
kripken Jan 31, 2024
b593849
Revert "Stop propagating/inlining string constants (#6234)" (#6258)
kripken Jan 31, 2024
19fb1f4
[EH] Test StackIR's local2stack on translator output (#6264)
aheejin Feb 1, 2024
76a422b
GUFA: Propagate string literals (#6262)
kripken Feb 1, 2024
6c70fcd
Allow updating basic HeapTypes in GlobalTypeRewriter::mapTypes (#6266)
kripken Feb 1, 2024
2b3a2e8
C API: Use segment names (#6254)
ericvergnaud Feb 1, 2024
5526027
JSON: Add simple printing and creation (#6265)
kripken Feb 1, 2024
845e070
MemoryPacking: Handle non-empty trapping segments (#6261)
kripken Feb 1, 2024
ed15efe
[Parser] Templatize lexing of integers (#6272)
tlively Feb 5, 2024
be13e0f
[Parser] Parse v128.const (#6275)
tlively Feb 5, 2024
a549c59
wasm-ctor-eval: Properly eval strings (#6276)
kripken Feb 5, 2024
d490318
StringLowering pass (#6271)
kripken Feb 5, 2024
3db60df
[EH] Add --experimental-new-eh option to wasm-opt (#6270)
aheejin Feb 6, 2024
41b365e
Make `array.new_fixed` length annotations mandatory (#6277)
tlively Feb 6, 2024
8cce4d1
[Parser] Support string-style identifiers (#6278)
tlively Feb 6, 2024
3a41065
Properly stringify names in tests (#6279)
tlively Feb 6, 2024
a238cf9
StringLowering: Start to lower instructions (#6281)
kripken Feb 6, 2024
f12977d
[NFC] Move code to string.cpp (#6282)
tlively Feb 6, 2024
d4c3fdd
Get more tests working with the new text parser (#6284)
tlively Feb 7, 2024
4e0796d
SimplifyGlobals: Propagate constant globals into nested gets in other…
kripken Feb 8, 2024
0724bab
[Parser] Do not involve IRBuilder for imported functions (#6286)
tlively Feb 8, 2024
f172920
StringLowering: Lower all remaining important string operations (#6283)
kripken Feb 8, 2024
6e1e53f
Add a pass to propagate global constants to other globals (#6287)
kripken Feb 8, 2024
f09af77
Add package.json for unit tests (#6245)
kripken Feb 8, 2024
0f58ef5
[NFC] Add links to specs in StringLowering (#6292)
kripken Feb 8, 2024
e7b3470
Remove support for legacy stringref text syntax (#6289)
tlively Feb 8, 2024
f5d8d30
Update lit tests to parse with the new parser (#6290)
tlively Feb 8, 2024
90087f0
[Parser] Support references to struct fields by name (#6293)
tlively Feb 9, 2024
7e20a3b
[Parser] Parse `resume` (#6295)
tlively Feb 9, 2024
1e9838e
Fuzz shell: Add a j2wasm import (#6296)
kripken Feb 12, 2024
34d35ae
Fuzzer: Do not emit huge and possibly non-validating tables (#6288)
kripken Feb 12, 2024
1948008
Precompute: Optimize array.len (#6299)
kripken Feb 12, 2024
88fe1b6
Fuzzer: Use a directory for important fuzz testcases (#6297)
kripken Feb 12, 2024
cdc9ad9
StringLowering: Modify string=>extern also in public types (#6301)
kripken Feb 13, 2024
32a2782
StringLowering: Hack around if issue with bottom types (#6303)
kripken Feb 13, 2024
78516ae
Fix --spill-pointers for the stack growing down (#6294)
yamt Feb 13, 2024
9784f01
StringLowering: Use an array16 type in its own rec group (#6302)
kripken Feb 14, 2024
df3784e
[NFC] Avoid a warning on an unused var (#6300)
kripken Feb 14, 2024
5ef1aba
Strings: Add some interpreter support (#6304)
kripken Feb 14, 2024
99e54a0
StringLowering: Fix up nulls written to struct.new fields (#6306)
kripken Feb 14, 2024
36d2093
StringLowering: Properly handle nullable inputs to StringAs (#6307)
kripken Feb 14, 2024
feb8f24
Fuzzer: Remove Asyncify integration (#6309)
kripken Feb 14, 2024
2b512ce
StringLowering: Lower nulls in call params (#6317)
kripken Feb 20, 2024
a9f01c0
SetGlobals: Fix segfault on invalid input (#6321)
khitrin Feb 20, 2024
c0cdd26
[Parser] Simplify the lexer interface (#6319)
tlively Feb 20, 2024
d0fa710
JS Bindings: Use stringToUTF8OnStack instead of deprecated allocateUT…
kripken Feb 20, 2024
07b91a8
StringLowering: Escape the JSON in the custom section (#6316)
kripken Feb 20, 2024
40a4bd0
subtype-exprs.h additions [NFC] (#6323)
kripken Feb 20, 2024
4031538
Validate function imports (#6315)
kripken Feb 20, 2024
60b2dae
Fuzzer: Remove --emit-js-shell logic and reuse fuzz_shell.js instead …
kripken Feb 20, 2024
1c30853
[NFC] Use SubtypingDiscoverer in StringLowering (#6325)
kripken Feb 21, 2024
0ecea77
Fuzzer: Add SIMD support to DeNaN (#6318)
kripken Feb 21, 2024
1441bcb
Fuzzer: Add a pass to prune illegal imports and exports for JS (#6312)
kripken Feb 21, 2024
30828d4
[NFC] DeNaN: Avoid calls on constants (#6326)
kripken Feb 21, 2024
a2fa559
[EH] Add noexn's opcode (#6329)
aheejin Feb 21, 2024
39ae6cf
Improve JSON string encoding (#6328)
tlively Feb 21, 2024
93b4970
Fix build error on aarch64 [NFC] (#6330)
DazWorrall Feb 21, 2024
e4d2e7c
Validator: ArrayNew|InitData require Bulk Memory (#6331)
kripken Feb 21, 2024
f9a49fa
[Parser][NFC] Remove parser/input.h (#6332)
tlively Feb 22, 2024
f6bb943
[Parser][NFC] Remove `Token` from lexer interface (#6333)
tlively Feb 22, 2024
4969f93
Fuzzer: Match the logging of i31ref between JS and C++ (#6335)
kripken Feb 22, 2024
212f7c3
Fuzzer: Allow using initial content with V8 (#6327)
kripken Feb 22, 2024
2ceff4d
Fuzzer: Adjust feature fuzzing frequency (#6305)
kripken Feb 22, 2024
e2420f0
Typed continuations: cont.new instructions (#6308)
frank-emrich Feb 22, 2024
dabfd5b
Fuzzer: Ignore V8 errors on uninitialized non-defaultable locals (#6337)
kripken Feb 22, 2024
e3450ca
[Parser] Condense redundant pop values (#6339)
ashleynh Feb 23, 2024
2fc33e6
Fuzzer: Handle negative i31s (#6341)
kripken Feb 23, 2024
7cb213c
Implement dropping of active Element Segments (#6343)
kripken Feb 23, 2024
999781a
Build and release on aarch64 (#6334)
DazWorrall Feb 23, 2024
df0d283
[Emscripten port] Improve emcc flags (#6349)
kripken Feb 26, 2024
703ff00
Fuzzer: Fix BigInt printing (#6348)
kripken Feb 27, 2024
55c2062
[Emscripten port] Fix core count logic for Emscripten+pthreads (#6350)
kripken Feb 27, 2024
f8b07f7
[Parser] Parse annotations, including source map comments (#6345)
tlively Feb 27, 2024
063e1a2
[StringLowering] Lower `stringview_wtf16.get_codeunit` to `charCodeAt…
tlively Feb 27, 2024
6a42941
Add a WebAssembly build to release (#6351)
kripken Feb 27, 2024
dbae094
[NFC] Use ifdef-else in threads.cpp (#6355)
kripken Feb 27, 2024
f868137
Update changlog before release [NFC] (#6356)
kripken Feb 27, 2024
d5157e0
SubtypingDiscoverer: Differentiate non-flow subtyping constraints (#6…
kripken Feb 27, 2024
a1afe47
Fuzzer: Separate arguments used to make the fuzz wasm from the opts w…
kripken Feb 27, 2024
c62a0c9
Release 117 (#6358)
kripken Feb 28, 2024
079ec07
Merge tag 'version_117' into dotnet/main
radekdoulik Jun 3, 2024
e8744c8
Fix stack-use-after-scope on Windows in Precompute (#6643)
mtb0x1 Jun 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ BinPackParameters: false
Language: JavaScript
DisableFormat: true
---
Language: Json
BasedOnStyle: LLVM
---
11 changes: 11 additions & 0 deletions .github/codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
coverage:
status:
patch: false
project:
default:
informational: true

github_checks:
annotations: false

comment: false
85 changes: 80 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ jobs:
name: lint
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
env:
# Keep this in sync with clang-format-diff.sh
LLVM_VERSION: 17
steps:
- uses: actions/setup-python@v1
with:
Expand All @@ -25,9 +28,11 @@ jobs:
- name: install tools
run: |
sudo pip3 install -r requirements-dev.txt
sudo apt-get install clang-format clang-tidy
- name: update path
run: echo "PATH=$PATH:/usr/lib/llvm-8/bin" >> $GITHUB_ENV
sudo apt install lsb-release wget software-properties-common gnupg
wget https://apt.llvm.org/llvm.sh
sudo chmod +x llvm.sh
sudo ./llvm.sh ${LLVM_VERSION}
sudo apt-get install clang-format clang-format-${LLVM_VERSION} clang-tidy-${LLVM_VERSION}
- run: flake8
- run: ./scripts/clang-format-diff.sh
- name: clang-tidy
Expand Down Expand Up @@ -146,14 +151,20 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: true
- name: install clang
uses: egor-tensin/setup-clang@v1
with:
# Clang 15 seems to avoid asan flakes that 14 has (#6116).
version: 15
platform: x64
- name: install ninja
run: sudo apt-get install ninja-build
- name: install Python dev dependencies
run: pip3 install -r requirements-dev.txt
- name: cmake
run: |
mkdir -p out
cmake -S . -B out -G Ninja -DCMAKE_INSTALL_PREFIX=out/install -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS"
cmake -S . -B out -G Ninja -DCMAKE_INSTALL_PREFIX=out/install -DCMAKE_C_COMPILER=clang-15 -DCMAKE_CXX_COMPILER=clang++-15 -DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS"
- name: build
run: cmake --build out
- name: test
Expand Down Expand Up @@ -184,7 +195,7 @@ jobs:
./alpine.sh apk add build-base cmake git python3 py3-pip clang ninja

- name: install python dev dependencies
run: ./alpine.sh pip3 install -r requirements-dev.txt
run: ./alpine.sh pip3 install --break-system-packages -r requirements-dev.txt

- name: cmake
run: |
Expand Down Expand Up @@ -306,3 +317,67 @@ jobs:
cmake -S . -B out -G "MSYS Makefiles"
- name: build
run: cmake --build out

# Duplicates build-asan. Please keep in sync
build-gcov:
name: coverage
runs-on: ubuntu-latest
env:
COMPILER_FLAGS: "-fprofile-arcs -ftest-coverage"
CC: "gcc"
CXX: "g++"
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v1
with:
submodules: true
- name: install ninja
run: sudo apt-get install ninja-build
- name: install Python dev dependencies
run: pip3 install -r requirements-dev.txt
- name: cmake
run: |
mkdir -p out
cmake -S . -B out -G Ninja -DCMAKE_INSTALL_PREFIX=out/install -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_C_FLAGS="$COMPILER_FLAGS" -DCMAKE_CXX_FLAGS="$COMPILER_FLAGS -DCMAKE_BUILD_TYPE=Debug"
- name: build
run: cmake --build out
- name: test
run: |
python check.py --binaryen-bin=out/bin lit
python check.py --binaryen-bin=out/bin gtest
- name: upload coverage
uses: codecov/codecov-action@v3
with:
gcov: true

# Duplicates build-asan. Please keep in sync
build-cxx20:
name: c++20
# Make sure we can still build on older Ubuntu
runs-on: ubuntu-20.04
env:
CC: "gcc"
CXX: "g++"
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v1
with:
submodules: true
- name: install ninja
run: sudo apt-get install ninja-build
- name: install Python dev dependencies
run: pip3 install -r requirements-dev.txt
- name: cmake
run: |
mkdir -p out
cmake -S . -B out -G Ninja -DCMAKE_INSTALL_PREFIX=out/install -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20
- name: build
run: cmake --build out
- name: test
run: |
python check.py --binaryen-bin=out/bin lit
python check.py --binaryen-bin=out/bin gtest
81 changes: 78 additions & 3 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,26 +106,34 @@ jobs:
build-alpine:
name: alpine
runs-on: ubuntu-latest
strategy:
matrix:
docker_platform: [amd64, arm64]
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v1
with:
submodules: true
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
if: matrix.docker_platform != 'amd64'

- name: start docker
run: |
docker run -w /src -dit --name alpine -v $PWD:/src node:lts-alpine
docker run -w /src -dit --platform=linux/${{ matrix.docker_platform }} --name alpine -v $PWD:/src node:lts-alpine
echo 'docker exec alpine "$@";' > ./alpine.sh
chmod +x ./alpine.sh


- name: install packages
run: |
./alpine.sh apk update
./alpine.sh apk add build-base cmake git python3 clang ninja py3-pip

- name: install python dev dependencies
run: ./alpine.sh pip3 install -r requirements-dev.txt
run: ./alpine.sh pip3 install --break-system-packages -r requirements-dev.txt

- name: cmake
run: |
Expand All @@ -142,7 +150,8 @@ jobs:
id: archive
run: |
VERSION=$GITHUB_REF_NAME
PKGNAME="binaryen-$VERSION-x86_64-linux"
ARCH=$(./alpine.sh uname -m)
PKGNAME="binaryen-$VERSION-$ARCH-linux"
TARBALL=$PKGNAME.tar.gz
SHASUM=$PKGNAME.tar.gz.sha256
./alpine.sh find install/ -type f -perm -u=x -exec strip {} +
Expand All @@ -159,3 +168,69 @@ jobs:
files: |
${{ steps.archive.outputs.tarball }}
${{ steps.archive.outputs.shasum }}

# Build using Emscripten to JavaScript+WebAssembly.
build-node:
name: node
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- uses: actions/checkout@v1
with:
submodules: true
- name: install ninja
run: sudo apt-get install ninja-build
- name: emsdk install
run: |
mkdir $HOME/emsdk
git clone --depth 1 https://github.com/emscripten-core/emsdk.git $HOME/emsdk
$HOME/emsdk/emsdk update-tags
$HOME/emsdk/emsdk install tot
$HOME/emsdk/emsdk activate tot
- name: update path
run: echo "PATH=$PATH:$HOME/emsdk" >> $GITHUB_ENV

# Configure with wasm EH and pthreads for maximal performance.
- name: cmake
run: |
source $HOME/emsdk/emsdk_env.sh
emcmake cmake -S . -B out -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=out/install -DEMSCRIPTEN_ENABLE_WASM_EH=ON -DEMSCRIPTEN_ENABLE_PTHREADS=ON

# Build wasm-opt for now TODO add other tools as desired
- name: build
run: ninja -C out wasm-opt

# Minimal smoke test: roundtrip a file.
# TODO: Add more testing here, but the full test suite is overkill as there
# is a 0.5 second cost to each run of wasm-opt.js
- name: test
run: |
node out/bin/wasm-opt.js test/hello_world.wat --print > out/t.wat
diff test/hello_world.wat out/t.wat

- name: archive
id: archive
run: |
VERSION=$GITHUB_REF_NAME
PKGNAME="binaryen-$VERSION-node"
TARBALL=$PKGNAME.tar.gz
SHASUM=$PKGNAME.tar.gz.sha256
mkdir binaryen-$VERSION
cp out/bin/wasm-opt* binaryen-$VERSION/
tar -czf $TARBALL binaryen-$VERSION
cmake -E sha256sum $TARBALL > $SHASUM
echo "::set-output name=tarball::$TARBALL"
echo "::set-output name=shasum::$SHASUM"

- name: upload tarball
uses: softprops/action-gh-release@v1
with:
draft: true
files: |
${{ steps.archive.outputs.tarball }}
${{ steps.archive.outputs.shasum }}
83 changes: 83 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,89 @@ full changeset diff at the end of each section.
Current Trunk
-------------

v117
----

- Add a WebAssembly build to release (#6351)
- Add Linux aarch64 build to release (#6334).
- The text format for tuple instructions now requires immediates. For example,
to make a tuple of two elements, use `tuple.make 2` (#6169) (#6172) (#6170).
- The text format for `if` expressions now requires `then` and `else` to
introduce the two branch arms, matching the spec (#6201).
- Fuzzer: Remove --emit-js-shell logic and reuse fuzz_shell.js instead (#6310).
- [EH] Add --experimental-new-eh option to wasm-opt (#6270) (#6210).
- Add StringLowering pass, from stringref to imported-strings (#6271).
- C API: Add BinaryenFunctionAppendVar (#6213).
- Add J2CL optimization pass (#6151).
- Add no-inline IR annotation, and passes to set it based on function name
(#6146).
- C API: Add BinaryenTableGetType and BinaryenTableSetType (#6137).
- Add an Unsubtyping optimization (#5982).
- Compute full transitive closure in GlobalEffects (#5992).
- Add passes to finalize or unfinalize types (#5944).
- Add a tuple optimization pass (#5937).

v116
----

- "I31New" changed to "RefI31" everywhere it appears in the C API and similarly
"i31.new" has been replaced with "ref.i31" in the JS API and in printed
output (#5930, #3931).
- The standard WasmGC opcodes are now on by default (#5873).

v115
----

- The nonstandard, experimental gc-nn-locals feature has been removed now that
standard non-nullable locals are supported. (#5080)
- Print all debug annotations when `BINARYEN_PRINT_FULL`. (#5904)
- Use the standard text format for WasmGC now that things are stable there.
(#5894, #5889, #5852, #5801)
- Rename multimemory flag to `--multimemory` to match its naming in LLVM.
(#5890)
- Allow opting into standard GC encodings at compile time. (#5868)
- Remove legacy WasmGC instructions. (#5861)
- GUFA: Infer using TrapsNeverHappen. (#5850)
- Add a pass to reorder functions by name, which can be useful for debugging
(e.g. comparisons after optimizations), `--reorder-functions-by-name`. (#5811)
- C API: Add `BinaryenAddFunctionWithHeapType` which is like
`BinaryenAddFunction` but takes a heap type. The old function is kept for
backwards compatibility and as a convenience. (#5829)
- Work on new optimization framework using lattices. (#5784, #5794, #5800,
#5817, #5831, #5849)
- Heap types are now final by default and openness must be opted into both in
the text and binary formats as well as in the TypeBuilder API. (#5918)

v114
----

- Fix a bug where e.g. -O3 -Oz ran the -O3 with the opt levels of -Oz, which
could inhibit inlining, for example. While this is a bugfix, it affects how
commandline options are interpreted, so if you depended on the old behavior
this may be a breaking change. That is, the old behavior made -O3 -Oz run the
first -O3 with -Oz's opt levels, and the new behavior is to run -O3 with the
proper (-O3) opt levels. This is a followup to #5333 from a previous release.
(#5787)
- Add pass to remove Exception Handling instructions (#5770).


v113
----

- Add a `wasm-merge` tool. This is a full rewrite of the previous `wasm-merge`
tool that was removed from the tree in the past. The new version is much
simpler after recent improvements to multi-memory and multi-table. The
rewrite was motivated by new use cases for merging modules in the context of
WasmGC.
- Some C and JS API functions now refer to data and element segments by name
instead of index.
- The `--nominal` and `--hybrid` command line options and related API functions
have been removed. The only supported type system is now the standard
isorecursive (i.e. hybrid) type system. (#5672)
- Add a "mayNotReturn" effect (#5711).
- Disable the memory64 feature in Memory64Lowering.cpp (#5679).
- Disable sign extension in SignExtLowering.cpp (#5676).

v112
----

Expand Down
Loading