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: 20200293335Abstract: 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: ApplicationFiled: May 27, 2020Publication date: September 17, 2020Applicant: Oracle International CorporationInventors: Michael Haupt, John Rose, Brian Goetz
-
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: 10719337Abstract: 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: GrantFiled: January 7, 2019Date of Patent: July 21, 2020Assignee: Oracle International CorporationInventors: Michael Haupt, John Rose, Brian Goetz
-
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: 10606614Abstract: 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: GrantFiled: July 31, 2017Date of Patent: March 31, 2020Assignee: Oracle International CorporationInventors: Michael Haupt, John Rose, Brian Goetz
-
Publication number: 20200097300Abstract: 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: ApplicationFiled: November 27, 2019Publication date: March 26, 2020Inventors: Brian Goetz, Paul D. Sandoz
-
Publication number: 20200026530Abstract: 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: ApplicationFiled: July 18, 2019Publication date: January 23, 2020Applicant: Oracle International CorporationInventors: John Robert Rose, Brian Goetz
-
Patent number: 10540148Abstract: 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: GrantFiled: May 29, 2015Date of Patent: January 21, 2020Assignee: Oracle International CorporationInventors: John Robert Rose, Brian Goetz
-
Patent number: 10528330Abstract: 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: GrantFiled: December 27, 2018Date of Patent: January 7, 2020Assignee: Oracle International CorporationInventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
-
Patent number: 10496417Abstract: 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: GrantFiled: December 12, 2016Date of Patent: December 3, 2019Assignee: Oracle International CorporationInventors: Brian Goetz, Paul D. Sandoz
-
Patent number: 10466975Abstract: 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: GrantFiled: October 24, 2016Date of Patent: November 5, 2019Assignee: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Publication number: 20190332381Abstract: 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: ApplicationFiled: July 8, 2019Publication date: October 31, 2019Applicant: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Patent number: 10409559Abstract: 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: GrantFiled: March 18, 2016Date of Patent: September 10, 2019Assignee: Oracle International CorporationInventors: Brian Goetz, Maurizio Cimadamore
-
Patent number: 10387153Abstract: 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: GrantFiled: November 27, 2017Date of Patent: August 20, 2019Assignee: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Publication number: 20190243623Abstract: 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: ApplicationFiled: April 15, 2019Publication date: August 8, 2019Inventors: JOHN ROBERT ROSE, BRIAN GOETZ, GUY STEELE
-
Patent number: 10373139Abstract: 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: GrantFiled: March 20, 2017Date of Patent: August 6, 2019Assignee: Oracle America, Inc.Inventors: Bernard A. Traversat, Mohamed M. Abdelaziz, Michael J. Duigou, Henry Jen, Brian Goetz
-
Patent number: 10310827Abstract: 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: GrantFiled: April 6, 2018Date of Patent: June 4, 2019Assignee: Oracle International CorporationInventors: Gavin Mark Bierman, Brian Goetz, Guy Steele
-
Publication number: 20190163478Abstract: 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: ApplicationFiled: November 27, 2017Publication date: May 30, 2019Applicant: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Patent number: 10303467Abstract: 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: GrantFiled: April 13, 2015Date of Patent: May 28, 2019Assignee: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Patent number: 10303449Abstract: 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: GrantFiled: February 28, 2018Date of Patent: May 28, 2019Assignee: Oracle International CorporationInventors: Brian Goetz, Maurizio Cimadamore, Vicente A. Romero Zaldivar