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: 3617d05f0d2f
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 09c29b891faf
Choose a head ref
  • 2 commits
  • 4 files changed
  • 1 contributor

Commits on Mar 11, 2015

  1. Copy the full SHA
    440c956 View commit details
  2. Treat thread polls as variable visibility barriers.

    Fixes last remaining failure with test:mri:jit.
    headius committed Mar 11, 2015
    Copy the full SHA
    09c29b8 View commit details
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -68,9 +68,7 @@ matrix:
jdk: oraclejdk8
fast_finish: true
allow_failures:
- env: PHASE='-Pcomplete'
- env: PHASE='-Prake -Dtask=spec:profiler'
- env: PHASE='-Prake -Dtask=test:mri:jit'

branches:
only:
Original file line number Diff line number Diff line change
@@ -198,9 +198,11 @@ public void addLoads(Map<Operand, Operand> varRenameMap) {
}
it.previous();
}
} else if (scopeBindingHasEscaped && (i.getOperation() == Operation.PUT_GLOBAL_VAR)) {
// global-var tracing can execute closures set up in previous trace-var calls
// in which case we would have the 'scopeBindingHasEscaped' flag set to true
} else if (scopeBindingHasEscaped && (i.getOperation() == Operation.PUT_GLOBAL_VAR)
|| i.getOperation() == Operation.THREAD_POLL) {
// 1. Global-var tracing can execute closures set up in previous trace-var calls
// in which case we would have the 'scopeBindingHasEscaped' flag set to true.
// 2. Threads can update bindings, so we treat thread poll boundaries the same way.
it.next();
for (LocalVariable v : reqdLoads) {
it.add(new LoadLocalVarInstr(scope, getLocalVarReplacement(v, scope, varRenameMap), v));
Original file line number Diff line number Diff line change
@@ -260,9 +260,11 @@ public boolean addStores(Map<Operand, Operand> varRenameMap, Set<LocalVariable>
dirtyVars.clear();
}

if (scopeBindingHasEscaped && (i.getOperation() == Operation.PUT_GLOBAL_VAR)) {
// global-var tracing can execute closures set up in previous trace-var calls
// in which case we would have the 'scopeBindingHasEscaped' flag set to true
if (scopeBindingHasEscaped && (i.getOperation() == Operation.PUT_GLOBAL_VAR)
|| i.getOperation() == Operation.THREAD_POLL) {
// 1. Global-var tracing can execute closures set up in previous trace-var calls
// in which case we would have the 'scopeBindingHasEscaped' flag set to true.
// 2. Threads can update bindings, so we treat thread poll boundaries the same way.
instrs.previous();
for (LocalVariable v : dirtyVars) {
addedStores = true;
6 changes: 5 additions & 1 deletion lib/ruby/stdlib/irb/magic-file.rb
Original file line number Diff line number Diff line change
@@ -10,7 +10,11 @@ def open(path)
encoding = detect_encoding(line)
internal_encoding = encoding
encoding ||= default_src_encoding
io.rewind
begin
io.rewind
rescue Errno::EPIPE
# ignore unseekable streams
end
io.set_encoding(encoding, internal_encoding)

if block_given?