elia has quit [Quit: Computer has gone to sleep.]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 255 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 276 seconds]
shellac has quit [Quit: Computer has gone to sleep.]
pawnbox has joined #jruby
n00bdev has joined #jruby
pawnbox has quit [Ping timeout: 246 seconds]
camlow325 has quit []
yfeldblum has quit [Remote host closed the connection]
n00bdev has quit []
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 246 seconds]
bb010g has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 255 seconds]
yfeldblum has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 265 seconds]
nirvdrum has joined #jruby
tomjoro has quit [Remote host closed the connection]
n00bdev has joined #jruby
yfeldblum has joined #jruby
nirvdrum has quit [Ping timeout: 276 seconds]
yfeldblum has quit [Ping timeout: 260 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
mkristian_ has joined #jruby
mkristian__ has quit [Ping timeout: 260 seconds]
tomjoro has joined #jruby
tomjoro has quit [Ping timeout: 264 seconds]
yfeldblum has joined #jruby
mkristian_ has quit [Read error: Connection reset by peer]
pawnbox has joined #jruby
mkristian has joined #jruby
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 245 seconds]
pawnbox_ has quit [Remote host closed the connection]
pawnbox has joined #jruby
yfeldblum has quit [Remote host closed the connection]
kares has joined #jruby
kares has quit [Quit: hali-hoo!]
kares has joined #jruby
tomjoro has joined #jruby
lopex has quit [Quit: Connection closed for inactivity]
tomjoro has quit [Ping timeout: 240 seconds]
n00bdev has quit []
pawnbox has quit [Remote host closed the connection]
donV has quit [Quit: donV]
yfeldblum has joined #jruby
pawnbox has joined #jruby
yfeldblum has quit [Ping timeout: 265 seconds]
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
tjohnson has quit [Quit: Connection closed for inactivity]
tomjoro has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
tomjoro has quit [Ping timeout: 245 seconds]
donV has joined #jruby
donV has quit [Quit: donV]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
skade has joined #jruby
tomjoro has joined #jruby
yfeldblum has joined #jruby
<GitHub129> [jruby] kares pushed 1 new commit to ruby-2.3: https://github.com/jruby/jruby/commit/e68337c9d8cc2e44cccb0eb6c0696a05e45dd7ce
<GitHub129> jruby/ruby-2.3 e68337c kares: Merge branch 'master' into ruby-2.3...
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
pawnbox has quit [Read error: Connection reset by peer]
pawnbox has joined #jruby
shellac has joined #jruby
<travis-ci> jruby/jruby (ruby-2.3:e68337c by kares): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/102542532)
shellac has quit [Quit: Computer has gone to sleep.]
vtunka has joined #jruby
mgk has joined #jruby
<mgk> Hi there!
<mgk> The mssql adapter of AR-JDBC currently prints the following to stderr: "NOTE: ActiveRecord 4.2 with adapter: mssql is not (yet) fully supported by AR-JDBC, please consider helping us out."
<mgk> I've looked at the Github issues but I haven't seen any major bugs that would warrant such a warning. Is this still in there because no one took it out and its basically obsolete?
<mgk> or are there any issues not documented in GitHub. If so, I might be able to help out.
<mgk> (I haven't really discovered any issues in my app, yet)
elia has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
<GitHub58> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/a5402c779d260b75cf072ab50433a418f6f393b2
<GitHub58> jruby/master a5402c7 Benoit Daloze: [Truffle] Hanlde -J-G options in the Eclipse launcher.
yfeldblum has quit [Ping timeout: 240 seconds]
skade has joined #jruby
<kares> mgk: than you're good - 4.2 support is fairly recent and only limited testing went in for proprietary adapters
<kares> there are several issues open for mssql if you want to help out
drbobbeaty has joined #jruby
yfeldblum has joined #jruby
<GitHub164> [jruby] kares pushed 21 new commits to master: https://github.com/jruby/jruby/compare/a5402c779d26...343f2a919571
<GitHub164> jruby/master 8b9814f kares: [find-bugs] concatenating strings + unnecessary string-buffer use
<GitHub164> jruby/master 0145e53 kares: [ji] missing hashCode to go with equals in JavaArray proxy
<GitHub164> jruby/master 4530ba0 kares: re-use empty String array in RubyDir + avoid down-casting array local var
<GitHub78> [jruby] kares closed issue #3530: Calling IO.console twice raises NoMethodError for `#open?` https://github.com/jruby/jruby/issues/3530
vtunka has quit [Quit: Leaving]
<travis-ci> kares/jruby (test-find-bugs:7ad4394 by kares): The build passed. (https://travis-ci.org/kares/jruby/builds/102547904)
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bb010g has quit [Quit: Connection closed for inactivity]
shellac has joined #jruby
pawnbox has quit [Remote host closed the connection]
skade has quit [Quit: Computer has gone to sleep.]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
pawnbox has joined #jruby
djellemah_ has joined #jruby
lopex has joined #jruby
skade has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
djellemah_ has quit [Client Quit]
rsim1 has joined #jruby
rsim has quit [Ping timeout: 240 seconds]
rsim has joined #jruby
yfeldblum has joined #jruby
rsim1 has quit [Ping timeout: 240 seconds]
skade has quit [Quit: Computer has gone to sleep.]
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
vtunka has joined #jruby
tcrawley-away is now known as tcrawley
mgk has quit [Ping timeout: 252 seconds]
<GitHub100> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/502a4a87ac67160f5f43a6bf8e5e9498b935328f
<GitHub100> jruby/master 502a4a8 Benoit Daloze: [Truffle] Only put what is necessary behind @TruffleBoundary in SizedQueueNodes.
drbobbeaty has joined #jruby
<GitHub49> [jruby] eregon pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/ba7bac1dbc711f1ba63a39df56982e9720392134
<GitHub49> jruby/truffle-head ba7bac1 Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
drbobbeaty has quit [Client Quit]
bbrowning_away is now known as bbrowning
<GitHub194> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/f4259c32a2b27dcda571ccced3fb10772f7cb3b1
<GitHub194> jruby/master f4259c3 Benoit Daloze: [Truffle] Only put what is necessary behind @TruffleBoundary in QueueNodes.
<GitHub79> [jruby] eregon pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/edc01e627d65b2e6fbd6570af992cd62a4759947
<GitHub79> jruby/truffle-head edc01e6 Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
Madmanden has joined #jruby
yfeldblum has quit [Ping timeout: 260 seconds]
<GitHub123> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/8ebd8f4860394ddc1617490efeb8ef055bdefb1e
<GitHub123> jruby/master 8ebd8f4 Benoit Daloze: Merge remote-tracking branch 'origin/truffle-head'
drbobbeaty has joined #jruby
lance|afk is now known as lanceball
drbobbeaty has quit [Client Quit]
nirvdrum has joined #jruby
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
<travis-ci> DevFactory/jruby (master:20d103c by EC2 Default User): The build has errored. (https://travis-ci.org/DevFactory/jruby/builds/102582086)
drbobbeaty has joined #jruby
tomjoro has quit [Remote host closed the connection]
skade has joined #jruby
drbobbeaty has quit [Client Quit]
nirvdrum has quit [Remote host closed the connection]
skade has quit [Read error: Connection reset by peer]
nirvdrum has joined #jruby
<travis-ci> jruby/jruby (truffle-head:ba7bac1 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/102590488)
<GitHub53> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/6fe20cc0311104495989c5cfa265f18e78e8868e
<GitHub53> jruby/master 6fe20cc Benoit Daloze: [Truffle] Add a few missing boundaries in MutexNodes.
drbobbeaty has joined #jruby
<GitHub10> [jruby] chrisseaton pushed 3 new commits to master: https://github.com/jruby/jruby/compare/6fe20cc03111...ac503068c4cb
<GitHub10> jruby/master 76fd1b7 Chris Seaton: [Truffle] Handle nil in SplatCastNode.
<GitHub10> jruby/master ca3e90d Chris Seaton: [Truffle] Restructure uses a splat rather than an array cast.
<GitHub10> jruby/master ac50306 Chris Seaton: [Truffle] More lambda specs passing.
<GitHub86> [jruby] eregon pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/7046852a97b10d96518da3fa35cd1d9f2265d9e9
<GitHub86> jruby/truffle-head 7046852 Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
drbobbeaty has quit [Client Quit]
enebo has joined #jruby
<travis-ci> jruby/jruby (master:f4259c3 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/102592261)
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
<travis-ci> jruby/jruby (truffle-head:edc01e6 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/102592347)
<GitHub76> [jruby] headius closed issue #3353: Instance variable reads need a read fence to be fully volatile https://github.com/jruby/jruby/issues/3353
<eregon> Could somebody re-upload the jcodings snapshot? seems it went away :/
<GitHub42> [jruby] headius closed issue #3339: Possible memory leak in 1.7.22 https://github.com/jruby/jruby/issues/3339
<eregon> oh, it seems I'm looking at stale stuff, we are on a release now :)
nirvdrum has quit [Remote host closed the connection]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
xardion has joined #jruby
xardion_ has quit [Ping timeout: 276 seconds]
skade has joined #jruby
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
pawnbox_ has quit [Remote host closed the connection]
pawnbox has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
nirvdrum has joined #jruby
pawnbox has quit [Remote host closed the connection]
qmx has quit [Ping timeout: 240 seconds]
Scient has quit [Ping timeout: 250 seconds]
Scient has joined #jruby
<chrisseaton> is headius or enebo around?
<headius> hiya
qmx has joined #jruby
qmx has quit [Changing host]
qmx has joined #jruby
<chrisseaton> we use FindBugs on Travis, and download the FindBugs JAR from SourceForge - eregon noticed it looks like we can't do that anymore as it 503's
<chrisseaton> I was thinking maybe have a jruby/travis-files repo on GH and serve from there?
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
drbobbeaty has joined #jruby
Madmanden has quit []
<travis-ci> jruby/jruby (master:8ebd8f4 by Benoit Daloze): The build was broken. (https://travis-ci.org/jruby/jruby/builds/102597024)
<headius> chrisseaton: why don't we pull it from maven central?
<headius> is it not there?
drbobbeaty has quit [Client Quit]
<chrisseaton> I don't think so - there's a Google fork of it, maybe we can use that
<headius> jars not released to maven don't exist in my worldview
<chrisseaton> well they're on SourceForge so that should tell you all you need to know
<chrisseaton> I'll experiment with the Google fork and ask you again if that's not an option
<headius> ok
<headius> if necessary we could throw it on JRuby S3 but I'd rather source something canonical
<enebo> who makes Java jars and do not push them to Maven
<enebo> They sound like they dislike maven more than I do?!?!?
<chrisseaton> Maven Central isn't exactly easy to push to though
<chrisseaton> A lot of bureaucracy around it
<chrisseaton> I think there's been some kind of unofficial fork in this project... nothing is clear
<enebo> chrisseaton: findbugs has existed for like a decade…if they are still not pushing to maven it is a concerted effort to not put something there
<enebo> chrisseaton: although I agree nothing is easy with Maven :)
<headius> maven central is pretty easy to push to via sonatype oss
<headius> you ask for an account, they give it to you, you push
<enebo> private key and the surrounding artifact expectations too
<enebo> and proper signature generation
<chrisseaton> headius: don't you have to fill in a form and wait for a response from Sonatype etc? It's not exactly RubyGems
<headius> sure, but they have step-by-step walkthroughs for that too
<enebo> but it can easily be copied by looking at a similar project
<headius> chrisseaton: yes, but it has never taken more than a day for me
<GitHub188> [jruby] kares closed issue #2104: Ambiguous method warnings in core_ext/object.rb in 9k https://github.com/jruby/jruby/issues/2104
<enebo> but it is only a one time thing and it is generally <24 hours
pawnbox has joined #jruby
<headius> rubygems and sf.net and other "anyone can throw a binary up" also raise plenty of trust concerns
<chrisseaton> argh so I can get the actual jar for FindBugs from a fork on central, but it doesn't include their launcher, and they have separate main classes for each functionality - e.g. edu.umd.cs.findbugs.ShowHelp
pawnbox has quit [Remote host closed the connection]
<enebo> anyways I agree there are hoops to jump through and some non-obvious stuff like, what is sonatype (for a new user) but if you want wide deployment in Java world maven repo is it
pawnbox has joined #jruby
<enebo> chrisseaton: ouch
<headius> chrisseaton: who's running that project anyway? Sounds like a mess
<enebo> chrisseaton: time to fork!
tjohnson has joined #jruby
<chrisseaton> University of Maryland
<headius> somehow that doesn't surprise me
<headius> org.jruby.findbugs :-D
<enebo> chrisseaton: 12 years of archives on the project…someone has probably asked about maven on it
pawnbox has quit [Remote host closed the connection]
<enebo> grocery shopping bbiab
<chrisseaton> looks like the reason it's complicated as the core functionality, command line tool and two GUIs are all rolled into one
<chrisseaton> the manual talks about setting the visual style and things like that
<headius> I'm always amazed when there's a widely-used Java project that isn't in central
<headius> releases as recent as 3.0.5
<headius> er I mean Nov 2015
<headius> looks like it uses the google version
<headius> chrisseaton: if we can figure this out it would be nice to start running reports on jruby proper too
<headius> we used to do it periodically but have not in quite a while
<chrisseaton> it's a bit of a pain TBH - almost always false negatives, takes ages so you can't run locally before push and it just embarasses you with a broken build
<chrisseaton> i think you'd also get 10,000 warnings immediately and would have to either fix or ignore them before you could use it on Travis
<chrisseaton> in fact I'm going to remove it from Truffle for now anyway until I get some more time to understand FindBugs
<headius> ok
<headius> I remember all the false positives
<headius> we just hande-audited the report periodically
<headius> rather than letting it look like a build error
<nirvdrum> While not automated, IntelliJ's code inspections are very good and do much of the same thing.
<GitHub23> [jruby] chrisseaton fast-forwarded master from ac50306 to c84bc16: https://github.com/jruby/jruby/compare/ac503068c4cb...c84bc168c9ae
<GitHub165> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/5d61a09a6a652bc0559c82b380bc0c93d07e9ce8
<GitHub165> jruby/truffle-head 5d61a09 Chris Seaton: Merge branch 'master' into truffle-head
<headius> enebo: I think I have load wrapping working
<headius> we weren't using the anonymous module as pushRubyClass...always using Object for it
<headius> we only set the module into the scope, which isn't enough for defs in 1.7
vtunka has quit [Quit: Leaving]
pawnbox has joined #jruby
camlow325 has joined #jruby
drbobbeaty has joined #jruby
drbobbeaty has quit [Client Quit]
bb010g has joined #jruby
<travis-ci> jruby/jruby (master:6fe20cc by Benoit Daloze): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102606377)
<GitHub71> [jruby] headius pushed 1 new commit to jruby-1_7: https://github.com/jruby/jruby/commit/73daf0a88e7e35c6532a11a4c3d368596a79d081
<GitHub71> jruby/jruby-1_7 73daf0a Charles Oliver Nutter: Also use the anonymous wrap class for pushRubyClass, for defs....
<GitHub148> [jruby] headius pushed 1 new commit to jruby-1_7: https://github.com/jruby/jruby/commit/2e2647e0703218c20aff5b040462ba6d9e779805
<GitHub148> jruby/jruby-1_7 2e2647e Charles Oliver Nutter: Same fix for AOT as for interp for #3180.
<travis-ci> jruby/jruby (master:ac50306 by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102606837)
e_dub has quit [Ping timeout: 250 seconds]
shellac has quit [Quit: Ex-Chat]
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #jruby
tomjoro has joined #jruby
elia has quit [Client Quit]
<travis-ci> jruby/jruby (truffle-head:7046852 by Benoit Daloze): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102607021)
<headius> fixity fixity fixity
pitr-ch has joined #jruby
<eregon> yeah :)
<eregon> findbugs magically became available again
<headius> of course it did
<headius> weird
<travis-ci> jruby/jruby (master:c84bc16 by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102627822)
lopex has quit [Quit: Connection closed for inactivity]
elia has joined #jruby
thedarkone2 has joined #jruby
<bascule> _____ ____ ___ ____ _ __ ___ _ _
<bascule> | ___| _ \|_ _| _ \ / \\ \ / / | | |
e_dub has joined #jruby
<bascule> | |_ | |_) || || | | |/ _ \\ V /| | | |
<bascule> | _| | _ < | || |_| / ___ \| | |_|_|_|
<bascule> |_| |_| \_\___|____/_/ \_\_| (_|_|_)
<bascule>
<travis-ci> jruby/jruby (truffle-head:5d61a09 by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102627882)
<headius> bascule: yay
<bascule> :D
<enebo> headius: so how risky is anon wrapping module with require
<headius> enebo: risky as in 1.7.24, eh?
<headius> I'd say it's very low risk because practically nobody ever does load(..., true)
<headius> and if they did, it was broken
<headius> I am going to confirm this is still how MRI does it, but for load without wrap this shouldn't change anything
<enebo> headius: well it was reported by someone who noticed it was not working
<headius> the fix for 9k is also a one-liner
<headius> right...one of those outliers
<headius> so I think it's a good thing to fix
<enebo> headius: but I guess the risk would be some project using it differently on jruby with some jruby-specific fixes and it suddenly breaking because they assumed shared scope
<headius> that is the risk, I agree
<enebo> headius: with that said, they would be depending on wrong behavior
<headius> correct
<enebo> headius: so I only bring this up as an issue of timing
<enebo> headius: doing it 4 weeks before release allows us to say they had time to notice
<headius> well it's up to you...I can move those fixes to 1.7.25 if you like
<enebo> headius: one day before?>
<enebo> headius: yeah I don’t know. I am just bringing it up for conversation
<enebo> headius: I like to have these sorts of conversations on ones which make my nose tingle
<headius> I feel pretty safe about it myself, since it's a feature of load most people don't even know about
<headius> and those that do would want it to do the right things
<enebo> headius: I guess it is so unlikely to be used at all
elia has quit [Quit: Computer has gone to sleep.]
<enebo> headius: some framework which depends on this no doubt worked around this by module_eval’ing the load
<enebo> headius: or something to try and make it happen in a different namespace
<enebo> headius: in which case fixing it would not brea them
<enebo> headius: but load is meant mostly for reloading the same thing
<enebo> hmm yeah this is probably worth going for it
<headius> I think it is...I'll do more verification of it as well
<headius> fixing it on master untags a handful of specs too
<enebo> nice
<headius> we haven't done this right for years
<GitHub89> [jruby] headius pushed 3 new commits to master: https://github.com/jruby/jruby/compare/c84bc168c9ae...358a4afa72ca
<GitHub89> jruby/master 940c5aa Charles Oliver Nutter: Remove this hack in prep for investigating #3180.
<GitHub89> jruby/master eb69173 Charles Oliver Nutter: Also get self's class for method defs in script body....
<GitHub89> jruby/master 358a4af Charles Oliver Nutter: Untag passing Kernel#load specs.
elia has joined #jruby
nirvdrum has quit [Ping timeout: 246 seconds]
nirvdrum has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:73daf0a by Charles Oliver Nutter): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/102639349)
nirvdrum has quit [Read error: No route to host]
nirvdrum has joined #jruby
<headius> hmm
<headius> seems like my previous fix might have caused some trouble, not the most recent one
<projectodd-ci> Project jruby-master-spec-ji build #2550: FAILURE in 30 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/2550/
kith has joined #jruby
<travis-ci> jruby/jruby (jruby-1_7:2e2647e by Charles Oliver Nutter): The build is still failing. (https://travis-ci.org/jruby/jruby/builds/102641106)
<headius> hmmm, I'm not getting those failures locally
<GitHub174> [jruby] chrisseaton pushed 1 new commit to master: https://github.com/jruby/jruby/commit/6d171abfd5410d55f654f3a7f7d4294823f4a5ff
<GitHub174> jruby/master 6d171ab Chris Seaton: [Truffle] More lambda specs passing.
pietr0 has joined #jruby
bb010g has quit [Quit: Connection closed for inactivity]
<headius> oh hmm
<headius> I see a bug
<chrisseaton> headius: CompiledIRMethod doesn't mean jitted does it?
<GitHub6> [jruby] headius pushed 1 new commit to jruby-1_7: https://github.com/jruby/jruby/commit/b93fbb6e4318a954114ecb871015af4ce55153fa
<GitHub6> jruby/jruby-1_7 b93fbb6 Charles Oliver Nutter: Check for empty identifiers and treat them as false.
<headius> chrisseaton: it does
<headius> it is used when the body that defined a method was already compiled to bytecode
<headius> for the lazy jit it would be MixedModeIRMethod
<chrisseaton> Are native (Java defined in RubyKernel etc) CompiledIRMethods?
<headius> no, those are generated descendants of JavaMethod
<headius> I've wanted to unify all these paths but it would require using indy or a lot more code generation to adapt the different argument layouts
<projectodd-ci> Yippee, build fixed!
<projectodd-ci> Project jruby-master-spec-ji build #2551: FIXED in 5 min 19 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/2551/
<chrisseaton> headius: I have a Java breakpoint in RubyKernel.exit, and when I look at the stack trace there are CompiledIRMethods on it - is that right? This code isn't be jitted can it? https://gist.github.com/chrisseaton/604008e04089d211213d#file-foo-rb-L8
<headius> if you run the script directly it attemps to compile the whole thing right away
<headius> only for the target script
<headius> in which case it would be using CompiledIRMethod for any defs
<chrisseaton> oh right yeah the top level is compiled
<GitHub120> [jruby] headius closed issue #3180: Kernel.load(file, true) produces RuntimeException: Should not get here! https://github.com/jruby/jruby/issues/3180
elia has quit [Quit: Computer has gone to sleep.]
<GitHub37> [jruby] headius pushed 1 new commit to jruby-1_7: https://github.com/jruby/jruby/commit/2398cecc4379a39db44f90dc987f4fd649033d3f
<GitHub37> jruby/jruby-1_7 2398cec Charles Oliver Nutter: Add case for breakage fixed in jruby/jruby@b93fbb6e431.
<GitHub43> [jruby] headius pushed 3 new commits to master: https://github.com/jruby/jruby/compare/6d171abfd541...fba6319eec8b
<GitHub43> jruby/master c3e0baf Charles Oliver Nutter: More robust, less breaky fix to omit bad class/package elements....
<GitHub43> jruby/master eaffabf Charles Oliver Nutter: Check for empty identifiers and treat them as false.
<GitHub43> jruby/master fba6319 Charles Oliver Nutter: Add case for breakage fixed in jruby/jruby@b93fbb6e431.
bb010g has joined #jruby
elia has joined #jruby
<GitHub189> [jruby] chrisseaton pushed 3 new commits to master: https://github.com/jruby/jruby/compare/fba6319eec8b...367b9ba07171
<GitHub189> jruby/master 3cc7262 Chris Seaton: [Truffle] check respond_to? and call to_hash when getting keyword arguments.
<GitHub189> jruby/master 7b070cd Chris Seaton: [Truffle] Lambda specs passing.
<GitHub189> jruby/master 367b9ba Chris Seaton: [Truffle] Got a bunch of method specs passing for free.
<GitHub6> [jruby] headius closed issue #3032: Self requiring file breaks inheritance hooks https://github.com/jruby/jruby/issues/3032
<headius> enebo: that one seems to have been fixed between 1.7.21 and now
<headius> I know kares and mkristian have fiddled around with load service during that time
<headius> this one seems like we might punt forever since it's working in 9k: https://github.com/jruby/jruby/issues/2960
<headius> I find the MRI behavior surprising, tbh
<headius> oh wait a sec
<headius> whut thu
<headius> oh this might be easy
<chrisseaton> I have parens in arguments lists... I've been working for like a week on those in Truffle
<chrisseaton> I hate I mean, not I have
<headius> yeah they're kinda crazy
<headius> I think this problem is simple though...we're just not locally-scoping arguments if they're in params
<chrisseaton> combined with kwargs it's mind bending
<headius> only if they're directly in the ||
<headius> so there's just a check missing somewhere
<headius> params=parens
<chrisseaton> you're probably re-using the multiple assignment parser rules
<headius> yeah perhaps
<chrisseaton> which don't have actions to set in the current scpe
<headius> I don't know where the code is that says "force these to be local to the block" but it's not running for nested vars
<headius> jesus, the Jay source is really old C
<headius> enebo: how do you even build this?
<headius> chrisseaton: you got this to build, right?
<enebo> ./bin/generate_parser
<chrisseaton> it's really badly bitrotted! i have a PR open with some suggestions
<chrisseaton> if you're on a mac I can just send you a binary
<chrisseaton> and things like the name of the parent directory the jay repo are in matter!
<headius> enebo: I have to build Jay first
<headius> and it's like pre-C89 code that clang refuses to accept
<chrisseaton> yeah
<headius> I didn't even know this was ever valid C
<chrisseaton> it's K&R isn't it
<headius> I think K&R at least had void
<enebo> you know this is basically original yacc code I think
<headius> this doesn't even have void
<enebo> it has PDP-11 comments in it
<headius> it is K&R var decl style though
<enebo> I could just commit my binary too :)
<enebo> K&R had void
<headius> chrisseaton: unknown repository
<headius> can you make that public maybe?
<headius> it would be easier for me to just pull your fork
<headius> I've never seen that before
<enebo> HAHAHAHA chrisseaton I would have merged this long ago had I gotten notified by github
<enebo> some of this looks like it should be void and not int
<headius> yeah
<chrisseaton> I figured int was implicit when no type was specified in the era of this C
<enebo> err all of it perhaps
<chrisseaton> I think I deleted the repo this PR came from, but if you merged it you could use it
<headius> ok
<headius> enebo: ?
<enebo> Give me a minute and I can probably fix this for clang quickly
<headius> I think it's probably all supposed to be void since non-void return type was still required
<headius> at least I believe so...this predates my learning C
<enebo> I think mostly we just need more explicit signatures
<enebo> older gcc must ssume void
<headius> yeah
<enebo> clang is probably requiring ansi
<headius> clang is locked to C99+ I believe
<headius> which requires return type
<enebo> although perhaps there is a k&r flag but we can easily just fix it
<enebo> I will do it and we will see if I still “got it"
<headius> show us your stuff
<headius> or just fix that parser bug for me
<enebo> part of me is not so interested in improvement of a tool which has not changed in 40 years other than Java generation part :)
<headius> I think it's just a matter of forcing all vars in the ArgsNode to be declared as locala
<headius> local to the block
<headius> enebo: we could probably port this to Java
<enebo> headius: well I think it would be nice if people can compile this tool so I don’t have the “quest for fire” binary
<headius> :-)
<headius> hahah
<headius> lol
<enebo> headius: I have thought about it before
<enebo> headius: not as much jumping like racc
<headius> yeah
<chrisseaton> I think this was my first PR after starting work on Truffle
<headius> racc took some doing
<headius> now I want to watch Quest for Fire
<enebo> fatal(msg)
<enebo> char *msg;
<enebo> HAHAHA yeah this is super K&R
<enebo> I am amazed this is allowed in clang at all if it is strict C99
<headius> the arg decl definitely is
<headius> K&R
<enebo> I will just fix the signatures to all be ansi c
<headius> I can't find concrete info on whether return type void is K&R or prior
<headius> or post
<enebo> well the lineage of this code is do….old
<enebo> the last csscid is from 1990
<enebo> so this is BSD yacc code
<headius> ok, sounds like K&R did not have a way to indicate no return value
<headius> void didn't come along until C89
<headius> I learned from K&R book but I'm sure it was a post-89 edition
<headius> I probably still have it here somewhere
<headius> sweet, quest for fire is on netflix
<enebo> headius: my first version of that book was an ansii edition too and I think is was around that time frame
<headius> I gues I know what my background noise will be for the rest of the afternoon
<headius> hmm, I forgot this movie is mostly a lot of grunting
pietr0 has quit [Quit: pietr0]
<headius> enebo: any objection to moving these parser scripts to tool?
<headius> they're not really JRuby bin stuff
<enebo> headius: as long as they still work no
<headius> k
<enebo> tools did not exist when that script was put in there
<headius> yeah I figured
<enebo> we probably have rules to exclude/include possibly
<headius> yeah, we could just drop those if it works fine this way
<headius> let me know when you have jay compiling and I'll make the appropriate changes (and see if I can patch the parser for this issue
<enebo> hehe error.c has been ansified
<enebo> many many functions in that one I guess
<enebo> void
<enebo> onintr(signo)
<enebo> OMGZ
<enebo> someone added void to 1 function in this file at some point
<headius> nice
<enebo> unsigned n;
<enebo> hmm
<enebo> seems like something is missing there :)
<enebo> if this fortran? It starts with n…so int? :)
cremes has quit [Remote host closed the connection]
<headius> hahah
<headius> nice
<headius> yeah must be?
<enebo> heh I doubt they use the I-N rule for variable names pre K&R but it is weird
<enebo> or post K&R
<enebo> so output.c is half ansi half K&R but all voids have no return
<travis-ci> jruby/jruby (jruby-1_7:b93fbb6 by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102665438)
cremes has joined #jruby
<enebo> err no return type
shellac has joined #jruby
<enebo> and every function has about 15 register variables
tcrawley is now known as tcrawley-away
yfeldblum has joined #jruby
camlow32_ has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
<enebo> register int i, j, k, l;
<enebo> register int t;
<headius> those were never guaranteed to go in registers, right?
<headius> just a hint
<chrisseaton> I think they did in early versions
<enebo> headius: back when this hint mattered there were not many registers and once machines got to a point they all started ignoring it
<headius> yeah, but if you ask for more registers than there are registers...
<enebo> headius: so if you name 15 regiser vars but there are only 3 left then you have no idea
<headius> rght
<enebo> I was always told to not bother unless that var was insanely important
<enebo> but by the time I learned any lesson it was ignored :)
<chrisseaton> i think they were always in registers when you used them, but may be spilled and reloaded between those points
shellac has quit [Quit: Computer has gone to sleep.]
<enebo> chrisseaton: yeah but the goal is to make important ones to try and not spill
<enebo> mae=mark
<headius> yeah I'd think spilling would apply to all vars
<enebo> heh bad typing day
<headius> if they're not in register all the time then it is just a hint
<headius> please prioritize these vars when spilling or not
<enebo> the newer signatures do not use register … in old signatures every single local is a register … and some which maybe got their signature changed to ansi seem to have only register locals
<enebo> I can see multiple coding styles in this code
<enebo> I am guessing BSD -> some other backend generation effort -> added java backend as the three groups
<headius> awesome
<enebo> I feel somewhat bad my knowledge of C and C++ are slowly disappearing but I sure don’t miss working on a codebase in either language
<headius> C has become read-mostly for me at this point
kith has quit [Quit: kith]
<enebo> GAH…now that I fixed the signatures I need to add prototype decls
<enebo> HAHAHA…I noticed almost all of those were used in output() method so I moved it to the bottom of the file…FIXED
kith has joined #jruby
<headius> enebo: nice
<headius> that rule of C still drives me nuts
<headius> you have to read every C file backward unless people declare prototypes
<enebo> ok moved 7 functions around so no more extern signture defs needed
<enebo> char* get_tag(int emptyOk) {
<enebo> I see the java infecting this C
<headius> hahah yeah
<enebo> all the other vars are snake-cased
<headius> camels
<travis-ci> jruby/jruby (jruby-1_7:2398cec by Charles Oliver Nutter): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/102670292)
<nirvdrum> Do we delete SNAPSHOTS that aggressively, or does sonatype?
<headius> they delete when a release is pushed I believe
<nirvdrum> That's . . . something.
<headius> yeah I'm sure there's a reason but it can be a little annoying
<nirvdrum> A local branch I have just stopped working because jcodings was released.
<nirvdrum> But also everything between 9.0.4.0 and 9.0.5.0 can't be bisected.
<headius> huh, I released options and invokebinder but did not see failures on master
<nirvdrum> We use a maven cache in Travis, right?
<headius> maybe they just age out
<headius> we don't, no...there was a bug in it that hasn't been fixed
<nirvdrum> maven doesn't always check for new versions.
<nirvdrum> Ahh.
<headius> so they should be failing I believe
<headius> yeah it's disabled still
<headius> so I'm surprised
<headius> nirvdrum: what version snapshot of jcodings?
<nirvdrum> 1.0.16-SNAPSHOT
<nirvdrum> I just modified the POM locally for now.
<nirvdrum> I don't want to be dealing with a merge or rebase quite yet.
<headius> hmm yep, that's the one I released
<nirvdrum> It was building fine yesterday (and this morning). Maybe they take a day or two to propagate out.
<headius> that's possible
<headius> hmm yep, master builds fine with -U and snapshot versions of options and invokebinder
<headius> those were just released yesterday though I Think
<headius> or wednesday
<GitHub70> [jruby] headius pushed 1 new commit to master: https://github.com/jruby/jruby/commit/a0f13877fe09e1d05d8a9b85a0c8de3edcec6eca
<GitHub70> jruby/master a0f1387 Charles Oliver Nutter: Update to release versions of options and invokebinder.
pitr-ch has quit [Quit: Textual IRC Client: www.textualapp.com]
drbobbeaty has joined #jruby
<enebo> jay: Mach-O 64-bit executable x86_64
<enebo> jay.old: Mach-O executable i386
<enebo> heh
<enebo> headius: okie dokie
<enebo> headius: looksl ike it generated a binary which generated the same .java output for our parser
<enebo> headius: note these is a mistake in our master grammar atm so you will get one trivial warning
<headius> ok
<enebo> headius: it was from last change chrisseaton and I will fix it sooner or later (just need to define that production as having a return type)
<headius> I'll give this patch a shot then
<enebo> I will spend like 10-15 more minutes on jay since it gives zillions of warnings on malloc/alloc etc..
<headius> oh, it needs yydebug checked out too
<enebo> oh wait…I had to re-add that submodule
<enebo> I did not realize anyone had ever changed this repo befor
<headius> where do I get yydebug
<enebo> you did this work
<headius> oh I see
<enebo> it was to get it into maven
<headius> the git submodule
<enebo> it is a submodule
<headius> jay-yydebug ok
<headius> yup got it
<headius> looks good
yfeldblum has quit [Ping timeout: 240 seconds]
<headius> enebo: PATH=../../jay/src/:$PATH tool/generate_parser Ruby19Parser Ruby19
<headius> but I get error
<headius> ../../../../../../../tool/patch_parser.rb:21:in `gets': No such file or directory - Ruby19 (Errno::ENOENT)
<enebo> headius: on 1.7 branch?
<headius> yeah
<headius> oh hell
<headius> I think it needed full path to jay
<headius> absolute didn't work because it chdirs
<enebo> Generating Parser 'Ruby19Parser' w/ YYTable prefix of 'Ruby19'
<enebo> ~/work/jruby-1_7/core/src/main/java/org/jruby/parser ~/work/jruby-1_7
<enebo> ~/work/jruby-1_7
<headius> I mean relative didn't work
<enebo> it I think uses pushd
<headius> well, which is the same as cd
<enebo> or is it a ruby script
<enebo> yeah I don’t know…I always have used it the same way
<headius> it does pushd before running the ruby scripts to rewrite it
<headius> and before jay it seems
<enebo> it could be made more robust for this case but I have never seen the issue
<headius> you must use full path to jay
<enebo> :/Users/enebo/Applications/jay/bin:
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo> JAY=jay
<enebo> I don’t ever change this
<enebo> but I just have jay in my path like any other tool
<headius> ugh
<headius> well the patch I thought would help us is only used by truffle
<enebo> which patch?
<chrisseaton> the block local vars one?
<chrisseaton> yeah that's unrealted
<headius> yeah
<headius> e6da2d81
<headius> trying to figure out where it goes off into paren-wrapped args land
<chrisseaton> look for uses of constructors of the multasgn nodes?
<headius> enebo: I'm looking at this one...the only problem (I think) is that when you go into nested vars it's no longer forcing them to declare local to the block
<headius> but 9k does it right
<headius> I don't see multi assign referenced from block args
<headius> in the parser
<chrisseaton> so that makes sense - it's reusing the mult asgn rules
<chrisseaton> you could set a breakpoint in the constructor of MultAsgn and look at the stacktrace
<headius> I said I DON'T see it
<enebo> HAHA
<headius> I'm working my way through rules though
<headius> ok this might be it though
<headius> it doesn't use the parser rule for masgn but it does construct it
<headius> MultiAsgn19Node
<enebo> hmmm some of the nesting counters I think might still be broken in this parser too
<enebo> like condition and ocmmand stack
<enebo> I got them working on master for some of those no parer functions with blocks on the end bugs but it was not something I could just merge back
<enebo> I am not sure if that is related to this though
<headius> so block args are f_arg, which is a bunch of f_arg_item, which calls into tLPAREN f_marg rparen
<enebo> headius: how does AST look between master and 1.9 in this case
<headius> f_marg just throws those into a MultipleAsgn19Node and does not declare them as new vars in this block
<headius> enebo: appears to be the same
<headius> I need to figure out what parser is doing different for f_marg
<enebo> you look at f_arg_item?
<enebo> the bug is that that commented out code was not implemented
<headius> simplest case is x = 1; [[2]].each {|(x)|}; p x
bb010g has quit [Quit: Connection closed for inactivity]
<headius> ahh, sure
<enebo> headius: so MRI at 1.9.3 had this extra logic would would realloc these as new vars
<headius> master has ParserSupport.arg_var
<enebo> headius: at the time I did not get what this was for
<headius> in that section
<enebo> headius: so later on I must have realized I guess and it did not get backported
<headius> yeah
<enebo> headius: I update our parser pretty coarsely so it probably just looked like new brehavior at the time
<enebo> headius: There is very few commented out chunks in the parser
<headius> hmm 1.7 has arg_var too and they seem identical
<enebo> headius: I think there is one other substantial commented out thing but it is yarv reducing a rich construct into another construct
<enebo> headius: something involving loops
<enebo> headius: so I left it in to remember they did that in that case and I probably commented on it
<enebo> I probably should have pointed out I did not get this snippet
<headius> I don't think it's the commented section
<headius> because this is an f_margs
<headius> oh wait
<headius> duh
<headius> you meant that commented section
<headius> the DVAR, LVAR stuff
<headius> but that isn't implemented on master either :-\
<enebo> headius: no but we know what it is in IRBuilder
<headius> so you think we're doing it at build time on master?
<enebo> and isn’t there a helper?
<enebo> well we should still alloc a var in scope
<headius> hmm
<enebo> hmmm you sure this works
<enebo> Let me look on master
<headius> it does
<headius> I see differences in f_margs
<headius> yeah
<headius> when creating the masgn on master it uses support.assignableLabelOrIdentifier
<headius> 1.7 just uses assignable
<enebo> yeah it will check existing slot and make it use existing
<enebo> could it just happen to work out
<headius> well I'm trying to add the method that 9k has for this
<headius> since it just unconditionally assigns the variable in current scope
<enebo> well it makes an assign but it seems like it would assign to where it found it
<headius> yeah that doesn't fix it
<headius> ah yeah...because it still does existance check
bbrowning has quit [Quit: Leaving]
<enebo> merging those two scope types and using this isBlockOrEval I find a bit harder to read too
<enebo> but yeah assign will make an assign on current depth if it is found on current depth otherwise ask parent scope to look for possible assign
lopex has joined #jruby
<enebo> headius: I half wonder if subbu fixed this issue by restoring the value on exiting the scope or something
<headius> yeah I'm just not seeing a parser diff that would account for this
<headius> this has to be the right place
<subbu> i fixed what?
<headius> jruby -e 'x = 1; [[2]].each {|(x)|}; p x'
<enebo> the commented code is pretty clear now too that this would fixthis problem
<lopex> numbers?
<headius> on master, the block x and the outer x are different variables
<headius> on 1.7 they're the same
<enebo> subbu: in MRI this allocates a local variable in the block but I think we use the outter x but in 9k the x is fine after the block exits
<enebo> subbu: I do not see anything in processing of masgn logic which would allocate a new scoped variable
<enebo> subbu: so I am thinking after the block is done we have a copy() setting the value back
<enebo> subbu: athgouh I could just turn on IR output and look I guess but I magically pinged you by mistake :)
<headius> it seems like both scopes declare their own x
<headius> I just can't figure out how
<enebo> wow
<enebo> yeah I am foncused by that
<subbu> ok, so, 9k matches MRI but 1.7 doesn't?
<subbu> if yes, i don't remember doing anything special.
<headius> I think this is done in the builder
<headius> ahh here it is maybe
<headius> if (values == null) {
<headius> buildArgsMasgn(restNode, argsArray, false, i, postArgsCount, 0, true); // rest of the argument array!
<subbu> enebo, i know IRClosure allocates vars based on shadowing.
<subbu> i vaguely remember adding code to it to fix broken output from parser ..
<subbu> headius, enebo there are probably comments in IRclosure as well ...
<headius> that would explain this
<enebo> subbu: ah well I guess I should just look for StaticScope.declare in here :)
<headius> it appears to follow one path for masgn with RHS and one path for masgn with no RHS
<headius> the latter is treated as args and allocated differently
<headius> that's not a terrible hack but it means I don't have a trivial fix for this in 1.7 parser
<enebo> hehe IRClosure.getLocalVariable
<headius> look at IRBuilder.buildMultipleAsgn19Assignment
<headius> for each variable chunklet it branches based don values == null or not
<enebo> yeah + getNewLocalVariable called from that
<enebo> yeah it is the method I referenced in IRClosure
<subbu> I will let you enjoy the spelunking in the code ... I am distracted a bit here .. it also happens to be the 15th birthday of wikipedia.
<headius> subbu: enjoy, I think we're on the right track
<subbu> so i want to cram in some work before festivities begin in a couple hours.
<subbu> ok. :)
<enebo> if it asks for an LocalVariable from a closure it does some extra counting for for loops but then also corrects the AST and has StaticScope allocate a new variable
<headius> yeah
<headius> bleh
<enebo> So this fixes it in master but really does just work around that commented out code in the parser
<headius> right
<headius> parser still kicks out the wrong variable declarations
<enebo> so if we kill this then I suspect we can clean up IR a tiny bit
<enebo> and also get a fix out of 1.9 in the process
<headius> yeah, I was just hoping it was a quick one for 1.7.24, pull a line or two out of 9k parser
<headius> but it's more involved
<enebo> well it is not so bad
<headius> so which commented part are you talking about
<lopex> what's the ratio of jruby IR ruby specific features and general optimization techniques ?
<headius> the internal_id etc stuff in f_arg_item?
<enebo> RubyParser.y f_arg_item
<headius> there's a second commented part on 1.7 so I was confused
<headius> /*
<headius> $$ = new ArgAuxiliaryNode($1.getPosition(), (String) $1.getValue(), 1);
<headius> */
<headius> so basically we need this "dyna_in_block" flag
bb010g has joined #jruby
<headius> to force it to be a dvar
<enebo> ok so the weird bit here and this might just be the two impls not being quite the same is we pass an masgnnode as $2
<enebo> nd_value if anything would be an ArrayNode
<enebo> but also it could have n vars inside it right?
<enebo> how could one if statement change these?
<enebo> OHHHHH
<travis-ci> jruby/jruby (master:a0f1387 by Charles Oliver Nutter): The build was broken. (https://travis-ci.org/jruby/jruby/builds/102691321)
<headius> wat
<enebo> it is possible they make a bogus var as an AUX var and then when they process this they make all the nested vars local to the same scope
<headius> enebo: which would be analogous to IRBuilder fixing it up
<enebo> yeah perhaps so…i was pretty confused about this AUX thing
<enebo> to the point I commented it out :)
<enebo> this is a pretty wonky solution
<enebo> is this really how they solved this?
<enebo> I think it would be pretty simple for us to just do a ‘$$ = reallocateMargs($2);'
<enebo> where that method is on parser and just gets eahc marg out reallocs on current scope and then returns that new list
<enebo> our staticscope is superior in that we don’t need to check whether we are in a block or not since it is part of staticscope itself
<headius> hmm
<headius> I'm trying to figure out how they deal with this AUX arg
<enebo> hahahaha yeah me too
<enebo> there is only 5 references to it in the entire source
pawnbox has quit [Remote host closed the connection]
<headius> they do have the if section that allocates a dvar or lvar but then they wrap that in AUX
<headius> but what the heck
<headius> yeah
yfeldblum has joined #jruby
<headius> there's gotta be some fixup code here somewhere
<enebo> they also use this in for
<headius> yeah
<enebo> headius: one thing is for sure though it wraps a list in this node with an random id
<enebo> well sort of
<enebo> if make [aux(some_id, new_{d,l}var), margs_list]
erick__ has joined #jruby
<enebo> so it actually allocates a var too
<lopex> headius, enebo what's the best sources to learn aboout jruby IR ?
<enebo> OH SHIT
<enebo> I know why too
<headius> lopex: reading through how we build stuff in IRBuilder works for me
<enebo> it is making a hidden variable because it is an indirect lvar
<enebo> the result of the masgn is itself an argument to the block
<enebo> not one you can directly reference but still
<headius> enebo: ick
<headius> that's what aux is?
<enebo> so |a, (b,c), d| is three lvars
<headius> and they ignore it which is why we don't see it getting used
<headius> or they use it as (b, c) = hidden var yanking out of incoming arg list
<enebo> they do not support zsuper in deinf_method luckily :)
<enebo> headius: that would make most sense
<enebo> headius: somewhat clever in being a simpler impl
<enebo> destructuring does not need to be in instr set
<enebo> or not as much logic anyways
<headius> well then I'm back to wondering how they force the b, c to be local to the block
<headius> so this commented part is not related
<enebo> no I think it is related
<enebo> I just don’t think we figured out how aux fits into it yet
<enebo> This seems to be an implicit local AND a marker
<headius> I think the truth lies in f_margs
<enebo> NEW_DASGN_CURR
<enebo> in assignable_gen
<headius> yeah
<headius> right
<headius> I'm trying to trace that on our side too
edub has joined #jruby
e_dub has quit [Quit: ZZZzzz…]
<headius> dvar_curr is a check for the variable in current dscope, right?
<enebo> I don’t think we have it
<headius> yeah seems like that
<headius> we have the exists check which just checks for variable names but they seem to check a separate list of argument names too
erick___ has joined #jruby
erick__ has quit [Read error: Connection reset by peer]
<enebo> headius: yeah true but I am not sure if it matters or not
<enebo> headius: I think it might help for detecting duplicated arg lists
<enebo> headius: although I guess I don’t know why they keep these separate
<enebo> headius: I do not actually see then using this _CURR differently in compile.c htough
<headius> they seem to use it to shortcut the lexical search
<enebo> headius: it seems to generate the same code for block vars
pawnbox has joined #jruby
<headius> hmmmm
<enebo> semantically I am getting a little baffled by this
<enebo> why is |(k)| not shadowing the outer k?
<enebo> why would this explicitly be a new variable
<headius> because all block args are local to the block
<headius> even those in destructuring
<headius> that was a change in 1.9
<enebo> oh for any assignment
<enebo> right
<enebo> this can be an indefinitely nested structure of assignments
<enebo> so a simple list processing cannot be done
<headius> right
<enebo> but we could make a margsAssignable method which just allocated a new variable for these assignments
<headius> and the parser reuses masgn logic for the destructuring, but then doesn't know they need to be forced to be block local
<headius> they go back to being normal variables
<enebo> yeah
<enebo> so I think we just change margs to call it’s own support method and we can jhust alloc these on current scope
<enebo> IRBuilder itself can then remove any special fixup logic since all the variables will exist in the proper scope then
pawnbox has quit [Ping timeout: 240 seconds]
<enebo> unless there is a case I don’t understand which I am increasingly thinking could be true :)
<headius> well the bit I don't get is that we need normal masgn to still shadow
<headius> I haven't been able to figure out what changes between the two cases
<enebo> headius: shadow for lhs?
<headius> hmm
<enebo> if not in a block I guess they will so we need to know our scope
<enebo> oh but if not in a block it cannot shadow :)
<enebo> so any assignment to var in block scope cannot shadow
<headius> $ ruby23 -e 'x = 1; [[2]].each {|y| (x, _) = y}; p x'
<headius> 2
<enebo> but rhs itself can be from outside but that is not a problem it just looks for a var in that case
<headius> versus
<headius> $ ruby23 -e 'x = 1; [[2]].each {|(x)| }; p x'
<headius> 1
<headius> MRI doesn't appear to like (x) = y so I had to add the dummy var for it to parse
<headius> but you get the idea
<enebo> well I see the difference but I just got confused from this
<enebo> so….masgn can assign as a shadow
<headius> a paren destructuring in the body of the block will see containing scope vars
pawnbox has joined #jruby
<enebo> but non-masgn assignments cannot shadow
<headius> paren destructuring in the arg list should not
<enebo> paren desrtucturing wll not shadow
<headius> right
<enebo> that is pretty fucking weird
<headius> so we can't just change masgn to never shadow
<enebo> and I am not talking about the destructuring
<headius> this is why IRBuilder checks to see if there's a RHS I think
<headius> if there's no RHS it treats it as all new variables for this scope
<enebo> I mean ‘a = 1; -> { a = 2}; p a’ is 1 but ‘a = 1; -> { (a, b) = [2,3] }; p a’ is 2
<enebo> that is really really surprising semantics
<enebo> semantics I do not thin I realized existed
<enebo> well that is still 1
<headius> well that's not really it
<headius> you need the destructuring in the first one as part of arg list
<headius> as in [[2]].each {|(a)| }
<enebo> heh I did not exectute :)
<headius> that a will always be local to the block
<enebo> HAHA yeah it is 2 now
<enebo> so it leaked in my latter example
<headius> but [[2]].each { |z| (a, _) = z } will use the outer a
<headius> because the destructuring occurs in the body and not the arg list
<enebo> no I am ignoring destructuring
<enebo> I am just coping with the goofiness of masgn shadowing
<enebo> err using outer scope
<enebo> that is really fucking weird
<headius> I don't think it's weird...what is weird?
<headius> they both shadow `a` in your example
<headius> normal variable and a variable in an masgn
<headius> they both will assign 2 to `a`
<enebo> oh haha whew
<enebo> ok thank got
<enebo> god
<enebo> it is as I thought
<headius> ok
pawnbox has quit [Ping timeout: 260 seconds]
<enebo> ok so I was confused by the example
<headius> I keep coming back to this NEW_DASGN_CURR bit in assignable_gen
<enebo> headius: ok I am on the same page and your fears need not be
<enebo> masgn is not definted in margs
<enebo> it is by mlhs and friends
<enebo> margs is only for destructuring in arg lists
<headius> ok
<enebo> so we can make special method and it wont affect masgn in general
<headius> so we just need to make this always var in current scope
<enebo> yeah I think so
<headius> well that's not too bad then
<enebo> but with that said I do not really see why they designate this as special
<enebo> I guess so they can see it in output peryaps
<headius> I might see where to do it then
<headius> f_marg : f_norm_arg
<headius> where it actually does an assignable
<enebo> yeah I think you just make slightly different version of assignLabelOrIdentiffier
<headius> and probably for the assignables in f_marg_list
<headius> yeah
<enebo> but you do not care about the label bit
<enebo> that method is for both (foo: and foo,
<enebo> WE DID IT…(being optimistic)
<enebo> headius: I would fix on 1.7 first and then master since you will have extra work to edal with logic in IRClosure
pawnbox has joined #jruby
<headius> yeah I'll try that
pawnbox has quit [Ping timeout: 250 seconds]
tomjoro has quit [Remote host closed the connection]
enebo has quit [Quit: enebo]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 250 seconds]
drbobbeaty has joined #jruby
<headius> I think I have it
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 250 seconds]
<GitHub83> [jruby] headius pushed 2 new commits to jruby-1_7: https://github.com/jruby/jruby/compare/2398cecc4379...e179f0164c56
<GitHub83> jruby/jruby-1_7 d3f90ac Charles Oliver Nutter: Move parser scripts to tool.
<GitHub83> jruby/jruby-1_7 e179f01 Charles Oliver Nutter: Always assign masgn destructured args in block as block-local....