Computation and Storage of Object Identity Hash Values

    公开(公告)号:US20230367638A1

    公开(公告)日:2023-11-16

    申请号:US18361449

    申请日:2023-07-28

    Abstract: Techniques for computing and storing object identity hash values are disclosed. In some embodiments, a runtime system generates a value, such as a nonce, that is unique to a particular allocation region within memory. The runtime system may mix the value with one or more seed values that are associated with one or more respective objects stored in the allocation region. The runtime system may obtain object identifiers for the respective objects by applying a hash function to the result of mixing the seed value with at least the value associated with the allocation region. Conditioning operations may also be applied before, during or after the mixing operations to make the values appear more random. The nonce value may be changed from time to time, such as when memory is recycled in the allocation region, to reduce the risk of hash collisions.

    IMPLEMENTING OPTIONAL SPECIALIZATION WHEN EXECUTING CODE

    公开(公告)号:US20220300260A1

    公开(公告)日:2022-09-22

    申请号:US17571328

    申请日:2022-01-07

    Abstract: A compiler is capable of compiling instructions that do or do not supply specialization information for a generic type. The generic type is compiled into an unspecialized type. If specialization information was supplied, the unspecialized type is adorned with information indicating type restrictions for application programming interface (API) points associated with the unspecialized type, which becomes a specialized type. A runtime environment is capable of executing calls to a same API point that do or do not indicate a specialized type, and is capable of executing calls to a same API point of objects of an unspecialized type or of objects of a specialized type. When the call to an API point indicates a specialized type, and the specialized type matches that of the object (if the API point belongs to an object), then a runtime environment may perform optimized accesses based on type restrictions derived from the specialized type.

    COMPUTATION AND STORAGE OF OBJECT IDENTITY HASH VALUES

    公开(公告)号:US20220107840A1

    公开(公告)日:2022-04-07

    申请号:US17065354

    申请日:2020-10-07

    Abstract: Techniques for computing and storing object identity hash values are disclosed. In some embodiments, a runtime system generates a value, such as a nonce, that is unique to a particular allocation region within memory. The runtime system may mix the value with one or more seed values that are associated with one or more respective objects stored in the allocation region. The runtime system may obtain object identifiers for the respective objects by applying a hash function to the result of mixing the seed value with at least the value associated with the allocation region. Conditioning operations may also be applied before, during or after the mixing operations to make the values appear more random. The nonce value may be changed from time to time, such as when memory is recycled in the allocation region, to reduce the risk of hash collisions.

    Type-constrained operations for plug-in types

    公开(公告)号:US12014190B2

    公开(公告)日:2024-06-18

    申请号:US17091849

    申请日:2020-11-06

    CPC classification number: G06F9/44526 G06F8/437 G06F9/4416 G06F9/547

    Abstract: Techniques for performing type-constrained operations for plug-in types are disclosed. A runtime environment encounters a request to perform a type-constrained operation that requires evaluating a type constraint associated with a particular plug-in type. The runtime environment lacks sufficient native instructions to evaluate type constraints associated with plug-in types. The runtime environment accesses a plug-in type framework to obtain a particular type descriptor instance associated with the particular plug-in type. The plug-in type framework is designated, prior to encountering any request to perform the type-constrained operation, for obtaining type descriptor instances which define constraints on plug-in types, to an extent that any such constraints exist. The particular type descriptor instance defines a particular type constraint that does not match any single built-in type. The runtime environment performs the type-constrained operation, which comprises using the particular type descriptor instance to evaluate the particular type constraint associated with the particular plug-in type.

    Computation and storage of object identity hash values

    公开(公告)号:US11755373B2

    公开(公告)日:2023-09-12

    申请号:US17065354

    申请日:2020-10-07

    Abstract: Techniques for computing and storing object identity hash values are disclosed. In some embodiments, a runtime system generates a value, such as a nonce, that is unique to a particular allocation region within memory. The runtime system may mix the value with one or more seed values that are associated with one or more respective objects stored in the allocation region. The runtime system may obtain object identifiers for the respective objects by applying a hash function to the result of mixing the seed value with at least the value associated with the allocation region. Conditioning operations may also be applied before, during or after the mixing operations to make the values appear more random. The nonce value may be changed from time to time, such as when memory is recycled in the allocation region, to reduce the risk of hash collisions.

    ACCESSING A PARAMETRIC FIELD WITHIN A SPECIALIZED CONTEXT

    公开(公告)号:US20220300361A1

    公开(公告)日:2022-09-22

    申请号:US17571353

    申请日:2022-01-07

    Abstract: A parametric constant resolves to different values in different contexts, but a single value within a particular context. An anchor constant is a parametric constant that allows for a degree of parametricity for an API point. The context for the anchor constant is provided by a caller to the API point. The anchor constant resolves to an anchor value that records specialization decisions for the API point within the provided context. Specialization decisions may include type restrictions, memory layout, and/or memory size. The anchor value together with an unspecialized type of the API point result in a specialized type of the API point. A class object representing the specialized type is created. The class object may be accessible to the caller, but the full value of the anchor value is not accessible to the caller. The API point is executed based on the specialization decisions embodied in the anchor value.

    Import mechanism for hardware intrinsics

    公开(公告)号:US11366684B2

    公开(公告)日:2022-06-21

    申请号:US16828071

    申请日:2020-03-24

    Abstract: In one approach, an import mechanism allows new hardware intrinsics to be utilized by writing or updating a library of source code, rather than specifically modifying the virtual machine for each new intrinsic. Thus, once the architecture is in place to allow the import mechanism to function, the virtual machine itself (e.g. the code which implements the virtual machine) no longer needs to be modified in order to allow new intrinsics to be utilized by end user programmers. Since source code is typically more convenient to write than the language used to implement the virtual machine and the risk of miscoding the virtual machine is minimized when introducing new intrinsics, the import mechanism described herein increases the efficiency at which new hardware intrinsics can be introduced.

Patent Agency Ranking