Patents by Inventor John Robert Rose

John Robert Rose has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20220300263
    Abstract: A data structure (e.g., field, method parameter, or method return value) is defined by a descriptor to be of a particular type, which imposes a first set of restrictions on values assumable by the data structure. Separately, the data structure is associated with a type restriction that defines a second set of restrictions that further restricts the values assumable by the data structure. The descriptor and type restriction are encoded separately in a program binary. Responsive to identifying a value for the data structure that (a) is not forbidden by the first set of restrictions defined the descriptor and (b) is forbidden by the second set of restrictions defined by the type restriction, a runtime environment may perform a restrictive operation, such as: blocking storage of the value to a field; blocking passing of the value to a method parameter; or blocking return of the value from a method.
    Type: Application
    Filed: January 7, 2022
    Publication date: September 22, 2022
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Parain
  • Publication number: 20220300476
    Abstract: A type restriction contextually modifies an existing type descriptor. The type restriction is imposed on a data structure to restrict the values that are assumable by the data structure. The type restriction does not cancel or otherwise override the effect of the existing type descriptor on the data structure. Rather the type restriction may declare that a value of the data structure's type is forbidden for the data structure. Additionally or alternatively, the type restriction may declare that an element count allowable for a data structure's type is forbidden for the data structure. Type restriction allows optionality (where only a singleton value for a data structure is allowed), empty sets (where no value for a data structure is allowed), and multiplicity (where only a limited element count for a data structure) to be injected into a code set independent of data type. Type restriction allows certain optimizations to be performed.
    Type: Application
    Filed: January 7, 2022
    Publication date: September 22, 2022
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20220300361
    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.
    Type: Application
    Filed: January 7, 2022
    Publication date: September 22, 2022
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20220300359
    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.
    Type: Application
    Filed: January 7, 2022
    Publication date: September 22, 2022
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11366684
    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.
    Type: Grant
    Filed: March 24, 2020
    Date of Patent: June 21, 2022
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Vladimir Ivanov
  • Patent number: 11347487
    Abstract: A module (m1) is allowed to gain private reflective access to any class in any module (C2 in m2), if and only if m2 grants to m1 deep reflective access for C2. A caller class may invoke a method to generate a second lookup object associated with a second principal class based on a first lookup object associated with a first principal class. The method is successfully executed only if (a) an access mode of the first lookup object allows for teleporting with private reflective access and (b) a module including the second principal class grants to a module including the first principal class deep reflective access for the second principal class. The second lookup object drops the access mode allowing for teleporting with private reflective access. Hence reflective access is confined within the limits imposed by module boundaries, as relaxed by access agreements between pairs of modules. The bilateral agreements are not transferable to other modules.
    Type: Grant
    Filed: November 21, 2019
    Date of Patent: May 31, 2022
    Assignee: Oracle International Corporation
    Inventors: Lai Hung Mandy Chung, John Robert Rose, Alan Bateman
  • Patent number: 11314490
    Abstract: In one approach, a method comprises: a virtual machine receiving an invocation instruction from a caller that invokes a callee, wherein the caller represents a first set of instructions and the callee represents a second set of instructions, wherein the invocation instruction is associated with a first set of arguments; in response to receiving the invocation instruction and determining that the callee requires one or more additional parameters to be supplied by the virtual machine, the virtual machine causing the one or more additional parameters to be appended to the first set of arguments to create a second set of arguments; wherein the virtual machine prevents the caller from providing the one or more additional arguments that are to be supplied by the virtual machine; the virtual machine invoking the callee using the second set of arguments.
    Type: Grant
    Filed: February 14, 2020
    Date of Patent: April 26, 2022
    Assignee: Oracle International Corporation
    Inventor: John Robert Rose
  • Publication number: 20220107840
    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: Application
    Filed: October 7, 2020
    Publication date: April 7, 2022
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Mikael Vidstedt, Erik Ă–sterlund
  • Patent number: 11175896
    Abstract: In one approach, a method comprises receiving one or more higher-level instructions specifying to assign a value of a particular value type to a particular container of a plurality of containers, wherein the plurality of containers represent a data structure for maintaining one or more variables during execution of a block of code, wherein at least two containers of the plurality of containers are different sizes; generating one or more lower-level instructions that assign the value to the particular container based on applying one or more assignment rules to the one or more higher-level instructions based on the particular value type and executing the one or more lower-level instructions.
    Type: Grant
    Filed: April 15, 2019
    Date of Patent: November 16, 2021
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz, Guy Steele
  • Patent number: 11030105
    Abstract: According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The virtual machine causes performance of the particular memory fencing operation with respect to the memory location.
    Type: Grant
    Filed: April 7, 2015
    Date of Patent: June 8, 2021
    Assignee: Oracle International Corporation
    Inventors: Paul Sandoz, Brian Goetz, John Robert Rose
  • Publication number: 20210055941
    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.
    Type: Application
    Filed: November 6, 2020
    Publication date: February 25, 2021
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20200409674
    Abstract: A module (m1) is allowed to gain private reflective access to any class in any module (C2 in m2), if and only if m2 grants to m1 deep reflective access for C2. A caller class may invoke a method to generate a second lookup object associated with a second principal class based on a first lookup object associated with a first principal class. The method is successfully executed only if (a) an access mode of the first lookup object allows for teleporting with private reflective access and (b) a module including the second principal class grants to a module including the first principal class deep reflective access for the second principal class. The second lookup object drops the access mode allowing for teleporting with private reflective access. Hence reflective access is confined within the limits imposed by module boundaries, as relaxed by access agreements between pairs of modules. The bilateral agreements are not transferable to other modules.
    Type: Application
    Filed: November 21, 2019
    Publication date: December 31, 2020
    Applicant: Oracle International Corporation
    Inventors: Lai Hung Mandy Chung, John Robert Rose, Alan Bateman
  • Patent number: 10860338
    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.
    Type: Grant
    Filed: July 18, 2019
    Date of Patent: December 8, 2020
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 10747638
    Abstract: Techniques for computing a memory health metric are disclosed. A system computes a memory health metric as a function of estimated entropy in a data set. The system may determine the memory health metric based on compressed and uncompressed sizes of the data set, quantities of values in the data set, and/or patterns of structural relationships within the data set. The system determines whether the memory health metric crosses a threshold value. If the memory health metric crosses the threshold value, the system presents a warning indicating that utilization of the memory is unhealthy.
    Type: Grant
    Filed: April 18, 2018
    Date of Patent: August 18, 2020
    Assignee: Oracle International Corporation
    Inventor: John Robert Rose
  • Publication number: 20200225973
    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.
    Type: Application
    Filed: March 24, 2020
    Publication date: July 16, 2020
    Inventors: John Robert Rose, Vladimir Ivanov
  • Publication number: 20200183666
    Abstract: In one approach, a method comprises: a virtual machine receiving an invocation instruction from a caller that invokes a callee, wherein the caller represents a first set of instructions and the callee represents a second set of instructions, wherein the invocation instruction is associated with a first set of arguments; in response to receiving the invocation instruction and determining that the callee requires one or more additional parameters to be supplied by the virtual machine, the virtual machine causing the one or more additional parameters to be appended to the first set of arguments to create a second set of arguments; wherein the virtual machine prevents the caller from providing the one or more additional arguments that are to be supplied by the virtual machine; the virtual machine invoking the callee using the second set of arguments.
    Type: Application
    Filed: February 14, 2020
    Publication date: June 11, 2020
    Inventor: John Robert Rose
  • Patent number: 10564943
    Abstract: In one approach, a method comprises: a virtual machine receiving an invocation instruction from a caller that invokes a callee, wherein the caller represents a first set of instructions and the callee represents a second set of instructions, wherein the invocation instruction is associated with a first set of arguments; in response to receiving the invocation instruction and determining that the callee requires one or more additional parameters to be supplied by the virtual machine, the virtual machine causing the one or more additional parameters to be appended to the first set of arguments to create a second set of arguments; wherein the virtual machine prevents the caller from providing the one or more additional arguments that are to be supplied by the virtual machine; the virtual machine invoking the callee using the second set of arguments.
    Type: Grant
    Filed: April 4, 2016
    Date of Patent: February 18, 2020
    Assignee: Oracle International Corporation
    Inventor: John Robert Rose
  • Publication number: 20200026530
    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.
    Type: Application
    Filed: July 18, 2019
    Publication date: January 23, 2020
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 10540148
    Abstract: In an approach, a virtual machine identifies, within a set of instructions, an instruction to load a constant; identifies, based on the instruction to load the constant, a first entry in a data structure that identifies a particular constant type of the one or more constant types, wherein the first entry specifies at least constant data and a first set of instructions for assembling a value or partial value from the constant data; executes the first set of instructions to assemble the value or the partial value from the constant data; and stores a particular value or a reference to the particular value onto a run-time data structure used to pass values or references between sets of instructions executing in a run-time environment, wherein the particular value is based on the value or the particular value assembled from the constant data.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: January 21, 2020
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20190324880
    Abstract: Techniques for computing a memory health metric are disclosed. A system computes a memory health metric as a function of estimated entropy in a data set. The system may determine the memory health metric based on compressed and uncompressed sizes of the data set, quantities of values in the data set, and/or patterns of structural relationships within the data set. The system determines whether the memory health metric crosses a threshold value. If the memory health metric crosses the threshold value, the system presents a warning indicating that utilization of the memory is unhealthy.
    Type: Application
    Filed: April 18, 2018
    Publication date: October 24, 2019
    Applicant: Oracle International Corporation
    Inventor: John Robert Rose