Patents by Inventor Brian Goetz

Brian Goetz 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: 20260037277
    Abstract: A system encounters an instruction that triggers generating an array that includes a set of elements initialized with a set of initial values. In response to encountering the instruction, the system identifies an application programming interface (API) for generating the array and executes a call to the API to request the API to generate the array. The API receives the call and, in response to the call, executes an array generation process to generate the array. The API provides the array to the system, and the system receives the array from the API. The array includes the set of elements initialized with the set of initial values.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Publication number: 20260037276
    Abstract: A system encounters a static field-access instruction to access a static field of a class. In response to encountering the static field-access instruction, the system determines that the first static field has yet to be accessed, and responsive to determining that the first static field has yet to be accessed, the system determines that an initial value has been assigned to the static field. In response to determining that the initial value has been assigned to the static field, the system accesses the static field.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Publication number: 20260037278
    Abstract: A system encounters an instruction that triggers loading a class. In response to encountering the instruction, the system executes a bytecode verification of the class. Executing the bytecode verification identifies an object instantiation process that, when executed, instantiates an object representing an instance of the class, and determines that the object instantiation process, when executed in the runtime environment, assigns an initial value to an instance field prior to the object being accessible in the runtime environment. In response to determining that the object instantiation process, when executed, assigns the initial value to the instance field prior to the object being accessible in the runtime environment, the system loads the class in the runtime environment.
    Type: Application
    Filed: May 5, 2025
    Publication date: February 5, 2026
    Applicant: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Sylvain Parain, Daniel J. Heidinga
  • Patent number: 12417133
    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: Grant
    Filed: January 7, 2022
    Date of Patent: September 16, 2025
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20250238295
    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: April 8, 2025
    Publication date: July 24, 2025
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 12141629
    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: Grant
    Filed: October 30, 2023
    Date of Patent: November 12, 2024
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20240338186
    Abstract: Techniques for compiling switch blocks are disclosed. One or more embodiments analyze and rewrite a set of pattern labels in a switch block in a compile-time process for determining whether the switch block is exhaustive. At compile-time, a system populates a set with case labels from a switch block. The system applies a set of rules to iteratively re-write pattern labels in the set and checks whether the re-written set, and hence the original switch block, is exhaustive. If the compiler determines that (a) the set does not appear to be exhaustive, and (b) the set includes patterns labels, then the compiler determines whether the set may be rewritten before further analysis. The compiler iteratively re-writes and re-analyzes the case label set for exhaustivity until the case label set is determined to be exhaustive or cannot be rewritten further.
    Type: Application
    Filed: September 7, 2023
    Publication date: October 10, 2024
    Applicant: Oracle International Corporation
    Inventors: Gavin Mark Bierman, Brian Goetz, Jan Lahoda
  • Patent number: 12014190
    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: November 6, 2020
    Date of Patent: June 18, 2024
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11972308
    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: Grant
    Filed: January 7, 2022
    Date of Patent: April 30, 2024
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11966798
    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: Grant
    Filed: January 7, 2022
    Date of Patent: April 23, 2024
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11922238
    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: Grant
    Filed: January 7, 2022
    Date of Patent: March 5, 2024
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20240061733
    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: October 30, 2023
    Publication date: February 22, 2024
    Applicant: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11836552
    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: Grant
    Filed: January 7, 2022
    Date of Patent: December 5, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11789793
    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: Grant
    Filed: January 7, 2022
    Date of Patent: October 17, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11782774
    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.
    Type: Grant
    Filed: January 7, 2022
    Date of Patent: October 10, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Maurizio Cimadamore, Brian Goetz
  • 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
  • Patent number: 11726849
    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: Grant
    Filed: January 7, 2022
    Date of Patent: August 15, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11693719
    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: Grant
    Filed: January 7, 2022
    Date of Patent: July 4, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Patent number: 11687388
    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.
    Type: Grant
    Filed: January 7, 2022
    Date of Patent: June 27, 2023
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Maurizio Cimadamore, Brian Goetz
  • Patent number: 11645129
    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: Grant
    Filed: January 7, 2022
    Date of Patent: May 9, 2023
    Assignee: Oracle International Corporation
    Inventors: Daniel Lee Smith, John Robert Rose, Brian Goetz, Frederic Parain