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: 11733985Abstract: 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: GrantFiled: May 4, 2022Date of Patent: August 22, 2023Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Publication number: 20230135425Abstract: 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: ApplicationFiled: December 29, 2022Publication date: May 4, 2023Applicant: Oracle International CorporationInventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
-
Patent number: 11599346Abstract: 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: GrantFiled: May 4, 2022Date of Patent: March 7, 2023Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Patent number: 11568047Abstract: 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: GrantFiled: August 26, 2020Date of Patent: January 31, 2023Assignee: Oracle International CorporationInventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
-
Publication number: 20220261230Abstract: 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: ApplicationFiled: May 4, 2022Publication date: August 18, 2022Inventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Publication number: 20220261229Abstract: 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: ApplicationFiled: May 4, 2022Publication date: August 18, 2022Applicant: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Patent number: 11347489Abstract: 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: GrantFiled: December 14, 2020Date of Patent: May 31, 2022Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Patent number: 11307784Abstract: 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: GrantFiled: May 22, 2020Date of Patent: April 19, 2022Assignee: Oracle International CorporationInventors: David L. Weaver, John R. Rose
-
Publication number: 20220067152Abstract: 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: ApplicationFiled: August 26, 2020Publication date: March 3, 2022Applicant: Oracle International CorporationInventors: Alexander R. Buckley, John R. Rose, Daniel Lee Smith, David Colin Holmes, Lai Hung Mandy Chung
-
Patent number: 11030097Abstract: 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: GrantFiled: July 22, 2019Date of Patent: June 8, 2021Assignee: Oracle International CorporationInventors: John R. Rose, Paul D. Sandoz
-
Publication number: 20210096834Abstract: 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: ApplicationFiled: December 14, 2020Publication date: April 1, 2021Applicant: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Patent number: 10908886Abstract: 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: GrantFiled: February 7, 2017Date of Patent: February 2, 2021Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Publication number: 20200285408Abstract: 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: ApplicationFiled: May 22, 2020Publication date: September 10, 2020Inventors: David L. Weaver, John R. Rose
-
Patent number: 10740115Abstract: 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: GrantFiled: September 25, 2017Date of Patent: August 11, 2020Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose
-
Patent number: 10664183Abstract: 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: GrantFiled: June 21, 2017Date of Patent: May 26, 2020Assignee: Oracle International CorporationInventors: David L. Weaver, John R. Rose
-
Patent number: 10635420Abstract: 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: GrantFiled: February 7, 2017Date of Patent: April 28, 2020Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Gavin Mark Bierman
-
Patent number: 10635472Abstract: 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: GrantFiled: October 21, 2016Date of Patent: April 28, 2020Assignee: Oracle International CorporationInventors: John R. Rose, Vladimir Ivanov
-
Publication number: 20190347199Abstract: 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: ApplicationFiled: July 22, 2019Publication date: November 14, 2019Applicant: Oracle International CorporationInventors: John R. Rose, Paul D. Sandoz
-
Patent number: 10452409Abstract: 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: GrantFiled: October 21, 2016Date of Patent: October 22, 2019Assignee: Oracle International CorporationInventors: John R. Rose, Vladimir Ivanov, Mikael Vidstedt
-
Patent number: 10402320Abstract: 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: GrantFiled: February 27, 2018Date of Patent: September 3, 2019Assignee: Oracle International CorporationInventors: John R. Rose, Paul D. Sandoz