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

Linker error with wasm target with spaces in install path #76466

Closed
jminer opened this issue Sep 8, 2020 · 16 comments · Fixed by #77543
Closed

Linker error with wasm target with spaces in install path #76466

jminer opened this issue Sep 8, 2020 · 16 comments · Fixed by #77543
Assignees
Labels
A-linkage Area: linking into static, shared libraries and binaries A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows P-critical Critical priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@jminer
Copy link

jminer commented Sep 8, 2020

I just tried a basic wasm project:

Cargo.toml:

[dependencies]
wasm-bindgen = "0.2.60"

[dependencies.web-sys]
version = "0.3.37"
features = [
  'Window',
]

main.rs:

fn main() {
    let window = web_sys::window().unwrap();
    window.alert_with_message("It works!").unwrap();
}

and compiled with cargo build --target wasm32-unknown-unknown. This worked with the nightly from 2020-06-13. However, now I get a linker error:

   Compiling web-sys v0.3.44
   Compiling wasm-test v0.1.0 (C:\Files\Projects\wasm-test)
error: linking with `rust-lld` failed: exit code: 1
  |
  = note: "rust-lld" "-flavor" "wasm" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "--export-dynamic" "--no-entry" "-L" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib" "-L" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\self-contained" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.1h6vx0ywk0p2mpj1.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.1lhj9ge72kt1gahe.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.1rtpca0itxmmbnem.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.232s0nq7pzmd1qvh.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.4eo8l0uri3blv5yd.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.5510sf6hjlr489ul.rcgu.o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.5hnbj8kzjpzb59e.rcgu.o" "-o" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.wasm" "--export" "main" "--export" "__wbindgen_describe___wbg_addEventListener_608bac133c6d6719" "--export" "__wbindgen_describe___wbg_addEventListener_8187220c19fe7fab" "--export" "__wbindgen_describe___wbg_addEventListener_8b62aabfd4030632" "--export" "__wbindgen_describe___wbg_alert_49d31f360685ea74" "--export" "__wbindgen_describe___wbg_alert_688314570114aecd" "--export" "__wbindgen_describe___wbg_atob_987c267de25e61ab" "--export" "__wbindgen_describe___wbg_blur_31aab1a163a09cb8" "--export" "__wbindgen_describe___wbg_btoa_c8d09850f8a5500c" "--export" "__wbindgen_describe___wbg_cancelAnimationFrame_394cacf1cbfd36c1" "--export" "__wbindgen_describe___wbg_cancelIdleCallback_cebcdcdf4d99dccb" "--export" "__wbindgen_describe___wbg_captureEvents_022fe6dd54561005" "--export" "__wbindgen_describe___wbg_clearInterval_25852b38ba2685d4" "--export" "__wbindgen_describe___wbg_clearInterval_892e830d3f853436" "--export" "__wbindgen_describe___wbg_clearTimeout_0da24be566a9f3d0" "--export" "__wbindgen_describe___wbg_clearTimeout_68c7d2ea832830b9" "--export" "__wbindgen_describe___wbg_close_46718bcd1a6523f4" "--export" "__wbindgen_describe___wbg_closed_456d7e474c9ed091" "--export" "__wbindgen_describe___wbg_confirm_6ceeae14572d258a" "--export" "__wbindgen_describe___wbg_confirm_8c41ba0ac525c2ec" "--export" "__wbindgen_describe___wbg_createImageBitmap_6ab03474fbe438ca" "--export" "__wbindgen_describe___wbg_createImageBitmap_a487af10f85519a2" "--export" "__wbindgen_describe___wbg_createImageBitmap_ba8e55e706bfa9e8" "--export" "__wbindgen_describe___wbg_createImageBitmap_fd444509dab5c231" "--export" "__wbindgen_describe___wbg_devicePixelRatio_8d6239fb6f193482" "--export" "__wbindgen_describe___wbg_event_e45cbd164168a018" "--export" "__wbindgen_describe___wbg_fetch_f6eff713c05e5150" "--export" "__wbindgen_describe___wbg_focus_f04d93d2ed4fb872" "--export" "__wbindgen_describe___wbg_frames_def4310e3a4f1303" "--export" "__wbindgen_describe___wbg_get_da2b68a4436c25f5" "--export" "__wbindgen_describe___wbg_innerHeight_9955882b1f3bae3e" "--export" "__wbindgen_describe___wbg_innerWidth_2558258aa3f76922" "--export" "__wbindgen_describe___wbg_isSecureContext_576ecae83e0b15fd" "--export" "__wbindgen_describe___wbg_length_6f7b42df084ace56" "--export" "__wbindgen_describe___wbg_moveBy_909d9ded82ea5691" "--export" "__wbindgen_describe___wbg_moveTo_40e2d4c47d54f02e" "--export" "__wbindgen_describe___wbg_name_8f1a5269e490d164" "--export" "__wbindgen_describe___wbg_new_d50a5551cf2363c0" "--export" "__wbindgen_describe___wbg_onabort_6952600c16687ca3" "--export" "__wbindgen_describe___wbg_onafterprint_493135e5ff6ba5ee" "--export" "__wbindgen_describe___wbg_onanimationcancel_6d0adb542af9374c" "--export" "__wbindgen_describe___wbg_onanimationend_bc51b32e20b73a3d" "--export" "__wbindgen_describe___wbg_onanimationiteration_2809cffdbee27ab5" "--export" "__wbindgen_describe___wbg_onanimationstart_bd9280404826cb42" "--export" "__wbindgen_describe___wbg_onappinstalled_972b539dd5c7f3ac" "--export" "__wbindgen_describe___wbg_onauxclick_ce2f35950bef9d16" "--export" "__wbindgen_describe___wbg_onbeforeprint_15d54eb6f9c89f59" "--export" "__wbindgen_describe___wbg_onbeforeunload_46e37b55acdf24d2" "--export" "__wbindgen_describe___wbg_onblur_7c089029e9e71a97" "--export" "__wbindgen_describe___wbg_oncanplay_eb1d9d47a72d69fa" "--export" "__wbindgen_describe___wbg_oncanplaythrough_ef70f380935680d6" "--export" "__wbindgen_describe___wbg_onchange_9a3ebdd8c6036f2c" "--export" "__wbindgen_describe___wbg_onclick_47c871c3b22d9070" "--export" "__wbindgen_describe___wbg_onclose_804bc7ebef1b5c4c" "--export" "__wbindgen_describe___wbg_oncontextmenu_36bd1bf84171cdce" "--export" "__wbindgen_describe___wbg_ondblclick_31e2e07d85db3166" "--export" "__wbindgen_describe___wbg_ondrag_c2fce651d7d78d3e" "--export" "__wbindgen_describe___wbg_ondragend_045e7d5bd3e09b55" "--export" "__wbindgen_describe___wbg_ondragenter_43c96f688dfdf54e" "--export" "__wbindgen_describe___wbg_ondragexit_5022b53ff90670dd" "--export" "__wbindgen_describe___wbg_ondragleave_de1acf3121a84001" "--export" "__wbindgen_describe___wbg_ondragover_a6edcbbedb088527" "--export" "__wbindgen_describe___wbg_ondragstart_cdc31ac670a4b69d" "--export" "__wbindgen_describe___wbg_ondrop_f96cdb4dc8f7bd4c" "--export" "__wbindgen_describe___wbg_ondurationchange_4ce23fb1fd3355b9" "--export" "__wbindgen_describe___wbg_onemptied_52ebb06b43fc6a9c" "--export" "__wbindgen_describe___wbg_onended_fcf202091360a978" "--export" "__wbindgen_describe___wbg_onerror_10c03fcf6d67b5ab" "--export" "__wbindgen_describe___wbg_onfocus_48cf62e260a4751c" "--export" "__wbindgen_describe___wbg_ongotpointercapture_bd3f70068349df5e" "--export" "__wbindgen_describe___wbg_onhashchange_10eaa2b1b3e9f1b9" "--export" "__wbindgen_describe___wbg_oninput_51c749a4f8bc585f" "--export" "__wbindgen_describe___wbg_oninvalid_bf8e07eda76cb4e0" "--export" "__wbindgen_describe___wbg_onkeydown_cae65e42e58a6585" "--export" "__wbindgen_describe___wbg_onkeypress_f9150602738f35e7" "--export" "__wbindgen_describe___wbg_onkeyup_0f55dd73a3856fa0" "--export" "__wbindgen_describe___wbg_onlanguagechange_b0657d172abbf144" "--export" "__wbindgen_describe___wbg_onload_c4b470f6e78d1ce1" "--export" "__wbindgen_describe___wbg_onloadeddata_04bcc51a599291dc" "--export" "__wbindgen_describe___wbg_onloadedmetadata_9dcaea278789eb42" "--export" "__wbindgen_describe___wbg_onloadend_de09d6a14bd57ca0" "--export" "__wbindgen_describe___wbg_onloadstart_4ea8a71755c3c7ee" "--export" "__wbindgen_describe___wbg_onlostpointercapture_73c87bdc8f37a1af" "--export" "__wbindgen_describe___wbg_onmessage_7d6fd33a53af4c7e" "--export" "__wbindgen_describe___wbg_onmessageerror_dab76372d81894f5" "--export" "__wbindgen_describe___wbg_onmousedown_a3a9ac26ccb24907" "--export" "__wbindgen_describe___wbg_onmouseenter_0839673a171d41da" "--export" "__wbindgen_describe___wbg_onmouseleave_f56681d7c7d2e60f" "--export" "__wbindgen_describe___wbg_onmousemove_4a96e3ad93b69d7e" "--export" "__wbindgen_describe___wbg_onmouseout_909e134a2a52adfc" "--export" "__wbindgen_describe___wbg_onmouseover_27a329e7f45559d5" "--export" "__wbindgen_describe___wbg_onmouseup_df0507a9dcc71c1c" "--export" "__wbindgen_describe___wbg_onoffline_e72d292366fe1a52" "--export" "__wbindgen_describe___wbg_ononline_d1f3fa667de6e46d" "--export" "__wbindgen_describe___wbg_onorientationchange_b53597b02861b436" "--export" "__wbindgen_describe___wbg_onpagehide_9f5d7fd70da6d3a3" "--export" "__wbindgen_describe___wbg_onpageshow_db51c866e3eae9f8" "--export" "__wbindgen_describe___wbg_onpause_b41ef6fe37e068e7" "--export" "__wbindgen_describe___wbg_onplay_841ec4d1b80a328f" "--export" "__wbindgen_describe___wbg_onplaying_2690784f35101688" "--export" "__wbindgen_describe___wbg_onpointercancel_3e41e8f5267d574c" "--export" "__wbindgen_describe___wbg_onpointerdown_7058c6c9e5bc404b" "--export" "__wbindgen_describe___wbg_onpointerenter_36825b049251d525" "--export" "__wbindgen_describe___wbg_onpointerleave_176b98e1ff845b81" "--export" "__wbindgen_describe___wbg_onpointermove_e790184b2bf7638d" "--export" "__wbindgen_describe___wbg_onpointerout_33c7cb0ee11d4f98" "--export" "__wbindgen_describe___wbg_onpointerover_e87edf7ebc71a4d6" "--export" "__wbindgen_describe___wbg_onpointerup_93231193fbb1412c" "--export" "__wbindgen_describe___wbg_onpopstate_c33ca57625cf45fc" "--export" "__wbindgen_describe___wbg_onprogress_6c813c8d8c3f0f54" "--export" "__wbindgen_describe___wbg_onratechange_881106fd327ba1f4" "--export" "__wbindgen_describe___wbg_onreset_671970a13938d877" "--export" "__wbindgen_describe___wbg_onresize_e493fe64782808ef" "--export" "__wbindgen_describe___wbg_onscroll_df71f47e21ddbff0" "--export" "__wbindgen_describe___wbg_onseeked_2ad6af549b56be02" "--export" "__wbindgen_describe___wbg_onseeking_f5db10b81d570c35" "--export" "__wbindgen_describe___wbg_onselect_4e7ab4bce4c8e007" "--export" "__wbindgen_describe___wbg_onselectstart_6dad8807250cbc4e" "--export" "__wbindgen_describe___wbg_onshow_4c7e3fcc1f88eb68" "--export" "__wbindgen_describe___wbg_onstalled_498affd311aeb00f" "--export" "__wbindgen_describe___wbg_onstorage_279cc5faf20a9f93" "--export" "__wbindgen_describe___wbg_onsubmit_33de2ab56423530b" "--export" "__wbindgen_describe___wbg_onsuspend_9ab944e02e7fadad" "--export" "__wbindgen_describe___wbg_ontimeupdate_b64abab5557deb4f" "--export" "__wbindgen_describe___wbg_ontoggle_9f6014f75e2bfcad" "--export" "__wbindgen_describe___wbg_ontouchcancel_2a4f9dd1c9f753a0" "--export" "__wbindgen_describe___wbg_ontouchend_e3c3fcddc08a383a" "--export" "__wbindgen_describe___wbg_ontouchmove_41065439cc610ab3" "--export" "__wbindgen_describe___wbg_ontouchstart_ee4724d82a922bf4" "--export" "__wbindgen_describe___wbg_ontransitioncancel_ffb8ef99ee55ec34" "--export" "__wbindgen_describe___wbg_ontransitionend_f0a46c1fbb33f132" "--export" "__wbindgen_describe___wbg_ontransitionrun_b24860e0cc800336" "--export" "__wbindgen_describe___wbg_ontransitionstart_5715c4c2dfe3787f" "--export" "__wbindgen_describe___wbg_onunload_637cbee62ac50dc6" "--export" "__wbindgen_describe___wbg_onvolumechange_705c89ad4ea80ddc" "--export" "__wbindgen_describe___wbg_onvrdisplayactivate_c1e0c05775f004be" "--export" "__wbindgen_describe___wbg_onvrdisplayconnect_22c79f3c48790f57" "--export" "__wbindgen_describe___wbg_onvrdisplaydeactivate_ca03f949173816e6" "--export" "__wbindgen_describe___wbg_onvrdisplaydisconnect_9a7eae52de79cc6d" "--export" "__wbindgen_describe___wbg_onvrdisplaypresentchange_193e23d33d61d1a2" "--export" "__wbindgen_describe___wbg_onwaiting_b2912d0437071336" "--export" "__wbindgen_describe___wbg_onwebkitanimationend_dbf32d6c93e7ef70" "--export" "__wbindgen_describe___wbg_onwebkitanimationiteration_46b3d74ce82c93d9" "--export" "__wbindgen_describe___wbg_onwebkitanimationstart_5c407c0319177dde" "--export" "__wbindgen_describe___wbg_onwebkittransitionend_e04c89f68367ea44" "--export" "__wbindgen_describe___wbg_onwheel_99e1347a90acbb2d" "--export" "__wbindgen_describe___wbg_open_0d7707f0fc270075" "--export" "__wbindgen_describe___wbg_open_601be365d3c39981" "--export" "__wbindgen_describe___wbg_open_d841f63faa2194eb" "--export" "__wbindgen_describe___wbg_open_ec03c7c44f1c8ae4" "--export" "__wbindgen_describe___wbg_opener_131f746e49190b91" "--export" "__wbindgen_describe___wbg_orientation_6cbd341f1ea880eb" "--export" "__wbindgen_describe___wbg_origin_93c73729a1539681" "--export" "__wbindgen_describe___wbg_outerHeight_048c845eca67b851" "--export" "__wbindgen_describe___wbg_outerWidth_2451f732645c6abf" "--export" "__wbindgen_describe___wbg_pageXOffset_6fe0f0b2f061b75f" "--export" "__wbindgen_describe___wbg_pageYOffset_efdc49a07a972d1a" "--export" "__wbindgen_describe___wbg_parent_a2f0a61527219df5" "--export" "__wbindgen_describe___wbg_postMessage_12e47d918374c221" "--export" "__wbindgen_describe___wbg_postMessage_1f448c8286ce447c" "--export" "__wbindgen_describe___wbg_print_de25d4a8a638bbe7" "--export" "__wbindgen_describe___wbg_prompt_67f8d9ea8d5f3b0a" "--export" "__wbindgen_describe___wbg_prompt_b3e3449c7fcc8e35" "--export" "__wbindgen_describe___wbg_prompt_cef6550bf46fccb2" "--export" "__wbindgen_describe___wbg_releaseEvents_0c5587ce9514cde9" "--export" "__wbindgen_describe___wbg_removeEventListener_3261d12bdf57f7d4" "--export" "__wbindgen_describe___wbg_removeEventListener_74428202559936fa" "--export" "__wbindgen_describe___wbg_requestAnimationFrame_2e8318d0c4defbbc" "--export" "__wbindgen_describe___wbg_requestIdleCallback_545995e61869a2ac" "--export" "__wbindgen_describe___wbg_resizeBy_3f44f9de6b50d87b" "--export" "__wbindgen_describe___wbg_resizeTo_e832428c46e65e19" "--export" "__wbindgen_describe___wbg_screenX_75024834ebfab7e8" "--export" "__wbindgen_describe___wbg_screenY_1c21dcfd9a91c44f" "--export" "__wbindgen_describe___wbg_scrollBy_72efda1ddb4967f5" "--export" "__wbindgen_describe___wbg_scrollBy_95c2e6c865cb9fdd" "--export" "__wbindgen_describe___wbg_scrollTo_99683ad16d366177" "--export" "__wbindgen_describe___wbg_scrollTo_9fee6f7e75a2c979" "--export" "__wbindgen_describe___wbg_scrollX_fc62b07fff93c762" "--export" "__wbindgen_describe___wbg_scrollY_d3a6adffb0b80bf5" "--export" "__wbindgen_describe___wbg_scroll_301000d729a460f8" "--export" "__wbindgen_describe___wbg_scroll_96ec2d9aa9401de1" "--export" "__wbindgen_describe___wbg_self_c5aaf04707f4858c" "--export" "__wbindgen_describe___wbg_setInterval_04767d3cd40cfed0" "--export" "__wbindgen_describe___wbg_setInterval_071ef6aaf779c7be" "--export" "__wbindgen_describe___wbg_setInterval_1a1201e8431f7445" "--export" "__wbindgen_describe___wbg_setInterval_1f320c724ef0d67b" "--export" "__wbindgen_describe___wbg_setInterval_22cd6e0bcc6f42ca" "--export" "__wbindgen_describe___wbg_setInterval_2c8e20b7de2e3e7b" "--export" "__wbindgen_describe___wbg_setInterval_44f68d28a3fe0777" "--export" "__wbindgen_describe___wbg_setInterval_4eb4a70c74a65b53" "--export" "__wbindgen_describe___wbg_setInterval_6ba29d10577c971d" "--export" "__wbindgen_describe___wbg_setInterval_70d38bb7e9505b2b" "--export" "__wbindgen_describe___wbg_setInterval_7118e9fd35d37679" "--export" "__wbindgen_describe___wbg_setInterval_a29a91589530d94a" "--export" "__wbindgen_describe___wbg_setInterval_a4af7072d206123c" "--export" "__wbindgen_describe___wbg_setInterval_ab64822c9b7a476f" "--export" "__wbindgen_describe___wbg_setInterval_ad5fb63610992b91" "--export" "__wbindgen_describe___wbg_setInterval_c13b3bafe84c52b5" "--export" "__wbindgen_describe___wbg_setInterval_c8068fb6a5313416" "--export" "__wbindgen_describe___wbg_setInterval_ce867181a51f6bb8" "--export" "__wbindgen_describe___wbg_setInterval_e491588f89e04133" "--export" "__wbindgen_describe___wbg_setInterval_f0aa78a3846f361d" "--export" "__wbindgen_describe___wbg_setTimeout_1b82f892929c51a8" "--export" "__wbindgen_describe___wbg_setTimeout_207e759f027b9e56" "--export" "__wbindgen_describe___wbg_setTimeout_223af105cac654fa" "--export" "__wbindgen_describe___wbg_setTimeout_28d479378d87033e" "--export" "__wbindgen_describe___wbg_setTimeout_2f66cd2b671fc105" "--export" "__wbindgen_describe___wbg_setTimeout_35ca6a181532a4c3" "--export" "__wbindgen_describe___wbg_setTimeout_39bc4b12fc2b1797" "--export" "__wbindgen_describe___wbg_setTimeout_403761281ef73e7a" "--export" "__wbindgen_describe___wbg_setTimeout_5059bf134bfe5667" "--export" "__wbindgen_describe___wbg_setTimeout_6bf0edc7d01a915b" "--export" "__wbindgen_describe___wbg_setTimeout_6c81cf629a976d70" "--export" "__wbindgen_describe___wbg_setTimeout_6dee657436051973" "--export" "__wbindgen_describe___wbg_setTimeout_6fde2e76ebf9da80" "--export" "__wbindgen_describe___wbg_setTimeout_74d34465778bea44" "--export" "__wbindgen_describe___wbg_setTimeout_9aeafa2c022bff2c" "--export" "__wbindgen_describe___wbg_setTimeout_bd6d11d67c712130" "--export" "__wbindgen_describe___wbg_setTimeout_cda3fd3be9247b55" "--export" "__wbindgen_describe___wbg_setTimeout_e662d14a81aaef93" "--export" "__wbindgen_describe___wbg_setTimeout_f486c8321c28164d" "--export" "__wbindgen_describe___wbg_setTimeout_f99f39a660f4e633" "--export" "__wbindgen_describe___wbg_setinnerHeight_1f69d03a82bd6252" "--export" "__wbindgen_describe___wbg_setinnerWidth_63892ceafe56fb17" "--export" "__wbindgen_describe___wbg_setname_4c643091a6ae80f1" "--export" "__wbindgen_describe___wbg_setonabort_011fe7473cb12c43" "--export" "__wbindgen_describe___wbg_setonafterprint_0ce56c80ed1caed3" "--export" "__wbindgen_describe___wbg_setonanimationcancel_b2d6c5e3f3095bd6" "--export" "__wbindgen_describe___wbg_setonanimationend_405d2918f256b5c1" "--export" "__wbindgen_describe___wbg_setonanimationiteration_91902294b211add9" "--export" "__wbindgen_describe___wbg_setonanimationstart_2096796eb117eb03" "--export" "__wbindgen_describe___wbg_setonappinstalled_03ac7ec79bd111e3" "--export" "__wbindgen_describe___wbg_setonauxclick_2a3f9b2773ba10ce" "--export" "__wbindgen_describe___wbg_setonbeforeprint_810c8fa0a4623a40" "--export" "__wbindgen_describe___wbg_setonbeforeunload_755ae9fc15d73b19" "--export" "__wbindgen_describe___wbg_setonblur_ad0844c286ff5d58" "--export" "__wbindgen_describe___wbg_setoncanplay_7afb7cf7a8a78897" "--export" "__wbindgen_describe___wbg_setoncanplaythrough_21deb0cb299431fb" "--export" "__wbindgen_describe___wbg_setonchange_5791d6377e75844d" "--export" "__wbindgen_describe___wbg_setonclick_f2758b6fb0471879" "--export" "__wbindgen_describe___wbg_setonclose_302ef7e9c6198214" "--export" "__wbindgen_describe___wbg_setoncontextmenu_956d35117ec01aea" "--export" "__wbindgen_describe___wbg_setondblclick_32a75349e339c463" "--export" "__wbindgen_describe___wbg_setondrag_6034c7e0367e8a72" "--export" "__wbindgen_describe___wbg_setondragend_aaac00655de6ed6b" "--export" "__wbindgen_describe___wbg_setondragenter_2a9c31dd4e6c3869" "--export" "__wbindgen_describe___wbg_setondragexit_10115f525062e50e" "--export" "__wbindgen_describe___wbg_setondragleave_e48f72549fde6cc9" "--export" "__wbindgen_describe___wbg_setondragover_81f8026cfc21f6c5" "--export" "__wbindgen_describe___wbg_setondragstart_404cd81f264882f9" "--export" "__wbindgen_describe___wbg_setondrop_0b7feebfef4e53e2" "--export" "__wbindgen_describe___wbg_setondurationchange_22e3e3eb5b2cad1f" "--export" "__wbindgen_describe___wbg_setonemptied_a20c84b80a1cb8bd" "--export" "__wbindgen_describe___wbg_setonended_ea7b8b5f870fe544" "--export" "__wbindgen_describe___wbg_setonerror_5ffa2db5c906aa5d" "--export" "__wbindgen_describe___wbg_setonfocus_407125c40e0c04c6" "--export" "__wbindgen_describe___wbg_setongotpointercapture_293ec93d3b4c7ca0" "--export" "__wbindgen_describe___wbg_setonhashchange_c362c6c3db61c010" "--export" "__wbindgen_describe___wbg_setoninput_cb0920bcabc4d47d" "--export" "__wbindgen_describe___wbg_setoninvalid_f39c634e4da4e411" "--export" "__wbindgen_describe___wbg_setonkeydown_63a8ac6e30df27dd" "--export" "__wbindgen_describe___wbg_setonkeypress_e6f713b8dba2cf48" "--export" "__wbindgen_describe___wbg_setonkeyup_a2e3b745af04b43a" "--export" "__wbindgen_describe___wbg_setonlanguagechange_6f76cc9ce84baa3f" "--export" "__wbindgen_describe___wbg_setonload_3ff3762b545e4175" "--export" "__wbindgen_describe___wbg_setonloadeddata_4706dc234a8362fc" "--export" "__wbindgen_describe___wbg_setonloadedmetadata_3971d3d371a96ee9" "--export" "__wbindgen_describe___wbg_setonloadend_3a0766f94b4d8a7a" "--export" "__wbindgen_describe___wbg_setonloadstart_376588d9ba077f7a" "--export" "__wbindgen_describe___wbg_setonlostpointercapture_8247f63aee924424" "--export" "__wbindgen_describe___wbg_setonmessage_2a2d38aa58845471" "--export" "__wbindgen_describe___wbg_setonmessageerror_fa9fe0855426cb98" "--export" "__wbindgen_describe___wbg_setonmousedown_0829a2654ad534ea" "--export" "__wbindgen_describe___wbg_setonmouseenter_d585ec406c9069ac" "--export" "__wbindgen_describe___wbg_setonmouseleave_8a84be934361a94a" "--export" "__wbindgen_describe___wbg_setonmousemove_c64720ff7347bc09" "--export" "__wbindgen_describe___wbg_setonmouseout_c6dac8b5087ff71d" "--export" "__wbindgen_describe___wbg_setonmouseover_61b563881a709cfa" "--export" "__wbindgen_describe___wbg_setonmouseup_194720e3f6228dac" "--export" "__wbindgen_describe___wbg_setonoffline_16d23cac710b65e2" "--export" "__wbindgen_describe___wbg_setononline_3b94367adb237c63" "--export" "__wbindgen_describe___wbg_setonorientationchange_05f47c71ef17587d" "--export" "__wbindgen_describe___wbg_setonpagehide_14ba6d1cc70d3396" "--export" "__wbindgen_describe___wbg_setonpageshow_2123da8b93b1996e" "--export" "__wbindgen_describe___wbg_setonpause_0eb2991d2e4107a1" "--export" "__wbindgen_describe___wbg_setonplay_aae27ab94900d4cd" "--export" "__wbindgen_describe___wbg_setonplaying_2923b7dece8a6292" "--export" "__wbindgen_describe___wbg_setonpointercancel_fa6b4596ac115ad8" "--export" "__wbindgen_describe___wbg_setonpointerdown_47e9dfec08031e90" "--export" "__wbindgen_describe___wbg_setonpointerenter_a5bc4e256d45c56a" "--export" "__wbindgen_describe___wbg_setonpointerleave_567de4e5fffd92f3" "--export" "__wbindgen_describe___wbg_setonpointermove_5fd9f2af7009069a" "--export" "__wbindgen_describe___wbg_setonpointerout_68073529ced7db25" "--export" "__wbindgen_describe___wbg_setonpointerover_b92cef5cd216fbf8" "--export" "__wbindgen_describe___wbg_setonpointerup_905cf3dcbea6aba5" "--export" "__wbindgen_describe___wbg_setonpopstate_37de5dfa368cf527" "--export" "__wbindgen_describe___wbg_setonprogress_49fbc8b0913eb016" "--export" "__wbindgen_describe___wbg_setonratechange_2188adb537e835ce" "--export" "__wbindgen_describe___wbg_setonreset_71d8622900d6a181" "--export" "__wbindgen_describe___wbg_setonresize_a5d0eda84ae40ef4" "--export" "__wbindgen_describe___wbg_setonscroll_91bba5f9761f1103" "--export" "__wbindgen_describe___wbg_setonseeked_9c5204e1d04fa4e7" "--export" "__wbindgen_describe___wbg_setonseeking_8b5f289e2fe53135" "--export" "__wbindgen_describe___wbg_setonselect_3744c9ef15e8e7ea" "--export" "__wbindgen_describe___wbg_setonselectstart_bb521cede7935cfe" "--export" "__wbindgen_describe___wbg_setonshow_e09371f9c036308d" "--export" "__wbindgen_describe___wbg_setonstalled_20e042fd15c3f7a1" "--export" "__wbindgen_describe___wbg_setonstorage_8ce68f221dda7a85" "--export" "__wbindgen_describe___wbg_setonsubmit_65632198fcb02a54" "--export" "__wbindgen_describe___wbg_setonsuspend_89f2cfa63db795c7" "--export" "__wbindgen_describe___wbg_setontimeupdate_2b4b26c840a93f17" "--export" "__wbindgen_describe___wbg_setontoggle_4750b59722c82980" "--export" "__wbindgen_describe___wbg_setontouchcancel_34e47f101009dbb0" "--export" "__wbindgen_describe___wbg_setontouchend_565fc849cbcb4f3e" "--export" "__wbindgen_describe___wbg_setontouchmove_ee7d39150fb00118" "--export" "__wbindgen_describe___wbg_setontouchstart_fba4bbcdf2566b87" "--export" "__wbindgen_describe___wbg_setontransitioncancel_ff1c25333fd32533" "--export" "__wbindgen_describe___wbg_setontransitionend_7cbe4f4ff0e85dbb" "--export" "__wbindgen_describe___wbg_setontransitionrun_95ca18bd2daad127" "--export" "__wbindgen_describe___wbg_setontransitionstart_9d9adc99cb147bd1" "--export" "__wbindgen_describe___wbg_setonunload_b4d0ce6f74fbcb1d" "--export" "__wbindgen_describe___wbg_setonvolumechange_c69d41c20766c908" "--export" "__wbindgen_describe___wbg_setonvrdisplayactivate_1799ee61f817654e" "--export" "__wbindgen_describe___wbg_setonvrdisplayconnect_6ee0fee70ecc09ef" "--export" "__wbindgen_describe___wbg_setonvrdisplaydeactivate_1b2a265bf460c096" "--export" "__wbindgen_describe___wbg_setonvrdisplaydisconnect_9a12820739aa72d5" "--export" "__wbindgen_describe___wbg_setonvrdisplaypresentchange_4c7136fa735274ad" "--export" "__wbindgen_describe___wbg_setonwaiting_42bc0a37ed5ced43" "--export" "__wbindgen_describe___wbg_setonwebkitanimationend_676b9cceb7315e8c" "--export" "__wbindgen_describe___wbg_setonwebkitanimationiteration_fb8a8ceb279dcd55" "--export" "__wbindgen_describe___wbg_setonwebkitanimationstart_af0ba99e116de03a" "--export" "__wbindgen_describe___wbg_setonwebkittransitionend_e2e911057a3bdb85" "--export" "__wbindgen_describe___wbg_setonwheel_11449d3423ea2fe0" "--export" "__wbindgen_describe___wbg_setopener_68aec34f2bc32db0" "--export" "__wbindgen_describe___wbg_setouterHeight_6d315bfa2c70aa35" "--export" "__wbindgen_describe___wbg_setouterWidth_ef13aef2f97dcfe5" "--export" "__wbindgen_describe___wbg_setscreenX_d5649a94e1baa04d" "--export" "__wbindgen_describe___wbg_setscreenY_d911fa58df7f8f20" "--export" "__wbindgen_describe___wbg_setstatus_de2b731da307fb15" "--export" "__wbindgen_describe___wbg_status_8206d7cdd31e6ba7" "--export" "__wbindgen_describe___wbg_stop_18bebd0e64d22d35" "--export" "__wbindgen_describe___wbg_top_8b390eedbfc8b2bb" "--export" "__wbindgen_describe___wbg_window_898d57aad98923ef" "--export" "__externref_drop_slice" "--export" "__externref_heap_live_count" "--export" "__externref_table_alloc" "--export" "__externref_table_dealloc" "--export" "__wbindgen_exn_store" "--export" "__wbindgen_free" "--export" "__wbindgen_malloc" "--export" "__wbindgen_realloc" "--export" "__wbindgen_describe___wbg_1_78a7963e42481f9b" "--export" "__wbindgen_describe___wbg_2_c9fb511bb0e67e06" "--export" "__wbindgen_describe___wbg_3_f82a0f37e67e66c5" "--export" "__wbindgen_describe___wbg_4_5e4cc8688da4dc85" "--export" "__wbindgen_describe___wbg_5_943c55d66def4548" "--export" "__wbindgen_describe___wbg_6_6d46d8ad9b9bf92c" "--export" "__wbindgen_describe___wbg_7_ca32e4cfb58b19e1" "--export" "__wbindgen_describe___wbg_8_63462a6b92bacf7a" "--export" "__wbindgen_describe___wbg_9_63e04f3e444d85f9" "--export" "__wbindgen_describe___wbg_UTC_e7e884b141e34eed" "--export" "__wbindgen_describe___wbg_abs_19300439ef82fa0a" "--export" "__wbindgen_describe___wbg_acos_80c24b532d822a6c" "--export" "__wbindgen_describe___wbg_acosh_f771d7f2a13c2bd3" "--export" "__wbindgen_describe___wbg_add_4949627f323b6287" "--export" "__wbindgen_describe___wbg_add_592369e9e257c375" "--export" "__wbindgen_describe___wbg_add_e6e10d90e9781a23" "--export" "__wbindgen_describe___wbg_all_6f3c35230078b7c1" "--export" "__wbindgen_describe___wbg_and_cc5fca2a0730581a" "--export" "__wbindgen_describe___wbg_apply_1f577ff63f7c2abe" "--export" "__wbindgen_describe___wbg_apply_f453585a4082896d" "--export" "__wbindgen_describe___wbg_asin_72c09ee8aad1498b" "--export" "__wbindgen_describe___wbg_asinh_270b1a6fc52482fe" "--export" "__wbindgen_describe___wbg_assign_4b23f1057278dd7c" "--export" "__wbindgen_describe___wbg_assign_a2d260314c40dec1" "--export" "__wbindgen_describe___wbg_assign_c7fad1ca162642f6" "--export" "__wbindgen_describe___wbg_asyncIterator_6312d8930d3b423b" "--export" "__wbindgen_describe___wbg_atan2_ed731ea77cc4a558" "--export" "__wbindgen_describe___wbg_atan_34e03fd1a236b8df" "--export" "__wbindgen_describe___wbg_atanh_60ca5cd069a12759" "--export" "__wbindgen_describe___wbg_bind_03bcd4868cce32c3" "--export" "__wbindgen_describe___wbg_bind_1dd280cea9e926ef" "--export" "__wbindgen_describe___wbg_bind_41229f70fe8fbaaf" "--export" "__wbindgen_describe___wbg_bind_9c5605f74501c4a3" "--export" "__wbindgen_describe___wbg_bind_c373846fcbe6b27f" "--export" "__wbindgen_describe___wbg_buffer_03f9e9dcbaf11984" "--export" "__wbindgen_describe___wbg_buffer_0972939b69d49c3e" "--export" "__wbindgen_describe___wbg_buffer_3829017e42a3cb77" "--export" "__wbindgen_describe___wbg_buffer_426b3a757470bcc9" "--export" "__wbindgen_describe___wbg_buffer_4917c8e8b4604881" "--export" "__wbindgen_describe___wbg_buffer_4cafbceb6f390c09" "--export" "__wbindgen_describe___wbg_buffer_4e2e517e6bc21ff9" "--export" "__wbindgen_describe___wbg_buffer_577ba08ee67857b8" "--export" "__wbindgen_describe___wbg_buffer_876780554492cdb8" "--export" "__wbindgen_describe___wbg_buffer_d1f0903bfe0de2b1" "--export" "__wbindgen_describe___wbg_buffer_fe2d4e5523db7d37" "--export" "__wbindgen_describe___wbg_byteLength_0421bfaada07ca98" "--export" "__wbindgen_describe___wbg_byteLength_0cf4a29080c0b2d1" "--export" "__wbindgen_describe___wbg_byteLength_230245d666a2b159" "--export" "__wbindgen_describe___wbg_byteLength_2c1c8e9d37d27085" "--export" "__wbindgen_describe___wbg_byteLength_4d21667184f0116c" "--export" "__wbindgen_describe___wbg_byteLength_4fd11e0fd57979c5" "--export" "__wbindgen_describe___wbg_byteLength_82e5da66bfc7079f" "--export" "__wbindgen_describe___wbg_byteLength_849255cda6b9452d" "--export" "__wbindgen_describe___wbg_byteLength_9357e9c225f35106" "--export" "__wbindgen_describe___wbg_byteLength_a6d291bd96f3f23b" "--export" "__wbindgen_describe___wbg_byteLength_df521aa880904e60" "--export" "__wbindgen_describe___wbg_byteLength_e49990924e1b86cc" "--export" "__wbindgen_describe___wbg_byteOffset_12d2d7f8f9da79f9" "--export" "__wbindgen_describe___wbg_byteOffset_4a82e7cb75cc4f03" "--export" "__wbindgen_describe___wbg_byteOffset_5376ba7291a5ba6b" "--export" "__wbindgen_describe___wbg_byteOffset_592547598e831129" "--export" "__wbindgen_describe___wbg_byteOffset_74317c461d2d792b" "--export" "__wbindgen_describe___wbg_byteOffset_871d52d1d7f253a8" "--export" "__wbindgen_describe___wbg_byteOffset_ccf11a295135f041" "--export" "__wbindgen_describe___wbg_byteOffset_de6ea6b5f48f0ffd" "--export" "__wbindgen_describe___wbg_byteOffset_e53f0ec955dc81d3" "--export" "__wbindgen_describe___wbg_byteOffset_f357e27f5ff45d88" "--export" "__wbindgen_describe___wbg_call_37ce221df08220c5" "--export" "__wbindgen_describe___wbg_call_8244ba49377a75c3" "--export" "__wbindgen_describe___wbg_call_8ea3b3d51bcfb2eb" "--export" "__wbindgen_describe___wbg_call_eb6d1214862cbb53" "--export" "__wbindgen_describe___wbg_catch_ab9336afe0f27897" "--export" "__wbindgen_describe___wbg_cbrt_5de354f27a3a9109" "--export" "__wbindgen_describe___wbg_ceil_3bd05f5f4e962045" "--export" "__wbindgen_describe___wbg_charAt_e1a7cebae17e0165" "--export" "__wbindgen_describe___wbg_charCodeAt_aa954a177b950a16" "--export" "__wbindgen_describe___wbg_clear_48a556416c7da621" "--export" "__wbindgen_describe___wbg_clear_d3f1ad8ad7edd08e" "--export" "__wbindgen_describe___wbg_clz32_05483cb2fde09463" "--export" "__wbindgen_describe___wbg_codePointAt_b303957ee857caa0" "--export" "__wbindgen_describe___wbg_compareExchange_4aea0749a92cf70b" "--export" "__wbindgen_describe___wbg_compare_933d69fa2ff598a4" "--export" "__wbindgen_describe___wbg_compile_3b2ca645df268dc1" "--export" "__wbindgen_describe___wbg_concat_6a58fefc0aff9d5f" "--export" "__wbindgen_describe___wbg_concat_bd82432d89cb8a13" "--export" "__wbindgen_describe___wbg_construct_753be8f7c0c549e1" "--export" "__wbindgen_describe___wbg_construct_8111aba60d9d86f8" "--export" "__wbindgen_describe___wbg_constructor_78a9f3a54fa23467" "--export" "__wbindgen_describe___wbg_copyWithin_48cd9b2cc1aabf33" "--export" "__wbindgen_describe___wbg_cos_522fd51b6ab051e1" "--export" "__wbindgen_describe___wbg_cosh_243160e009b1c309" "--export" "__wbindgen_describe___wbg_create_1485711accdb00fd" "--export" "__wbindgen_describe___wbg_customSections_55d4ccacb2f4c6cf" "--export" "__wbindgen_describe___wbg_decodeURIComponent_3bcfb2a4c28bce1d" "--export" "__wbindgen_describe___wbg_decodeURI_5caec397b188436d" "--export" "__wbindgen_describe___wbg_defineProperties_08a00cdfd4e4a3f7" "--export" "__wbindgen_describe___wbg_defineProperty_05da312c5633d2ee" "--export" "__wbindgen_describe___wbg_defineProperty_5bc0a238b10fe0b9" "--export" "__wbindgen_describe___wbg_deleteProperty_94639c9aa93790aa" "--export" "__wbindgen_describe___wbg_delete_0d32dd34c05b299c" "--export" "__wbindgen_describe___wbg_delete_633e3d19b0e99c65" "--export" "__wbindgen_describe___wbg_delete_6af432bab8eb67d9" "--export" "__wbindgen_describe___wbg_delete_6d611489d4f0fb2e" "--export" "__wbindgen_describe___wbg_delete_db591c1e8a02b98e" "--export" "__wbindgen_describe___wbg_done_3052efaac40b1bb0" "--export" "__wbindgen_describe___wbg_encodeURIComponent_8ffa653ff0fde3b3" "--export" "__wbindgen_describe___wbg_encodeURI_1e7b231610b21e0c" "--export" "__wbindgen_describe___wbg_endsWith_9aa7bda32d2ce34c" "--export" "__wbindgen_describe___wbg_entries_3e725c115035b365" "--export" "__wbindgen_describe___wbg_entries_863c5b41921a820d" "--export" "__wbindgen_describe___wbg_entries_d903f45c97c9700a" "--export" "__wbindgen_describe___wbg_entries_fc8068233ab3069e" "--export" "__wbindgen_describe___wbg_escape_3f2de7866797bd9d" "--export" "__wbindgen_describe___wbg_eval_de28f53e92769ee4" "--export" "__wbindgen_describe___wbg_every_a393707f8e28e89a" "--export" "__wbindgen_describe___wbg_exchange_efe668589b476cc3" "--export" "__wbindgen_describe___wbg_exec_2728982aa293ffd0" "--export" "__wbindgen_describe___wbg_exp_6b8b375b1f4793fa" "--export" "__wbindgen_describe___wbg_expm1_7356324e82c1790a" "--export" "__wbindgen_describe___wbg_exports_a19df9f43edbf844" "--export" "__wbindgen_describe___wbg_exports_fc1524974b9b2906" "--export" "__wbindgen_describe___wbg_fill_3495aea1e59c07aa" "--export" "__wbindgen_describe___wbg_fill_64ee788bbaa53178" "--export" "__wbindgen_describe___wbg_fill_86ce699d473b6f11" "--export" "__wbindgen_describe___wbg_fill_8d82ee52d48ab7ca" "--export" "__wbindgen_describe___wbg_fill_ae1a8997bfb107f6" "--export" "__wbindgen_describe___wbg_fill_b46c2e47c4c33e5e" "--export" "__wbindgen_describe___wbg_fill_cb928e99278beacb" "--export" "__wbindgen_describe___wbg_fill_dbbb14dee7d79694" "--export" "__wbindgen_describe___wbg_fill_e216972601fdd266" "--export" "__wbindgen_describe___wbg_fill_f6fac7226007cddb" "--export" "__wbindgen_describe___wbg_filter_fd88263ecd6e4413" "--export" "__wbindgen_describe___wbg_finally_48a785999d89c155" "--export" "__wbindgen_describe___wbg_findIndex_7f0b87e47f4dcdc0" "--export" "__wbindgen_describe___wbg_find_04d0cbad8b7eba92" "--export" "__wbindgen_describe___wbg_flags_5845dc382b8a4158" "--export" "__wbindgen_describe___wbg_flatMap_e51c252ee2a5278b" "--export" "__wbindgen_describe___wbg_flat_66dcac5558f5aebe" "--export" "__wbindgen_describe___wbg_floor_9adbaf6318d34731" "--export" "__wbindgen_describe___wbg_forEach_16542ea58b721f83" "--export" "__wbindgen_describe___wbg_forEach_1c1c7993848b951f" "--export" "__wbindgen_describe___wbg_forEach_221d67f282bd6430" "--export" "__wbindgen_describe___wbg_forEach_2f5e6e148dc35ddb" "--export" "__wbindgen_describe___wbg_forEach_3a13f319f172fb04" "--export" "__wbindgen_describe___wbg_forEach_680be5bebf2b77a4" "--export" "__wbindgen_describe___wbg_forEach_7c210fba1b6dc362" "--export" "__wbindgen_describe___wbg_forEach_7cf169e9db17b26a" "--export" "__wbindgen_describe___wbg_forEach_8a6ef6d7ddad4ede" "--export" "__wbindgen_describe___wbg_forEach_ca464f1a0310ecf6" "--export" "__wbindgen_describe___wbg_forEach_de21916d1da77c89" "--export" "__wbindgen_describe___wbg_forEach_df2b6713176b9520" "--export" "__wbindgen_describe___wbg_for_dd47236ab0272d61" "--export" "__wbindgen_describe___wbg_formatToParts_4ae9c74c8e6f50ee" "--export" "__wbindgen_describe___wbg_formatToParts_d57eb9e466f4b18c" "--export" "__wbindgen_describe___wbg_format_11b542383d3b1403" "--export" "__wbindgen_describe___wbg_format_a5a2ee01f4caac3d" "--export" "__wbindgen_describe___wbg_freeze_7996225934d3c248" "--export" "__wbindgen_describe___wbg_fromCharCode_171a69afe56a127f" "--export" "__wbindgen_describe___wbg_fromCharCode_4dfa44e611b9b1fc" "--export" "__wbindgen_describe___wbg_fromCharCode_570d64db9b49fc16" "--export" "__wbindgen_describe___wbg_fromCharCode_c8cab221bf365025" "--export" "__wbindgen_describe___wbg_fromCharCode_d2789b5faa3453c8" "--export" "__wbindgen_describe___wbg_fromCharCode_dce3e1f1bd78ba6a" "--export" "__wbindgen_describe___wbg_fromCodePoint_37b8e9f48c809b3c" "--export" "__wbindgen_describe___wbg_fromCodePoint_5152309ce56185b9" "--export" "__wbindgen_describe___wbg_fromCodePoint_5d84a866e8bd2e12" "--export" "__wbindgen_describe___wbg_fromCodePoint_8e5820daa0ede630" "--export" "__wbindgen_describe___wbg_fromCodePoint_9315e758992cf120" "--export" "__wbindgen_describe___wbg_fromCodePoint_9bf3fa965c997f94" "--export" "__wbindgen_describe___wbg_fromEntries_02fdab812c67bd34" "--export" "__wbindgen_describe___wbg_from_0184f92b286f5854" "--export" "__wbindgen_describe___wbg_fround_cec358831bc070a3" "--export" "__wbindgen_describe___wbg_getCanonicalLocales_39aa947bb6f536ea" "--export" "__wbindgen_describe___wbg_getDate_897a9b8bfe6164b5" "--export" "__wbindgen_describe___wbg_getDay_14a1d31ac28fe691" "--export" "__wbindgen_describe___wbg_getFloat32_3eaf7ee392d6427c" "--export" "__wbindgen_describe___wbg_getFloat32_40b734fbbcb56a26" "--export" "__wbindgen_describe___wbg_getFloat64_929c3e11dfa45790" "--export" "__wbindgen_describe___wbg_getFloat64_c217373a253b5a6e" "--export" "__wbindgen_describe___wbg_getFullYear_86e3405ea7a7c11a" "--export" "__wbindgen_describe___wbg_getHours_51a3aaa23a430faa" "--export" "__wbindgen_describe___wbg_getInt16_2e512bb9b2a41571" "--export" "__wbindgen_describe___wbg_getInt16_fc8205b3dcd3930a" "--export" "__wbindgen_describe___wbg_getInt32_2210abf38086a4fb" "--export" "__wbindgen_describe___wbg_getInt32_d54198354ebadd96" "--export" "__wbindgen_describe___wbg_getInt8_01d325e3df339b1c" "--export" "__wbindgen_describe___wbg_getMilliseconds_255acfcdc53bf6ac" "--export" "__wbindgen_describe___wbg_getMinutes_f19ce4bc9a182ada" "--export" "__wbindgen_describe___wbg_getMonth_b2f06ad90b3f854f" "--export" "__wbindgen_describe___wbg_getOwnPropertyDescriptor_5b559c4f8e0f6b17" "--export" "__wbindgen_describe___wbg_getOwnPropertyDescriptor_a77b266fbd91374e" "--export" "__wbindgen_describe___wbg_getOwnPropertyDescriptors_ca1daabf002e3101" "--export" "__wbindgen_describe___wbg_getOwnPropertyNames_265ee404dae0cb9a" "--export" "__wbindgen_describe___wbg_getOwnPropertySymbols_e5f1cee93261e93e" "--export" "__wbindgen_describe___wbg_getPrototypeOf_6167a523c5dbb768" "--export" "__wbindgen_describe___wbg_getPrototypeOf_b4f983963e3b8538" "--export" "__wbindgen_describe___wbg_getSeconds_68b0adc68329ce4b" "--export" "__wbindgen_describe___wbg_getTime_754835f6cc086581" "--export" "__wbindgen_describe___wbg_getTimezoneOffset_6992f4f239565650" "--export" "__wbindgen_describe___wbg_getUTCDate_c363b5aec1ac558c" "--export" "__wbindgen_describe___wbg_getUTCDay_3919aea06d905490" "--export" "__wbindgen_describe___wbg_getUTCFullYear_a6e0e89e22dd7bf2" "--export" "__wbindgen_describe___wbg_getUTCHours_6d6e2253411fba23" "--export" "__wbindgen_describe___wbg_getUTCMilliseconds_a8f2d0c21406870c" "--export" "__wbindgen_describe___wbg_getUTCMinutes_5365a885cbddea89" "--export" "__wbindgen_describe___wbg_getUTCMonth_3c69ccd32419a8d3" "--export" "__wbindgen_describe___wbg_getUTCSeconds_c536eba35eef29a4" "--export" "__wbindgen_describe___wbg_getUint16_1fc279255fc70bc1" "--export" "__wbindgen_describe___wbg_getUint16_dc9a41e2a2235759" "--export" "__wbindgen_describe___wbg_getUint32_0a91904f43307684" "--export" "__wbindgen_describe___wbg_getUint32_8aba2c54d832decf" "--export" "__wbindgen_describe___wbg_getUint8_30ec935aeda7e5ec" "--export" "__wbindgen_describe___wbg_get_0facf4139a8bbaac" "--export" "__wbindgen_describe___wbg_get_28f815b25bf23640" "--export" "__wbindgen_describe___wbg_get_310a2a046ba007e0" "--export" "__wbindgen_describe___wbg_get_66d0af7c46af93cd" "--export" "__wbindgen_describe___wbg_get_b6e5261d1bf80388" "--export" "__wbindgen_describe___wbg_get_d24fca1ffe181b30" "--export" "__wbindgen_describe___wbg_get_d4f89fc23cff1c26" "--export" "__wbindgen_describe___wbg_getindex_3a211cc5a893f3e3" "--export" "__wbindgen_describe___wbg_getindex_4ab00e3814a496a3" "--export" "__wbindgen_describe___wbg_getindex_735a32debf03c784" "--export" "__wbindgen_describe___wbg_getindex_8c03902cd031c376" "--export" "__wbindgen_describe___wbg_getindex_b7ec7d3ef923eb97" "--export" "__wbindgen_describe___wbg_getindex_bb7d6c7bad169c5f" "--export" "__wbindgen_describe___wbg_getindex_e1bf291534d325ea" "--export" "__wbindgen_describe___wbg_getindex_f283f2bb8d7b9f1f" "--export" "__wbindgen_describe___wbg_getindex_f335268b1818c684" "--export" "__wbindgen_describe___wbg_globalThis_efa5479c26fba9f5" "--export" "__wbindgen_describe___wbg_global_448755ee35f8784a" "--export" "__wbindgen_describe___wbg_global_eebd330f5709b779" "--export" "__wbindgen_describe___wbg_grow_523d7b3c2a71d438" "--export" "__wbindgen_describe___wbg_grow_dfbdc0a7aa337e11" "--export" "__wbindgen_describe___wbg_hasInstance_f641cf487ac4c1b0" "--export" "__wbindgen_describe___wbg_hasOwnProperty_e0fd153773f9facd" "--export" "__wbindgen_describe___wbg_has_56358442d75bace6" "--export" "__wbindgen_describe___wbg_has_6d5a3f90a4ab7760" "--export" "__wbindgen_describe___wbg_has_8506420a316ebf05" "--export" "__wbindgen_describe___wbg_has_8f3949a11fbd8ff5" "--export" "__wbindgen_describe___wbg_has_a635a498ad2e2411" "--export" "__wbindgen_describe___wbg_hypot_2dc362c2530d0579" "--export" "__wbindgen_describe___wbg_ignoreCase_0e4e6794a02b3d38" "--export" "__wbindgen_describe___wbg_imports_b1b5442cff17aa94" "--export" "__wbindgen_describe___wbg_imul_60c6be42a6a3f3fc" "--export" "__wbindgen_describe___wbg_includes_04d21ca5b65718d8" "--export" "__wbindgen_describe___wbg_includes_64bdee61396cbc9b" "--export" "__wbindgen_describe___wbg_indexOf_8b8b635bc8d92b4c" "--export" "__wbindgen_describe___wbg_indexOf_c49a650b2ebf80c7" "--export" "__wbindgen_describe___wbg_input_e6e742da313114eb" "--export" "__wbindgen_describe___wbg_instantiateStreaming_6231ccc484540f91" "--export" "__wbindgen_describe___wbg_instantiate_01831b4b9bf733f4" "--export" "__wbindgen_describe___wbg_instantiate_1129abd93a0c00de" "--export" "__wbindgen_describe___wbg_isArray_1e9a1231b8db8350" "--export" "__wbindgen_describe___wbg_isConcatSpreadable_296bbc39bbd975d0" "--export" "__wbindgen_describe___wbg_isExtensible_1d322cf0370b1a1f" "--export" "__wbindgen_describe___wbg_isExtensible_c4159d0b3be3fc2a" "--export" "__wbindgen_describe___wbg_isFinite_647302141a1c8e60" "--export" "__wbindgen_describe___wbg_isFinite_9740bb45d5ee6d17" "--export" "__wbindgen_describe___wbg_isFrozen_dd98b8dbf9821e0c" "--export" "__wbindgen_describe___wbg_isInteger_d669af872de4f82e" "--export" "__wbindgen_describe___wbg_isLockFree_b956f208912c98bb" "--export" "__wbindgen_describe___wbg_isNaN_0aeb976f8ac5da14" "--export" "__wbindgen_describe___wbg_isPrototypeOf_71ffdbe686b95afc" "--export" "__wbindgen_describe___wbg_isSafeInteger_6c520e2fd6a6bbbc" "--export" "__wbindgen_describe___wbg_isSealed_5bfaf337a6553d79" "--export" "__wbindgen_describe___wbg_isView_9fb3237ca4f94728" "--export" "__wbindgen_describe___wbg_is_627fa2abaebef816" "--export" "__wbindgen_describe___wbg_iterator_08bfc57b0bdac2a4" "--export" "__wbindgen_describe___wbg_join_4a5d04ae80e49124" "--export" "__wbindgen_describe___wbg_keyFor_16528a7f18aca607" "--export" "__wbindgen_describe___wbg_keys_42491d155d1d8225" "--export" "__wbindgen_describe___wbg_keys_5f9b383dc4173243" "--export" "__wbindgen_describe___wbg_keys_6298c259b844baaa" "--export" "__wbindgen_describe___wbg_keys_d3ecced8cca43151" "--export" "__wbindgen_describe___wbg_lastIndexOf_9a908ed3720ef5d3" "--export" "__wbindgen_describe___wbg_lastIndexOf_db17cef8bc1e795d" "--export" "__wbindgen_describe___wbg_lastMatch_17a785455c10c65a" "--export" "__wbindgen_describe___wbg_lastParen_d12461aee90f8ee5" "--export" "__wbindgen_describe___wbg_lastindex_3802b7e34f841b04" "--export" "__wbindgen_describe___wbg_leftContext_39e21df753e9b3c9" "--export" "__wbindgen_describe___wbg_length_4a6adc770d34a690" "--export" "__wbindgen_describe___wbg_length_560daf808418aa78" "--export" "__wbindgen_describe___wbg_length_85e8980af05a0e24" "--export" "__wbindgen_describe___wbg_length_9263367585be53f7" "--export" "__wbindgen_describe___wbg_length_96d006daa95c3069" "--export" "__wbindgen_describe___wbg_length_a62539cb861ff728" "--export" "__wbindgen_describe___wbg_length_ac271af7270c1415" "--export" "__wbindgen_describe___wbg_length_ad86060d81f90558" "--export" "__wbindgen_describe___wbg_length_b69a065335641b35" "--export" "__wbindgen_describe___wbg_length_ccdc5424aaf8144b" "--export" "__wbindgen_describe___wbg_length_d64a900e62ae4700" "--export" "__wbindgen_describe___wbg_length_eb24f1eca79a8ac1" "--export" "__wbindgen_describe___wbg_length_f04767bf9d195e1a" "--export" "__wbindgen_describe___wbg_load_db729aaa926d4b8e" "--export" "__wbindgen_describe___wbg_localeCompare_984164ea39a12286" "--export" "__wbindgen_describe___wbg_log10_be9d432111f16b8d" "--export" "__wbindgen_describe___wbg_log1p_81e5bb1fd4fdc3fa" "--export" "__wbindgen_describe___wbg_log2_220cf3d10626c42d" "--export" "__wbindgen_describe___wbg_log_38766ed96a04c7d5" "--export" "__wbindgen_describe___wbg_map_6761d4406a50cca4" "--export" "__wbindgen_describe___wbg_match_3cfd03ebe46a954f" "--export" "__wbindgen_describe___wbg_match_e0b2c4c4f61bcf85" "--export" "__wbindgen_describe___wbg_max_192a95286943c171" "--export" "__wbindgen_describe___wbg_message_cec4f379a3200c34" "--export" "__wbindgen_describe___wbg_min_a556cdfcee8dd4cb" "--export" "__wbindgen_describe___wbg_multiline_2da0630f6eb0ba0f" "--export" "__wbindgen_describe___wbg_name_340fab60fb77180c" "--export" "__wbindgen_describe___wbg_name_d466790ca5c3e677" "--export" "__wbindgen_describe___wbg_new0_78df005f825b4b65" "--export" "__wbindgen_describe___wbg_new_018a27c75c2e72d2" "--export" "__wbindgen_describe___wbg_new_02f7f4beb3f72ff9" "--export" "__wbindgen_describe___wbg_new_037c27619a64d30a" "--export" "__wbindgen_describe___wbg_new_07ecefb7383ea062" "--export" "__wbindgen_describe___wbg_new_0a2ae1ab1785a8d1" "--export" "__wbindgen_describe___wbg_new_1337c8400b2ec634" "--export" "__wbindgen_describe___wbg_new_18ce28d0ddee0156" "--export" "__wbindgen_describe___wbg_new_1a3507d3abb54eeb" "--export" "__wbindgen_describe___wbg_new_23614fffbe9395ac" "--export" "__wbindgen_describe___wbg_new_30beedfb487ce308" "--export" "__wbindgen_describe___wbg_new_33d10068ba2445f0" "--export" "__wbindgen_describe___wbg_new_417627410f8d1f99" "--export" "__wbindgen_describe___wbg_new_4a89ee4277bcb5f1" "--export" "__wbindgen_describe___wbg_new_4f79199ef7ae3389" "--export" "__wbindgen_describe___wbg_new_579dbd0b7178f067" "--export" "__wbindgen_describe___wbg_new_5e1b138fdc03f0a0" "--export" "__wbindgen_describe___wbg_new_60ccb9b77d77aed2" "--export" "__wbindgen_describe___wbg_new_6a6fd7b20bd39ab5" "--export" "__wbindgen_describe___wbg_new_702cafc357cb39a4" "--export" "__wbindgen_describe___wbg_new_733cb1c105a25b65" "--export" "__wbindgen_describe___wbg_new_7b3f34415e18164a" "--export" "__wbindgen_describe___wbg_new_7c61fa7b4951f591" "--export" "__wbindgen_describe___wbg_new_8455d3bdf842babc" "--export" "__wbindgen_describe___wbg_new_8d92fbade5e3d890" "--export" "__wbindgen_describe___wbg_new_97413b5d2c4b56ed" "--export" "__wbindgen_describe___wbg_new_986b2f16e8f49fbc" "--export" "__wbindgen_describe___wbg_new_9b17d86809098fec" "--export" "__wbindgen_describe___wbg_new_9b39cf6393b96a3c" "--export" "__wbindgen_describe___wbg_new_a175e6f3ac3c5ca7" "--export" "__wbindgen_describe___wbg_new_a3ae08d13f22a941" "--export" "__wbindgen_describe___wbg_new_aa55e04f002d8487" "--export" "__wbindgen_describe___wbg_new_ab319fea70c74bde" "--export" "__wbindgen_describe___wbg_new_af4a4d49613dd275" "--export" "__wbindgen_describe___wbg_new_be81daf5c14a33fb" "--export" "__wbindgen_describe___wbg_new_cb627e3d1e180064" "--export" "__wbindgen_describe___wbg_new_d3355fcf4480af59" "--export" "__wbindgen_describe___wbg_new_d3f478198f38e68a" "--export" "__wbindgen_describe___wbg_new_d7b1ac8b19d806f0" "--export" "__wbindgen_describe___wbg_new_e5faeedc8a8b27c8" "--export" "__wbindgen_describe___wbg_new_f4390514b7315444" "--export" "__wbindgen_describe___wbg_new_f913882913b3c98d" "--export" "__wbindgen_describe___wbg_new_fa77a76b1e260fdb" "--export" "__wbindgen_describe___wbg_newnoargs_3f75631053aa3ccb" "--export" "__wbindgen_describe___wbg_newregexp_d25a8759c4f3db16" "--export" "__wbindgen_describe___wbg_newwithargs_51c97b1da3c37faa" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_845dd9bbfab35bf3" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_9f6f1a31d1b3fb92" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_ae22762cbd707add" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_ba4a490cbccb1174" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_c45d994ceee4b147" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_cbf280d930333efe" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_d0a2d569619eaa76" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_d42ff58ae38acedf" "--export" "__wbindgen_describe___wbg_newwithbyteoffset_fe4326f9e685c828" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_1a2534df6c882863" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_1f8688725a21f65e" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_270d572e3184dfb7" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_45c94bf0adc858c0" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_682072c6a2d534a7" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_7df401a4b7520766" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_a1be5468bf26fda6" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_d43d260fcd00cf57" "--export" "__wbindgen_describe___wbg_newwithbyteoffsetandlength_f2a133dc047c5099" "--export" "__wbindgen_describe___wbg_newwithlength_1f81398dbe358918" "--export" "__wbindgen_describe___wbg_newwithlength_227d5aa8ea677b1e" "--export" "__wbindgen_describe___wbg_newwithlength_43700aa9b8c9371d" "--export" "__wbindgen_describe___wbg_newwithlength_ac601b9b9635b986" "--export" "__wbindgen_describe___wbg_newwithlength_b546c5842f426109" "--export" "__wbindgen_describe___wbg_newwithlength_c05e8a06300384e8" "--export" "__wbindgen_describe___wbg_newwithlength_ce0d13c90f2083e8" "--export" "__wbindgen_describe___wbg_newwithlength_d53fb14e69cc7c77" "--export" "__wbindgen_describe___wbg_newwithlength_d57aa88a9fc2a8a6" "--export" "__wbindgen_describe___wbg_newwithlength_efd10c358c49d3f3" "--export" "__wbindgen_describe___wbg_newwithyearmonth_e95d9ddacafea583" "--export" "__wbindgen_describe___wbg_newwithyearmonthday_a48c86fdd53a76da" "--export" "__wbindgen_describe___wbg_newwithyearmonthdayhr_1251c21fe363a968" "--export" "__wbindgen_describe___wbg_newwithyearmonthdayhrmin_e11bedbb7b75bddc" "--export" "__wbindgen_describe___wbg_newwithyearmonthdayhrminsec_728614ecd3ba7d92" "--export" "__wbindgen_describe___wbg_newwithyearmonthdayhrminsecmilli_934644656121db4c" "--export" "__wbindgen_describe___wbg_next_0662f247ea412045" "--export" "__wbindgen_describe___wbg_next_6ac710decc52b7d3" "--export" "__wbindgen_describe___wbg_next_a7a82545420ac7f3" "--export" "__wbindgen_describe___wbg_next_e769033d71e7e4a9" "--export" "__wbindgen_describe___wbg_normalize_e304b4df356724f7" "--export" "__wbindgen_describe___wbg_notify_5fa54023f6fd3fc3" "--export" "__wbindgen_describe___wbg_notify_db30fcab5a055a5f" "--export" "__wbindgen_describe___wbg_now_973ccdfc61b18ea7" "--export" "__wbindgen_describe___wbg_of_07c642d343420936" "--export" "__wbindgen_describe___wbg_of_0a46e969758ef394" "--export" "__wbindgen_describe___wbg_of_1dd013847cbadea9" "--export" "__wbindgen_describe___wbg_of_503e1e3c7fb3c81c" "--export" "__wbindgen_describe___wbg_of_f1beec0f87e27d53" "--export" "__wbindgen_describe___wbg_or_6042b9e59c10efac" "--export" "__wbindgen_describe___wbg_ownKeys_dc8424c93ddf39a4" "--export" "__wbindgen_describe___wbg_padEnd_c590182c1aba3ee3" "--export" "__wbindgen_describe___wbg_padStart_ef6a1cc7e0eb9736" "--export" "__wbindgen_describe___wbg_parseFloat_252a96085b6c8acd" "--export" "__wbindgen_describe___wbg_parseFloat_cea8cb7cb36811ff" "--export" "__wbindgen_describe___wbg_parseInt_284d613ff44c6eea" "--export" "__wbindgen_describe___wbg_parseInt_cfca0e4f323a5b5d" "--export" "__wbindgen_describe___wbg_parse_747b252f6a7d6d70" "--export" "__wbindgen_describe___wbg_parse_fbf023909bceb424" "--export" "__wbindgen_describe___wbg_pop_2f63226dc0347583" "--export" "__wbindgen_describe___wbg_pow_f7f3c09125dd9be8" "--export" "__wbindgen_describe___wbg_preventExtensions_16e0c5d34a7f1f10" "--export" "__wbindgen_describe___wbg_preventExtensions_c242fbadf5e46e89" "--export" "__wbindgen_describe___wbg_propertyIsEnumerable_fb431f1a954b77be" "--export" "__wbindgen_describe___wbg_push_1e0f09905f069c37" "--export" "__wbindgen_describe___wbg_race_c7b69c111c6bd1b6" "--export" "__wbindgen_describe___wbg_random_99043667f3d9de03" "--export" "__wbindgen_describe___wbg_raw_06a112430f733f5d" "--export" "__wbindgen_describe___wbg_raw_27fd4fd5a519a878" "--export" "__wbindgen_describe___wbg_raw_2ae4f4060385f1e5" "--export" "__wbindgen_describe___wbg_raw_52f9c9ca42e1c565" "--export" "__wbindgen_describe___wbg_raw_6a24c85c6fe972b7" "--export" "__wbindgen_describe___wbg_raw_7f33364d7f5324c2" "--export" "__wbindgen_describe___wbg_raw_a4711d4c547635a4" "--export" "__wbindgen_describe___wbg_raw_cfb3fce18b94efa0" "--export" "__wbindgen_describe___wbg_raw_eefe70142e60cbaf" "--export" "__wbindgen_describe___wbg_reduceRight_8a6a86c3f2386163" "--export" "__wbindgen_describe___wbg_reduce_14ff9ef253247399" "--export" "__wbindgen_describe___wbg_reject_aa94b3b0f08a08c6" "--export" "__wbindgen_describe___wbg_repeat_2dc1bf6cb9293121" "--export" "__wbindgen_describe___wbg_replace_63ce69aa4df625d8" "--export" "__wbindgen_describe___wbg_replace_89ade3c620cc3103" "--export" "__wbindgen_describe___wbg_replace_9ef0032853b48ae0" "--export" "__wbindgen_describe___wbg_replace_aadbf22e298a7c3f" "--export" "__wbindgen_describe___wbg_replace_f7098aa4bb7af996" "--export" "__wbindgen_describe___wbg_resolve_d69c6f585bef92f6" "--export" "__wbindgen_describe___wbg_resolvedOptions_22cdb0c00384a8ed" "--export" "__wbindgen_describe___wbg_resolvedOptions_b3cfeb2157d7b8d6" "--export" "__wbindgen_describe___wbg_resolvedOptions_bed9cc02100ee3ff" "--export" "__wbindgen_describe___wbg_resolvedOptions_c84a267b4cc3ee8b" "--export" "__wbindgen_describe___wbg_return_4c232b6633735ff4" "--export" "__wbindgen_describe___wbg_reverse_c11584565281ccc5" "--export" "__wbindgen_describe___wbg_revocable_4ea8fd7989e689f8" "--export" "__wbindgen_describe___wbg_rightContext_921788342dd29bd0" "--export" "__wbindgen_describe___wbg_round_f2995c83e972d93a" "--export" "__wbindgen_describe___wbg_seal_2d8bf0f9dcec33d1" "--export" "__wbindgen_describe___wbg_search_55d90b41fa745bc9" "--export" "__wbindgen_describe___wbg_search_5674c557d6e125ea" "--export" "__wbindgen_describe___wbg_select_e8ae5d4f296d4563" "--export" "__wbindgen_describe___wbg_self_eb173a4fa42a3937" "--export" "__wbindgen_describe___wbg_setDate_748caf20de9ef044" "--export" "__wbindgen_describe___wbg_setFloat32_68f1648cd68e076b" "--export" "__wbindgen_describe___wbg_setFloat32_b81720caa55969db" "--export" "__wbindgen_describe___wbg_setFloat64_063f8bbb56ba03e9" "--export" "__wbindgen_describe___wbg_setFloat64_b17ac75202f3ad44" "--export" "__wbindgen_describe___wbg_setFullYear_067d3fef8c869325" "--export" "__wbindgen_describe___wbg_setFullYear_4a92e15ad23b9fcd" "--export" "__wbindgen_describe___wbg_setFullYear_8b6e2d6c2168529c" "--export" "__wbindgen_describe___wbg_setHours_28b25e741e255fd5" "--export" "__wbindgen_describe___wbg_setInt16_16d8a759d10040ac" "--export" "__wbindgen_describe___wbg_setInt16_5abc52143c0b8751" "--export" "__wbindgen_describe___wbg_setInt32_0f55cf67c77c6b98" "--export" "__wbindgen_describe___wbg_setInt32_d06f459f66608423" "--export" "__wbindgen_describe___wbg_setInt8_4064fa7529df1190" "--export" "__wbindgen_describe___wbg_setMilliseconds_78f71b801e73c0dd" "--export" "__wbindgen_describe___wbg_setMinutes_613ed8f8de7d2aeb" "--export" "__wbindgen_describe___wbg_setMonth_9f7d3b7f1186e1c6" "--export" "__wbindgen_describe___wbg_setPrototypeOf_3bd66ad9d415e52f" "--export" "__wbindgen_describe___wbg_setPrototypeOf_d68af90a12957baa" "--export" "__wbindgen_describe___wbg_setSeconds_05f7fc860b69f08e" "--export" "__wbindgen_describe___wbg_setTime_37b846dd7ba5234b" "--export" "__wbindgen_describe___wbg_setUTCDate_711008003a9bdc5d" "--export" "__wbindgen_describe___wbg_setUTCFullYear_cc14841920571368" "--export" "__wbindgen_describe___wbg_setUTCFullYear_dc319d912ed908e3" "--export" "__wbindgen_describe___wbg_setUTCFullYear_dd4e7a5eaa62daaf" "--export" "__wbindgen_describe___wbg_setUTCHours_1cec73b63b9e5b8d" "--export" "__wbindgen_describe___wbg_setUTCMilliseconds_3870e645093971be" "--export" "__wbindgen_describe___wbg_setUTCMinutes_62a61487629f8c18" "--export" "__wbindgen_describe___wbg_setUTCMonth_d6c23a181739f082" "--export" "__wbindgen_describe___wbg_setUTCSeconds_92b488b1fb46a398" "--export" "__wbindgen_describe___wbg_setUint16_467c64b5d3eaaa39" "--export" "__wbindgen_describe___wbg_setUint16_5c3e33b232edf3a7" "--export" "__wbindgen_describe___wbg_setUint32_14a280dccc5d1167" "--export" "__wbindgen_describe___wbg_setUint32_67d73c74b785c633" "--export" "__wbindgen_describe___wbg_setUint8_13eba57e36cb0b7c" "--export" "__wbindgen_describe___wbg_set_0798e6c8e63b23e0" "--export" "__wbindgen_describe___wbg_set_12c92121a6c21951" "--export" "__wbindgen_describe___wbg_set_4a5f19d033698912" "--export" "__wbindgen_describe___wbg_set_4e95a2a42f416514" "--export" "__wbindgen_describe___wbg_set_54806dad0557a913" "--export" "__wbindgen_describe___wbg_set_658d7bc2fca08ac9" "--export" "__wbindgen_describe___wbg_set_6648eb761ae388b1" "--export" "__wbindgen_describe___wbg_set_7a3881905fbcc169" "--export" "__wbindgen_describe___wbg_set_7b4f95a1d1255f7f" "--export" "__wbindgen_describe___wbg_set_8eda7ffc36c427c4" "--export" "__wbindgen_describe___wbg_set_97c4bb1ef39431e5" "--export" "__wbindgen_describe___wbg_set_a33a0d96d2b5baf5" "--export" "__wbindgen_describe___wbg_set_a7ab4ac6ad2fa28d" "--export" "__wbindgen_describe___wbg_set_d8fce1aa2ce44266" "--export" "__wbindgen_describe___wbg_set_f07ec94184f0fbad" "--export" "__wbindgen_describe___wbg_set_f11800a514682f5f" "--export" "__wbindgen_describe___wbg_set_f91e5dec95f7acf8" "--export" "__wbindgen_describe___wbg_setindex_09f26c3e8337388a" "--export" "__wbindgen_describe___wbg_setindex_24ddbec1985eb829" "--export" "__wbindgen_describe___wbg_setindex_29a23b04df2d63dd" "--export" "__wbindgen_describe___wbg_setindex_429df830f1971fc4" "--export" "__wbindgen_describe___wbg_setindex_5c900ea94edfc403" "--export" "__wbindgen_describe___wbg_setindex_7389f24346784d44" "--export" "__wbindgen_describe___wbg_setindex_a0b6da05a427a93e" "--export" "__wbindgen_describe___wbg_setindex_cf6e6cb57ca496cb" "--export" "__wbindgen_describe___wbg_setindex_d5280229b2fe49ee" "--export" "__wbindgen_describe___wbg_setlastindex_d2eda61121a45773" "--export" "__wbindgen_describe___wbg_setmessage_e30104627265b85f" "--export" "__wbindgen_describe___wbg_setname_576b4fc963f04b6e" "--export" "__wbindgen_describe___wbg_shift_110b9453b742f8b1" "--export" "__wbindgen_describe___wbg_sign_bc3093a860a8d047" "--export" "__wbindgen_describe___wbg_sin_aabbdee2350eabb8" "--export" "__wbindgen_describe___wbg_sinh_35a287639f705b2f" "--export" "__wbindgen_describe___wbg_size_26c670bf6a034ba0" "--export" "__wbindgen_describe___wbg_size_4fbf28623ad0a753" "--export" "__wbindgen_describe___wbg_slice_01ffca918722c71b" "--export" "__wbindgen_describe___wbg_slice_44ca5fd0a3c0b456" "--export" "__wbindgen_describe___wbg_slice_4f62d1c9a33d42db" "--export" "__wbindgen_describe___wbg_slice_63cddb0f2e2f048e" "--export" "__wbindgen_describe___wbg_slice_6f6a38b253be7929" "--export" "__wbindgen_describe___wbg_slice_765e0a4b66719881" "--export" "__wbindgen_describe___wbg_slice_9082a372a06009fe" "--export" "__wbindgen_describe___wbg_slice_9feb9bb5c58154c5" "--export" "__wbindgen_describe___wbg_slice_a3711c92c801d742" "--export" "__wbindgen_describe___wbg_slice_b19dadd6bf4d6471" "--export" "__wbindgen_describe___wbg_slice_c97c8099afb8f8cd" "--export" "__wbindgen_describe___wbg_slice_cbac65b76fa1428a" "--export" "__wbindgen_describe___wbg_slice_cdae81cc0d15bb6c" "--export" "__wbindgen_describe___wbg_slice_daa1ee30fadadba6" "--export" "__wbindgen_describe___wbg_slice_e3c3a4d3bd5e9838" "--export" "__wbindgen_describe___wbg_some_008fc08783cdceb8" "--export" "__wbindgen_describe___wbg_sort_d9ef02c31675d3ae" "--export" "__wbindgen_describe___wbg_source_719293b1d59c151c" "--export" "__wbindgen_describe___wbg_species_8f2f3940a4dcca04" "--export" "__wbindgen_describe___wbg_splice_ad27232493472770" "--export" "__wbindgen_describe___wbg_split_6f2fba12116b81c8" "--export" "__wbindgen_describe___wbg_split_90464220b136e6b1" "--export" "__wbindgen_describe___wbg_split_98c92ea786e3d588" "--export" "__wbindgen_describe___wbg_split_acfc1a7637e596d7" "--export" "__wbindgen_describe___wbg_split_f337828cc6ae0874" "--export" "__wbindgen_describe___wbg_sqrt_f7a5926de08f31e6" "--export" "__wbindgen_describe___wbg_startsWith_ccf533e23ab78d6e" "--export" "__wbindgen_describe___wbg_sticky_7b1924939f37e57a" "--export" "__wbindgen_describe___wbg_store_be6ec602644bdad8" "--export" "__wbindgen_describe___wbg_stringify_5613884fe97ea1b7" "--export" "__wbindgen_describe___wbg_stringify_a9599665c88ecde9" "--export" "__wbindgen_describe___wbg_stringify_ce0873f498ecd786" "--export" "__wbindgen_describe___wbg_sub_198364bfe3c90312" "--export" "__wbindgen_describe___wbg_subarray_47a78625cbc12e69" "--export" "__wbindgen_describe___wbg_subarray_53d668a96c59e31c" "--export" "__wbindgen_describe___wbg_subarray_548e84a6609a758d" "--export" "__wbindgen_describe___wbg_subarray_7f47cdfd9f467d00" "--export" "__wbindgen_describe___wbg_subarray_9527ee0e0a6d1725" "--export" "__wbindgen_describe___wbg_subarray_977295a123deabf3" "--export" "__wbindgen_describe___wbg_subarray_9f03bf376c25b938" "--export" "__wbindgen_describe___wbg_subarray_e88a403ffda5242b" "--export" "__wbindgen_describe___wbg_subarray_ffba3b2fe61cf32b" "--export" "__wbindgen_describe___wbg_substr_fd070137ee2b2ae9" "--export" "__wbindgen_describe___wbg_substring_2be8acf5443c5414" "--export" "__wbindgen_describe___wbg_supportedLocalesOf_57ea29edc20ae595" "--export" "__wbindgen_describe___wbg_supportedLocalesOf_68cdeb06abb33a13" "--export" "__wbindgen_describe___wbg_supportedLocalesOf_e2f8833a39848663" "--export" "__wbindgen_describe___wbg_supportedLocalesOf_f0fec09344c5eca9" "--export" "__wbindgen_describe___wbg_tan_215800f802ad4a0d" "--export" "__wbindgen_describe___wbg_tanh_6d9a36cbb8e122d9" "--export" "__wbindgen_describe___wbg_test_db9a848e43c0fe2e" "--export" "__wbindgen_describe___wbg_then_2828eb404021d199" "--export" "__wbindgen_describe___wbg_then_b285342dc1f8465f" "--export" "__wbindgen_describe___wbg_throw_0c462e66089bb327" "--export" "__wbindgen_describe___wbg_toDateString_1d9f6225e5b9dcc7" "--export" "__wbindgen_describe___wbg_toExponential_366bf73a425657d0" "--export" "__wbindgen_describe___wbg_toFixed_63b9e2ec3743fb02" "--export" "__wbindgen_describe___wbg_toISOString_ba4502de06cc485f" "--export" "__wbindgen_describe___wbg_toJSON_fc3d15b55a81d615" "--export" "__wbindgen_describe___wbg_toLocaleDateString_cdb3939a2e21afa9" "--export" "__wbindgen_describe___wbg_toLocaleLowerCase_ec02216e4e81c192" "--export" "__wbindgen_describe___wbg_toLocaleString_063610072e1bdd2c" "--export" "__wbindgen_describe___wbg_toLocaleString_7918af1820065d76" "--export" "__wbindgen_describe___wbg_toLocaleString_c0be958b3c29825a" "--export" "__wbindgen_describe___wbg_toLocaleString_c4537506796e77fb" "--export" "__wbindgen_describe___wbg_toLocaleTimeString_0f0a2dbe551bebb6" "--export" "__wbindgen_describe___wbg_toLocaleUpperCase_4cb341b165fc3dc5" "--export" "__wbindgen_describe___wbg_toLowerCase_cef99d366fc4e091" "--export" "__wbindgen_describe___wbg_toPrecision_a21524697984c5ad" "--export" "__wbindgen_describe___wbg_toPrimitive_79f5d81b1df9feb2" "--export" "__wbindgen_describe___wbg_toStringTag_8b591c90fda22ac0" "--export" "__wbindgen_describe___wbg_toString_109cf43945f0e916" "--export" "__wbindgen_describe___wbg_toString_174545d2ee0e7f94" "--export" "__wbindgen_describe___wbg_toString_3d5ad00c86cca4d1" "--export" "__wbindgen_describe___wbg_toString_4d53a49099b72101" "--export" "__wbindgen_describe___wbg_toString_7de544dbe83ee7ab" "--export" "__wbindgen_describe___wbg_toString_880d1af12216ff40" "--export" "__wbindgen_describe___wbg_toString_c392e893cf9d5ad0" "--export" "__wbindgen_describe___wbg_toString_c5b61ff376966741" "--export" "__wbindgen_describe___wbg_toString_f2f7a8a86a6f8071" "--export" "__wbindgen_describe___wbg_toTimeString_1f1b1339a016dd06" "--export" "__wbindgen_describe___wbg_toUTCString_2e9de29ea746d6dd" "--export" "__wbindgen_describe___wbg_toUpperCase_50319cca38155cdd" "--export" "__wbindgen_describe___wbg_trimEnd_b3caa96702264f44" "--export" "__wbindgen_describe___wbg_trimLeft_f26bc337ef509f62" "--export" "__wbindgen_describe___wbg_trimRight_7adae8189e355721" "--export" "__wbindgen_describe___wbg_trimStart_82b5c0a6946a2abf" "--export" "__wbindgen_describe___wbg_trim_3491add5f855d8db" "--export" "__wbindgen_describe___wbg_trunc_e2410a9a4c08333f" "--export" "__wbindgen_describe___wbg_unescape_ebe6d7bea158648a" "--export" "__wbindgen_describe___wbg_unicode_a225a12986a69b32" "--export" "__wbindgen_describe___wbg_unscopables_0a4085ec1729e277" "--export" "__wbindgen_describe___wbg_unshift_95e184be3818e5b1" "--export" "__wbindgen_describe___wbg_validate_e2296aeb80580dae" "--export" "__wbindgen_describe___wbg_valueOf_00efceb12ad26309" "--export" "__wbindgen_describe___wbg_valueOf_25e6d3505aa9a7c4" "--export" "__wbindgen_describe___wbg_valueOf_2e76de8e9a7dc6e2" "--export" "__wbindgen_describe___wbg_valueOf_4ffd2117f470ddf1" "--export" "__wbindgen_describe___wbg_valueOf_dfc9856466d6dd0e" "--export" "__wbindgen_describe___wbg_valueOf_ead856c2627b4f96" "--export" "__wbindgen_describe___wbg_value_6a528ba9f67c68d8" "--export" "__wbindgen_describe___wbg_values_42899f57c5b0afbc" "--export" "__wbindgen_describe___wbg_values_4942dac29345c6f0" "--export" "__wbindgen_describe___wbg_values_549d1b5e46b8df09" "--export" "__wbindgen_describe___wbg_values_5a80d447d7773e1a" "--export" "__wbindgen_describe___wbg_wait_1a324d9147da2b8e" "--export" "__wbindgen_describe___wbg_wait_eb85a18b89009a54" "--export" "__wbindgen_describe___wbg_window_9692d9a9a099e2e4" "--export" "__wbindgen_describe___wbg_xor_8a5e727fcfc6f7c0" "--export=__heap_base" "--export=__data_end" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\wasm_test.3q39hs9eshgkzfg.rcgu.o" "--gc-sections" "-O0" "-L" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps" "-L" "C:\\Files\\Projects\\wasm-test\\target\\debug\\deps" "-L" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\libweb_sys-70f9bc55d294f18b.rlib" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\libjs_sys-1b4938a9c335f4b5.rlib" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\libwasm_bindgen-c6f884f9c857468f.rlib" "C:\\Files\\Projects\\wasm-test\\target\\wasm32-unknown-unknown\\debug\\deps\\libcfg_if-435261dc00d3f565.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libstd-a4439cee519086e4.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libpanic_abort-9dd60ba28e01f5a9.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libdlmalloc-984ee34ef8442045.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\librustc_demangle-9b9b15ac24e081c2.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libhashbrown-ecc4b0830fc36dcf.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\librustc_std_workspace_alloc-27f4a501cd26f0c1.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libunwind-e17ef2df49fdeac9.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libcfg_if-0a48eb148ea51468.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\liblibc-ccd1c44fb7028fd8.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\liballoc-3a6e2211446a0f13.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\librustc_std_workspace_core-bfe89f587d3bf9f7.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libcore-c83074681f2b006a.rlib" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\libcompiler_builtins-e1980b88fd1d13d6.rlib"
  = note: rust-lld: error: cannot open Files\: no such file or directory
          rust-lld: error: cannot open (x86)\\Rust\: no such file or directory
          rust-lld: error: cannot open nightly\: no such file or directory
          rust-lld: error: cannot open MSVC\: no such file or directory
          rust-lld: error: cannot open 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib: no such file or directory
          rust-lld: error: cannot open Files\: no such file or directory
          rust-lld: error: cannot open (x86)\\Rust\: no such file or directory
          rust-lld: error: cannot open nightly\: no such file or directory
          rust-lld: error: cannot open MSVC\: no such file or directory
          rust-lld: error: cannot open 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\self-contained: no such file or directory
          rust-lld: error: cannot open Files\: no such file or directory
          rust-lld: error: cannot open (x86)\\Rust\: no such file or directory
          rust-lld: error: cannot open nightly\: no such file or directory
          rust-lld: error: cannot open MSVC\: no such file or directory
          rust-lld: error: cannot open 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib: no such file or directory
          rust-lld: error: cannot open C:\\Program\: no such file or directory
          rust-lld: error: cannot open Files\: no such file or directory
          rust-lld: error: cannot open (x86)\\Rust\: no such file or directory
          rust-lld: error: cannot open nightly\: no such file or directory
          rust-lld: error: cannot open MSVC\: no such file or directory
          rust-lld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)


error: aborting due to previous error

error: could not compile `wasm-test`.

It looks like spaces in the path aren't handled correctly. I installed Rust using the msi installer and then unzipped the wasm32-unknown-unknown standard library in the correct folder. Does someone know what changed in the past three months? Otherwise, I can check in-between versions to narrow down the regression. I can still build for x86 and thumbv7m targets without a linker error.

rustc --version --verbose:

rustc 1.48.0-nightly (0e2c1281e 2020-09-07)
binary: rustc
commit-hash: 0e2c1281e909ca38479b97962fc9248f75d66412
commit-date: 2020-09-07
host: i686-pc-windows-msvc
release: 1.48.0-nightly
LLVM version: 11.0

I'm using Windows 10 64-bit.

@jminer jminer added the C-bug Category: This is a bug. label Sep 8, 2020
@jminer
Copy link
Author

jminer commented Sep 8, 2020

I checked more versions and found the nightly introducing the issue:

Good:

rustc 1.47.0-nightly (663d2f5cd 2020-08-22)
binary: rustc
commit-hash: 663d2f5cd3163f17eddb74ee1e028d542255f21a
commit-date: 2020-08-22
host: i686-pc-windows-msvc
release: 1.47.0-nightly
LLVM version: 10.0

Bad:

rustc 1.47.0-nightly (5180f3da5 2020-08-23)
binary: rustc
commit-hash: 5180f3da5fd72627a8d38558ad1297df38793acd
commit-date: 2020-08-23
host: i686-pc-windows-msvc
release: 1.47.0-nightly
LLVM version: 11.0

I see that LLVM was upgraded from 10 to 11 in that nightly. Was this a regression in LLD?

@jonas-schievink jonas-schievink added A-linkage Area: linking into static, shared libraries and binaries O-wasm Target: WASM (WebAssembly), http://webassembly.org/ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. labels Sep 8, 2020
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Sep 8, 2020
@LeSeulArtichaut LeSeulArtichaut added the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label Sep 8, 2020
@LeSeulArtichaut
Copy link
Contributor

Let’s bisect this. @rustbot ping cleanup
Commit range for the regression would be 663d2f5...5180f3d

@rustbot rustbot added the ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections label Sep 8, 2020
@rustbot
Copy link
Collaborator

rustbot commented Sep 8, 2020

Hey Cleanup Crew ICE-breakers! This bug has been identified as a good
"Cleanup ICE-breaking candidate". In case it's useful, here are some
instructions for tackling these sorts of bugs. Maybe take a look?
Thanks! <3

cc @AminArria @camelid @chrissimpkins @contrun @DutchGhost @elshize @ethanboxx @h-michael @HallerPatrick @hdhoang @hellow554 @imtsuki @kanru @KarlK90 @LeSeulArtichaut @MAdrianMattocks @matheus-consoli @mental32 @nmccarty @Noah-Kennedy @pard68 @PeytonT @pierreN @Redblueflame @RobbieClarken @RobertoSnap @robjtede @SarthakSingh31 @senden9 @shekohex @sinato @spastorino @turboladen @woshilapin @yerke

@apiraino
Copy link
Contributor

Assigning P-high as discussed as part of the Prioritization Working Group procedure and removing I-prioritize.

Would be great, though, to gain a bit more insight about this issue. Feel free to adjust priority upon closer investigation.

@apiraino apiraino added P-high High priority and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Sep 16, 2020
@mstallmo
Copy link

mstallmo commented Sep 17, 2020

I did some evaluation with bisect-rustc and it looks like this issue may be a 32-bit Windows specific. bisect-rustc found no regressions in the commit range 663d2f5 to 5180f3d using the provided code sample on my 64-bit Windows machine as well as no regressions on my 64-bit Linux machine.

@spastorino
Copy link
Member

@rustbot ping windows

@rustbot rustbot added the O-windows Operating system: Windows label Sep 17, 2020
@rustbot
Copy link
Collaborator

rustbot commented Sep 17, 2020

Hey Windows Group! This bug has been identified as a good "Windows candidate".
In case it's useful, here are some instructions for tackling these sorts of
bugs. Maybe take a look?
Thanks! <3

cc @arlosi @danielframpton @gdr-at-ms @kennykerr @luqmana @lzybkr @retep998 @rylev @sivadeilra

@retep998
Copy link
Member

Given that the linker input string contains "-L" "C:\\Program Files (x86)\\Rust nightly MSVC 1.48\\lib\\rustlib\\wasm32-unknown-unknown\\lib\\self-contained" I have no reason to believe Rust is doing anything wrong and that it is LLD which is at fault here.

Someone should debug LLD and figure out where those strings are getting split up incorrectly.

@jyn514 jyn514 added the A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. label Sep 25, 2020
@pnkfelix
Copy link
Member

We did a bit of a deeper dive than expected into this bug during this week's T-compiler planning meeting.

The relevant portion of the log starts at around here

Investigation is ongoing

@eddyb
Copy link
Member

eddyb commented Sep 25, 2020

Summarizing from the Zulip discussion:

I believe this was introduced by llvm/llvm-project@928e9e1, which fixed parsing "response files" (@file indicating file's contents should be inlined in the command-line arguments), to use the encoding style of the host platform instead of hardcoding "GNU". But our code still outputs the GNU style, even on Windows, and that's why it breaks.

I expect all we need to do is pass -rsp-quoting=posix here (these are arguments passed outside of the @ file):

LldFlavor::Wasm => "wasm",

Alternatively, we could try and come up with an escaping method that is a superset of the two implemented variants:

if self.is_like_msvc {
// This is "documented" at
// https://docs.microsoft.com/en-us/cpp/build/reference/at-specify-a-linker-response-file
//
// Unfortunately there's not a great specification of the
// syntax I could find online (at least) but some local
// testing showed that this seemed sufficient-ish to catch
// at least a few edge cases.
write!(f, "\"")?;
for c in self.arg.chars() {
match c {
'"' => write!(f, "\\{}", c)?,
c => write!(f, "{}", c)?,
}
}
write!(f, "\"")?;
} else {
// This is documented at https://linux.die.net/man/1/ld, namely:
//
// > Options in file are separated by whitespace. A whitespace
// > character may be included in an option by surrounding the
// > entire option in either single or double quotes. Any
// > character (including a backslash) may be included by
// > prefixing the character to be included with a backslash.
//
// We put an argument on each line, so all we need to do is
// ensure the line is interpreted as one whole argument.
for c in self.arg.chars() {
match c {
'\\' | ' ' => write!(f, "\\{}", c)?,
c => write!(f, "{}", c)?,
}
}
}

Then it wouldn't matter what style is expected, it would always be correct. I believe our Windows escaping would be valid everywhere, at least from briefly reading the comments in the snippet above, so we could just always use that.

@pnkfelix pnkfelix self-assigned this Oct 1, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Oct 1, 2020

assigning self to figure out if this is also a stable-to-beta regression, and if so, identify a beta-backportable fix.

@pnkfelix pnkfelix added regression-from-stable-to-beta Performance or correctness regression from stable to beta. and removed regression-from-stable-to-nightly Performance or correctness regression from stable to nightly. labels Oct 2, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Oct 2, 2020

(yes, it affects beta, and basically breaks LDD usage on windows, which means it breaks wasm32-unknown-unknown targets on Windows.)

Upgrading priority to P-critical to reflect importance of addressing this.

(Luckily @eddyb has already outlined some reasonable solutions, as discussed above.)

@pnkfelix pnkfelix added P-critical Critical priority and removed P-high High priority labels Oct 2, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Oct 2, 2020

Hurm. My local windows virtual box ran x.py dist with lld = true in the config.toml, and the resulting set up ... does not exhibit the problem. 😢

I haven't dug deeply into why it doesn't reproduce the problem, beyond checking the recent git log info for llvm and for rust to see if anyone secretly fixed this.

My main point in reporting this here is to say that I am not confident I'll be able to fix the bug if I cannot reproduce it via a local build.

@Mark-Simulacrum
Copy link
Member

I've posted #77543 which I think applies @eddyb's suggestion (I haven't tested that code). I will work on getting a try build which folks who can reproduce could then test.

@Mark-Simulacrum
Copy link
Member

@jminer or someone else who can reproduce this, could you try the try build?

You should be able to use the following:

cargo install rustup-toolchain-install-master
rustup-toolchain-install-master -t wasm32-unknown-unknown -i x86_64-pc-windows-msvc c4ca2fa230dcaef515acf148ec70c1850bbe5dc1 # and/or i686-pc-windows-msvc
cargo +c4ca2fa230dcaef515acf148ec70c1850bbe5dc1 build # or however you reproduce

@jminer
Copy link
Author

jminer commented Oct 5, 2020

I installed from these URLs:

https://ci-artifacts.rust-lang.org/rustc-builds/c4ca2fa230dcaef515acf148ec70c1850bbe5dc1/rust-nightly-i686-pc-windows-msvc.msi
https://ci-artifacts.rust-lang.org/rustc-builds/c4ca2fa230dcaef515acf148ec70c1850bbe5dc1/rust-std-nightly-wasm32-unknown-unknown.tar.gz

And cargo build --target wasm32-unknown-unknown worked without an error so it does seem to be fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linkage Area: linking into static, shared libraries and binaries A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc ICEBreaker-Cleanup-Crew Helping to "clean up" bugs with minimal examples and bisections O-wasm Target: WASM (WebAssembly), http://webassembly.org/ O-windows Operating system: Windows P-critical Critical priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.