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

All assemblies per rid #8187

Closed
wants to merge 126 commits into from
Closed

Conversation

grendello
Copy link
Contributor

No description provided.

  * Migrate to opaque pointers (LLVM 15+) which will be the only ones
    supported from LLVM 16 onwards
  * Change code generation model.  Now the "client" classes don't need
    to concern themselves with **how** the LLVM IR code looks and how
    it is formatted.  Instead, they build a model of the code they want
    to output and let the generator do the rest.
  * Handle many more tasks automatically:
    * LLVM IR string management and registration
    * Buffer management for structures which have pointers to buffers
    * References to local variables and strings
    * Local temporary counting (unnamed labels and function parameters)
* main:
  [tests] Remove `XASdkDeployTests` (dotnet#8139)
LLVM IR we use now generates slightly different native assembler code
* main:
  Bump to google/bundletool@f17ce94a (dotnet#8135)
  [Xamarin.Android.Build.Tasks] Handle IOException in Aapt2Daemon (dotnet#8130)
  [tests] don't set `/uses-sdk@android:targetSdkVersion=34` by default (dotnet#8138)
* main:
  $(AndroidPackVersionSuffix)=preview.7; net8 is 34.0.0-preview.7 (dotnet#8149)
  [Mono.Android] Bind and enumify API-34 (dotnet#8116)
Apps segfault at startup when AOT is enabled, and yet typemaps appear to
be indentical... Investigation TBC tomorrow
* main:
  [xaprepare] update Debian dependencies for current unstable (trixie) (dotnet#8169)
* main:
  Bump to dotnet/installer@28d4a6b4be 8.0.100-preview.7.23330.16 (dotnet#8162)
  [Xamarin.Android.Build.Tasks] Move MonoAndroidAssetsDirIntermediate (dotnet#8166)
  [xaprepare] update Debian dependencies for current unstable (trixie) (dotnet#8169)
  [CI] Use dotnet test slicer in nightly tests (dotnet#8154)
  [Xamarin.Android.Build.Tasks] MarshalMethodsAssemblyRewriter+new file (dotnet#8151)
  Bump to dotnet/installer@d2a244f560 8.0.100-preview.7.23325.5 (dotnet#8142)
* typemap-per-rid-support:
  More test fixes
  Fix test failures
  New typemap scanner, disable marshal methods by default
  Something isn't right...
  Typemaps generated properly, testing and marshal methods tomorrow
  Beginning to fix typemaps for per-abi assemblies
* main:
  Bump to dotnet/installer@28d4a6b4be 8.0.100-preview.7.23330.16 (dotnet#8162)
  [Xamarin.Android.Build.Tasks] Move MonoAndroidAssetsDirIntermediate (dotnet#8166)
* main:
  Bump external/Java.Interop from `738de61` to `e1121ea` (dotnet#8132)
* typemap-per-rid-support:
  Remove debug stuff
  Let's see if using the resolver directly helps
  More printfs
  Add some timing debug prints
  Bump external/Java.Interop from `738de61` to `e1121ea` (dotnet#8132)
* typemap-per-rid-support:
  Use a custom assembly resolver
A small wart remains, named in the TODO comment
* main:
  Bump to xamarin/Java.Interop/main@d7f41c4 (dotnet#8386)
* main:
  Bump external/Java.Interop from `d7f41c4` to `8e63cc8` (dotnet#8388)
Removed all the sources related to the previous assembly compression
implementation
* main:
  [Mono.Android] Generate API docs for android-34 (dotnet#8383)
  [ci] Skip Linux apt upgrade step (dotnet#8396)
Still pondering how to make shared libraries with embedded assemblies
perform well.
* main:
  [Xamarin.Android.Build.Tasks] Add support for $(AndroidEnableObsoleteOverrideInheritance). (dotnet#8393)
  [Xamarin.Android.Build.Tasks] Make manifestmerger.jar the default. (dotnet#8392)
* main:
  [Xamarin.Android.Build.Tasks] case-insensitive Legacy Designer fixup (dotnet#8376)
  [build] Update docs and remove `xabuild` mentions (dotnet#8406)
  Bump to xamarin/java.interop/main@ed63d890 (dotnet#8407)
* main:
  [Xamarin.Android.Build.Tasks] Fix up ForegroundService.ToString() (dotnet#8412)
  [monodroid] Hush some messages logged by default on startup (dotnet#8414)
Will most likely end up using function pointers instead of virtual
dispatch.  A bit more cumbersome but more efficient.

The goal is to get rid of `if` statements which check, for each assembly
load request, whether we should load from the APK or from the filesystem
- this is simply wasted time, since we know at the start which one of
those choices is correct and that it doesn't change until the app is
reinstalled.
* main:
  [Xamarin.Android.Build.Tasks] Include Bindings Design Time builds (dotnet#8357)
Some other experiments turned out not to fit the bill, good old pointers
win hands down.

Tiny performance improvements and code rearranging
Experimented with various ideas to improve performance, none of
which really panned out as the results were very unstable.
* main:
  [Mono.Android] Generate API docs with "full" verbosity (dotnet#8435)
  [profiled-aot] update profile for .NET 8 GA (dotnet#8428)
  Bump to xamarin/Java.Interop/main@3c83179 (dotnet#8429)
  [Xamarin.Android.Build.Tasks] Small refactoring to `AddKeepAlives` method (dotnet#8423)
  [Xamarin.Android.Build.Tasks] Fixup indirect resource references (dotnet#8416)
Ditched mutex, switched to simple spinlocks and atomic reads
instead. Generates much better code on ARM64 (and that's our main target
atm)
* main:
  Bump to xamarin/monodroid@47bdaaa9 (dotnet#8433)
  [docs] .NET 8 simplified `dotnet-trace` instructions (dotnet#8436)
31% performance loss atm :(
@grendello grendello closed this Nov 7, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jan 22, 2024
@grendello grendello deleted the all-assemblies-per-rid branch March 15, 2024 21:23
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant