-
Notifications
You must be signed in to change notification settings - Fork 536
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
CLR hosting #9572
Draft
grendello
wants to merge
119
commits into
main
Choose a base branch
from
dev/grendel/clr-host
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
CLR hosting #9572
Changes from all commits
Commits
Show all changes
119 commits
Select commit
Hold shift + click to select a range
4c6b83d
Enable static linking with libc++
grendello e2f89a4
Remove C++ ABI compatibility sources
grendello e2ad767
Update apkdesc files
grendello 33500bb
Playing around with some ideas
grendello 95ecd76
More consistent use of std::string_view + remove unused code
grendello 539b080
Making EmbeddedAssemblies a static type
grendello 2aa6e2b
More cleanup
grendello 07246e5
More move to static, more cleanup
grendello 6649f01
MonodroidRuntime is static now
grendello 51e007a
Buglets fixed
grendello 497e094
Trying to find out why AppContext.GetData doesn't appear to work
grendello 00d300f
Cleanup
grendello 69a35ad
Lengths and offsets...
grendello 01c77c0
Cleanup
grendello e0b1e57
Start using std::format and std::string_view string literals
grendello 15ace79
A bit less of reinterpret_cast<>
grendello 28c6439
Conversion to std::format continues
grendello 98a4054
More std::format
grendello ac5c3ed
Friendlier, no need to use `std::format` directly in log_* anymore
grendello 886ef40
Cleanup
grendello 15d864f
Cleanup
grendello 00f55b5
Update apkdesc files
grendello d383a44
std::format doesn't like null pointers when printing strings
grendello 5a4d188
Address feedback
grendello 18fd987
Enable static linking with libc++
grendello 3f2b078
Remove C++ ABI compatibility sources
grendello 541c402
Update apkdesc files
grendello cadc2b5
Playing around with some ideas
grendello 0d4b21b
More consistent use of std::string_view + remove unused code
grendello 7db3b37
Making EmbeddedAssemblies a static type
grendello a449f89
More cleanup
grendello b95077d
More move to static, more cleanup
grendello 1d45842
MonodroidRuntime is static now
grendello 7fb04ad
Buglets fixed
grendello 430aea3
Trying to find out why AppContext.GetData doesn't appear to work
grendello 5c728e7
Cleanup
grendello 6e3b5e3
Lengths and offsets...
grendello 6d88346
Cleanup
grendello ad67d54
Start using std::format and std::string_view string literals
grendello 3bc283a
A bit less of reinterpret_cast<>
grendello bbbbb79
Conversion to std::format continues
grendello 4e3fa71
More std::format
grendello 96679f0
Friendlier, no need to use `std::format` directly in log_* anymore
grendello df0e22a
Cleanup
grendello 4cb2c57
Cleanup
grendello 41a3acf
Update apkdesc files
grendello c57ba46
std::format doesn't like null pointers when printing strings
grendello 36a5945
Beginnings of CLR hosting
grendello 8d3c5ba
Address feedback
grendello 20fc6e7
First packaging steps + Java startup code changes
grendello d0faeb8
Build deps + application config for CLR
grendello 555cd9c
Moving on: logging + timing
grendello 77aa40a
Beginnings of initialization code
grendello 6a5ce4c
Merge branch 'main' into dev/grendel/use-libc++
grendello 5d96662
More environment work
grendello d8abae9
Merge branch 'main' into dev/grendel/clr-host
grendello bc699a5
Merge branch 'dev/grendel/use-libc++' into dev/grendel/clr-host
grendello f0c4ef3
Merge branch 'main' into dev/grendel/use-libc++
grendello 75c296e
Merge branch 'dev/grendel/use-libc++' into dev/grendel/clr-host
grendello 94f245f
Merge branch 'main' into dev/grendel/use-libc++
grendello e3c3a16
Merge branch 'dev/grendel/use-libc++' into dev/grendel/clr-host
grendello 0db5414
Merge branch 'main' into dev/grendel/clr-host
grendello 14b675d
Add the CoreCLR runtime falvor
grendello 7d6ec58
Merge branch 'main' into dev/grendel/clr-host
grendello 90e4840
Merge branch 'main' into dev/grendel/clr-host
grendello 67bcec9
New src/native layout
grendello c2e17d9
Reorg continued
grendello f36668c
Merge branch 'main' into dev/grendel/clr-host
grendello b5fa47a
Build appears to be working
grendello 0c2654c
Properly resolve library stubs from runtime packs
grendello 8fa07fa
Fix java runtime jar inclusion
grendello b91865d
Recreate @(ResolvedRuntimePack) item group
grendello 160c059
Merge branch 'main' into dev/grendel/clr-host
grendello 9f71a63
Double-check if a nuget package is indeed our runtime pack
grendello 8b3977b
Don't package runtime stubs
grendello 41d075e
Not needed
grendello 0438495
Merge branch 'main' into dev/grendel/clr-host
grendello b857673
Update to match `main`
grendello 394a016
Remove unnecessary sources
grendello 9ca6c05
Import changes from https://github.com/dotnet/android/pull/9686/
grendello 425301c
Mono -> MonoVM
grendello 2d4691f
Fixes
grendello 198acae
Fixes and workarounds to make CoreCLR build happen
grendello 9eef4c4
Merge branch 'main' into dev/grendel/clr-host
grendello 579505f
Hack to be able to use CoreCLR runtime pack we created
grendello 66a32f5
Fake CoreCLR runtime pack works. Next step: use correct CoreCLR inste…
grendello 79a7006
Merge branch 'main' into dev/grendel/clr-host
grendello cc64d57
Add support for local version of CoreCLR runtime pack
grendello 9421f41
Support for CoreCLR in xaprepare
grendello 487dac0
Limit CoreCLR builds to android-arm64 for now
grendello 3803f37
Build tweaks to make progress easier
grendello 0e0b648
Merge branch 'main' into dev/grendel/clr-host
grendello e47f577
A couple more hacks
grendello f027b24
Merge branch 'main' into dev/grendel/clr-host
grendello c64912a
Fix JCW generation for CoreCLR
grendello 7e8b92c
A handful of fixlets
grendello 8041644
Merge branch 'main' into dev/grendel/clr-host
grendello 4ff8fd0
Fix JCW again
grendello 130161e
Merge branch 'main' into dev/grendel/clr-host
grendello 276a4cf
Revert "Fix JCW again", trying to figure out what's actually broken
grendello d834edc
Add some temporary logging
grendello 9906b4c
Merge branch 'main' into dev/grendel/clr-host
grendello 22fb1c3
Runtime config properties now stored in libxamarin-app.so
grendello af37286
Merge branch 'main' into dev/grendel/clr-host
grendello 57ed2b7
Merge branch 'main' into dev/grendel/clr-host
grendello 0fb2cfd
[WIP] Unicode strings support
grendello 26ae8ef
Merge branch 'main' into dev/grendel/clr-host
grendello 6df7b62
More elegant solution to managing same strings with different encodings
grendello 4b77a37
Add a missing variable
grendello 61b19b6
One step closer
grendello 120244d
Merge branch 'main' into dev/grendel/clr-host
grendello ccb1c86
More work towards assembly store support in CLR
grendello 6774e34
Merge branch 'main' into dev/grendel/clr-host
grendello 215189c
Merge branch 'main' into dev/grendel/clr-host
grendello e080c70
Assembly stores support for CLR done
grendello 6f2229b
Merge branch 'main' into dev/grendel/clr-host
grendello 2a421e7
On the road to first managed call
grendello 2e0b0f6
Merge branch 'main' into dev/grendel/clr-host
grendello 8ddc328
Hook into some error logging in CLR
grendello File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Notes | ||
|
||
## Potential optimizations | ||
|
||
* https://github.com/dotnet/runtime/blob/9b24fb60a19f62620ca1fc5e4eb2e3ae0b3b086d/src/coreclr/binder/assemblybindercommon.cpp#L844-L889 | ||
* Managed C++ assemblies aren't available on Unix, no point in looking for them | ||
* `candidates[]` is `WCHAR*`, while `ProbeAppBundle` takes UTF-8 - no point in doing the | ||
conversion here | ||
* Host contract | ||
* It might make sense to pass strings as Unicode to host and back, to avoid conversions. | ||
p/invoke names for instance, can be Unicode. So can be the assembly names. Native library | ||
names should be UTF-8, but we can generate lookup tables for those at application build time | ||
(e.g. indexed by an xxHash of the Unicode version of the name) - no conversion at run time. | ||
* We need declarations of all he possible HRESULT errors (`S_OK` etc) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn't figure out if we should case it
CoreClr
orCoreCLR
:I found both, so we can probably decide which we prefer?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like CoreCLR better, since CLR is an acronym