skade has quit [Ping timeout: 255 seconds]
skade has joined #jruby
<travis-ci> jruby/jruby (master:363652a by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/103225724)
shellac has quit [Quit: Computer has gone to sleep.]
elia has quit [Quit: Computer has gone to sleep.]
skade has quit [Read error: No route to host]
enebo has quit [Quit: enebo]
<travis-ci> jruby/jruby (master:c6a82ae by Chris Seaton): The build was fixed. (https://travis-ci.org/jruby/jruby/builds/103230009)
skade has joined #jruby
skade has quit [Client Quit]
tjohnson has joined #jruby
pawnbox has joined #jruby
cpuguy83 has quit [Quit: ZNC - http://znc.in]
cpuguy83 has joined #jruby
cpuguy83 has quit [Client Quit]
pawnbox has quit [Ping timeout: 255 seconds]
cpuguy83 has joined #jruby
tcrawley-away is now known as tcrawley
Cyrus has joined #jruby
nirvdrum has joined #jruby
waka has quit [Quit: Leaving]
tomjoro has quit [Remote host closed the connection]
robbyoconnor has quit [Quit: Konversation terminated!]
robbyoconnor has joined #jruby
robbyoconnor has quit [Client Quit]
robbyoconnor has joined #jruby
nirvdrum has quit [Ping timeout: 255 seconds]
tomjoro has joined #jruby
yfeldblum has quit [Ping timeout: 260 seconds]
tomjoro has quit [Ping timeout: 256 seconds]
pawnbox has joined #jruby
tcrawley is now known as tcrawley-away
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
tomjoro has joined #jruby
tomjoro has quit [Ping timeout: 250 seconds]
etehtsea has joined #jruby
yfeldblum has joined #jruby
tomjoro has joined #jruby
tomjoro has quit [Ping timeout: 276 seconds]
mkristian has joined #jruby
<kares-> mkristian: hey! seems there's another interesting regression along the 1.7.x
<kares-> https://github.com/jruby/jruby/issues/3601 ... do you plan looking into it?
<mkristian> yes, I wanted to look into this
<kares-> ok thx - only asking cause otherwise I would
<mkristian> kares-, I am not sure if I can find time today for it and there seems to be more then one issue here - not sure though
<mkristian> kares-, so please go ahead
<kares-> mkristian: ok will give it a try - hopefully I won't get lost elsewhere today :)
<etehtsea> is smth wrong with https://github.com/jruby/jruby/pull/3597 ?
tomjoro has joined #jruby
thedarkone2 has quit [Quit: thedarkone2]
<kares-> etehtsea: lookin good - did you compare the ruby-2.3 impl darkone was referring to?
<kares-> etehtsea: maybe cause it handles the blocking arg
<kares-> marked for 9.0.5 I believe your PR is good just would like to hear from queue implementors :)
<etehtsea> I'll try to look into new impl later
tjohnson has quit [Quit: Connection closed for inactivity]
tomjoro has left #jruby [#jruby]
pawnbox has quit [Remote host closed the connection]
ivan\ has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
ivan\_ has joined #jruby
ivan\_ has quit [Remote host closed the connection]
mj12` has joined #jruby
pawnbox has joined #jruby
vtunka has joined #jruby
etehtsea has quit [Read error: Connection reset by peer]
shellac has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
pitr-ch has joined #jruby
blaxter has joined #jruby
elia has joined #jruby
blaxter has quit [Ping timeout: 272 seconds]
shellac has joined #jruby
etehtsea has joined #jruby
blaxter has joined #jruby
skade has joined #jruby
<travis-ci> kares/jruby (test-marshal-java-1_7:0fc5d6b by kares): The build passed. (https://travis-ci.org/kares/jruby/builds/103297573)
drbobbeaty has quit [Ping timeout: 264 seconds]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
<GitHub199> [jruby] eregon pushed 2 new commits to master: https://github.com/jruby/jruby/compare/c6a82aedf155...2dcd9b91afcd
<GitHub199> jruby/master a7bb4e7 Benoit Daloze: [Truffle] JT: Fix flags to ps.
<GitHub199> jruby/master 2dcd9b9 Benoit Daloze: [Truffle] Boundaries instead of transferToInterpreter in TimePrimitiveNodes.
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
oktarahadian has joined #jruby
<oktarahadian> hi all
oktarahadian has left #jruby [#jruby]
<GitHub94> [jruby] chrisseaton deleted truffle-reduce-maven-cruft at c50ea38: https://github.com/jruby/jruby/commit/c50ea38
cprice404 has quit [Remote host closed the connection]
<GitHub108> [jruby] chrisseaton pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/ad5f49e55ffce31c0dd7deea38d00fe13372ac74
<GitHub108> jruby/truffle-head ad5f49e Chris Seaton: Merge branch 'master' into truffle-head...
<travis-ci> kares/jruby (test-marshal-java-1_7:f95bddd by kares): The build passed. (https://travis-ci.org/kares/jruby/builds/103301549)
skade has quit [Quit: Computer has gone to sleep.]
mkristian has quit [Ping timeout: 260 seconds]
mkristian has joined #jruby
yfeldblum has quit [Remote host closed the connection]
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 245 seconds]
pawnbox_ has quit [Read error: Connection reset by peer]
pawnbox__ has joined #jruby
drbobbeaty has joined #jruby
pawnbox__ has quit [Remote host closed the connection]
brikkoroller has joined #jruby
<brikkoroller> Hello world!
<brikkoroller> I'm trying to provision a server with Chef and install jruby with rbenv, but I get this error: "ERROR: Java 7 required. Please install a 1.7-compatible JRE."
<brikkoroller> can anybody help me with this issue? It'd be very much appreciated
nirvdrum has joined #jruby
skade has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
mkristian has quit [Quit: This computer has gone to sleep]
pawnbox has joined #jruby
mkristian has joined #jruby
<chrisseaton> Do you have Java 7 installed?
<chrisseaton> brikkoroller: ^
brikkoroller has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
etehtsea has quit [Quit: Computer has gone to sleep.]
brikkoroller has joined #jruby
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pitr-ch has joined #jruby
etehtsea has joined #jruby
bbrowning_away is now known as bbrowning
nab has joined #jruby
nab has left #jruby [#jruby]
lance|afk is now known as lanceball
bbrowning has quit [Quit: Leaving]
bbrowning has joined #jruby
brikkoroller has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
tcrawley-away is now known as tcrawley
etehtsea has quit [Ping timeout: 264 seconds]
cprice has quit [Quit: Konversation terminated!]
tomjoro has joined #jruby
vtunka has quit [Quit: Leaving]
cremes has quit [Remote host closed the connection]
cremes has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
skade has joined #jruby
<headius> haylon: I believe that's possible
<headius> good morning all
<chrisseaton> headius: hello!
<headius> chrisseaton: hiya! congrats on lang specs
<chrisseaton> thanks - I think if you looked at your remaining specs you could complete them all as we have most of the same for the last few and it just needed a few tricks here and there
<headius> yeah we chip a few away once in a while...usually we prioritize reported issues first, and there's never any lack of those
<headius> if a reported issue is tied to a spec, we'll fix that whole chunk
<chrisseaton> I don't know if we can take specs from Rubinius any more so we may need to write our own for 2.3
<headius> well there's already more 2.3 specs in ruby/spec than in rbx
<headius> ruby-2.3 branch passes all of them I believe
<headius> I don't think I tagged anything
<chrisseaton> I will add some missing specs like refinements at some point, now I won't have to risk abuse to get them accepted
<GitHub44> [jruby] chrisseaton pushed 1 new commit to master: https://github.com/jruby/jruby/commit/8db82025bc2bd1c1d8c14f7edb9d7b20e13be75b
<GitHub44> jruby/master 8db8202 Chris Seaton: [Truffle] Truffle::Primitive.logical_processors
<headius> kares-: I'll look at that Queue PR
<kares-> headius: great, thanks
<headius> chrisseaton: there are some in ruby/spec history I added that were deleted a bit later...very basic but they might be a good start
<headius> ahh the first mvn clean package of the week...time to go make coffee
vtunka has joined #jruby
tjohnson has joined #jruby
<headius> and now that my coffee is made, restart the build in the correct directory
<GitHub61> [jruby] eregon pushed 1 new commit to master: https://github.com/jruby/jruby/commit/80e51d5473c0432a3af466b20b5b434a9e9adcca
<GitHub61> jruby/master 80e51d5 Benoit Daloze: [Truffle] JT: only run with the Eclipse launcher on master.
<GitHub72> [jruby] eregon pushed 1 new commit to truffle-head: https://github.com/jruby/jruby/commit/4ccfa3af15b0b76a7d37dc42c80fff1a912d5298
<GitHub72> jruby/truffle-head 4ccfa3a Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
<GitHub0> [jruby] headius pushed 4 new commits to master: https://github.com/jruby/jruby/compare/80e51d5473c0...3e8a137051ac
<GitHub0> jruby/master d54e4cd Konstantin Shabanov: Fix SizedQueue#num_waiting regression...
<GitHub0> jruby/master 304129d Charles Oliver Nutter: Merge branch 'num_waiting_regression' of https://github.com/etehtsea/jruby into etehtsea-num_waiting_regression
<GitHub0> jruby/master c0b4ba1 Charles Oliver Nutter: Merge branch 'etehtsea-num_waiting_regression'
<GitHub88> [jruby] headius closed pull request #3597: Fix SizedQueue#num_waiting regression (master...num_waiting_regression) https://github.com/jruby/jruby/pull/3597
<GitHub131> [jruby] kares pushed 5 new commits to jruby-1_7: https://github.com/jruby/jruby/compare/b1734a8106a9...371964d14674
<GitHub131> jruby/jruby-1_7 0942111 kares: hide unmarshalObject methods that use private inner type as a parameter
<GitHub131> jruby/jruby-1_7 ebba35a kares: DRY out getClassFromPath usage in UnmarshalStream (all delegating to one method)
<GitHub131> jruby/jruby-1_7 eff542b kares: review runtime's getClassFromPath
<headius> kares-: you might want to hold back on 1.7 changes today unless they really need to go into 1.7.24
<headius> we got a green light from bbrowning that what was current yesterday passed their rigorous integration tests
<headius> just be careful
mkristian has quit [Quit: This computer has gone to sleep]
<headius> enebo is out of office but we'll likely push release later today or tomorrow
<kares-> headius: yep - mostly wanted https://github.com/jruby/jruby/commit/5d277a34e02f6798fa5e21180653bf7e8950b4a9 to get in for now
<kares-> cause they're confusing ... be looking into related marshaling issue later
<headius> yeah that looks fine
<headius> I don't care that much but if we have different styles our editors end up fighting and mucking up diffs
<kares-> oh right you do not like your else to be on a new line
<kares-> my editor has been set otherwise - will reconfigure
<headius> thank you
<kares-> do not forget https://github.com/jruby/jruby/pull/3602 if you get a chance so the proxies are not left over
<headius> ahh yes
<headius> that supercedes 3581 right?
<headius> oh no, it stacks
<headius> ok
<kares-> correct
<kares-> as I hit the merge button prematurely
<kares-> keep forgeting that proxy cache is configurable ...
<GitHub22> [jruby] headius closed pull request #3602: Fix cache-constructed-proxies (master...cache-constructed-proxies-part-2) https://github.com/jruby/jruby/pull/3602
<headius> right no problem
<GitHub157> [jruby] headius pushed 2 new commits to master: https://github.com/jruby/jruby/compare/3e8a137051ac...8e8485a55480
<GitHub157> jruby/master dd4b353 Mike Virata-Stone: Check whether the proxy object should be cached before actually caching it
<GitHub157> jruby/master 8e8485a Charles Oliver Nutter: Merge pull request #3602 from smellsblue/cache-constructed-proxies-part-2...
<headius> I had not noticed the other one got merged...we're all good now
<headius> I think I'll keep hacking ruby-2.3 today
<headius> if there's any other outstanding business let me know
<GitHub68> [jruby] headius pushed 1 new commit to ruby-2.3: https://github.com/jruby/jruby/commit/fa05f18bada4dcf1a223f7b088ce222a08c6dff6
<GitHub68> jruby/ruby-2.3 fa05f18 Charles Oliver Nutter: Merge branch 'master' into ruby-2.3...
lanceball is now known as lance|afk
<headius> ok, let's see where we are on test:mri today
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
<headius> lots of parser-related stuff, enebo
<headius> parser and ripper
<headius> whenever you get that knocked down it will fix a bunch of these
<headius> I should review some of these and exclude MRI-specific stuff like --dump-parsetree
<headius> w00t, 198 F/E
<headius> moving along
<GitHub65> [jruby] headius pushed 1 new commit to ruby-2.3: https://github.com/jruby/jruby/commit/cc43fc54323323e2fb06f250f4b653f9e946c9e2
<GitHub65> jruby/ruby-2.3 cc43fc5 Charles Oliver Nutter: Remove unnecessary override (new impl does not need it).
eonwe has quit [Remote host closed the connection]
eonwe has joined #jruby
<headius> hmm
<headius> what did I do with that Symbol#to_proc optimization
<headius> oh heh
<GitHub2> [jruby] headius created symbol_to_proc_cache at 69662ab (+0 new commits): https://github.com/jruby/jruby/commits/symbol_to_proc_cache
<headius> oops
<headius> already merged
<GitHub18> [jruby] headius deleted symbol_to_proc_cache at 69662ab: https://github.com/jruby/jruby/commit/69662ab
enebo has joined #jruby
thedarkone2 has joined #jruby
cprice404 has joined #jruby
lance|afk is now known as lanceball
headius has quit [Quit: ZNC - http://znc.in]
headius has joined #jruby
headius has quit [Client Quit]
headius has joined #jruby
headius has quit [Client Quit]
headius has joined #jruby
vtunka has quit [Quit: Leaving]
camlow325 has joined #jruby
norc has joined #jruby
camlow32_ has joined #jruby
camlow325 has quit [Read error: Connection reset by peer]
headius has quit [Quit: ZNC - http://znc.in]
headius has joined #jruby
<headius> sorry for the noise, investigating a bug in colloquy
subbu is now known as subbu|afk
<GitHub141> [jruby] chrisseaton opened issue #3604: [Truffle] Super in an aliased method can confuse the ancestor chain https://github.com/jruby/jruby/issues/3604
subbu|afk is now known as subbu
subbu is now known as subbu|food
shellac has quit [Quit: Ex-Chat]
elia has quit [Quit: Computer has gone to sleep.]
mkristian has joined #jruby
bbrowning has quit [Quit: Leaving]
<GitHub101> [jruby] enebo pushed 1 new commit to jruby-1_7: https://github.com/jruby/jruby/commit/5d5b9f88bcefa27922811160848091c5c17c0357
<GitHub101> jruby/jruby-1_7 5d5b9f8 Thomas E. Enebo: Update jnr-posix to finally fix 32 bit JVM crasher on windows stat
tcrawley is now known as tcrawley-away
tcrawley-away is now known as tcrawley
subbu|food is now known as subbu
skade has quit [Quit: Computer has gone to sleep.]
<headius> seriously, we have five or six different Platform classes in JRuby and none of them are an enum
<headius> we're long past due for a one-Platform-to-rule-them-all
herbst has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<travis-ci> jruby/jruby (ruby-2.3:fa05f18 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/103364919)
<headius> enebo: so I wanted to add to JRubyMethod a "supportedOn" flag that would reference an enumeration of platforms
<headius> and then realized this mess of Platform again
<headius> there's at least five that do largely the same thing
<enebo> heh
<headius> I wanted to do this because we need File.mkfifo in 2.3
<enebo> headius: we should consider capabilities
<headius> but there's no mkfifo on Windows
<headius> MRI may simulate it with a named pipe, I haven't checked
<enebo> headius: but then we become autoconf a bit
<headius> capabilities is fine but defining them becomes an exercise in dicing up APIs
<headius> and ultimately for coverage on all platforms, there will be cases where a capability boils down to one function
<enebo> yeah I think that is true but if it is true it might be nice to know it is only one function
<headius> the reason I wanted this as a JRubyMethod attr and enum is so we can determine at boot time whether notImplemented = true
<headius> without an enum I can't put it in the annotation
<enebo> we could maybe decouple platform from unimplemented in annotation
<headius> yeah
<enebo> so @JRubyMethod(name = “mkfifo”, platformLimited=true)
<enebo> then use platform info to specify which platform cannot implement it
<headius> platform info goes where?
<headius> I'm not seeing how we'd tie that together
<headius> @JRubyMethod(name = "mkfifo", supportedOn = {LINUX, BSD, DARWIN})
<enebo> I was thinking platform profiles
<headius> @JRubyMethod(dependsOn = "libc.mkfifo")
<enebo> hmm
<enebo> this is first property which is not semantics
<headius> mmm
<headius> @SupportedPlatforms?
<enebo> it may not also affect all versions of a platform
<headius> @SupportedPlatforms(LINUX, BSD, DARWIN)
<enebo> e.g. winxp vs win10 sort of thing
<headius> yeah I know
<headius> the enum would have to have both wildcard OS types and specifics
<enebo> also over time it may not end up being native over time
<headius> capabilities would make more sense for this, like dependsOn = Libc.Mkfifo
<enebo> I guess we can change the definition if it is added to Javas11 though
<headius> and Mkfifo capability would know how to report if it's available
<enebo> headius: I like dependsOn more than platform
<headius> yeah
<headius> I think I do too now
<enebo> headius: possibly dependsOn = JNRPOSIX.mkfifo
<headius> in any case we still do need to consolidate all these damn Platform classes
<enebo> or something which can tie to artifact it depends on maybe
<enebo> but I think it is still a implementation details
<enebo> @DependsOn{artifact = “jnr-posix”, methods=“mkfifo”)
<enebo> probably a list there
<enebo> too bad we can’t just generate this
<headius> yeah
<enebo> My other wish is we could just have one single code path which is return jnr-posix.mkfifo which will just return unimplemented
<enebo> I guess we do that in some cases
<headius> well we could if jnr-ffi had some metadata for functions it can't bind
<headius> rather than just exploding
<enebo> but if we want a deps system embedded in code it then seems those places should not have platform chaecks in code
<enebo> headius: yeah possibly..windows is the weird one because we have all these other methods and we call posix and not libc
<headius> right, we do our own cygwin-like emulation in many cases
<headius> cygwin-like or ruby-like
<enebo> headius: we probably need a decent anno system on jnr-posix :)
<enebo> WindowsPosix { @Unimplemented int mkfifo() {} }
<enebo> err WindowsPOSIX
<enebo> hmmm this is complciated :)
<enebo> we have this ahead of time knowledge in this library
<enebo> we implement is as late bound knowledge
<enebo> on using side (JRuby) we do platform check to make sure we don’t call something which will fail (because we don’t know since it is late bound)
<enebo> on top of that MRI sometimes has pretty different behavior on windows vs unix for the same method so we definitely will need some platform checks on jruby consuming side
<headius> I wonder how project panama handles this
<headius> if it has anything
<enebo> ok lunch time for me bbiab…I will think about this more
<headius> ugh, wish I had more time to look at those things
elia has joined #jruby
<enebo> seems like half of this is static on jnr-posix side
<enebo> adn we are missing that though
ITXpander has joined #jruby
<headius> yeah
<headius> enebo: does jnr-posix pass on darwin for you?
<headius> I'm getting a failure in fcntl test trying to set CLOEXEC
<headius> FWIW, MRI does just mark mkfifo not implemented on Windows right now
shellac has joined #jruby
<headius> I don't see why it should fail
<headius> gah
<headius> now this is failing on all platforms, what gives
elia has quit [Quit: Computer has gone to sleep.]
<headius> oh hell
<headius> I had an unpushed commit in my queue
<travis-ci> jruby/jruby (ruby-2.3:cc43fc5 by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/103375190)
pietr0 has joined #jruby
fidothe has quit [Ping timeout: 255 seconds]
shellac has quit [Quit: Computer has gone to sleep.]
knowtheory_ has joined #jruby
<enebo> headius: so only a local problem then?
knowtheory has quit [Ping timeout: 255 seconds]
olleolleolle has quit [Ping timeout: 255 seconds]
talevy has quit [Ping timeout: 255 seconds]
knowtheory_ is now known as knowtheory
fidothe has joined #jruby
olleolleolle has joined #jruby
talevy has joined #jruby
Tristitia has quit [K-Lined]
<headius> yeah nevermind
<headius> it's fine now
lanceball is now known as lance|afk
brightball has joined #jruby
bbrowning has joined #jruby
<GitHub88> [jruby] headius pushed 3 new commits to ruby-2.3: https://github.com/jruby/jruby/compare/cc43fc543233...4a79bcaba1e6
<GitHub88> jruby/ruby-2.3 c52fd3c Charles Oliver Nutter: Fix bad error message for Struct#[] and []=....
<GitHub88> jruby/ruby-2.3 4c3bfb6 Charles Oliver Nutter: Exclude Symbol#to_proc caching spec....
<GitHub88> jruby/ruby-2.3 4a79bca Charles Oliver Nutter: Add File.mkfifo.
<headius> well knocked a few more down
pawnbox has quit [Remote host closed the connection]
ITXpander has quit [Quit: Leaving.]
subbu is now known as subbu|lunch
skade has joined #jruby
lance|afk is now known as lanceball
subbu|lunch is now known as subbu
blaxter has quit [Ping timeout: 240 seconds]
<travis-ci> jruby/jruby (ruby-2.3:4a79bca by Charles Oliver Nutter): The build has errored. (https://travis-ci.org/jruby/jruby/builds/103419023)
skade has quit [Read error: No route to host]
skade has joined #jruby
<headius> down to 191 F/E
<headius> yay
skade has quit [Quit: Computer has gone to sleep.]
n00bdev has joined #jruby
<GitHub172> [jruby] nirvdrum created truffle-ropes (+140 new commits): https://github.com/jruby/jruby/compare/91d15a1d14ac^...310caf16b9d8
<GitHub172> jruby/truffle-ropes 91d15a1 Kevin Menard: [Truffle] Initial work on a rope storage strategy for Strings.
<GitHub172> jruby/truffle-ropes f57596d Kevin Menard: [Truffle] Implemented String#* for ropes.
<GitHub172> jruby/truffle-ropes 530dcf1 Kevin Menard: [Truffle] Implemented String#slice and String#size for ropes.
<headius> ROES
<headius> oops, ROPES
<headius> I think I need a new machine
<enebo> ROES
<enebo> Now I want to make a data structure based on spheres or salty info
<headius> a roes by any other name
<headius> I expected to see pictures of fish eggs
enebo has left #jruby [#jruby]
enebo has joined #jruby
<GitHub136> [jruby] nirvdrum opened pull request #3605: Truffle ropes (master...truffle-ropes) https://github.com/jruby/jruby/pull/3605
<nirvdrum> Indeed. I finally got something together.
<nirvdrum> Unfortunately, at 140 commits, specs didn't pass for maybe the first 120. String is a fairly critical class as it turns out.
<enebo> ROES
<nirvdrum> Not bad. About a couple weeks of effort.
<enebo> nirvdrum: you are getting something to run so that is neat
<nirvdrum> There are certainly some bad cases. But on the whole, I'm seeing faster critical operations.
<enebo> oh faster?
<nirvdrum> Some of them are certainly doable with ByteList. Ropes just made it easier.
<enebo> nirvdrum: and I thought you were simplifying and not working on fast
<nirvdrum> I mostly was.
<enebo> nirvdrum: ah cool. take notes
<nirvdrum> But when code range & string length are cached, some operations became easier to do using those values.
<enebo> nirvdrum: yeah and we can cache length in existing impl without ropes too
<nirvdrum> Right.
<nirvdrum> Ropes being immutable just meant it was easier for me to keep track of it.
<enebo> nirvdrum: also as we talked about I think if we keep track of mbc width we can optimize smaller uniform strings in a UCS2 sort of way
<nirvdrum> ByteList has trouble with caching character length because it's shared for sub strings.
<headius> I'm curious how much false sharing it will add or remove
<headius> COW string is prone to false sharing problems (by which I mean holding a giant buffer for a tiny slice)
<enebo> not as much as it is for Array
<headius> of ByteList contained all the COW logic it would be a lot simpler to work with
<nirvdrum> headius: Indeed. I reported an issue like that against JRuby a couple years ago :-/
<enebo> at least that is my opinion :)
<headius> as it is it's mostly a dumb struct
<headius> enebo: true, but it's still there
<headius> that's the main reason OpenJDK stopped doing it
kith has joined #jruby
<nirvdrum> I haven't done much with the byte[] itself. Right now, it does a copy everywhere. So my offsets are always 0.
<nirvdrum> And the end is always the byte length.
<nirvdrum> It made the conversion simpler. But it may be a bit too aggressive.
<headius> nirvdrum: yeah, so there's the question about how much duplication it introduces versus byte[] sharing
<headius> it will be interesting to tune
<enebo> nirvdrum: the byte[] is shared but length is length between begin and begin + realLength
<headius> there will be almost no false sharing there but potentially a lot more duplication
<enebo> nirvdrum: so I think it can be cached ni bytelist no?
<headius> enebo: I think he means there's no semantics for sharing within ByteList itself
<headius> we do all of that in RubyString
<enebo> headius: potentially more heuristics to merge as well
<nirvdrum> headius: Indeed. Although I applied some identity construction methods that in practice have worked out fairly well. E.g., mspec takes a directory name, appends a filename, chops the filename off, appends the next filename, and so on.
<headius> nirvdrum: that may be something truffle can see through, at least a bit farther
<nirvdrum> I wasn't explicitly looking to handle that case, but I accidentally did and was pleasantly surprised.
<nirvdrum> A substring of a concatenated rope will try to work with one of its two children.
<enebo> nirvdrum: yeah substr would need to recalc in some cases unless it is known to be constant width
<nirvdrum> So in that case, there was a high level of reuse for the directory name rope.
<headius> I do still want to make ByteList fully COW-clean so we don't have that logic splattered all over RubyString
<headius> my attempts to do it have been extremely painful
<enebo> heh
<enebo> yeah something is intimidating on cleaning up that API
<nirvdrum> I'd like to have all string literals interned. Right now each string literal will share the same rope. But I'd like two district string literal nodes with the same logical value using the same rope as well.
<headius> we could flip that switch in the parser in any JRuby mode really
<nirvdrum> I should note I started this as immutable ByteList and it could be made back into that. But ByteList had a lot of baggage I didn't want to cope with at the moment.
<headius> it's just a matter of accepting a lot more retained strings in order to manage that identity
<nirvdrum> E.g., ByteList being a CharSequence.
<headius> yeah, ByteList as a CharSequence is legacy that never really worked right
<headius> or should I say, never did what it should have, because it predated Encoding
<nirvdrum> headius: Right. But I think both backends are already caching that ByteList.
<nirvdrum> So you're looking at some additional overhead for a table, for sure. But I think in practice it'll end up paying for itself.
<headius> nirvdrum: across calls to the same StrNode, yes, but not for the same str content in different nodes
<headius> this is why MRI's AST actually does freeze and deduplicate the strings in the AST
<headius> so our StrNode equivalent is just a dup
<headius> but they only have one copy of "foo" in the entirety of the app's ASTs
<nirvdrum> Right. That's what I'm saying. There's overhead for the table, but we currently cache distinct ByteLists representing the same byte[] at each StrNode.
bb010g has joined #jruby
<headius> I want to make the MRI change
<headius> I have an open bug for it
<nirvdrum> I think eliminating that duplication would let the table pay for itself fairly quickly.
<headius> and a couple other cases
<headius> indeed
<headius> and we already have the table at least for fstrings in JRuby proper
<nirvdrum> And if you start caching character length and what not, you'd save a lot of calculations elsewhere.
mkristian has quit [Quit: This computer has gone to sleep]
<headius> indeed
<enebo> how about id lookup in that table?
<nirvdrum> Length is a big one, since it's used for bounds checking on indexing.
yfeldblum has joined #jruby
<enebo> I guess though 4 bytes vs an object reference of 4 bytes
<nirvdrum> enebo: Eh?
<enebo> nirvdrum: at one point I had thought about using id’s instead of object references to save memory but I doubt we can use 2 bytes for that vs 4 bytes which a object reference to an object would be
<nirvdrum> Ahh.
<enebo> nirvdrum: and with compressed refs in Java it might be counterproductive anyways
<enebo> nirvdrum: I am solving a problem which Java ended up partially solving anyways
skade has joined #jruby
tcrawley is now known as tcrawley-away
n00bdev has quit [Remote host closed the connection]
skade has quit [Read error: No route to host]
skade has joined #jruby
elia has joined #jruby
<GitHub19> [jruby] chrisseaton pushed 1 new commit to master: https://github.com/jruby/jruby/commit/aa7445998f35b65cc0d9b51b2489a24211367e5e
<GitHub19> jruby/master aa74459 Chris Seaton: [Truffle] Lower fixnums in #class_eval and #module_eval line numbers.
skade has quit [Read error: No route to host]
skade has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 276 seconds]
<GitHub137> [jruby] headius pushed 2 new commits to ruby-2.3+socket: https://github.com/jruby/jruby/compare/e98da3570872...f08fd429a6a5
<GitHub137> jruby/ruby-2.3+socket 4f3f2d6 Charles Oliver Nutter: Merge branch 'ruby-2.3' into ruby-2.3+socket...
<GitHub137> jruby/ruby-2.3+socket f08fd42 Charles Oliver Nutter: Fixes for jrubyc --java(c) for #3599....
<GitHub44> [jruby] headius pushed 1 new commit to master: https://github.com/jruby/jruby/commit/89fac305aabf616a04bc1252093c7a5fb4596c2d
<GitHub44> jruby/master 89fac30 Charles Oliver Nutter: Fixes for jrubyc --java(c) for #3599....
<GitHub156> [jruby] headius closed issue #3599: jrubyc won't compile a file with method in outer scope (NoMethodError: undefined method `new_method' for nil:NilClass) https://github.com/jruby/jruby/issues/3599
yfeldblum has quit [Ping timeout: 250 seconds]
ahorek has joined #jruby
<GitHub63> [jruby] headius pushed 1 new commit to master: https://github.com/jruby/jruby/commit/9348eec408a9b9e474e714ca604c55d62162aba0
<GitHub63> jruby/master 9348eec Charles Oliver Nutter: Add specs for jrubyc changes in #3599.
skade has quit [Read error: No route to host]
ahorek has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
shellac has joined #jruby
xardion_ has joined #jruby
norc has quit [Ping timeout: 250 seconds]
xardion has quit [Ping timeout: 264 seconds]
<projectodd-ci> Project jruby-master-spec-ji build #2566: FAILURE in 31 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/2566/
ITXpander has joined #jruby
ITXpander has quit [Client Quit]
<GitHub6> [jruby] adaedra opened issue #3606: define_method doesn't work with empty blocks https://github.com/jruby/jruby/issues/3606
<GitHub65> [jruby] pitr-ch pushed 3 new commits to master: https://github.com/jruby/jruby/compare/9348eec408a9...cdd0eb583c7d
<GitHub65> jruby/master cdd0eb5 Petr Chalupa: [Truffle] Fix Time#zone returned by decomposition
<GitHub65> jruby/master 5683f8d Petr Chalupa: [Truffle] Fix time-zone handling in Time and add nsec
<GitHub65> jruby/master f43b028 Petr Chalupa: [Truffle] Update Time spec tags
<GitHub143> [jruby] headius closed issue #3606: define_method doesn't work with empty blocks https://github.com/jruby/jruby/issues/3606
lanceball is now known as lance|afk
<GitHub157> [jruby] enebo pushed 1 new commit to master: https://github.com/jruby/jruby/commit/5ba8dd36cfb5eb333d1835f5e99cee13f4ecca4a
<GitHub157> jruby/master 5ba8dd3 Thomas E. Enebo: Remove warning when generating the parser grammar
<nirvdrum> headius: Do you get the AppVeyor notifications?
<headius> I do
<headius> via enebo hassling me
<headius> it was an appveyor problem
<headius> I do not appear to get emails
<nirvdrum> Okay. I just don't know who receives what.
<nirvdrum> I'll see if I can fix that.
<nirvdrum> I think notifications are going to the jnr room, that no one is actually in.
<enebo> nirvdrum: I do not either I guess
<headius> did you create accounts via github login?
<headius> I don't think I ever did
<enebo> nirvdrum: but I just saw the tab
<headius> if I do via github I assume it gets tied to org permissions and stuff?
<nirvdrum> Yes, but I have two accounts now. I needed to convert one to the jnr organization.3
<nirvdrum> -3
<nirvdrum> (Dvorak typos are fun.)
<enebo> -3
<enebo> ROES
<nirvdrum> I type .3 a lot.
<nirvdrum> 3 is above '.' in Dvorak.
<enebo> 3 means ass in kid speak
<headius> well I initialized a headius account
yfeldblum has joined #jruby
<headius> it also presented the jnr option
<headius> but I don't know how we get more notifications out of that account
<enebo> I think you need to switch to jnr to restart
<headius> doing that now
<headius> looks like I have the power via jnr org
skade has joined #jruby
<GitHub177> [jruby] enebo closed issue #3525: File::Stat.new() issue in 1.7.23 on Windows 7 https://github.com/jruby/jruby/issues/3525
<headius> I changed my notification settings
<headius> we'll see what happens when this is fixed
<nirvdrum> Cool. I guess nothing was set up. It appears there's a global setting to notify a lot of people on failure.
<nirvdrum> No IRC option that I see.
<enebo> headius: I am going to manually apply your 1.7 block fix to master and then rip out appropriate IR logic
<enebo> headius: is there some specific tests to untag
<GitHub85> [jruby] enebo closed issue #2335: File.exist? and many others do not try system dir on wnidows if path starts with bare / https://github.com/jruby/jruby/issues/2335
<headius> enebo: ok
<headius> yeah
<lopex> nirvdrum: wowsers
<headius> look at that commit or the one after, I untagged
<lopex> " Cooper’s computer actually found the prime on 17 September 2015, but a bug meant the software failed to send an email alert reporting the discovery, meaning it went unnoticed until some routine maintenance a few months later"
<lopex> " The official discovery date is the day a human took note of the result"
<enebo> headius: ok
<headius> lopex: I may have asked this before and forgotten...what is the VANILLA mode in jcodings?
<lopex> nirvdrum: that's a lot of work wrt ropes
<headius> code in VANILLA doesn't appear to match anything in MRI
<nirvdrum> lopex: I'd love your feedback.
<headius> and it has always been false it seems
<headius> or at least it's false everywhere right now
<lopex> headius: oniguruma before it diverged in mri and then onigmo
<headius> ok
<lopex> diverged from
<lopex> headius: I think it may be ripped off now
pawnbox has joined #jruby
<GitHub21> [jruby] nirvdrum pushed 1 new commit to truffle-ropes: https://github.com/jruby/jruby/commit/52449098c479663927cb86ca583fd49ed310de8b
<GitHub21> jruby/truffle-ropes 5244909 Kevin Menard: [Truffle] Removed more calls to StringOperations.getByteList.
<headius> lopex: ok, I may do that soon then
<headius> looking at this GB18030 bug now
<lopex> headius: which one ?
<lopex> oh you mean transcoding
pawnbox has quit [Ping timeout: 256 seconds]
<headius> yeah
<lopex> might be an unsigned int code point issue so it should be widened
<headius> hmm
<lopex> nirvdrum: wrt previous discussion, you meant full literal merging and keeping global table so the nodes can point at those ?
<nirvdrum> lopex: Yeah. The table can either store a byte[] (both ByteList & Rope friendly) or just one or the other. CoW will take care of the rest.
<lopex> nirvdrum: how far can truffle see literal propagation ?
<nirvdrum> lopex: Well, the literal nodes come from the parser. Truffle wouldn't need to know that two different literals are the same string. It would just see that they share the same rope.
skade has quit [Ping timeout: 240 seconds]
<lopex> headius: what about those "non-strict" encodings ? these are only used in 1.8 mode now in 1.7
<headius> those could go then too
<lopex> headius: and possibly by KCode as a remnant
<headius> well, maybe not until 1.7 is EOL
<lopex> headius: KCode is totally deprecated now ?
<lopex> I mean, it cannot be changed even ?
<projectodd-ci> Yippee, build fixed!
<projectodd-ci> Project jruby-master-spec-ji build #2567: FIXED in 5 min 41 sec: https://projectodd.ci.cloudbees.com/job/jruby-master-spec-ji/2567/
<headius> I'm not sure what it does
<lopex> headius: also, if the non strict ones go, some encoding classes can be now resplit
<headius> it has been deprecated but some of the flags might still do m17n setup
skade has joined #jruby
<nirvdrum> headius: Where's the fstring cache you mentioned earlier?
<headius> Ruby.freezeAndDedupString
<lopex> nirvdrum: you want to merge cr and singleByteOptimizable at some point ?
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<lopex> (in rope node)
<headius> hmphf
<headius> I can't find anything different in our GB18030 transcoder so far
<nirvdrum> lopex: I really can't because of binary strings.
<nirvdrum> lopex: More accurately, ASCII-8BIT.
<lopex> nirvdrum: I recall now
<nirvdrum> I did essentially get rid of CR_UNKNOWN.
<nirvdrum> I still need to remove the scanForCodeRange calls. They just short-circuit out currently.
<nirvdrum> headius: Thanks.
<lopex> nirvdrum: if you want to serialize entire rope you'd be still going through that negotiate encoding thingy right ?
<nirvdrum> I'm not sure I follow.
<lopex> or I dont get it all yet
<nirvdrum> headius: So this still sees a RubyString with an allocated ByteList, but discards that in favor of the cached one?
<headius> yes, intended to be used first time to get the global version of that string
<headius> obviously not useful to keep feeding new strings to
<headius> see how it is used in FrozenString operand for example
<nirvdrum> lopex: Encoding compatibility still needs to be checked for a lot of operations. I haven't work on optimizing that much yet. Ruby's semantics around that are also infuriating.
<headius> this is roughly how MRI's works, but their AST is not separable from runtime state so they get these fstrings eagerly
<lopex> nirvdrum: oh, I just thought for a minute some of that might be delayed
<nirvdrum> lopex: I'd like to do that. Or at the very least, I'd like to make it cheaper. I think we can use a lookup table. I mentioned this before.
<nirvdrum> The cross-product of encodings would be fairly small.
<headius> lopex: MRI's GB18030 encoding sources have a million times more stuff than we do...what is all this?
<nirvdrum> So if we could lookup by each encoding index, it'd be a 2D array reference.
<headius> jeez, 21k lines long
<lopex> headius: the trans ?
<nirvdrum> headius: Eliminating allocations would be nice. But for the time being, I'm quite content to simply get them all using the same references.
<headius> lopex: yeah
<headius> the so and sio functions appear to match theirs
<headius> I'm checking the encoding tables now
<lopex> headius: oh you mean transcoding instructions, maybe not all of them get parsed by the scripts ?
<lopex> ranges or trascoding instrs ?
<headius> well what is all this:
<headius> gb18030_byte_array[56182] = {
<headius> #define from_GB18030_81_30_81_offsets 0
<headius> 48, 57,
<headius> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
<headius> this stuff goes on for thousands of lines
<lopex> headius: Transcoder_Gb18030_WordArray.bin is 115k in size
<headius> ahhh ok that's where that noise goes
<headius> has been a while since I worked on the trancoder
<lopex> headius: for ranges you'll notice similar noise, they use gperf for looking up char type names
<lopex> no idea why
<headius> ok
<lopex> then perfect hashing is just a code bloat for me
mdedetrich has joined #jruby
<headius> hmm, well all the usual suspects look ok for this
<headius> I guess I need to check encoding methods now too
<enebo> code deletion looks really good with this parser change
<enebo> but I am not going to commit this right before I take off for the evening :)
<lopex> headius: leftAdjustCharHead
<lopex> this is the encoding when you dont know the length in bytes until you read three first for example :)
<lopex> three potential heads
<headius> yeah
<headius> that could certainly produce all unrecognized chars
<enebo> 1) Error:
<enebo> TestFlip#test_hidden_key:
<enebo> grr
<nirvdrum> Heh.
<headius> yeah this looks like it could use a re-port
<headius> I must not have bothered when working on 9k because it's HUGE
<lopex> headius: in funSoFromGB18030 you use >>
<lopex> maybe try a >>> ?
<headius> I suppose I should use >>>
<headius> I'll give it a shot
<headius> long should have plenty of room for unsigned int though
<lopex> there's other arithmethics though
<lopex> I'd opt for long there
<headius> u is a long
<headius> what do you mean?
<lopex> os wait, I thought s0 and the like were also codes
<headius> those are just unsigned bytes
<headius> out of the incoming byte array
<headius> s0 = unsigned byte s[0]
<headius> THANKS JAVA
<lopex> headius: but dont you need to mask with 0xffffffff when constructing a codepoint ?
<headius> ahh that's possible
<headius> LHS is int there
<lopex> you need to sign widen that int
<headius> possibly also in sio
<nirvdrum> Signed bytes. It's what everyone expects.
<lopex> nirvdrum: I still have 0xff in my dreams
<nirvdrum> I lost about a half a day debugging some code until I realized I forgot 0xff somewhere.
<headius> hmm, well that didn't fix anything
<lopex> headius: maybe log negative ones
<lopex> no idea
<lopex> well, if it's the places actually
<headius> I think I'm going to have a look at leftAdjust
pawnbox has joined #jruby
<lopex> headius: whoop sory, that mask should be full int as long 0xffffffffL
<lopex> just as 0xff is an int
<lopex> it's a no op otherwise
<headius> oh jeez
<headius> thanks Java
skade has quit [Quit: Computer has gone to sleep.]
pawnbox has quit [Ping timeout: 240 seconds]
<lopex> also not sure about those inbetween operations
<lopex> while calculating a codepoint
<headius> would be great if this just fixes it
<headius> this might explain some higher plane unicode failures too
<headius> I'll have to check
<headius> damn, still busted
<headius> it's just getting all unrecognized char except for the ascii range chars
<lopex> I'd help but my machine is unusably slow
<headius> well I'll have a look through the encoding functions
<headius> they're just long
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<travis-ci> jruby/jruby (master:cdd0eb5 by Petr Chalupa): The build was broken. (https://travis-ci.org/jruby/jruby/builds/103464918)
<lopex> that leftAdjustCharHead sohuldnt be used in transcodng though
<lopex> only in joni or core
<headius> yeah
<headius> and it's fine anyway
<headius> trying to remember the other functions used by trans
<lopex> any *mbc*
<lopex> and length
elia has quit [Quit: Computer has gone to sleep.]
<lopex> oh, length isnt
<lopex> and none of those ?