00:48
camlow325 has joined #jruby
00:54
camlow325 has quit [Quit: WeeChat 1.5]
00:55
<
GitHub101 >
[jruby] presidentbeef opened issue #4692: File path canonicalization still broken inside jars on Windows
https://git.io/vQcRe
02:35
chrisarcand has quit [Ping timeout: 240 seconds]
02:35
lanceball has quit [Ping timeout: 240 seconds]
02:40
lanceball has joined #jruby
02:42
chrisarcand has joined #jruby
04:01
prasun has joined #jruby
04:48
user7463 has joined #jruby
04:50
<
user7463 >
can someone help me with making a jar file on windows?
04:54
<
user7463 >
can someone help me with making a jar file on windows?
04:54
prasun has quit [Ping timeout: 240 seconds]
05:04
prasun has joined #jruby
05:08
NeutronStarr has joined #jruby
06:56
Antiarc_ has quit [Read error: Connection reset by peer]
06:57
<
GitHub22 >
[jruby] jakago opened issue #4693: Dir.glob returns UTF-8 string with Windows-31J encoding
https://git.io/vQcDq
06:57
Antiarc has joined #jruby
09:00
vtunka has joined #jruby
09:09
drbobbeaty has joined #jruby
09:29
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
09:39
prasun has quit [Ping timeout: 258 seconds]
10:05
vtunka has quit [Quit: Leaving]
10:27
vtunka has joined #jruby
10:47
prasun has joined #jruby
11:06
rdubya has joined #jruby
11:17
drbobbeaty has joined #jruby
11:20
rdubya has quit [Quit: Leaving.]
11:30
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
11:33
cschneid has quit [Ping timeout: 258 seconds]
11:33
drbobbeaty has joined #jruby
11:34
vtunka has quit [Ping timeout: 260 seconds]
11:39
prasun has quit [Ping timeout: 276 seconds]
12:03
ragge has quit [Quit: Connection closed for inactivity]
12:11
bbrowning_away is now known as bbrowning
12:13
akp_ has joined #jruby
12:16
cschneid has joined #jruby
12:18
akp_ has quit [Ping timeout: 276 seconds]
12:26
akp_ has joined #jruby
12:27
akp__ has joined #jruby
12:30
akp_ has quit [Ping timeout: 240 seconds]
12:31
akp__ has quit [Ping timeout: 240 seconds]
12:56
prasun has joined #jruby
13:14
akp_ has joined #jruby
14:01
prasun has quit [Ping timeout: 246 seconds]
14:11
<
GitHub63 >
jruby/profiler 41fa661 Thomas E. Enebo: Unbreak inlining enough to have it run in interp...JIT support vanished in merge?
14:11
<
GitHub63 >
jruby/profiler a60f17a Thomas E. Enebo: Merge branch 'master' into profiler
14:57
subbu is now known as subbu|breakfast
15:01
<
GitHub41 >
jruby/profiler 9e05a80 Thomas E. Enebo: Merge remote-tracking branch 'origin' into profiler
15:28
subbu|breakfast is now known as subbu
15:31
camlow325 has joined #jruby
15:54
<
headius >
user7463: still around?
16:01
<
GitHub72 >
[jruby] headius opened pull request #4694: Fix break not turning into LocalJumpError soon enough (master...fix_break_lje)
https://git.io/vQCyM
16:04
<
headius >
ok, let's see if we can finally get 2.4 branch merged today
16:09
<
headius >
asarih: I think I broke travis
16:09
bbrowning is now known as bbrowning_away
16:09
<
headius >
I tried to add a jdk9 to matrix but it never runs now
16:32
<
GitHub173 >
jruby/ruby-2.4 95cea52 Charles Oliver Nutter: Don't blindly cast to RubyRational; use Numeric rounding.
16:35
<
headius >
enebo: subbu: nonlocal break never comes from a method right?
16:35
<
headius >
looking at enebo's review comments about null block and stuff
16:36
<
headius >
I can't say "block" will never be null in initiateBreak but it wasn't for all of our suites
16:37
<
enebo >
yeah seems like it would be trivially hit with a break in non-closure scope but perhaps we do not emit this instr in that case?
16:37
<
headius >
those breaks would all be local and just branch
16:37
lanceball is now known as lance|afk
16:37
<
headius >
I don't know if exception handling requires nonlocal though...it might
16:38
<
enebo >
ah I see ... we emit LJE if not in a closure
16:38
<
headius >
or a loop
16:38
<
enebo >
in IRClosure we check for evalscript
16:38
<
enebo >
so perhaps for could explode
16:39
<
headius >
enebo: saw something weird in IR
16:39
<
headius >
0: toggle_backtrace(requiresBacktrace: false)
16:39
<
headius >
1: toggle_backtrace(requiresBacktrace: true)
16:39
<
headius >
jruby -Xir.print -Xdebug.parser -e "while true; begin; break; rescue; end; end"
16:39
<
enebo >
headius: I do not think we make IRClosure for whiles
16:39
<
subbu >
sorry .. i cannot comment on this right now .. i haven't paged into the PR and discussion yet. busy for the next 2 hours.
16:40
<
headius >
no we don't but this is a separate oddity
16:40
<
headius >
I'm checking this with rescues to see if we do weirder things with break
16:40
<
enebo >
headius: oh yeah sorry just commenting stream of consciousness
16:41
<
subbu >
but, my larger meta comment is that this is a good solution for now if it handles all the test cases ... but, i go back to my comment on the issue which is if there is a way of detecting this by examining the call stack without the escaping and try-finally blocks, etc. but, that can be a later thing as well.
16:41
<
enebo >
yeah that is goofy
16:41
<
enebo >
subbu: and your solution is based on idea that finally has an everytime cost
16:42
<
headius >
it seems to just use branching here too
16:43
<
headius >
subbu: actually inspecting stack turned out to be the wrong approach because the scope may not actually be popped yet
16:43
<
headius >
def foo; proc { break }.call; end
16:43
<
enebo >
headius: actually that toggle backtrace looks weird but it would be weirder to add code to kill it
16:43
<
headius >
the foo scope is still on stack when we call
16:43
<
headius >
so that's the wrong sigil
16:43
<
enebo >
headius: had more code been put into the body there would have been stuff between the two toggles
16:44
<
headius >
enebo: it is an empty rescue, shouldn't it be false?
16:44
<
headius >
the instrs as they are look like it wanted to be false and changed its mind :-)
16:44
<
headius >
oh I see what you're saying
16:44
<
headius >
so what would have been between them is the break, which isn't anything now
16:44
<
subbu >
headius, but the break executes in a proc context which is higher on the call stack than the foo which is the break target .. that is all that is required.
16:45
<
subbu >
you look at the relative position of the break target and the invoker of the break.
16:45
<
headius >
so what you're saying is that we could clean it up by having some pass remove sequential instrs
16:45
<
headius >
subbu: that's the problem though...proc isn't on any Ruby stack
16:45
<
enebo >
headius: and possibly the break made us decide we needed to add back backtrace because it is a side effect or some property like that
16:45
<
subbu >
proc.call is
16:45
<
headius >
it's in Java
16:45
<
enebo >
headius: so that could be a bug but probably not
16:45
<
headius >
so there's nothing to inspect
16:46
<
headius >
enebo: maybe
16:46
<
subbu >
ok. alright, back on this another time .. but, if your PR works and fixes things, go with it.
16:46
<
headius >
doesn't seem as weird with explanation
16:46
<
headius >
subbu: I'd love to find another way so we'll keep thinking on it too
16:46
<
headius >
at least it didn't turn out too invasive
16:46
<
enebo >
headius: I admit I don't know why it decided it needed to dump here but we make this decision before any passes are run so break existed so it probably caused the backtrace toggle decision
16:47
<
enebo >
dump == toggle backtrace back on
16:47
<
enebo >
BREAK(OpFlags.f_has_side_effect | OpFlags.f_is_return | OpFlags.f_can_raise_exception),
16:48
<
enebo >
headius: jruby -e 'def foo; for a in [1,2]; break ; end; end'
16:48
<
enebo >
what does this do on your branch?
16:49
<
headius >
that should be a nonlocal break
16:49
<
headius >
it needs to break out of the implicit each call
16:50
<
enebo >
ah I guess we do make a Block instance for 'for'
16:50
<
enebo >
ok so that is not really an issue
16:50
<
enebo >
headius: can we put END in a method?
16:51
<
headius >
how about a flip flop and a break combined
16:51
<
enebo >
ok so I don't think that can be null now
16:51
<
headius >
yeah I'm going to go with that
16:51
<
enebo >
so we may do the blockType == null logic only for non-local returns?
16:52
<
headius >
our build might catch it but it would have NPE anyway already
16:52
<
headius >
non-local returns are always from a block too
16:52
<
enebo >
headius: so can you at least change this so it only passes block into initiateBreak
16:52
<
headius >
I have a patch that pushes block into both of those methods
16:52
<
enebo >
so the null check was maybe some bug before
16:52
<
headius >
since return and return+exception don't need block type anyway
16:53
<
headius >
well those instrs may not have a non-null self block
16:53
<
headius >
self block meaning block that I am right now
16:53
<
headius >
so the block type was captured for two cases but other two had null blocks all the time
16:53
<
enebo >
not quite parsing that
16:53
<
headius >
this is cleaner assuming these two non-local cases never see null block
16:53
<
headius >
it captured block type at the top of the interpreter method
16:54
<
headius >
but only two of the cases needed it and the other two were not block instrs
16:54
<
enebo >
I am curious but I think we should be able to see it explode via some test run if so
16:54
<
headius >
or at least they might not be block instrs
16:54
<
enebo >
well I love removing null checks :)
16:54
<
headius >
I'll push commit and it should be good
17:00
<
GitHub49 >
jruby/fix_break_lje fb15a7d Charles Oliver Nutter: Only use block type where needed and block is known to be non-null
17:02
<
enebo >
headius: amazing! I hope it works...there a method below that with the same null check but I did not look at it
17:03
<
headius >
and almost nothing uses it
17:03
<
headius >
you fix that one
17:03
<
headius >
oops, I didn't change jit
17:04
<
enebo >
headius: yeah I will look into it
17:22
<
GitHub14 >
jruby/fix_break_lje cadbd91 Charles Oliver Nutter: Fix JIT calls to modified nonlocal break/return methods.
17:40
bbrowning_away is now known as bbrowning
17:41
<
headius >
enebo: I'm making those dual booleans into an enum and then I'll merge
17:44
<
enebo >
headius: sure...I was not asking for that too change as much as ponder
17:44
<
headius >
enebo: found some nulls
17:44
<
headius >
[exec] Error: test_sclass_return(TestClass): Java::JavaLang::NullPointerException:
17:44
<
headius >
[exec] org.jruby.ir.runtime.IRRuntimeHelpers.initiateNonLocalReturn(IRRuntimeHelpers.java:99)
17:44
<
headius >
return from sclass is non-local but has no block
17:44
<
enebo >
perhaps it is not actually non-local?
17:45
<
enebo >
I am eating atm but perhaps we can fix that since I would not think this would be different than method
17:45
<
headius >
hmmm yeah
17:45
<
headius >
I'm not sure
17:45
<
headius >
I'll land the enum fix and then I'm going to walk to lunch
17:46
<
headius >
only test:jruby and -Ptest have failed from that so far though
17:54
<
headius >
enebo, subbu: I just noticed we have a CheckForLJE instruction...wazzat?
17:55
<
headius >
trying to clean up a few interfaces and noticed this appears to be used for eval?
17:55
prasun has joined #jruby
17:56
<
GitHub181 >
jruby/fix_break_lje b810412 Charles Oliver Nutter: Final tweaks to LJE break fixes....
17:56
<
headius >
enebo: test:mri passed so this must be a really rare case
17:56
<
headius >
I'm going to add the one null check I need but it would be nice to figure this out
17:57
<
enebo >
so return/break from class << self; break; end sort of test?
17:57
<
enebo >
hmm return I would guess
17:58
<
enebo >
headius: "/ If 'm' is a block scope, a return returns from the closest enclosing method.
17:58
<
enebo >
// closure is a proc. If the closure is a lambda, then this becomes a normal return."
17:58
<
enebo >
// If this happens to be a module body, the runtime throws a local jump error if the
18:00
<
GitHub171 >
[jruby] headius closed issue #4577: LocalJumpError: unexpected break in spec/ruby/language/break_spec.rb
https://git.io/v9nC8
18:00
<
GitHub65 >
jruby/master f7b21a0 Charles Oliver Nutter: Merge pull request #4694 from jruby/fix_break_lje...
18:00
<
GitHub41 >
[jruby] headius closed pull request #4694: Fix break not turning into LocalJumpError soon enough (master...fix_break_lje)
https://git.io/vQCyM
18:00
<
GitHub107 >
[jruby] headius closed issue #4686: Cannot rescue from LocalJumpError after wrongly using break in proc
https://git.io/vQs1h
18:01
<
headius >
but that still is talking about a block scope
18:01
<
headius >
so I'm confused
18:01
<
headius >
I'm done with LJE stuff for now so hack away
18:10
Freaky has quit [Remote host closed the connection]
18:10
oncall-pokemon has joined #jruby
18:29
subbu is now known as subbu|lunch
18:44
camlow325 has quit [Ping timeout: 276 seconds]
18:46
camlow325 has joined #jruby
18:53
camlow325 has quit [Quit: WeeChat 1.5]
18:54
camlow325 has joined #jruby
18:55
lance|afk is now known as lanceball
19:04
subbu|lunch is now known as subbu
20:12
prasun has quit [Ping timeout: 276 seconds]
21:12
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
22:07
camlow325 has quit [Ping timeout: 276 seconds]
22:11
camlow325 has joined #jruby
22:11
akp_ has joined #jruby
22:13
akp_ is now known as akp
22:19
<
GitHub172 >
jruby/master 4bc6c50 Benoit Daloze: core/kernel/{exec,spawn} specs are fast now
22:19
<
GitHub172 >
jruby/master 0e51c4b Benoit Daloze: language/break_spec.rb now works...
22:49
camlow321 has joined #jruby
22:51
camlow325 has quit [Ping timeout: 255 seconds]
23:07
camlow321 has quit [Quit: WeeChat 1.5]
23:08
camlow325 has joined #jruby
23:24
bbrowning is now known as bbrowning_away