摘要:
The invention comprises, at a computer system, the computer system including a development environment for developing executable code that includes application programming interfaces (APIs), the executable code for running in a runtime environment that can dynamically request access to the application program interfaces (APIs), the runtime environment providing dynamic access requests with a default visibility into application program interfaces (APIs) based on application program interface (API) type, the API type being selected from a group comprising internal, private and public, a method for controlling runtime access to the application programming interfaces (APIs), the method comprising: accessing a set of application programming interfaces (APIs) combined in a library, the set of application programming interfaces (APIs) including one or more public application programming interfaces (APIs) and one or more non-public application programming interfaces (APIs); identifying an application programming interface (API) from among the set of application programming interfaces (APIs) for which the default visibility provided to dynamic access requests is to be altered; and altering the default visibility into the application programming interface (API) to an altered visibility by applying an attribute different from the API type, to the application programming interface (API), the attribute indicating to the runtime environment at runtime that dynamic access requests are to be provided the altered visibility into the application programming interface (API); wherein identifying an application programming interface (API) comprises identifying a public application programming interface (API), the default visibility for the public application programming interface (API) allowing dynamic access to the public application programming interface (API); and wherein altering the default visibility of the application programming interface (API) comprises applying an attribute different from the API type to the public application programming interface (API), the attribute altering the default visibility for the public application programming interface (API) to prevent dynamic access to the public application programming interface (API).
摘要:
Support for dynamic behavior is provided during static compilation while reducing reliance on JIT compilation and large runtimes. A mapping is created between metadata and native code runtime artifacts, such as between type definition metadata and a runtime type description, or between method definition metadata, a runtime type description, and a native code method location, or field definition metadata, a runtime type description, and a field location. A mapping between runtime artifacts may also be created. Some compilation results include trampoline code to support a reflection invocation of an artifact in the reduced runtime support environment, for virtual method calls, call-time bounds checking, calling convention conversion, or compiler-intrinsic methods. Some results support runtime diagnostics by including certain metadata even when full dynamic behavior is not supported.
摘要:
Support for dynamic behavior is provided during static compilation while reducing reliance on JIT compilation and large runtimes. A mapping is created between metadata and native code runtime artifacts, such as between type definition metadata and a runtime type description, or between method definition metadata, a runtime type description, and a native code method location, or field definition metadata, a runtime type description, and a field location. A mapping between runtime artifacts may also be created. Some compilation results include trampoline code to support a reflection invocation of an artifact in the reduced runtime support environment, for virtual method calls, call-time bounds checking, calling convention conversion, or compiler-intrinsic methods. Some results support runtime diagnostics by including certain metadata even when full dynamic behavior is not supported.
摘要:
Support for dynamic behavior is provided during static compilation while reducing reliance on JIT compilation and large runtimes. A mapping is created between metadata and native code runtime artifacts, such as between type definition metadata and a runtime type description, or between method definition metadata, a runtime type description, and a native code method location, or field definition metadata, a runtime type description, and a field location. A mapping between runtime artifacts may also be created. Some compilation results include trampoline code to support a reflection invocation of an artifact in the reduced runtime support environment, for virtual method calls, call-time bounds checking, calling convention conversion, or compiler-intrinsic methods. Some results support runtime diagnostics by including certain metadata even when full dynamic behavior is not supported.
摘要:
The present invention extends to methods, systems, and computer program products for controlling runtime access to application programming interfaces Embodiments of the invention allow library developers to more precisely and easily control which of their libraries' APIs can be called dynamically. Thus, their servicing and versioning burden can be more appropriately controlled. Further, application developers can control which such APIs to further exclude from dynamic calling scenarios, to minimize the runtime support overhead (e.g., preventing generation of metadata).