Skip to content

[mono] Audit embedding API for .NET 5 correctness #33557

@lambdageek

Description

@lambdageek

This is a tracking issue to audit the public embedding API for correctness with respect to assembly load context support.

The goal is to consider how each function in the headers below will behave when there are multiple ALCs in the managed code, and to decide whether the function behavior needs to be corrected, or if it is not feasible to correct, whether the function's documentation should be updated with a deprecation note and a new ALC-aware replacement added.

The top priority are functions that are mentioned in xamarin-macios exports.t4 or headers that are used in the source code in the xamarin android monodroid/jni directory, and Java.Interop

  • mono/utils
    • mono-logger.h
    • mono-error.h
    • mono-forward.h
    • mono-publib.h
    • mono-jemalloc.h
    • mono-dl-fallback.h
    • mono-counters.h
  • mono/metadata
    • appdomain.h
    • assembly.h
    • attrdefs.h
    • blob.h
    • class.h
    • debug-helpers.h
    • debug-mono-symfile.h
    • environment.h
    • exception.h
    • image.h
    • loader.h
    • metadata.h
    • mono-config.h
    • mono-debug.h
    • mono-gc.h
    • object.h
    • object-forward.h
    • opcodes.h
    • profiler.h
    • profiler-events.h
    • reflection.h
    • row-indexes.h
    • sgen-bridge.h
    • threads.h
    • tokentype.h
    • verify.h
  • mono/mini
    • jit.h

The following headers aren't installed, but they have MONO_API functions, and should be audited too:

Mini

  • mono/utils/mini-runtime.h
  • mono/utils/monovm.h
  • mono/utils/mini.h
  • mono/utils/mini-llvm.h
  • mono/utils/aot-runtime.h
  • mono/utils/debugger-agent.h

Metadata:

  • mono/metadata/cil-coff.h
  • mono/metadata/marshal-ilgen.h
  • mono/metadata/marshal.h
  • mono/metadata/coree.h
  • mono/metadata/assembly-internals.h
  • mono/metadata/sgen-toggleref.h
  • mono/metadata/class-internals.h
  • mono/metadata/w32file.h
  • mono/metadata/security-core-clr.h
  • mono/metadata/metadata-internals.h
  • mono/metadata/monitor.h
  • mono/metadata/object-internals.h
  • mono/metadata/mono-mlist.h
  • mono/metadata/method-builder-ilgen.h
  • mono/metadata/filewatcher.h
  • mono/metadata/threads-types.h
  • mono/metadata/cominterop.h
  • mono/metadata/mempool.h
  • mono/metadata/mono-perfcounters.h
  • mono/metadata/icall-table.h
  • mono/metadata/mono-hash.h
  • mono/metadata/gc-internals.h

Utils

  • mono/utils/mono-path.h
  • mono/utils/mono-linked-list-set.h
  • mono/utils/mono-proclib.h
  • mono/utils/mono-logger-internals.h
  • mono/utils/strenc.h
  • mono/utils/hazard-pointer.h
  • mono/utils/mono-threads-api.h
  • mono/utils/mono-dl-fallback.h
  • mono/utils/mono-embed.h
  • mono/utils/mono-error-internals.h
  • mono/utils/mono-digest.h
  • mono/utils/os-event.h
  • mono/utils/mono-threads.h
  • mono/utils/monobitset.h
  • mono/utils/mono-uri.h
  • mono/utils/mono-mmap.h
  • mono/utils/lock-free-alloc.h
  • mono/utils/mono-conc-hashtable.h
  • mono/utils/lock-free-queue.h
  • mono/utils/mono-logger.h
  • mono/utils/mono-poll.h

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-VM-meta-monoruntime-monospecific to the Mono runtimetrackingThis issue is tracking the completion of other related issues.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions