hoodow has quit [Remote host closed the connection]
hoodow has joined #jruby
hoodow has joined #jruby
hoodow has quit [Changing host]
<GitHub195> [jruby] nirvdrum pushed 1 new commit to truffle-improved-exec: https://git.io/v1yYI
<GitHub195> jruby/truffle-improved-exec f8e4d70 Kevin Menard: [Truffle] Restored accidentally deleted line.
enebo has quit [Quit: enebo]
<travis-ci> jruby/jruby (truffle-improved-exec:f8e4d70 by Kevin Menard): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/184110882)
elia has quit [Quit: (IRC Client: textualapp.com)]
elia has joined #jruby
elia has quit [Client Quit]
Aethenelle has joined #jruby
riddley has quit [Ping timeout: 256 seconds]
byteit101 has quit [Read error: Connection reset by peer]
Aethenelle has quit [Quit: Aethenelle]
brixen has quit [Ping timeout: 245 seconds]
brixen has joined #jruby
tenderlo_ has joined #jruby
tenderlove has quit [Read error: Connection reset by peer]
prasunanand has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
donV has joined #jruby
donV has quit [Quit: donV]
donV has joined #jruby
<GitHub106> [jruby] cawoodm opened issue #4387: Windows Jruby Launcher has stopped working https://git.io/v1ywv
pawnbox has joined #jruby
donValentin has joined #jruby
donV has quit [Ping timeout: 256 seconds]
riddley has joined #jruby
claudiuinberlin has joined #jruby
etehtsea has joined #jruby
etehtsea has quit [Client Quit]
etehtsea has joined #jruby
elia has joined #jruby
etehtsea has quit [Disconnected by services]
etehtsea has joined #jruby
<etehtsea> is it possible to cast java object to another java class in jruby? I tried obj.to_java(JavaClass), but it did nothing
prasunanand has quit [Ping timeout: 258 seconds]
prasunanand has joined #jruby
vtunka has joined #jruby
drbobbeaty has joined #jruby
vtunka has quit [Client Quit]
vtunka has joined #jruby
elia_ has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
elia has quit [Ping timeout: 248 seconds]
pawnbox has quit [Ping timeout: 258 seconds]
pawnbox has joined #jruby
pawnbox_ has joined #jruby
pawnbox__ has joined #jruby
pawnbox has quit [Ping timeout: 250 seconds]
pawnbox_ has quit [Read error: Connection reset by peer]
kith_ has joined #jruby
kith has quit [Ping timeout: 256 seconds]
prasunanand has quit [Ping timeout: 240 seconds]
shellac has quit [Quit: Computer has gone to sleep.]
pawnbox__ has quit [Read error: Connection reset by peer]
pawnbox has joined #jruby
drbobbeaty has joined #jruby
etehtsea has quit [Quit: Textual IRC Client: www.textualapp.com]
donValentin has quit [Read error: No route to host]
donV has joined #jruby
amdprophet has quit [Ping timeout: 258 seconds]
hvis has quit [Ping timeout: 268 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
elia_ has quit [Quit: Computer has gone to sleep.]
prasunanand has joined #jruby
bbrowning_away is now known as bbrowning
hvis has joined #jruby
vtunka has quit [Quit: Leaving]
hvis has left #jruby [#jruby]
vtunka has joined #jruby
<GitHub19> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v1SL0
<GitHub19> jruby/truffle-head a385812 Benoit Daloze: [Truffle] ArrayBuilderNode#ensure: share logic and implement it for long[].
<GitHub19> jruby/truffle-head eb2eb01 Benoit Daloze: [Truffle] Let UninitializedArrayBuilderNode compile if it runs long enough for that.
<GitHub104> [jruby] nirvdrum pushed 1 new commit to truffle-improved-exec: https://git.io/v1Stq
<GitHub104> jruby/truffle-improved-exec d902aed Kevin Menard: [Truffle] Code cleanup based on review comments.
elia has joined #jruby
alxs has quit [Remote host closed the connection]
Aethenelle has joined #jruby
<GitHub92> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v1SmI
<GitHub92> jruby/truffle-head c1191bd Benoit Daloze: [Truffle] Simplify FFI::Library.
<GitHub92> jruby/truffle-head d2e9138 Benoit Daloze: [Truffle] Use Truffle::POSIX directly for ENV.
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
prasunanand has quit [Ping timeout: 258 seconds]
kwando has joined #jruby
<GitHub79> [jruby] nirvdrum closed pull request #4386: [Truffle] Improved exec (truffle-head...truffle-improved-exec) https://git.io/v1DNH
<GitHub33> [jruby] nirvdrum pushed 6 new commits to truffle-head: https://git.io/v1SOl
<GitHub33> jruby/truffle-head 311d607 Kevin Menard: [Truffle] Finished the remaining `exec` specs.
<GitHub33> jruby/truffle-head 0f0b952 Kevin Menard: [Truffle] Reworked the implementation of Process.exec to use POSIX calls.
<GitHub33> jruby/truffle-head 18821c2 Kevin Menard: [Truffle] Structure the args vs no-args cases for `exec` a bit clearer.
amdprophet has joined #jruby
shellac has joined #jruby
donV has quit [Ping timeout: 240 seconds]
alxs has joined #jruby
vtunka has quit [Quit: Leaving]
<GitHub171> [jruby] nirvdrum deleted truffle-improved-exec at d902aed: https://git.io/v1SWW
vtunka has joined #jruby
vtunka has quit [Client Quit]
vtunka has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
enebo has joined #jruby
bga57 has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
<GitHub108> [jruby] bjfish pushed 1 new commit to truffle-head: https://git.io/v1SBH
<GitHub108> jruby/truffle-head 6b3b308 Brandon Fish: [Truffle] Fix Sprintf float casting
<GitHub131> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v1SBA
<GitHub131> jruby/truffle-head c4c2c72 Benoit Daloze: [Truffle] Simplify encoding_converter_last_error by returning an Array.
<GitHub131> jruby/truffle-head d88a101 Benoit Daloze: [Truffle] Simplify Regexp by caching the named_captures in Ruby....
<GitHub163> [jruby] eregon closed pull request #4385: [Truffle] undefined is now the same as NotProvided.INSTANCE. (truffle-head...truffle-undefined-not-provided) https://git.io/v1DvV
<GitHub69> [jruby] eregon pushed 14 new commits to truffle-head: https://git.io/v1SRs
<GitHub69> jruby/truffle-head a1dbf12 Benoit Daloze: [Truffle] Rearrange undefined checks so they are done first.
<GitHub69> jruby/truffle-head cd2d5a9 Benoit Daloze: [Truffle] Remove useless check....
<GitHub69> jruby/truffle-head 523d42d Benoit Daloze: [Truffle] Avoid using undefined in a couple Thread methods.
elia has quit [Quit: Computer has gone to sleep.]
lopex has quit [Quit: Connection closed for inactivity]
<GitHub10> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v1SuO
<GitHub10> jruby/truffle-head e26dfb6 Benoit Daloze: [Truffle] Move the building of transcoding_map to Ruby.
pawnbox has joined #jruby
subbu is now known as subbu|breakfast
<GitHub23> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v1SgA
<GitHub23> jruby/truffle-head 7b032fe Benoit Daloze: [Truffle] Remove Rubinius::LookupTable and use plain Hash instead.
vtunka has quit [Quit: Leaving]
<GitHub42> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v1S2r
<GitHub42> jruby/truffle-head dd9b918 Benoit Daloze: [Truffle] Remove some dead code.
Aethenelle has quit [Quit: Aethenelle]
Aethenelle has joined #jruby
<GitHub78> [jruby] nirvdrum pushed 2 new commits to truffle-head: https://git.io/v1Sor
<GitHub78> jruby/truffle-head 667f8c5 Kevin Menard: [Truffle] Tagged slow specs.
<GitHub78> jruby/truffle-head a63ba04 Kevin Menard: [Truffle] Untagged passing specs.
<GitHub45> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v1SKs
<GitHub45> jruby/truffle-head b52b437 Benoit Daloze: [Truffle] Fix printing of exceptions with $DEBUG.
<GitHub45> jruby/truffle-head 16cc16d Benoit Daloze: [Truffle] Fix option name.
pawnbox has quit [Remote host closed the connection]
<GitHub163> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v1S1v
<GitHub163> jruby/truffle-head 8e56bac Benoit Daloze: [Truffle] Cleanup undefined from CoreLibrary, it's just NotProvided now.
pawnbox has joined #jruby
subbu|breakfast is now known as subbu
shellac has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
pawnbox has quit [Remote host closed the connection]
shellac has joined #jruby
pawnbox has joined #jruby
claudiuinberlin has quit []
<GitHub118> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v1Sbc
<GitHub118> jruby/truffle-head 7007ea0 Benoit Daloze: [Truffle] Remove Rubinius::IdentityMap, Hash works just as nicely.
bbrowning is now known as bbrowning_away
<GitHub5> [jruby] headius opened pull request #4388: Add call protocol to script body and separate non-protocol metas. (master...protocol-fixes) https://git.io/v1SNy
<travis-ci> pitr-ch/jruby (truffle-head:54aa9b0 by Petr Chalupa): The build was broken. (https://travis-ci.org/pitr-ch/jruby/builds/184308248)
shellac has quit [Quit: Computer has gone to sleep.]
elia has quit [Quit: Computer has gone to sleep.]
<GitHub0> [jruby] jmiettinen opened pull request #4389: Check permission to AccessibleObject#setAccessible(boolean) a better way (master...check_accessible) https://git.io/v1Sh8
subbu is now known as subbu|afk
bbrowning_away is now known as bbrowning
subbu|afk is now known as subbu
<eonwe> Any ideas on what would be a better place to dump a useless class to do access checks in than in the same package as we're doing the checks in?
lopex has joined #jruby
donV has joined #jruby
<enebo> wow co2 in artic seems to be where it collects
<enebo> lopex: neat visualization
<lopex> enebo: the other new cool https://www.youtube.com/watch?v=SvEs_hhb0sI
beawesomeinstead has quit [Read error: Connection reset by peer]
beawesomeinstead has joined #jruby
claudiuinberlin has joined #jruby
<headius> co2 is slightly heavier than n3 so perhaps that's why
<headius> oblate spheroid, heavier atomspheric compounds would trend to lowest point
alxs has quit [Ping timeout: 256 seconds]
<headius> enebo: so that PR should go green now...there were some assumptions about scopes that prevented top-level script from getitng a right-sized version
<headius> I have another branch here that cleans up specific-arity JIT stuff so it only emits one body instead of two
<headius> so there will be either a full variable-arity method OR a full specific-arity method with a variable-arity wrapper
alxs has joined #jruby
<lopex> headius: I thinks it's trade winds and the fact that northern places produce more co2
<enebo> headius: assumptions in the PR or from 91.6?
<lopex> release ?
<enebo> lopex: getting closer
<chrisseaton> > I have another branch here that cleans up specific-arity JIT stuff so it only emits one body instead of two
<chrisseaton> headius: do you emit two method bodies sometimes and run different ones depending on the arity?
<headius> enebo: assumptions generally in the root script logic
<enebo> headius: and they have always been there?
<headius> chrisseaton: if a method has only plain required args we have paths that map those straight through, but we still need a variable arg call path
<enebo> headius: was this fallout from generated scopes
<headius> before this branch we emitted both completely...now if there's a specific-arity path the variable-arity path just checks arity and calls it
<chrisseaton> headius: we do that for lambda/proc semantic differences - didn't know you did it as well
<enebo> chrisseaton: we have also discussed making a proc and lambda version since we cannot know ahead of time
<headius> yes, wouldn't be difficult
<chrisseaton> It's a source of bloat for us - tons of blocks in most code
<enebo> chrisseaton: but we are not doing that currently
<headius> only doing it for arity right now...we have for years
<headius> this reduces the amount of code generated by something like 40-50%
<headius> for specific-arity methods anyway
<headius> code generation solves all ills
<headius> eonwe: it should be sufficient to add a private field somewhere we never use and see if you can set it accessible, no?
<headius> I didn't think setAccessible checked caller context for security
<eonwe> headius: Yeah, private-field anywhere is okay. AccessibleObject#setAccessible does check for that 'suppressAccessChecks' IFF there's a security manager. That includes check to caller context
<GitHub29> [jruby] headius opened pull request #4390: Specific arity jit cleanup (master...specific-arity-jit-cleanup) https://git.io/v1939
<GitHub105> [jruby] headius closed pull request #4389: Check permission to AccessibleObject#setAccessible(boolean) a better way (master...check_accessible) https://git.io/v1Sh8
<GitHub96> [jruby] headius pushed 3 new commits to master: https://git.io/v19se
<GitHub96> jruby/master 755fdb7 Charles Oliver Nutter: Merge pull request #4389 from jmiettinen/check_accessible...
<GitHub96> jruby/master c54b9e4 Jarkko Miettinen: Check accesibility through a class that's in our control
<GitHub96> jruby/master 592707d Jarkko Miettinen: Test if we can set accessible by trying to call AccessibleObject#setAccessible(boolean) instead of seeing if we have permission 'suppressAccessChecks'. We may not have that permission if we're not using a privileged classloader but can still setAccessible if (when) there's no security manager
<GitHub182> [jruby] enebo pushed 1 new commit to master: https://git.io/v19sG
<GitHub182> jruby/master e3556a4 Thomas E. Enebo: Fixes #4349. -Xnative.enabled=false fails to load windows in kernel
<GitHub169> [jruby] enebo closed issue #4349: -Xnative.enabled=false fails to load windows in kernel https://git.io/v1GQQ
<GitHub125> [jruby] headius closed pull request #4388: Add call protocol to script body and separate non-protocol metas. (master...protocol-fixes) https://git.io/v1SNy
<GitHub49> [jruby] headius pushed 3 new commits to master: https://git.io/v19sC
<GitHub49> jruby/master a3ad3fb Charles Oliver Nutter: Additional fixes for top-level script protocol....
<GitHub49> jruby/master a761edb Charles Oliver Nutter: Merge pull request #4388 from headius/protocol-fixes...
<GitHub49> jruby/master 4da4c16 Charles Oliver Nutter: Add call protocol to script body and separate non-protocol metas.
<headius> enebo: o_O
<eonwe> headius: is the 1.7-branch kept up anymore? If so, I'd be interested in getting that change there too. Should go in easily
<headius> eonwe: we are maintaining it a bit longer, yes
<headius> I will cherry-pick it over
<eonwe> That's great!
mistergibson has joined #jruby
<GitHub20> [jruby] headius pushed 1 new commit to jruby-1_7: https://git.io/v19c3
<GitHub20> jruby/jruby-1_7 3eb55f4 Jarkko Miettinen: Check accesibility through a class that's in our control
thedarkone2 has joined #jruby
<GitHub95> [jruby] headius closed pull request #4390: Specific arity jit cleanup (master...specific-arity-jit-cleanup) https://git.io/v1939
<GitHub176> [jruby] headius pushed 3 new commits to master: https://git.io/v19CN
<GitHub176> jruby/master 131e748 Charles Oliver Nutter: Merge pull request #4390 from headius/specific-arity-jit-cleanup...
<GitHub176> jruby/master db15830 Charles Oliver Nutter: Emit only one body for jitted methods....
<GitHub176> jruby/master 33dba52 Charles Oliver Nutter: Encaptulate keyRest offset in Signature.
<GitHub30> [jruby] headius deleted test-reified-variables at da17cbc: https://git.io/v19WA
<GitHub22> [jruby] headius deleted test-ji-9k at aafc0b0: https://git.io/v19WF
<GitHub47> [jruby] headius deleted test-latest_java8 at 62b3eb3: https://git.io/v19Wb
<GitHub83> [jruby] headius deleted test-2.3-dig at 7749341: https://git.io/v19Wd
<GitHub70> [jruby] headius deleted test-merge-1_7 at 23b3be5: https://git.io/v19WN
<GitHub31> [jruby] headius deleted travis_hang at 0e7af66: https://git.io/v19Wp
<headius> enebo: ir_persist branch is old now yes?
<GitHub136> [jruby] headius deleted no_fast_finish at ec388da: https://git.io/v19lG
<enebo> headius: oh hmm no
<enebo> headius: It was an attempt at trying to make persistence overridable
<enebo> headius: someone was persisting blocks only and it was the first stab towards them working towards it
<headius> ah ok
<enebo> headius: so I guess I should find that issue and ask them about it
<enebo> the other option would be to support serializing blocks
<headius> subbu: I assume this branch is defunct now: https://github.com/jruby/jruby/tree/chained_instrs
<subbu> ya
<GitHub185> [jruby] headius deleted debug_3407 at f570f20: https://git.io/v19lr
<headius> subbu: thanks!
<GitHub191> [jruby] headius deleted ensure-reset-lasterror at 5415730: https://git.io/v19l9
<GitHub188> [jruby] headius deleted chained_instrs at 701181e: https://git.io/v19lQ
<subbu> yes. it is quite stale
<GitHub145> [jruby] headius deleted fast_fixnum_case at 3402408: https://git.io/v19lp
<GitHub199> [jruby] headius deleted expr_tree at e041307: https://git.io/v198L
<GitHub48> [jruby] headius deleted gh625 at 00868c0: https://git.io/v198O
<GitHub161> [jruby] headius deleted nan_cases at affcd59: https://git.io/v194v
<GitHub30> [jruby] headius deleted new-readme at c8a94e6: https://git.io/v194L
jeremyevans has quit [Ping timeout: 260 seconds]
<enebo> haha
<GitHub91> [jruby] headius deleted shrinkwrap_experiment at 4cd7608: https://git.io/v1940
<enebo> headius: I guess nuke it
<enebo> Is that issue even open?
<enebo> an and merged
<enebo> headius: delete that one please
<headius> both?
<headius> those are two branches
<enebo> wow
<enebo> they are so similar :)
<enebo> headius: yeah one is a revert of the other weirdly
<enebo> headius: but the issue is resolved
jeremyevans has joined #jruby
<lopex> "cannot merge, branches are too similar"
<nirvdrum> What is an ArgsCatParseNode supposed to be?
<lopex> does mri have this thing ?
<lopex> I'd like to say "from layman perspective..."
<lopex> oh it;s not fun
<nirvdrum> headius: Is what stale?
<headius> the link I provided is to a branch on which you have commits
<nirvdrum> I think I missed the first message.
<headius> there was no other message
<headius> I am asking if that branch is stale
<nirvdrum> Bah.
<nirvdrum> My chat window was really small and it was cut off :-P
<headius> must have been REALLY small
<nirvdrum> I'm trying out a tiling window manager.
<lopex> nirvdrum: have you had any more thoughts on that folds thingy ?
<nirvdrum> And have a bit too much going on horizontally at the moment.
<nirvdrum> lopex: You'll need to refresh my memory.
<lopex> nirvdrum: the casing big change in mri
<nirvdrum> headius: I'd like to keep the branch a little while longer, if you don't mind.
<GitHub16> [jruby] headius deleted simplify_flags at 2bd6be9: https://git.io/v19RZ
<headius> nirvdrum: not a problem, just tidying up a bit
<nirvdrum> lopex: Ahh. I haven't really looked into it yet, I'm afraid.
<lopex> enebo: that regexp capture free match is a 2.4 thing ?
<lopex> seems to be
<enebo> lopex: yeah
<nirvdrum> headius: Looking again, it wrapped the URL onto the next line and I just missed it in the flood of GitHub notifications.
<nirvdrum> Then I scrolled up and was confused by the discussion with subbu :-P
<headius> ok
<nirvdrum> Curious.
<nirvdrum> enebo: Actually, I have no idea what either ArgsCatNode or ArgsPushNode are supposed to be. Any insight would be appreciated.
<enebo> nirvdrum: sure
<enebo> nirvdrum: look at BuildCompoundArtrayInstr.java
<headius> one of them is a.[1, *b] = 2
<headius> something like that
<enebo> one is concat and one is splat
<enebo> but the code referred to in interpret is not super hard to read and you can always go back to it when you forget
<nirvdrum> Okay. I'm playing with various forms of rescue clauses.
<enebo> nirvdrum: another way of viewing what the do is ParserSupport is arg_append for argscat and arg_concat for argspush
<travis-ci> jruby/jruby (master:a761edb by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/184339481)
<enebo> nirvdrum: funny now that you mention them I realize this is not exactly syntax but syntax converted to some behavior
<nirvdrum> lst = [StandardError]; rescue Something, *lst yields ArgsCatNode(ArrayNode(ConstNode:Something)), LocalVarNode:lst)
<nirvdrum> So is splat just implied there?
<nirvdrum> If it's an array literal being splatted, there is a SplatNode.
<nirvdrum> I take that back, it's just combined with the ArrayNode.
<nirvdrum> But there are ways to get a SplatNode in there.
<enebo> yeah it just forms a list of all elements into one array
<enebo> but it is not syntax it is specified behavior
<GitHub160> [jruby] headius deleted revert-2586-revert-2584-fix_2480 at bd057e9: https://git.io/v19Eu
<GitHub148> [jruby] headius deleted revert-2584-fix_2480 at 95a586e: https://git.io/v19Ez
<GitHub51> [jruby] headius pushed 1 new commit to master: https://git.io/v19EX
<GitHub51> jruby/master e926a44 Charles Oliver Nutter: Move dynamic flags out of Constants to avoid sticky deps....
<lopex> enebo: how many speced behaviors are there for kwargs ?
<enebo> lopex: 14
<lopex> lolz
<lopex> enebo: why so obvious ?
<enebo> lopex: yeah I guess there are quite a few
<lopex> the cases ?
<enebo> lopex: I am not sure if I would stand by 100% exhaustive but I have not looked at them recently
<lopex> I think you might have wanted to say 12
<lopex> er, was that a proper english ?
<enebo> heh I have been trying to write a program which has nested closure compile at same time as parent method and I cannot get anything to fail
<lopex> so many arbitrary rules ?
<enebo> but then again I guess perhaps my code is so simple LVA cannot hit BB which goes away
<enebo> lopex: for keyword arguments?
<lopex> oh, well, I'm just taking your time waiting for the release
<lopex> yeah
<enebo> lopex: yeah I guess so…I only find two things really weird in kwargs
<lopex> LVA ?
<enebo> 1. it is always the last argument .. so if you pass 200 args to a proc which receives 2 fixed vars it will still be the 200th element as the kwarg
<enebo> 2. If you do foo(a: 1, “b” => 2, c: 3) this will make an args hash and a kwargs hash where kwargs is [a, c] and normal args is [b]
<lopex> go on, we should put that in the wiki
<enebo> a third could be if kwargs is not a hash and it responds to to_hash but it returns nil then it just passes that object as an ordinary arg but I think this behavior exists for other things in Ruby similarly so it is not specifically a kwargs weirdness
<lopex> enebo: any syntax quirks wrt a: and :a => syntaxes still ?
<nirvdrum> enebo: Maybe this helps clarify my issue https://gist.github.com/nirvdrum/6a08c54629ae6a8aaaf2389298d609b8
<enebo> lopex: they are the same
<enebo> lopex: important part is key is a symbol not the syntax used
<lopex> enebo: but the impl might say othewise :{
<enebo> lopex: does it not work?
<nirvdrum> enebo: Nevermind. I think I have my head around it.
<enebo> lopex: I guess I could be wrong but I thought it worked
<lopex> enebo: it works, but it's from 2.x transition right ?
<lopex> the mixed mode
<enebo> nirvdrum: it is weird they did not just do (rescue (splat (lvar)), (colon2)) or something like that in retrospect but the AST was originally their interpreter
<enebo> nirvdrum: so in that sense it made sense but not so much anymore
<nirvdrum> Yeah. I think I was getting thrown off by the sometimes presence of ArrayNode and SplatNode.
<enebo> nirvdrum: ultimately they are making decisions on how we construct that array
<nirvdrum> It appears that's just implied for the second child in ArgsPushNode or ArgsCatNode
<enebo> nirvdrum: and for rescue the array is never actually returned so we could elect to not make an array at all
<enebo> nirvdrum: but in other forms we would want it to be an array
<enebo> nirvdrum: this AST design sort of makes that a little harder
bbrowning is now known as bbrowning_away
<lopex> enebo, headius, nirvdrum: you think something akin https://github.com/nanosai/modrun might be useful for encoding modularization ?
<nirvdrum> enebo: Actually, it still can be weird.
<travis-ci> jruby/jruby (jruby-1_7:3eb55f4 by Jarkko Miettinen): The build has errored. (https://travis-ci.org/jruby/jruby/builds/184346314)
<enebo> nirvdrum: beep boop beep…does not compute
<enebo> nirvdrum: what can still be weird? Even if we were more literal on the syntax in the AST
<enebo> nirvdrum: If I remember right isn’t rescuenode and the body backwards or weird?
<enebo> oh yeah body contains the match as elements
<enebo> hahaha
<enebo> compatibility is tough :)
<nirvdrum> It's fine. I'm just trying to figure out what assumptions I can actually make :-)
<enebo> since we focus so much more on fixing working code we seem to miss more error cases
<nirvdrum> I'm trying to handle this case from pry: rescue RescuableException, *jruby_exceptions => e
<nirvdrum> Which is how I ended up down this rabbit hole.
<enebo> ah
<nirvdrum> That comes in as an ArgsCatNode with a LocalVarNode for jruby_exceptions.
<nirvdrum> And I was expecting a SplatNode somewhere :-)
<enebo> nirvdrum: and it could have been
<enebo> nirvdrum: unless one will not to_ary/to_a?
<enebo> nirvdrum: maybe it is that easy
<nirvdrum> No idea. Of course, none of this is spec'd.
<nirvdrum> Maybe it's languishing in an MRI test somewhere.
<enebo> it might be in MRI maybe
<nirvdrum> That's why I have my gist with various forms.
<lopex> the raise from rescue ?
<enebo> nirvdrum: hislarious we will process anything in building that rescue list
<enebo> nirvdrum: I also remember reasoning that it has to be List, Splat, Cat, or Push
<enebo> nirvdrum: but I must not have realized raw values would not be wrapped in a List
<enebo> it is weird with as mutable/flexible as Ruby is that you cannot do ‘rescue a’
Puffball has quit [Remote host closed the connection]
<enebo> oh you can
<enebo> heh just not if it is an array
<enebo> whoa the hole is deep here
Puffball has joined #jruby
<GitHub184> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v19wr
<GitHub184> jruby/truffle-head 3e7997f Benoit Daloze: [Truffle] Use do...end for multiline blocks.
pawnbox has quit [Remote host closed the connection]
<GitHub155> [jruby] hydrogen18 opened issue #4391: Metaspace fills with java.lang.invoke.LambdaForms$ over time https://git.io/v19rs
<GitHub184> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v19r7
<GitHub184> jruby/truffle-head e750435 Benoit Daloze: [Truffle] Use do...end consistently for multiline blocks in core.
<nirvdrum> enebo: I haven't even looked into whether type coercion occurs here.
<enebo> nirvdrum: so our issue in IR is the runtime internal helper method will do an instanceof check to see if the exception type is an array and then walk all elements if so
<enebo> nirvdrum: so no doubt that if is there for a valid case but also is broken in this case
<nirvdrum> It's unlikely to be a real problem, I suspect.
<nirvdrum> It's just misled me :-)
<enebo> nirvdrum: yeah that’s true it is an unusual case which if someone did it they would end up writing to JRuby first and then realize MRI does not work
<lopex> enebo: is it worth to profile that in the IR for that instanceof check ?
<lopex> or instanceof is just so cheap in jvm ?
<enebo> lopex: for which instanceof?
<enebo> lopex: oh I know where it is
<enebo> lopex: I just don’t know what case it was put there for
<lopex> enebo: the one you mentioned in the helper for splat
<enebo> lopex: I would be amazed if it was only for this case
<enebo> lopex: looks like we probably store exceptions internally as Array as well
<lopex> since in mri is only one check I imagine
<lopex> what ?
<enebo> lopex: outputExceptionCheck(new Array(exceptionTypes), exc, caughtLabel);
<lopex> ph it's the IR ?
<enebo> lopex: we build our exceptions as an RubyArray when it is really a list node
<lopex> er, oh
<enebo> lopex: so having an lvar which contains an array works
<lopex> I think I get it
<enebo> lopex: actually even args cat and push both make RubyArray as well
<enebo> lopex: and those end up being indirected through a temporary variable
<lopex> is it eaed ?
<enebo> lopex: so only real difference is that the broken case comes via a lvar vs a tempvar
<enebo> lopex: but then we have optimization passes so that lvar no doubt will also be a tempvar by the time we evaluate it
<lopex> how does temp differ from a var in the IR ?
<enebo> lopex: so we could build this non-array case with some IR which checks its type or maybe makes sure it is not an array
<lopex> oh hmm
<enebo> lopex: an lvar ends up as a different type of Variable operand which stores to Heap Scope
<enebo> lopex: tempvariable can store whereever (interp and JIT do it their own way)
<lopex> so potentially captured
<lopex> er
<enebo> lopex: if we realize nothing ever needs the lvar we will convert the lvar to a tempvar since those are cheaper and spill the value back to the lvar ar boundaries
<enebo> lopex: which is largely any call boundary
<lopex> just because those dont escape ?
<lopex> er, I'm missing something
<lopex> what's the samentics of lvar ?
<lopex> enebo: btw, thank you for your patience :P
<enebo> lopex: if you make a call it could potentially get its binding
<lopex> this I understand
<lopex> then you promote ?
<enebo> lopex: we store back to dynscope if we make a call
<enebo> lopex: but for places where we are not making calls we can decide not to and the temp store is just a local in java
<enebo> lopex: arguably due to the amount of calls in Ruby this has been a questionable optimization but it can be very fast in the right places
<lopex> wrrr, I'm having a feeling I understand all of this under different terms
<lopex> doh
<lopex> yeah
<lopex> enebo: expecially computationally complex
<enebo> lopex: going back to this bug I should probably just put an array test on this
<enebo> lopex: in the case where it is not the expected array types push, cat, splat, or list I will raise if it is an array
<lopex> enebo: I understand that
<enebo> lopex: the exception type check will still happen as normal if it is some random object
<lopex> the naming lost me
CustosLimen has quit [Ping timeout: 268 seconds]
CustosLimen has joined #jruby
<GitHub43> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v19SJ
<GitHub43> jruby/truffle-head 1717c08 Benoit Daloze: [Truffle] Simplify POSIX#getgroups.
<GitHub175> [jruby] nirvdrum pushed 2 new commits to truffle-head: https://git.io/v19SW
<GitHub175> jruby/truffle-head fce94b5 Kevin Menard: Add a spec for rescue clauses that combine a splatted list of exceptions with a literal list of exceptions.
<GitHub175> jruby/truffle-head f791368 Kevin Menard: [Truffle] Fixed rescue clauses that combine an exception list with a splatted list.
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
claudiuinberlin has quit []
tcrawley is now known as tcrawley-away
<GitHub154> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v19H6
<GitHub154> jruby/truffle-head 8a86f38 Benoit Daloze: [Truffle] Cleanup rubinius.rb.
<GitHub154> jruby/truffle-head 2015a71 Benoit Daloze: [Truffle] Remove Rubinius::Globals.
<travis-ci> jruby/jruby (truffle-head:1717c08 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/184387037)
lanceball is now known as lance|afk
alxs has quit [Ping timeout: 260 seconds]
bbrowning_away has quit [Quit: Leaving]
shellac has joined #jruby
<GitHub51> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v195C
<GitHub51> jruby/truffle-head 15eded4 Benoit Daloze: [Truffle] Remove Array#new_reserved.
<GitHub51> jruby/truffle-head 4be9103 Benoit Daloze: [Truffle] Simplify Array#drop.
<GitHub171> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v19dL
<GitHub171> jruby/truffle-head 0156fc5 Benoit Daloze: [Truffle] Fix some spacing and extra public.
enebo has quit [Quit: enebo]
<GitHub148> [jruby] eregon pushed 1 new commit to truffle-head: https://git.io/v19bz
<GitHub148> jruby/truffle-head f405ad0 Benoit Daloze: Avoid race in abort_on_exception spec
<travis-ci> jruby/jruby (truffle-head:0156fc5 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/184397539)
<GitHub2> [jruby] eregon pushed 2 new commits to truffle-head: https://git.io/v19AI
<GitHub2> jruby/truffle-head 52876f8 Benoit Daloze: Check that flatten on Array subclasses produces the right result
<GitHub2> jruby/truffle-head 52a4878 Benoit Daloze: [Truffle] Fix #flatten on Array subclasses
<travis-ci> jruby/jruby (truffle-head:f405ad0 by Benoit Daloze): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/184400556)
elia has joined #jruby