Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Fix the mono runtime test config - #958

Closed
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test
Closed

Fix the mono runtime test config#958
lewing wants to merge 9 commits into
bytecodealliance:mainfrom
lewing:lewing-test

Conversation

@lewing

@lewinglewing commented May 29, 2024

Copy link
Copy Markdown
Contributor

Update the build to get things working with the latest mono net9 targets

@mkhamoyan

Copy link
Copy Markdown

@lewingdotnet/runtime#103881 fixed the conflicting naming error, but now when running wit-bindgen with this PR changes I see this failure
csharp_mono_error
Because of this I couldn't validate if the fix is enough.

@lewing

lewing commented Jul 9, 2024

Copy link
Copy Markdown
ContributorAuthor

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 965.25s

need to look at the performance here but csharp-mono tests are green with these changes

@lewing

lewing commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@dicej
with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

Comment threadcrates/csharp/src/csproj.rs Outdated
<ItemGroup>
<NativeFileReference Include=\"{camel}_component_type.o\" Condition=\"Exists('{camel}_component_type.o')\"/>
<_WasiLinkStepArgs Include=\"-Wl,--component-type,{camel}_component_type.wit\" />
<!-- both versions of these seem to fail to find the .o

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wit-bindgen doesn't produce the object file directly anymore,

I've used:

<CustomLinkerArg Include="@(WitComponentImports->Replace('\', '/')->'-Wl,--component-type,&quot;%(Identity)&quot;')" />

In https://github.com/bytecodealliance/componentize-dotnet/pull/35/files#diff-7f4dfa8be7454aa047e35760bfbb0f95c0e1402fd34943606ccd9975e45b8b71

Not sure if _WasiLinkStepArgs is the same?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's another case of bad coevolution dotnet/runtime#107194 but they will be

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The resolution there is that everybody should use LinkerArg over all the other options

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

haha, I see the problem now. That is what I get for not looking again in the morning before.

@dicej

Copy link
Copy Markdown
Collaborator

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

@lewing

Copy link
Copy Markdown
ContributorAuthor

@dicej with this version I'm seeing errors like

---- variants::run stdout ----
Error: failed to read component type file: VariantsWorld_component_type.o
Caused by:
The system cannot find the file specified. (os error 2)

any thoughts?

As of dotnet/runtime#103752, the *_component_type.o files have been replaced with *_component_type.wit files. Perhaps you're using an older runtime?

Sadly I was rushing to get it working last night before heading out, I should have looked again this morning. Sorry for the noise.

@lewing

Copy link
Copy Markdown
ContributorAuthor

Ok, so it was also very confusing that the features were chained so the native aot test build was writing over the mono tests once the compilation issue was fixed.

the 'NuGet-Migrations failure is not related to these changes .

There do now appear to be a couple of failures on the mono side dotnet/runtime#107212

true => format!("<WasmBuildNative>{aot}</WasmBuildNative>"),
false => String::new(),
};
let tfm = "net9.0";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move to Net10 ?
Because we are not going to backport fixes to Net9, right ?
One more below.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there won't be a working net10 sdk for a while unfortunately

Comment threadtests/runtime/main.rs
let out_wasm = out_dir
.join("bin")
.join(configuration)
.join("net9.0")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tmf

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that is only one of the issues here, build doesn't respect the project name, and the publish doesn't respect the output directory. @maraf we should discuss what options we have here

Comment threadtests/runtime/main.rs
.arg("Debug")
.arg(configuration)
.arg("/p:PlatformTarget=AnyCPU")
.arg("--self-contained")

@pavelsavarapavelsavaraSep 2, 2024

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me --self-contained doesn't' work with 9.0.100-preview.6.24328.19 without workload. The publish doesn't fail but the file is located elsewhere and it's not single file.

After I install workload Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk version 9.0.0-preview.6.24327.7 I get

FooWorld failed with 4 error(s) (11.4s) → xxx\
wasm-ld : error : unknown argument: --component-type
wasm-ld : error : unknown file type: FooWorld_component_type.wit

Which makes sense for preview6.

With preview7 I get

 1: error while executing at wasm backtrace:
0: 0x296a7b - .tmpJCkP17!fseek
1: 0x8efe - .tmpJCkP17!load_icu_data
2: 0x8ff4 - .tmpJCkP17!mono_wasm_load_runtime
3: 0x9299 - .tmpJCkP17!initialize_runtime
4: 0x92b8 - .tmpJCkP17!main
5: 0x28bc5c - .tmpJCkP17!__main_void
6: 0x7e78 - .tmpJCkP17!_start
7: 0xb40aff - wit-component:adapter:wasi_snapshot_preview1!wasi:cli/run@0.2.0#run

Which means <WasmSingleFileBundle>true</WasmSingleFileBundle> didn't work.

@lewinglewingSep 6, 2024

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nothing about this will work without the workload, I'm testing against daily builds of 9

using https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
and dotnet-install -c 9.0 -q daily

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add <WasmBuildNative>true</WasmBuildNative> to get it to produce a single file

Comment threadtests/runtime/main.rs
.arg(out_dir.join(format!("{camel}.csproj")))
.arg("-c")
.arg("Debug")
.arg(configuration)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.arg(configuration)
.arg(configuration)
.arg("-bl:publish-mono.binlog")

@lewing

Copy link
Copy Markdown
ContributorAuthor

Several of the issues I hit should be fixed in dotnet/runtime main, but it testing that will be challenging until a proper net10 sdk is produced.

@jsturtevantjsturtevant mentioned this pull request Nov 6, 2024
@lewinglewing closed this Feb 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@lewing@mkhamoyan@dicej@pavelsavara@jsturtevant