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