Skip to content

Simplify ABI story #10049

Closed
Closed
@nikomatsakis

Description

@nikomatsakis

I've come to believe the ABI scheme I cooked up is overly complicated. The current scheme involves a set of ABIs, some of which are "platform specific" and some of which are not, and we select the most specific one we can for a given target. I'd prefer to say that an ABI string selects exactly one ABI, and then define some meta-ABIs that may vary by platform. In addition, some ABIs may be specific to a platform, in which case invocations of functions with that ABI cannot be compiled to other platforms.

I'm thinking of a set of ABI strings like:

  • C -- a meta descriptor representing "C-like conventions", as today
  • fastcall -- LLVM's fastcall
  • stdcall -- win32 specific
  • system -- stdcall on windows, C elsewhere (borrowed from D)
  • aapcs -- ARM specific
  • etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions