Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.6.1
-
Fix Version/s: JRuby 1.7.0.pre1
-
Component/s: Miscellaneous
-
Labels:None
-
Number of attachments :
Description
To support more direct binding of compiled Ruby code to callers, I added a NativeCall attribute to DynamicMethod in 1.6. NativeCall contains information on how to directly bind to the underlying Java method, allowing dynopt/indy modes to dispatch directly to the target rather than via the intermediate handle.
This is done currently for all core methods that are bound using generated TypePopulator impls (generated by AnnotationBinder), but not for any other scenarios:
- Compiled Ruby methods
- Java-based Ruby methods not pregenerated
- Reflectively bound methods
In order for dynopt and indy to be able to patch through as many methods as possible, all paths that define and bind JVM-bytecode-based Ruby methods should be generating NativeCall information.
Activity
Charles Oliver Nutter
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | JRuby 1.7.0.pre2 [ 18527 ] | |
| Fix Version/s | JRuby 1.7.0.pre1 [ 17049 ] |
Charles Oliver Nutter
made changes -
| Fix Version/s | JRuby 1.7.0.RC1 [ 18717 ] | |
| Fix Version/s | JRuby 1.7.0.pre2 [ 18527 ] |
Charles Oliver Nutter
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Fix Version/s | JRuby 1.7.0.pre1 [ 17049 ] | |
| Fix Version/s | JRuby 1.7.0.RC1 [ 18717 ] | |
| Resolution | Fixed [ 1 ] |
As part of indy investigation and the work up to 1.7pre1, I made many, many more types of methods generate NativeCall information. There's more work to do, but this issue is resolved in my mind.