sgeorge has quit [Remote host closed the connection]
sgeorge has joined #jruby
sgeorge has quit [Ping timeout: 244 seconds]
haze has joined #jruby
sgeorge has joined #jruby
bga57 has quit [Quit: Leaving.]
bga57 has joined #jruby
Puffball has joined #jruby
sgeorge has quit [Remote host closed the connection]
sgeorge has joined #jruby
sgeorge has quit [Ping timeout: 240 seconds]
sgeorge has joined #jruby
sgeorge has quit [Ping timeout: 252 seconds]
travis-ci has joined #jruby
<travis-ci> kares/jruby (master:db4f75c by kares): The build has errored. (https://travis-ci.org/kares/jruby/builds/435992701)
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> kares/jruby (master:1ea6c9b by kares): The build has errored. (https://travis-ci.org/kares/jruby/builds/436003244)
travis-ci has left #jruby [#jruby]
shellac has joined #jruby
bga57 has quit [Ping timeout: 244 seconds]
drbobbeaty has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (ci-jdk-11:741a163 by kares): The build failed. (https://travis-ci.org/jruby/jruby/builds/436050170)
travis-ci has left #jruby [#jruby]
travis-ci has joined #jruby
<travis-ci> kares/jruby (master:741a163 by kares): The build was broken. (https://travis-ci.org/kares/jruby/builds/436041418)
travis-ci has left #jruby [#jruby]
drbobbeaty has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
shellac has joined #jruby
shellac has quit [Client Quit]
shellac has joined #jruby
rdubya has joined #jruby
Puffball has quit [Ping timeout: 246 seconds]
Puffball has joined #jruby
sgeorge has joined #jruby
bga57 has joined #jruby
sgeorge has quit [Ping timeout: 272 seconds]
jmalves_ has quit [Remote host closed the connection]
sgeorge has joined #jruby
sgeorge_ has joined #jruby
sgeorge has quit [Ping timeout: 250 seconds]
drbobbeaty has quit [Ping timeout: 268 seconds]
sgeorge_ has quit [Remote host closed the connection]
sgeorge has joined #jruby
sgeorge has quit [Remote host closed the connection]
sgeorge has joined #jruby
sgeorge has quit [Remote host closed the connection]
sgeorge has joined #jruby
<kares> headius: enebo: hey any of you guys could add me on https://rubygems.org/gems/jar-dependencies
<kares> would try to gem push it for Kristian as he seems to be having issues
<enebo> kares: ok...I think I have you email addr
Sigyn has quit [Quit: People always have such a hard time believing that robots could do bad things.]
<enebo> kares: supposedly done
<enebo> kares: I find gem owner --add a weird API
Sigyn has joined #jruby
<kares> I'm there thanks
<kares> indeed RGs has its cases :)
<enebo> kares: I guess since we have published using an email it is a good enough key
<enebo> kares: but then I don't understand how you first get started
<kares> you mean the first gem you release?
<kares> there's the e-mail in gemspec
<enebo> kares: well maybe? I just find --add some@email.com as a mechanism confusing
<enebo> kares: oh you are in the .gemspec as an author with the email
<kares> oh yeah quite so ... its pbly a "quick" feature and since it isn't used that much ...
<kares> no one complains much :)
<enebo> I am not complaining as it is really simple but I feel like I am missing something
<kares> you're good
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
<kares> let's see if I can release this gem piece
subbu is now known as subbu|away
subbu|away is now known as subbu
Puffball has quit [Remote host closed the connection]
shellac has quit [Ping timeout: 245 seconds]
jmalves has joined #jruby
jmalves has quit [Ping timeout: 252 seconds]
jmalves has joined #jruby
jmalves has quit [Ping timeout: 272 seconds]
<lopex> headius, enebo: is it kosher to push to our wiki some mri snippets ?
<enebo> lopex: sure what you adding?
<lopex> c code
<lopex> enebo: mri length function overview
<lopex> functionS
<enebo> lopex: ok
<lopex> enebo: so yes ?
<enebo> sure
subbu is now known as subbu|lunch
Puffball has joined #jruby
<lopex> madness
<enebo> lots of lengths. ask nirvdrum for thoughts on that page :P
<lopex> nirvdrum: ^^
<nirvdrum> It hurts my eyes.
<nirvdrum> Or are you looking for technical feedback?
<lopex> yeah, I promised him that quite ago
<lopex> nirvdrum: no, at this point I'll need to introduce that approx length in jcodings
<nirvdrum> Approx length?
<lopex> nirvdrum: look at that definition of onigenc_mbclen_approximate
<nirvdrum> It looks like you're accessing an index that's out of bounds.
<lopex> nirvdrum: I know the cause
<lopex> reduced
<nirvdrum> I like to give obvious answers :-)
<lopex> and it's not our bug atm
<nirvdrum> I think we looked at this once before.
<nirvdrum> I'm certain I have a sheet of paper somewhere around here where I mapped out all of these functions.
<lopex> yeah, I wanted to do the same on some online diagram tool
<nirvdrum> Otherwise, you and nobu might be the only two people alive that really understand them.
<lopex> I think it's a bug in mri
<lopex> the fact that it works (that case)
<lopex> nirvdrum: I can explain the problem if you'll have the patience
jmalves has joined #jruby
<lopex> it will definitely help me :P
<nirvdrum> Sure. I'll be in and out though. Feel free to think outloud and I'll chime in when I'm around.
<lopex> nirvdrum: or I'll do that in that issue comment
jmalves has quit [Ping timeout: 252 seconds]
<lopex> enebo: it's a blocker for now
<lopex> the easiest way will be to turn off boyer / sunday for case insensitive regexps, and replace it with slow IC versions
<lopex> if there's any hurry
<lopex> enebo: there werent any IC fast skips before anyway
<nirvdrum> lopex: Is this only a problem in master? I don't see the exception with JRuby 9.2.0.0.
<lopex> nirvdrum: it's from mail gem
<lopex> nirvdrum: they do crazy things with encodings in their specs
<lopex> nirvdrum: I strongly advice to include their tests in CI
<lopex> enebo: ^^
<nirvdrum> lopex: What I mean is:
<nirvdrum> > ruby -v -e 'p "\u{1F48C}" =~ /\=\?/i'
<nirvdrum> nil
<nirvdrum> jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 Java HotSpot(TM) 64-Bit Server VM 25.181-b13 on 1.8.0_181-b13 +jit [linux-x86_64]
<lopex> nirvdrum: yeah, that's master
<nirvdrum> I just recently tracked down an encoding bug we inherited from Rubinius that only presented itself when printing error messages from failing MRI tests.
<nirvdrum> And since it failed while printing the message, I could never tell which test actually failed.
<nirvdrum> That was annoying to track down.
<lopex> yeah, those are the worst
<lopex> nirvdrum: but that approx thing, we'll need it at some point soon
<lopex> so for example
<lopex> "\u{1F48C}".bytes -> [240, 159, 146, 140]
<lopex> if you'll feed enclen(enc, p, 2) to that
<nirvdrum> Sorry. You'll have to refresh my memory.
<lopex> our default impl will return -3
<nirvdrum> What's this change all about?
<lopex> which means there's two bytes missing
<nirvdrum> MRI 2.4.4 yields `nil` for that expression.
<lopex> yes, that's irreevant
<lopex> *irrelevant
<nirvdrum> That's fine. But I'm lost on what changed in MRI. Is there a new feature? Or was it just a bug before?
<lopex> nirvdrum: the approx thing makes onigmo immune to broken chars
<lopex> so let;s start with c here, char *p = {240, 159, 146, 140} // disregard signedness here for now
<lopex> this is that "\u{1F48C}"
<nirvdrum> Isn't it already "immune"? It just returns the first byte in a broken MBC.
<nirvdrum> MRI really just needs to stop allowing broken strings. It's crazy.
<lopex> nirvdrum: it's onigmo thing
<lopex> and mri uses that as well, in places
subbu|lunch is now known as subbu
<lopex> so for our length if we pass enc.length(p, 0, 2)
<lopex> it will return -3 right ?
<lopex> which means 2 bytes missing
<nirvdrum> Okay.
<lopex> the approx version will return 2
<lopex> so no infinite loops and oobs
<lopex> nirvdrum: https://github.com/jruby/joni/issues/17 this is still the case in joni now
<lopex> the problem is mri uses those functions in different contexts
<lopex> so that's why it's a big mess
<lopex> so to the point
<lopex> p is our string
<lopex> but end - p is 2
<lopex> but since they use approx they move forward
<lopex> and we ooib
<nirvdrum> Case folding is only done for downcasing, right?
<lopex> yeah
sgeorge has quit [Remote host closed the connection]
<nirvdrum> Okay. Getting my head back into this.
<lopex> er, I know why end - p is 2
<lopex> because of /\=\?/
<lopex> which is two chars in the regexp
<nirvdrum> I'm still trying to build a version of MRI where I can see that.
<lopex> so, if there's constant parts in regexp then onigmo will create that fast skip thing and will try to find that without entering interpreter loop
sgeorge has joined #jruby
<lopex> nirvdrum: so in essence it will try to compare first two bytes of "\u{1F48C}" with "=?"
<lopex> and length for that will definitely be a correct one
<lopex> *will not
<lopex> lolz
<lopex> why do I skip "not" at times
jmalves has joined #jruby
<lopex> I'll run joni with optimization flag off
<lopex> yeah, the opcode is immune
jmalves has quit [Ping timeout: 268 seconds]
<lopex> nirvdrum: it would be easier with onigmo alone
<lopex> I can craft you a snippet
<lopex> I'm thinking of getting around without that approx for now
sgeorge has quit [Remote host closed the connection]
<lopex> one guard might be just to check if text length is larger thant what the exact part of regexp is
<lopex> byte length ocf
<lopex> and compare that
sgeorge has joined #jruby
Eiam has quit [Ping timeout: 240 seconds]
jmalves has joined #jruby
jmalves has quit [Ping timeout: 245 seconds]
jmalves has joined #jruby
jmalves has quit [Ping timeout: 272 seconds]
Puffball has quit [Remote host closed the connection]
jmalves has joined #jruby
jmalves has quit [Ping timeout: 246 seconds]
Puffball has joined #jruby
sgeorge has quit [Remote host closed the connection]
sgeorge has joined #jruby