Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3a46dc146c60
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2718f6023551
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Oct 13, 2014

  1. Add new fake instr to hold intperpreter state. This instr is destined…

    … to only be instr 0 of the linearized instr list used only by the interpreter. It removes all remaining IRScope state knowledge from interpreter (not currently hooked up).
    enebo committed Oct 13, 2014
    Copy the full SHA
    645093e View commit details
  2. Boo. nested closures need unmolested parent scopes based on passes wh…

    …ich may replace parent variables with temp vars. We cannot use this simpler approach and will end up going the original full-clone route. Commented out cloning in prepareInstructions
    enebo committed Oct 13, 2014
    Copy the full SHA
    2718f60 View commit details
Showing with 9 additions and 2 deletions.
  1. +2 −2 core/src/main/java/org/jruby/ir/IRScope.java
  2. +7 −0 core/src/main/java/org/jruby/ir/instructions/InterpreterPrologInstr.java
4 changes: 2 additions & 2 deletions core/src/main/java/org/jruby/ir/IRScope.java
Original file line number Diff line number Diff line change
@@ -489,7 +489,7 @@ private synchronized Instr[] prepareInstructions() {
// All same-named labels must be same Java instance for this to work or we would need
// to examine all Label operands and update this as well which would be expensive.
Label l = b.getLabel();
Label newL = cloneInfo.getRenamedLabel(l);
Label newL = l;//cloneInfo.getRenamedLabel(l);
l.setTargetPC(ipc);
newL.setTargetPC(ipc);

@@ -498,7 +498,7 @@ private synchronized Instr[] prepareInstructions() {
for (int i = 0; i < bbInstrsLength; i++) {
Instr instr = bbInstrs.get(i);
if (!(instr instanceof ReceiveSelfInstr)) {
Instr newInstr = instr.clone(cloneInfo);
Instr newInstr = instr;//.clone(cloneInfo);
// if (newInstr == instr) {
// System.out.println("Instruction " + instr.getOperation() + " returns itself on clone. Probably fragile!");
// }
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.jruby.ir.instructions;

/**
* Created by enebo on 10/13/14.
*/
public class InterpreterPrologInstr {
}