Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Major 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 :
      0

      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

        Hide
        Charles Oliver Nutter added a comment -

        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.

        Show
        Charles Oliver Nutter added a comment - 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.

          People

          • Assignee:
            Charles Oliver Nutter
            Reporter:
            Charles Oliver Nutter
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: