Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java-constructable Concrete Ruby Classes #6422

Merged
merged 55 commits into from
May 25, 2021
Merged

Commits on Oct 2, 2020

  1. Configuration menu
    Copy the full SHA
    ab2ccf6 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2020

  1. Configuration menu
    Copy the full SHA
    fa00023 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2020

  1. More WIP constructor code. Multi-constructors should function, and no…

    …w configurable from ruby-land
    byteit101 committed Oct 24, 2020
    Configuration menu
    Copy the full SHA
    5c04320 View commit details
    Browse the repository at this point in the history
  2. Remove test class reference

    byteit101 committed Oct 24, 2020
    Configuration menu
    Copy the full SHA
    2998f72 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2020

  1. Reasonable multi-signature support (codegen, helpers missing) and hor…

    …rifying AST rewriting to de-super()
    byteit101 committed Nov 1, 2020
    Configuration menu
    Copy the full SHA
    4c61162 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2020

  1. Configuration menu
    Copy the full SHA
    d1f30e0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9cd6bb3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    99239f0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5f9b618 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2020

  1. Configuration menu
    Copy the full SHA
    996197f View commit details
    Browse the repository at this point in the history
  2. missed a file

    byteit101 committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    c0995d5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    89f90db View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2020

  1. Add support for split allocate+initialize and arbitrary ruby argument…

    … fallback.
    
    Also some misc cleanup
    byteit101 committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    be1653a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef43757 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2020

  1. Configuration menu
    Copy the full SHA
    eb1ecdb View commit details
    Browse the repository at this point in the history
  2. Several test fixes

    byteit101 committed Nov 18, 2020
    Configuration menu
    Copy the full SHA
    cfcc2fd View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2020

  1. Configuration menu
    Copy the full SHA
    3b181d8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    913736c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    cf4adfe View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2020

  1. Down to 1+4+ant failures

    byteit101 committed Nov 27, 2020
    Configuration menu
    Copy the full SHA
    e0d2ddb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    52dd70f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7859cd5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7f2058c View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2020

  1. Add WIP unconnected interpreter which will allow stopping and continuing

    execution.  The goal will be to split execution before and after a super
    instruction.  The arguments to the super call will be retrieve'able which
    from Java can end up calling a java ctor.
    
    This also adds a new flag uses_super which just makes it simple for us to
    know the initialize method contains a super.  The intent is initialize methods
    in Java proxy classes without super will just not use this special interpreter.
    enebo committed Nov 30, 2020
    Configuration menu
    Copy the full SHA
    08ae7dd View commit details
    Browse the repository at this point in the history
  2. Filled out to the point I believe RubyClass can ask for the interpreter

    context via IRMethod.builtInterperterContextForJavaConstructor().  If this
    is and ExitableInterpreterEngine then we can split execute the method.
    
    At that point we need to ask for ic.getEngineState() and then call
    ExitableInterpreterEngine.interpret().  That method will execute up to the
    super instr and return a RubyArray of the arguments to the super call.  At
    this point we should convert those values for Java CTOR and execute it.  Once
    finished we will then just call interpret() again.  The interpreter will then
    continue executing at one instr past the original super instr.
    
    So the above description still needs to exist in RubyClass vs the AST stuff
    it is doing now.
    
    There is another small problem that this is a startup interpreter of sorts
    and this method will still try and promote to being a FULL/JIT method.  We
    need to either disable that or possibly automatically convert this to be a
    full interpreter (but still disable JIT compilation).
    enebo committed Nov 30, 2020
    Configuration menu
    Copy the full SHA
    1322977 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2020

  1. Add depth logic to IR super splitting.

    This looks for jump targets and labels.  A label is where we will jump
    to.  jumptargets are places which will move to a label.  If we run into
    a jump target we need to just notice whether the jump will move forward
    past the super call or jump backwards to before the super call.  All
    the other jumps should be fine.
    
    From a purely what could we support this is a bit restrictive.  There
    are cases where we could support all paths of an if/else where both
    branches are guaranteed to call super.  This should be allowed but this
    analysis requires flow analysis and the current version is too simple to
    support it.  Future work can add this.
    enebo committed Dec 1, 2020
    Configuration menu
    Copy the full SHA
    3311fa0 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2020

  1. Revert "Update for import/style consistency"

    This reverts commit 3b181d8.
    byteit101 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    5fe86f0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    945f66e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1519da7 View commit details
    Browse the repository at this point in the history
  4. Tie in new IR work

    byteit101 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    5e8c211 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2020

  1. Configuration menu
    Copy the full SHA
    90fb7cf View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2020

  1. Configuration menu
    Copy the full SHA
    8d6d424 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d2fb097 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8fa6ba1 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2020

  1. Cleanup and bug fixes

    byteit101 committed Dec 9, 2020
    Configuration menu
    Copy the full SHA
    73b6e89 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2020

  1. Configuration menu
    Copy the full SHA
    5bddf82 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    abb05c1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    53d7eff View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d27fab3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    39adc70 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2021

  1. Configuration menu
    Copy the full SHA
    ce66437 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2021

  1. Configuration menu
    Copy the full SHA
    9ae5915 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2021

  1. Configuration menu
    Copy the full SHA
    e51ce30 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2021

  1. More cleanup

    byteit101 committed Feb 23, 2021
    Configuration menu
    Copy the full SHA
    091c868 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    18dfe11 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2021

  1. Mark failing tests, fix 1 test, add 1 test for negative super looping…

    …, fix negative super looping
    byteit101 committed Mar 5, 2021
    Configuration menu
    Copy the full SHA
    5860ce9 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2021

  1. Configuration menu
    Copy the full SHA
    da2bc4e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    67f03ae View commit details
    Browse the repository at this point in the history
  3. Refactor RCG to pass index and converted args from splitInit

    Fixes vararg dispatch
    byteit101 committed Mar 6, 2021
    Configuration menu
    Copy the full SHA
    300005f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2eed247 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d68357e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    03b5554 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2021

  1. Configuration menu
    Copy the full SHA
    b12e5a6 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2021

  1. Configuration menu
    Copy the full SHA
    a5b1b8d View commit details
    Browse the repository at this point in the history

Commits on May 17, 2021

  1. Configuration menu
    Copy the full SHA
    dc3f34f View commit details
    Browse the repository at this point in the history