-
公开(公告)号:US12158952B2
公开(公告)日:2024-12-03
申请号:US18147805
申请日:2022-12-29
Applicant: Oracle International Corporation
Inventor: Alexander R. Buckley , John R. Rose , Daniel Lee Smith , David Colin Holmes , Lai Hung Mandy Chung
Abstract: 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.
-
公开(公告)号:US11347489B2
公开(公告)日:2022-05-31
申请号:US17120538
申请日:2020-12-14
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose , Gavin Mark Bierman
Abstract: 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.
-
公开(公告)号:US09891900B2
公开(公告)日:2018-02-13
申请号:US15055469
申请日:2016-02-26
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose , Maurizio Cimadamore
CPC classification number: G06F9/4492 , G06F8/24 , G06F8/315 , G06F8/41 , G06F8/437 , G06F8/443 , G06F8/447 , G06F8/70 , G06F8/71 , G06F8/76 , G06F9/4428 , G06F9/443 , G06F9/4433 , G06F9/44521 , G06F9/4488 , G06F9/449 , G06F9/45516
Abstract: Generic method specialization represents the ability to specialize generic methods over various types. When implementing generic method specialization an annotated class file may include a generic method declaration that is annotated with specialization metadata indicating elements of the generic method to be adjusted during specialization. The annotated method may be usable directly as an erased method implementation (e.g., to load the method when instantiated with reference types) and may also be usable as a template for specialization. When a generic method is being prepared for execution, such as when it is first invoked during runtime, a specialization method generator function may be used to specialize the generic method based on the specialization metadata in the generic method declaration. The specialization method generator function may use the annotated generic method declaration as a template for specialization.
-
公开(公告)号:US20180024844A1
公开(公告)日:2018-01-25
申请号:US15714836
申请日:2017-09-25
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose
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.
-
5.
公开(公告)号:US09772828B2
公开(公告)日:2017-09-26
申请号:US14660177
申请日:2015-03-17
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose
CPC classification number: G06F9/4492 , G06F8/24 , G06F8/315 , G06F8/41 , G06F8/437 , G06F8/443 , G06F8/447 , G06F8/70 , G06F8/71 , G06F8/76 , G06F9/4428 , G06F9/443 , G06F9/4433 , G06F9/44521 , G06F9/4488 , G06F9/449 , G06F9/45516
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.
-
公开(公告)号:US20150301825A1
公开(公告)日:2015-10-22
申请号:US14660604
申请日:2015-03-17
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose
CPC classification number: G06F9/4492 , G06F8/24 , G06F8/315 , G06F8/41 , G06F8/437 , G06F8/443 , G06F8/447 , G06F8/70 , G06F8/71 , G06F8/76 , G06F9/4428 , G06F9/443 , G06F9/4433 , G06F9/44521 , G06F9/4488 , G06F9/449 , G06F9/45516
Abstract: The domain of genericity of an existing generic class may be expanded to include not just reference types, but also primitive and value types even though some members of the existing class do not support the expanded genericity. A subdivided version of the class may be created that includes a generic layer including abstract versions of class members and a reference-specific layer that including non-abstract versions of class members that are abstract in the generic layer. The subdivided version of the class may also include information that indicates to which layer a class member belongs. Problematic methods (e.g., methods that have built-in assumptions regarding the domain of genericity) may be moved into the second, reference-specific, layer, thereby retaining compatibility with classes that currently instantiate or reference those methods, while still allowing use within the expanded domain of genericity.
Abstract translation: 现有泛型类的一般性领域可以扩展为不仅包括引用类型,还包括原始类型和值类型,即使现有类的一些成员不支持扩展的一般性。 可以创建类的细分版本,其包括包括类成员的抽象版本的通用层和包括在通用层中抽象的类成员的非抽象版本的引用特定层。 类的细分版本还可以包括指示类成员属于哪个层的信息。 有问题的方法(例如,具有关于一般性领域的内置假设的方法)可以被移动到第二个引用特定的层中,从而保持与当前实例化的类或参考这些方法的类的兼容性,同时仍然允许在 扩展域的一般性。
-
公开(公告)号:US20220067152A1
公开(公告)日:2022-03-03
申请号:US17003768
申请日:2020-08-26
Applicant: Oracle International Corporation
Inventor: Alexander R. Buckley , John R. Rose , Daniel Lee Smith , David Colin Holmes , Lai Hung Mandy Chung
Abstract: 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.
-
公开(公告)号:US10740115B2
公开(公告)日:2020-08-11
申请号:US15714836
申请日:2017-09-25
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose
IPC: G06F9/45 , G06F9/448 , G06F9/445 , G06F8/20 , G06F9/455 , G06F8/41 , G06F8/30 , G06F8/71 , G06F8/70 , G06F8/76
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.
-
公开(公告)号:US20180018163A1
公开(公告)日:2018-01-18
申请号:US15426839
申请日:2017-02-07
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose , Gavin Mark Bierman
CPC classification number: G06F8/447 , G06F8/437 , G06F8/71 , G06F9/449 , G06F9/45504
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.
-
公开(公告)号:US20180018151A1
公开(公告)日:2018-01-18
申请号:US15426312
申请日:2017-02-07
Applicant: Oracle International Corporation
Inventor: Brian Goetz , John R. Rose , Gavin Mark Bierman
CPC classification number: G06F8/447 , G06F8/437 , G06F8/71 , G06F9/449 , G06F9/45504
Abstract: 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.
-
-
-
-
-
-
-
-
-