-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
- 9.0.4.0
- 9.0.3.0
- 9.0.1.0
- 9.0.0.0
- 9.0.0.0.rc2
- 9.0.0.0.rc1
1 parent
999f19e
commit 28a9776
Showing
15 changed files
with
185 additions
and
409 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
118 changes: 0 additions & 118 deletions
118
truffle/src/main/java/org/jruby/truffle/nodes/locals/FrameSlotNode.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
truffle/src/main/java/org/jruby/truffle/nodes/locals/ReadDeclarationVariableNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. This | ||
* code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
* redistribute it and/or modify it under the terms of the: | ||
* | ||
* Eclipse Public License version 1.0 | ||
* GNU General Public License version 2 | ||
* GNU Lesser General Public License version 2.1 | ||
*/ | ||
package org.jruby.truffle.nodes.locals; | ||
|
||
import com.oracle.truffle.api.CompilerDirectives; | ||
import com.oracle.truffle.api.frame.FrameSlot; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.source.SourceSection; | ||
import org.jruby.truffle.translator.ReadNode; | ||
import org.jruby.truffle.nodes.RubyNode; | ||
import org.jruby.truffle.runtime.RubyArguments; | ||
import org.jruby.truffle.runtime.RubyContext; | ||
import org.jruby.truffle.translator.Translator; | ||
|
||
import java.util.Arrays; | ||
import java.util.HashSet; | ||
import java.util.Set; | ||
|
||
public class ReadDeclarationVariableNode extends RubyNode implements ReadNode { | ||
|
||
private final int frameDepth; | ||
|
||
@Child private ReadFrameSlotNode readFrameSlotNode; | ||
|
||
public ReadDeclarationVariableNode(RubyContext context, SourceSection sourceSection, | ||
int frameDepth, FrameSlot slot) { | ||
super(context, sourceSection); | ||
readFrameSlotNode = ReadFrameSlotNodeGen.create(slot); | ||
this.frameDepth = frameDepth; | ||
} | ||
|
||
@Override | ||
public Object execute(VirtualFrame frame) { | ||
return readFrameSlotNode.executeRead(RubyArguments.getDeclarationFrame(frame, frameDepth)); | ||
} | ||
|
||
@Override | ||
public RubyNode makeWriteNode(RubyNode rhs) { | ||
return new WriteDeclarationVariableNode(getContext(), getSourceSection(), | ||
rhs, frameDepth, readFrameSlotNode.getFrameSlot()); | ||
} | ||
|
||
public static final Set<String> ALWAYS_DEFINED_GLOBALS = new HashSet<>(Arrays.asList("$~")); | ||
|
||
@Override | ||
public Object isDefined(VirtualFrame frame) { | ||
CompilerDirectives.transferToInterpreter(); | ||
|
||
if (Translator.FRAME_LOCAL_GLOBAL_VARIABLES.contains(readFrameSlotNode.getFrameSlot().getIdentifier())) { | ||
if (ALWAYS_DEFINED_GLOBALS.contains(readFrameSlotNode.getFrameSlot().getIdentifier()) | ||
|| readFrameSlotNode.executeRead(RubyArguments.getDeclarationFrame(frame, frameDepth)) != nil()) { | ||
return getContext().makeString("global-variable"); | ||
} else { | ||
return nil(); | ||
} | ||
} else { | ||
return getContext().makeString("local-variable"); | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
88 changes: 0 additions & 88 deletions
88
truffle/src/main/java/org/jruby/truffle/nodes/locals/ReadLevelVariableNode.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
truffle/src/main/java/org/jruby/truffle/nodes/locals/WriteDeclarationVariableNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* | ||
* Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved. This | ||
* code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
* redistribute it and/or modify it under the terms of the: | ||
* | ||
* Eclipse Public License version 1.0 | ||
* GNU General Public License version 2 | ||
* GNU Lesser General Public License version 2.1 | ||
*/ | ||
package org.jruby.truffle.nodes.locals; | ||
|
||
import com.oracle.truffle.api.frame.FrameSlot; | ||
import com.oracle.truffle.api.frame.MaterializedFrame; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.source.SourceSection; | ||
import org.jruby.truffle.nodes.RubyNode; | ||
import org.jruby.truffle.translator.WriteNode; | ||
import org.jruby.truffle.runtime.RubyArguments; | ||
import org.jruby.truffle.runtime.RubyContext; | ||
|
||
public class WriteDeclarationVariableNode extends RubyNode implements WriteNode { | ||
|
||
@Child private RubyNode valueNode; | ||
@Child private WriteFrameSlotNode writeFrameSlotNode; | ||
|
||
private final int frameDepth; | ||
|
||
public WriteDeclarationVariableNode(RubyContext context, SourceSection sourceSection, | ||
RubyNode valueNode, int frameDepth, FrameSlot frameSlot) { | ||
super(context, sourceSection); | ||
this.valueNode = valueNode; | ||
writeFrameSlotNode = WriteFrameSlotNodeGen.create(frameSlot); | ||
this.frameDepth = frameDepth; | ||
} | ||
|
||
@Override | ||
public Object execute(VirtualFrame frame) { | ||
final MaterializedFrame declarationFrame = RubyArguments.getDeclarationFrame(frame, frameDepth); | ||
return writeFrameSlotNode.executeWrite(declarationFrame, valueNode.execute(frame)); | ||
} | ||
|
||
@Override | ||
public RubyNode makeReadNode() { | ||
return new ReadDeclarationVariableNode(getContext(), getSourceSection(), frameDepth, writeFrameSlotNode.getFrameSlot()); | ||
} | ||
|
||
@Override | ||
public Object isDefined(VirtualFrame frame) { | ||
return getContext().makeString("assignment"); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
78 changes: 0 additions & 78 deletions
78
truffle/src/main/java/org/jruby/truffle/nodes/locals/WriteLevelVariableNode.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters