-
公开(公告)号:US20230367638A1
公开(公告)日:2023-11-16
申请号:US18361449
申请日:2023-07-28
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Mikael Vidstedt , Erik Österlund
IPC: G06F9/50 , G06F12/1018 , G06F12/02 , G06F9/30 , G06F9/54
CPC classification number: G06F9/5016 , G06F12/1018 , G06F12/0253 , G06F9/3009 , G06F12/0238 , G06F9/544
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.
-
公开(公告)号:US11687388B2
公开(公告)日:2023-06-27
申请号:US17571328
申请日:2022-01-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Maurizio Cimadamore , Brian Goetz
IPC: G06F9/44 , G06F9/54 , G06F8/41 , G06F16/28 , G06F16/22 , G06F9/448 , G06F9/445 , G06F9/30 , G06F9/451 , G06F12/02 , G06F9/455
CPC classification number: G06F9/547 , G06F8/41 , G06F8/437 , G06F9/30076 , G06F9/4488 , G06F9/4494 , G06F9/4498 , G06F9/44521 , G06F9/44536 , G06F9/451 , G06F9/45516 , G06F9/541 , G06F9/542 , G06F9/548 , G06F12/023 , G06F16/2272 , G06F16/2291 , G06F16/289
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.
-
公开(公告)号:US20220300260A1
公开(公告)日:2022-09-22
申请号:US17571328
申请日:2022-01-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Maurizio Cimadamore , Brian Goetz
IPC: G06F8/41
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.
-
公开(公告)号:US20220107840A1
公开(公告)日:2022-04-07
申请号:US17065354
申请日:2020-10-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Mikael Vidstedt , Erik Österlund
IPC: G06F9/50 , G06F9/54 , G06F9/30 , G06F12/1018 , G06F12/02
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.
-
公开(公告)号:US12014190B2
公开(公告)日:2024-06-18
申请号:US17091849
申请日:2020-11-06
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Brian Goetz
IPC: G06F9/44 , G06F8/41 , G06F9/4401 , G06F9/445 , G06F9/54
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.
-
公开(公告)号:US11789793B2
公开(公告)日:2023-10-17
申请号:US17571349
申请日:2022-01-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Brian Goetz
IPC: G06F9/54 , G06F8/41 , G06F16/28 , G06F16/22 , G06F9/448 , G06F9/445 , G06F9/30 , G06F9/451 , G06F12/02 , G06F9/455
CPC classification number: G06F9/547 , G06F8/41 , G06F8/437 , G06F9/30076 , G06F9/4488 , G06F9/4494 , G06F9/4498 , G06F9/44521 , G06F9/44536 , G06F9/451 , G06F9/45516 , G06F9/541 , G06F9/542 , G06F9/548 , G06F12/023 , G06F16/2272 , G06F16/2291 , G06F16/289
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.
-
公开(公告)号:US11755373B2
公开(公告)日:2023-09-12
申请号:US17065354
申请日:2020-10-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Mikael Vidstedt , Erik Österlund
IPC: G06F9/50 , G06F9/54 , G06F12/02 , G06F12/1018 , G06F9/30
CPC classification number: G06F9/5016 , G06F9/3009 , G06F9/544 , G06F12/0238 , G06F12/0253 , G06F12/1018
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.
-
公开(公告)号:US11726849B2
公开(公告)日:2023-08-15
申请号:US17571343
申请日:2022-01-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Brian Goetz
IPC: G06F9/54 , G06F9/448 , G06F8/41 , G06F16/28 , G06F16/22 , G06F9/445 , G06F9/30 , G06F9/451 , G06F12/02 , G06F9/455
CPC classification number: G06F9/547 , G06F8/41 , G06F8/437 , G06F9/30076 , G06F9/4488 , G06F9/4494 , G06F9/4498 , G06F9/44521 , G06F9/44536 , G06F9/451 , G06F9/45516 , G06F9/541 , G06F9/542 , G06F9/548 , G06F12/023 , G06F16/2272 , G06F16/2291 , G06F16/289
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.
-
公开(公告)号:US20220300361A1
公开(公告)日:2022-09-22
申请号:US17571353
申请日:2022-01-07
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Brian Goetz
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.
-
公开(公告)号:US11366684B2
公开(公告)日:2022-06-21
申请号:US16828071
申请日:2020-03-24
Applicant: Oracle International Corporation
Inventor: John Robert Rose , Vladimir Ivanov
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.
-
-
-
-
-
-
-
-
-