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: 20200293335
    Abstract: Embodiments include a code loader method for loading attributes corresponding to an isolated method by a container-based language runtime. The attributes are received by the container-based language runtime without any specified container for storage of the isolated method attributes. The attributes received as parameters of code loader method and include instructions, live objects, and parameter types corresponding to the isolated method. The container-based language runtime selects a first-order container for storing the attributes of the isolated method.
    Type: Application
    Filed: May 27, 2020
    Publication date: September 17, 2020
    Applicant: Oracle International Corporation
    Inventors: Michael Haupt, John Rose, Brian Goetz
  • 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: 10719337
    Abstract: Embodiments include a code loader method for loading attributes corresponding to an isolated method by a container-based language runtime. The attributes are received by the container-based language runtime without any specified container for storage of the isolated method attributes. The attributes received as parameters of code loader method and include instructions, live objects, and parameter types corresponding to the isolated method. The container-based language runtime selects a first-order container for storing the attributes of the isolated method.
    Type: Grant
    Filed: January 7, 2019
    Date of Patent: July 21, 2020
    Assignee: Oracle International Corporation
    Inventors: Michael Haupt, John Rose, Brian Goetz
  • 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: 10606614
    Abstract: Embodiments include a code loader method for loading attributes corresponding to an isolated method by a container-based language runtime. The attributes are received by the container-based language runtime without any specified container for storage of the isolated method attributes. The attributes received as parameters of code loader method and include instructions, live objects, and parameter types corresponding to the isolated method. The container-based language runtime selects a first-order container for storing the attributes of the isolated method.
    Type: Grant
    Filed: July 31, 2017
    Date of Patent: March 31, 2020
    Assignee: Oracle International Corporation
    Inventors: Michael Haupt, John Rose, Brian Goetz
  • Publication number: 20200097300
    Abstract: Modular co-versioning may involve the creation of multi-version libraries that may include multiple versions of a class. A multi-version library may include a base version and one or more other versions each of which may correspond to a particular, respective version of a software development kit, runtime environment or software platform, according to various embodiments. At runtime, a multi-version library may be searched in order to load a version of a class that corresponds to the version of the currently executing runtime environment. If the multi-version library does not include a version of the class corresponding to the currently executing version of the environment/platform, a version of the class corresponding to a previous version of the environment may be loaded if found in the multi-version library. Alternatively, if no other version of the class is found, a base version of the class may be loaded from the multi-version library.
    Type: Application
    Filed: November 27, 2019
    Publication date: March 26, 2020
    Inventors: Brian Goetz, Paul D. Sandoz
  • 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
  • Patent number: 10528330
    Abstract: A system and method can support compatibility checking in a programming language environment. The programming language environment can check whether a target type associated with an expression in the programming language environment is functional, wherein the target type is functional when it has exactly one method meeting one or more criteria that define that method as relevant in a counting system. Then, the programming language environment can derive a function descriptor from the target type, which is context-dependent. Furthermore, the programming language environment can type-check the expression with the function descriptor associated with the target type.
    Type: Grant
    Filed: December 27, 2018
    Date of Patent: January 7, 2020
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
  • Patent number: 10496417
    Abstract: Modular co-versioning may involve the creation of multi-version libraries that may include multiple versions of a class. A multi-version library may include a base version and one or more other versions each of which may correspond to a particular, respective version of a software development kit, runtime environment or software platform, according to various embodiments. At runtime, a multi-version library may be searched in order to load a version of a class that corresponds to the version of the currently executing runtime environment. If the multi-version library does not include a version of the class corresponding to the currently executing version of the environment/platform, a version of the class corresponding to a previous version of the environment may be loaded if found in the multi-version library. Alternatively, if no other version of the class is found, a base version of the class may be loaded from the multi-version library.
    Type: Grant
    Filed: December 12, 2016
    Date of Patent: December 3, 2019
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Paul D. Sandoz
  • Patent number: 10466975
    Abstract: Techniques herein processes type assignments for a generic class to generate a concrete class. In an embodiment, a computer analyzes a client class to detect a dependency on a generic class having type parameters. The client class contains a specialization context that specifies type assignments for the type parameters. Each type parameter is associated with particular type entries in the generic class that identify an erasure type to use in case the type parameter is erased. The computer generates instantiation metadata for the generic class including, for each type entry, performing the following. In response to determining that the specialization context specifies binding a particular type to the type parameter associated with the type entry, the computer generates an entry for the instantiation metadata that identifies the particular type. Otherwise, the computer generates an entry for the instantiation metadata that identifies an erasure type of the type entry.
    Type: Grant
    Filed: October 24, 2016
    Date of Patent: November 5, 2019
    Assignee: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Publication number: 20190332381
    Abstract: Techniques for synchronizing a set of code branches are disclosed. A synchronization process is triggered by an event and/or a schedule. The synchronization process includes traversing each code branch, such that parent branches of a particular branch are “in sync” prior to being merged into the particular branch. In an embodiment, a hierarchical order for a set of branches is determined. The branch represented by the top node of the hierarchical order does not have any parents. A branch that is a child of the branch represented by the top node is in the second level of the hierarchical order. The branch in the second level is updated by incorporating the current state of the branch represented by the top node. Thereafter, each branch is iteratively updated by incorporating the current state of the branch's parent branch. Hence, changes to any parent branch are propagated through all its descendant branches.
    Type: Application
    Filed: July 8, 2019
    Publication date: October 31, 2019
    Applicant: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Patent number: 10409559
    Abstract: A method for software compilation is disclosed. A compiler may identify features of source code which are unavailable in a target environment for the compilation. The compiler may then translate the identified features into modified features in response to determining that projections for the identified features into the target environment are available. The compiler may then compile the source code dependent upon the modified features.
    Type: Grant
    Filed: March 18, 2016
    Date of Patent: September 10, 2019
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Maurizio Cimadamore
  • Patent number: 10387153
    Abstract: Techniques for synchronizing a set of code branches are disclosed. A synchronization process is triggered by an event and/or a schedule. The synchronization process includes traversing each code branch, such that parent branches of a particular branch are “in sync” prior to being merged into the particular branch. In an embodiment, a hierarchical order for a set of branches is determined. The branch represented by the top node of the hierarchical order does not have any parents. A branch that is a child of the branch represented by the top node is in the second level of the hierarchical order. The branch in the second level is updated by incorporating the current state of the branch represented by the top node. Thereafter, each branch is iteratively updated by incorporating the current state of the branch's parent branch. Hence, changes to any parent branch are propagated through all its descendant branches.
    Type: Grant
    Filed: November 27, 2017
    Date of Patent: August 20, 2019
    Assignee: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Publication number: 20190243623
    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: Application
    Filed: April 15, 2019
    Publication date: August 8, 2019
    Inventors: JOHN ROBERT ROSE, BRIAN GOETZ, GUY STEELE
  • Patent number: 10373139
    Abstract: A non-transitory computer readable storage medium including computer readable code that, when executed by a processor, is configured to receive, from a user network device, a first request to execute an application on the user network device. The first request includes a user identification, routing information, and requested application information, encrypted using a public key. The user network device is configured to display the application on a television display device. The code is further configured to decrypt the routing information and requested application information using a private key, send a second request for subscription information to a service provider, receive the subscription information from the service provider, and determine that a license corresponding to the application is associated with the user. The code is further configured to generate and send an application package configured to deploy the application using a Java Runtime Environment on the user network device.
    Type: Grant
    Filed: March 20, 2017
    Date of Patent: August 6, 2019
    Assignee: Oracle America, Inc.
    Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Henry Jen, Brian Goetz
  • Patent number: 10310827
    Abstract: Techniques for flow-based scoping are disclosed. A first code segment in a sequence of same-level code segments encapsulates a first lower-level lexical scope. The first lower-level scope is inclusive of scoping provided for the sequence of same-level code segments. The first code segment comprises a condition and an uninitialized variable. If executed, the first code segment causes the condition to be evaluated. If the condition is satisfied, the uninitialized variable is initialized and made available only within the first lower-level lexical scope. If a second code segment (a) references the uninitialized variable and (b) is in the sequence of same-level code segments or in a second lower-level lexical scope outside of the first lower-level lexical scope, an error message is presented indicating that the uninitialized variable is out of scope for the second code segment.
    Type: Grant
    Filed: April 6, 2018
    Date of Patent: June 4, 2019
    Assignee: Oracle International Corporation
    Inventors: Gavin Mark Bierman, Brian Goetz, Guy Steele
  • Publication number: 20190163478
    Abstract: Techniques for synchronizing a set of code branches are disclosed. A synchronization process is triggered by an event and/or a schedule. The synchronization process includes traversing each code branch, such that parent branches of a particular branch are “in sync” prior to being merged into the particular branch. In an embodiment, a hierarchical order for a set of branches is determined. The branch represented by the top node of the hierarchical order does not have any parents. A branch that is a child of the branch represented by the top node is in the second level of the hierarchical order. The branch in the second level is updated by incorporating the current state of the branch represented by the top node. Thereafter, each branch is iteratively updated by incorporating the current state of the branch's parent branch. Hence, changes to any parent branch are propagated through all its descendant branches.
    Type: Application
    Filed: November 27, 2017
    Publication date: May 30, 2019
    Applicant: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Patent number: 10303467
    Abstract: A code analysis tool identifies a first and a second proposed code transformation (PCT) for respective expressions within a refactoring candidate section of source code, such that at least one PCT would result in an exercise of a target typing mechanism of the programming language being used. The determination of the data type of at least one of the expressions depends on the determination of the data type of the other. The tool generates a plurality of PCT combinations for the refactoring candidate section. In response to determining that a particular PCT combination meets acceptance criteria, a refactoring option which includes that PCT combination is recommended.
    Type: Grant
    Filed: April 13, 2015
    Date of Patent: May 28, 2019
    Assignee: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Patent number: 10303449
    Abstract: Techniques for compiling non-native constants are disclosed. While compiling source code instructions, a compiler determines that a particular source code expression is associated with a command to the compiler to resolve the particular source code expression as a constant during compilation. The compiler is not configured to recognize the particular source code expression as constant without the command signaling to the compiler that the particular source code expression is constant. Based on the command, the compiler executes the particular source code expression to obtain a constant value. The compiler generates compiled instructions based on the source code instructions, in which the constant value is substituted for at least one reference to the particular source code expression.
    Type: Grant
    Filed: February 28, 2018
    Date of Patent: May 28, 2019
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Maurizio Cimadamore, Vicente A. Romero Zaldivar