Skip to content

Linking out formatting code #923

Open
@vargaz

Description

@vargaz

Most of the code remaining in a linked hello world is related to formatting, i.e. ToString() overrides.
DateTime.ToString () alone keeps alive about 100k of IL.

Linking these out automatically is very hard. The BCL is full of calls of Object.ToString () on a receiver
whose type is hard to determine at linking time, like elements of object[].

  • For reference types, if there are no instances of the type, the overrides are removed already.
  • There are valuetypes with significant formatting code like DateTime. Removing their overrides would
    require proving that they have no boxed instances, which is very hard because of generics, i.e. for
    every box T, it needs to be proven that T is not a given valuetype.

Probably the best solution right now would be to add some kind of user option, i.e:

  • remove these ToString () methods (via the substitution mechanism)
    or
  • keep these ToString () methods.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions