Patents by Inventor John R. Rose

John R. 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).

  • Patent number: 11733985
    Abstract: Techniques for accessing a migrated method include: identifying a request to invoke a method defined by a particular type; identifying, in the particular type: an older version of the method that is (a) associated with a method name and (b) configured to return values of a first return type, and a current version of the method that is (a) associated with the method name and (b) configured to return values of a second return type; determining that the first request specifies the first return type; responsive to determining that the first request specifies the first return type: executing the current version of the method to obtain a value of the second return type; applying one or more conversion functions to convert the value of the second return type to a value of the first return type; returning the value of the first return type responsive to the first request.
    Type: Grant
    Filed: May 4, 2022
    Date of Patent: August 22, 2023
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Publication number: 20230135425
    Abstract: Techniques for determining and displaying error messages including a cause of an error generated because two types are not members of the same nest are disclosed. The system detects, at runtime, an instruction in a first type that attempts to access a private member of a second type. The system evaluates one or more nestmate criteria to determine whether the first type and the second type are within a same nest. A nest host corresponding to the nest specifies each nest member of the nest, and each nest member specifies an association with the nest. Responsive to determining that a particular nestmate criterion is not met, the system determines that the first type and the second type are not within the same nest and records or displays data identifying the particular nestmate criterion that has not been met, and throws an access error.
    Type: Application
    Filed: December 29, 2022
    Publication date: May 4, 2023
    Applicant: Oracle International Corporation
    Inventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
  • Patent number: 11599346
    Abstract: Techniques for accessing a migrated method include: identifying a request to invoke a method defined by a type, the request including one or more arguments associated with respective argument types; identifying, in the type, an older version of the method associated with (a) a method name and (b) a first set of one or more parameter types, and a current version of the method associated with (a) the method name and (b) a second set of one or more parameter types; determining that the argument type(s) match(es) the first set of one or more parameter types; responsive to determining that the argument type(s) match(es) the first set of one or more parameter types: applying one or more conversion functions to convert the argument(s) to the second set of one or more parameter types; executing the current version of the method using the converted argument(s).
    Type: Grant
    Filed: May 4, 2022
    Date of Patent: March 7, 2023
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Patent number: 11568047
    Abstract: Techniques for determining and displaying error messages including a cause of an error generated because two types are not members of the same nest are disclosed. The system detects, at runtime, an instruction in a first type that attempts to access a private member of a second type. The system evaluates one or more nestmate criteria to determine whether the first type and the second type are within a same nest. A nest host corresponding to the nest specifies each nest member of the nest, and each nest member specifies an association with the nest. Responsive to determining that a particular nestmate criterion is not met, the system determines that the first type and the second type are not within the same nest and records or displays data identifying the particular nestmate criterion that has not been met, and throws an access error.
    Type: Grant
    Filed: August 26, 2020
    Date of Patent: January 31, 2023
    Assignee: Oracle International Corporation
    Inventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
  • Publication number: 20220261230
    Abstract: Techniques for accessing a migrated method include: identifying a request to invoke a method defined by a particular type; identifying, in the particular type: an older version of the method that is (a) associated with a method name and (b) configured to return values of a first return type, and a current version of the method that is (a) associated with the method name and (b) configured to return values of a second return type; determining that the first request specifies the first return type; responsive to determining that the first request specifies the first return type: executing the current version of the method to obtain a value of the second return type; applying one or more conversion functions to convert the value of the second return type to a value of the first return type; returning the value of the first return type responsive to the first request.
    Type: Application
    Filed: May 4, 2022
    Publication date: August 18, 2022
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Publication number: 20220261229
    Abstract: Techniques for accessing a migrated method include: identifying a request to invoke a method defined by a type, the request including one or more arguments associated with respective argument types; identifying, in the type, an older version of the method associated with (a) a method name and (b) a first set of one or more parameter types, and a current version of the method associated with (a) the method name and (b) a second set of one or more parameter types; determining that the argument type(s) match(es) the first set of one or more parameter types; responsive to determining that the argument type(s) match(es) the first set of one or more parameter types: applying one or more conversion functions to convert the argument(s) to the second set of one or more parameter types; executing the current version of the method using the converted argument(s).
    Type: Application
    Filed: May 4, 2022
    Publication date: August 18, 2022
    Applicant: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Patent number: 11347489
    Abstract: Accessing migrated members in an updated type is described. Instructions to access a migrated member may be: (a) storing a value of a particular type as a value of a migrated field, or (b) invoking a migrated method using an argument of a particular type. The argument of the particular type, specified in the instructions, is converted into a value of the type associated with the current version of the migrated member. The migrated member is accessed using the converted value. Alternatively, instructions may be: (a) fetching and returning a value of a migrated field as a value of a particular type, or (b) returning a value from a migrated method as a value of a particular type. A value is returned via accessing the current version of the migrated member. The returned value is converted into a value of the particular type specified in the instructions.
    Type: Grant
    Filed: December 14, 2020
    Date of Patent: May 31, 2022
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Patent number: 11307784
    Abstract: A system includes a processor and memory including one or more memory region groups, each including a plurality of distinct memory regions. In embodiments, each memory region of a particular memory region group has a same set of memory attributes and is associated with a same attribute group identifier (AGI). In response to an access request to a memory location of a memory region within the particular memory region group, the AGI may be used to identify the set of memory attributes to be applied when executing the access request. In response to a request to change one or more memory attributes of the particular memory region group, update of a single entry changes the memory attributes for all memory regions of the particular memory region group, without accessing individual metadata of each memory region. The update can be accomplished atomically and substantially simultaneously.
    Type: Grant
    Filed: May 22, 2020
    Date of Patent: April 19, 2022
    Assignee: Oracle International Corporation
    Inventors: David L. Weaver, John R. Rose
  • Publication number: 20220067152
    Abstract: Techniques for determining and displaying error messages including a cause of an error generated because two types are not members of the same nest are disclosed. The system detects, at runtime, an instruction in a first type that attempts to access a private member of a second type. The system evaluates one or more nestmate criteria to determine whether the first type and the second type are within a same nest. A nest host corresponding to the nest specifies each nest member of the nest, and each nest member specifies an association with the nest. Responsive to determining that a particular nestmate criterion is not met, the system determines that the first type and the second type are not within the same nest and records or displays data identifying the particular nestmate criterion that has not been met, and throws an access error.
    Type: Application
    Filed: August 26, 2020
    Publication date: March 3, 2022
    Applicant: Oracle International Corporation
    Inventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
  • Patent number: 11030097
    Abstract: Techniques relating to fused objects are disclosed. Embodiments include verifying the validity of a transition from a current tail template to a new tail template for a fused object. The validity of the transition is determined by analyzing the type transitions per memory slot. If the type transition, for each memory slot, constitutes a type-compatible transition, then the transition from the current tail template to the new tail template is valid. If the type transition, for any memory slot, is not type-compatible, then the transition from the current tail template to the new tail template is not valid. Embodiments include generating a fused object with a repeating tail. A tail template associated with a fused object is repeated multiple times in the tail of the fused object.
    Type: Grant
    Filed: July 22, 2019
    Date of Patent: June 8, 2021
    Assignee: Oracle International Corporation
    Inventors: John R. Rose, Paul D. Sandoz
  • Publication number: 20210096834
    Abstract: Accessing migrated members in an updated type is described. Instructions to access a migrated member may be: (a) storing a value of a particular type as a value of a migrated field, or (b) invoking a migrated method using an argument of a particular type. The argument of the particular type, specified in the instructions, is converted into a value of the type associated with the current version of the migrated member. The migrated member is accessed using the converted value. Alternatively, instructions may be: (a) fetching and returning a value of a migrated field as a value of a particular type, or (b) returning a value from a migrated method as a value of a particular type. A value is returned via accessing the current version of the migrated member. The returned value is converted into a value of the particular type specified in the instructions.
    Type: Application
    Filed: December 14, 2020
    Publication date: April 1, 2021
    Applicant: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Patent number: 10908886
    Abstract: Accessing migrated members in an updated type is described. Instructions to access a migrated member may be: (a) storing a value of a particular type as a value of a migrated field, or (b) invoking a migrated method using an argument of a particular type. The argument of the particular type, specified in the instructions, is converted into a value of the type associated with the current version of the migrated member. The migrated member is accessed using the converted value. Alternatively, instructions may be: (a) fetching and returning a value of a migrated field as a value of a particular type, or (b) returning a value from a migrated method as a value of a particular type. A value is returned via accessing the current version of the migrated member. The returned value is converted into a value of the particular type specified in the instructions.
    Type: Grant
    Filed: February 7, 2017
    Date of Patent: February 2, 2021
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Publication number: 20200285408
    Abstract: A system includes a processor and memory including one or more memory region groups, each including a plurality of distinct memory regions. In embodiments, each memory region of a particular memory region group has a same set of memory attributes and is associated with a same attribute group identifier (AGI). In response to an access request to a memory location of a memory region within the particular memory region group, the AGI may be used to identify the set of memory attributes to be applied when executing the access request. In response to a request to change one or more memory attributes of the particular memory region group, update of a single entry changes the memory attributes for all memory regions of the particular memory region group, without accessing individual metadata of each memory region. The update can be accomplished atomically and substantially simultaneously.
    Type: Application
    Filed: May 22, 2020
    Publication date: September 10, 2020
    Inventors: David L. Weaver, John R. Rose
  • Patent number: 10740115
    Abstract: Structural identification of dynamically generated, pattern-instantiation classes may be utilized using structural descriptions. Instead of describing classes only by name, and using that name to locate that class, a class may be referred to by a generator function and arguments to the generator function. A structural description may specify the generator function and the parameters. In addition, a structural description of a class may be used as a parameter to a generator function specified by another structural description. A structural description may be used similarly to a class name for virtually any situation in which a class name may be used. Classes may be compared using their structural descriptions. For example, two structural descriptions may be considered to be the same class if they specify the same generator function and parameters.
    Type: Grant
    Filed: September 25, 2017
    Date of Patent: August 11, 2020
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose
  • Patent number: 10664183
    Abstract: A system includes a processor and memory including one or more memory region groups, each including a plurality of distinct memory regions. In embodiments, each memory region of a particular memory region group has a same set of memory attributes and is associated with a same attribute group identifier (AGI). In response to an access request to a memory location of a memory region within the particular memory region group, the AGI may be used to identify the set of memory attributes to be applied when executing the access request. In response to a request to change one or more memory attributes of the particular memory region group, update of a single entry changes the memory attributes for all memory regions of the particular memory region group, without accessing individual metadata of each memory region. The update can be accomplished atomically and substantially simultaneously.
    Type: Grant
    Filed: June 21, 2017
    Date of Patent: May 26, 2020
    Assignee: Oracle International Corporation
    Inventors: David L. Weaver, John R. Rose
  • Patent number: 10635420
    Abstract: Overriding a migrated method in an updated type is described. Instructions to invoke a particular method, in a sub-type, that overrides a migrated method, in a super-type, are identified. The instructions may invoke the particular method using a set of arguments associated with a particular set of types. The particular set of types is different from the set of parameter types associated with the particular method as defined in the sub-type. Additionally or alternatively, the instructions may include returning a value of a particular type from the particular method. The particular type is different from the return type associated with the particular method as defined in the sub-type. A new method is generated. The new method includes instructions for (a) converting the set of arguments and/or (b) converting the value returned from the particular method. The new method is stored in a runtime environment and executed.
    Type: Grant
    Filed: February 7, 2017
    Date of Patent: April 28, 2020
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
  • Patent number: 10635472
    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: October 21, 2016
    Date of Patent: April 28, 2020
    Assignee: Oracle International Corporation
    Inventors: John R. Rose, Vladimir Ivanov
  • Publication number: 20190347199
    Abstract: Techniques relating to fused objects are disclosed. Embodiments include verifying the validity of a transition from a current tail template to a new tail template for a fused object. The validity of the transition is determined by analyzing the type transitions per memory slot. If the type transition, for each memory slot, constitutes a type-compatible transition, then the transition from the current tail template to the new tail template is valid. If the type transition, for any memory slot, is not type-compatible, then the transition from the current tail template to the new tail template is not valid. Embodiments include generating a fused object with a repeating tail. A tail template associated with a fused object is repeated multiple times in the tail of the fused object.
    Type: Application
    Filed: July 22, 2019
    Publication date: November 14, 2019
    Applicant: Oracle International Corporation
    Inventors: John R. Rose, Paul D. Sandoz
  • Patent number: 10452409
    Abstract: In one approach, a native call is performed using an adapter generator to produce an adapter for converting memory structures between a first memory representation adhering to a first application binary interface (ABI) and a second memory representation adhering to a second memory representation adhering to a second ABI. In some cases, the adapter produced by the adapter generator is stored in an adapter cache and indexed by the shape of the call for later reuse should the same native call be made again in the future. The adapter produced by the adapter generator uses a set of intermediate instructions which can be either compiled by a Just-in-Time (JIT) compiler or interpreted by an interpreter to produce executable instructions for converting between the first ABI and the second ABI.
    Type: Grant
    Filed: October 21, 2016
    Date of Patent: October 22, 2019
    Assignee: Oracle International Corporation
    Inventors: John R. Rose, Vladimir Ivanov, Mikael Vidstedt
  • Patent number: 10402320
    Abstract: A fused object includes a head and a tail. A head template is not modifiable. A tail template is modifiable. Modifying a tail template includes verifying the validity of a transition from a current tail template to a new tail template. The validity of the transition is determined by analyzing the type transitions per memory slot. If the type transition, for each memory slot, constitutes a type-compatible transition, then the transition from the current tail template to the new tail template is valid. If the type transition, for any memory slot, is not type-compatible, then the transition from the current tail template to the new tail template is not valid. A fused object may be associated with a repeating tail. A tail template associated with a fused object is repeated multiple times in the tail of the fused object.
    Type: Grant
    Filed: February 27, 2018
    Date of Patent: September 3, 2019
    Assignee: Oracle International Corporation
    Inventors: John R. Rose, Paul D. Sandoz