Patents by Inventor John Robert Rose
John Robert 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: 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
-
Publication number: 20190324880Abstract: Techniques for computing a memory health metric are disclosed. A system computes a memory health metric as a function of estimated entropy in a data set. The system may determine the memory health metric based on compressed and uncompressed sizes of the data set, quantities of values in the data set, and/or patterns of structural relationships within the data set. The system determines whether the memory health metric crosses a threshold value. If the memory health metric crosses the threshold value, the system presents a warning indicating that utilization of the memory is unhealthy.Type: ApplicationFiled: April 18, 2018Publication date: October 24, 2019Applicant: Oracle International CorporationInventor: John Robert Rose
-
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: 10324741Abstract: According to one technique, a virtual machine stores type profiling data for program code, the type profiling data indicating observed types for profiled values within the program code at specific profile points during previous executions of the program code. The virtual machine determines to optimize a particular code segment of the program code. The virtual machine generates a program representation describing a flow of data through different variables within the code segment. The virtual machine assigns speculative types to certain variables in the particular code segment by: assigning speculative types of first variables to respective observed types recorded in the type profiling data; calculating speculative types of second variables, based on propagating the speculative types of the first variables through the program representation.Type: GrantFiled: April 29, 2015Date of Patent: June 18, 2019Assignee: Oracle International CorporationInventors: Roland Westrelin, John Robert Rose
-
Patent number: 10261764Abstract: 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: GrantFiled: April 29, 2015Date of Patent: April 16, 2019Assignee: Oracle International CorporationInventors: John Robert Rose, Brian Goetz, Guy Steele
-
Patent number: 9690709Abstract: According to one technique, a virtual machine identifies a first instruction to create a variable handle instance, the first instruction including declaration information that identifies a type of receiver and a variable held by the receiver to which the variable handle instance is configured to provide access. If access to the variable is permissible, the virtual machine creates the variable handle instance comprising constrained functions configured to execute constrained operations on a memory location of the variable. The virtual machine identifies a second instruction that specifies a call to a particular constrained, wherein the second instruction specifies the receiver or is implicitly bound to the receiver. The virtual machine identifies a particular memory location where the instance of the variable is stored and performs the particular constrained function with respect to the particular memory location.Type: GrantFiled: April 7, 2015Date of Patent: June 27, 2017Assignee: Oracle International CorporationInventors: Paul Sandoz, Brian Goetz, John Robert Rose
-
Publication number: 20160357586Abstract: In one approach, a method comprises: a virtual machine receiving an invocation instruction from a caller that invokes a callee, wherein the caller represents a first set of instructions and the callee represents a second set of instructions, wherein the invocation instruction is associated with a first set of arguments; in response to receiving the invocation instruction and determining that the callee requires one or more additional parameters to be supplied by the virtual machine, the virtual machine causing the one or more additional parameters to be appended to the first set of arguments to create a second set of arguments; wherein the virtual machine prevents the caller from providing the one or more additional arguments that are to be supplied by the virtual machine; the virtual machine invoking the callee using the second set of arguments.Type: ApplicationFiled: April 4, 2016Publication date: December 8, 2016Inventor: JOHN ROBERT ROSE
-
Publication number: 20160062878Abstract: According to one technique, a virtual machine stores type profiling data for program code, the type profiling data indicating observed types for profiled values within the program code at specific profile points during previous executions of the program code. The virtual machine determines to optimize a particular code segment of the program code. The virtual machine generates a program representation describing a flow of data through different variables within the code segment. The virtual machine assigns speculative types to certain variables in the particular code segment by: assigning speculative types of first variables to respective observed types recorded in the type profiling data; calculating speculative types of second variables, based on propagating the speculative types of the first variables through the program representation.Type: ApplicationFiled: April 29, 2015Publication date: March 3, 2016Inventors: ROLAND WESTRELIN, JOHN ROBERT ROSE
-
Publication number: 20160011982Abstract: According to one technique, a virtual machine identifies a first instruction to create a variable handle instance, the first instruction including declaration information that identifies a type of receiver and a variable held by the receiver to which the variable handle instance is configured to provide access. If access to the variable is permissible, the virtual machine creates the variable handle instance comprising constrained functions configured to execute constrained operations on a memory location of the variable. The virtual machine identifies a second instruction that specifies a call to a particular constrained, wherein the second instruction specifies the receiver or is implicitly bound to the receiver. The virtual machine identifies a particular memory location where the instance of the variable is stored and performs the particular constrained function with respect to the particular memory location.Type: ApplicationFiled: April 7, 2015Publication date: January 14, 2016Inventors: PAUL SANDOZ, BRIAN GOETZ, JOHN ROBERT ROSE
-
Publication number: 20160011992Abstract: According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The virtual machine causes performance of the particular memory fencing operation with respect to the memory location.Type: ApplicationFiled: April 7, 2015Publication date: January 14, 2016Inventors: PAUL SANDOZ, BRIAN GOETZ, JOHN ROBERT ROSE
-
Publication number: 20150363174Abstract: 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: ApplicationFiled: May 29, 2015Publication date: December 17, 2015Inventors: JOHN ROBERT ROSE, BRIAN GOETZ
-
Publication number: 20150331681Abstract: 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 29, 2015Publication date: November 19, 2015Inventors: JOHN ROBERT ROSE, BRIAN GOETZ, GUY STEELE
-
Patent number: 8561040Abstract: In embodiments, prior to compilation into machine code, a preprocessor generates directives by processing a source code and/or bytecode representation of a program and/or selecting default directives. The preprocessor embeds the directives in a bytecode representation of the program or a separate stream associated with the bytecode representation of the program. A just-in-time compiler may compile the bytecode representation into machine code directed by the embedded directives in one pass and/or a bytecode interpreter may interpret the bytecode representation of the program. In some embodiments, a computing device generates bytecodes during execution of a program, selects default directives, and embeds the default directives in the bytecodes or a separate stream associated with the bytecodes prior to compilation of the bytecodes into machine code.Type: GrantFiled: March 10, 2009Date of Patent: October 15, 2013Assignee: Oracle America, Inc.Inventor: John Robert Rose
-
Publication number: 20100235819Abstract: In embodiments, prior to compilation into machine code, a preprocessor generates directives by processing a source code and/or bytecode representation of a program and/or selecting default directives. The preprocessor embeds the directives in a bytecode representation of the program or a separate stream associated with the bytecode representation of the program. A just-in-time compiler may compile the bytecode representation into machine code directed by the embedded directives in one pass and/or a bytecode interpreter may interpret the bytecode representation of the program. In some embodiments, a computing device generates bytecodes during execution of a program, selects default directives, and embeds the default directives in the bytecodes or a separate stream associated with the bytecodes prior to compilation of the bytecodes into machine code.Type: ApplicationFiled: March 10, 2009Publication date: September 16, 2010Applicant: Sun Microsystems, Inc.Inventor: John Robert Rose