shellac has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
michael_imac has joined #jruby
michael_mbp has quit [Ping timeout: 248 seconds]
michael_imac is now known as michael_mbp
deobalds has joined #jruby
raeoks has joined #jruby
dave_ has joined #jruby
dave_ has quit [Remote host closed the connection]
dave_ has joined #jruby
dave_ has quit [Remote host closed the connection]
olle has joined #jruby
raeoks has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shellac has joined #jruby
<headius_> kares: yay extend
dave_ has joined #jruby
raeoks has joined #jruby
vtunka has joined #jruby
dave_ has quit [Remote host closed the connection]
dave_ has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
<olle> I am prepping a Issue document of the 2.5 Ruby changes, with checkboxes
shellac has joined #jruby
olle has quit [Quit: olle]
Puffball has quit [Remote host closed the connection]
dave__ has joined #jruby
dave_ has quit [Read error: Connection reset by peer]
jeremyevans has quit [Ping timeout: 240 seconds]
dave__ has quit [Remote host closed the connection]
deobalds has quit [Quit: Computer has gone to sleep.]
dave_ has joined #jruby
dave_ has quit [Remote host closed the connection]
dave_ has joined #jruby
claudiuinberlin has joined #jruby
jeremyevans has joined #jruby
dave_ has quit [Ping timeout: 246 seconds]
olle has joined #jruby
shellac has quit [Quit: Leaving]
bbrowning_away is now known as bbrowning
raeoks has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dave_ has joined #jruby
shellac has joined #jruby
vtunka has quit [Quit: vtunka]
bbrowning is now known as bbrowning_away
dave_ has quit [Remote host closed the connection]
dave_ has joined #jruby
dave_ has quit [Ping timeout: 276 seconds]
<eregon> I'm updating ruby/spec today
<eregon> Please add tags for failing specs
olle has quit [Quit: olle]
<enebo> eregon: thanks
raeoks has joined #jruby
cschneid has quit [Read error: Connection reset by peer]
cschneid- has joined #jruby
raeoks has quit [Client Quit]
bbrowning_away is now known as bbrowning
shellac has quit [Quit: Computer has gone to sleep.]
<enebo> eregon: I added to 14143 something which might help (well who knows)
<enebo> eregon: I feel like any exception is a weird semantic but if you combine with the confusion of silent death it is frustrating
<enebo> eregon: I sort of think most people would think any exception is too forgiving
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
<eregon> enebo: thanks :)
<eregon> There are quite a few new failures on https://travis-ci.org/jruby/jruby/jobs/310105183, we have lots of new sprintf&co specs
<enebo> eregon: when I wrote that out it made me relive all the frustration of trying to deal with this problem before I learned I could enable thread backtraces
<enebo> eregon: also we were not green either
<enebo> eregon: ah I see those printf ones
<enebo> eregon: were those 2.4?
<eregon> no, it's not new behavior, it was just not spec'd yet
<eregon> we have specs for TracePoint now as well
<eregon> those are nasty when they fail, as they might end up killing mspec
<enebo> eregon: ok
<eregon> I have a fix to avoid that, but still it's tricky as the TracePoint block is called, even on tracePoint.disable :D
<eregon> I'll pull that fix in JRuby, might avoid some troubles :)
shellac has joined #jruby
<GitHub135> [jruby] eregon pushed 2 new commits to master: https://git.io/vbqxQ
<GitHub135> jruby/master fd9c503 Benoit Daloze: Squashed 'spec/ruby/' changes from bacedc5..e2d0d1e...
<GitHub135> jruby/master a8d3ceb Benoit Daloze: Merge ruby/spec commit 'fd9c503a25064ff7d42e15dcf361840341827ba6'
claudiuinberlin has joined #jruby
shellac has quit [Ping timeout: 252 seconds]
GitHub162 has joined #jruby
<GitHub162> [jcodings] lopex pushed 1 new commit to master: https://git.io/vbmma
GitHub162 has left #jruby [#jruby]
<GitHub162> jcodings/master cfb047b Marcin Mielzynski: remove vanilla
s778 has joined #jruby
<lopex> enebo, headius_ an idea to monkey patch https://github.com/ruby/ruby/blob/trunk/enc/unicode/case-folding.rb so it outputs our things ?
<lopex> via func trace ?
<lopex> the other question is, do we really want to use gperf
<headius_> lopex: outputs our things?
headius_ is now known as headius
<lopex> headius: dest.print("};\n\n")
<lopex> whatever
<headius> oh generates code for us
<lopex> keep the logic
<lopex> replace the output
<lopex> simplu put
<headius> yeah no easy way I can see
<headius> the outputs are intermingled with logic
<lopex> headius: struggling with that and parsing their output
<lopex> so reconsidering things...
<headius> jesus
<headius> body.sub!(/\b(return\s+&)([^;]+);/, '\1'"#{key}_Table[#{v}].to;")
<headius> I can't even read some of this
<lopex> ours arent any better
<lopex> current ones
<lopex> but we just scan atm
<headius> what does this generate?
<headius> what files
<lopex> headius: casefold.h and name2ctype.h
<lopex> headius: look at yout local ruby build
<lopex> our old jcondigs scripts no longer hold
<lopex> looking at transcoding generation too.
<headius> yeah looking
<headius> casefold.h doesn't look too bad
<lopex> shiiit
<lopex> asdf
<lopex> they download unicode official data via makefiles
<lopex> which is bad for us
<lopex> headius: well, it looks bad bacause so far we've been parsing that
<lopex> like : L(2)|0x1F60, 0x0399, L(1)|0x1FA0, L(2)|0x1F68, 0x0399,
<lopex> it's not a gperf thing
<lopex> it's data
<lopex> or hold a minute
<lopex> yeah
<lopex> we either parse that or replicate their logic to generate
<lopex> headius: ^^
<lopex> so we need to make a decisian
<lopex> decision
<headius> ok
<headius> I was just reading the name2ctype header and about gperf
<lopex> headius: I guess we dont want java gperf ?
<lopex> it will be a whole of that gperf bloat
<lopex> which wont give us anything
<headius> yeah I dunno, probably not
<lopex> those lookups are no as expensive
<lopex> like \Range{whatever}
<lopex> in the regexp
<lopex> or am I missing something
<headius> hmm
s778 has quit [Quit: leaving]
<headius> parsing what they generate is always going to be fragile
<lopex> mri gets this free since it's just a dll load with those thins
s778 has joined #jruby
<lopex> headius: we;ve been doing that since the beggining
<lopex> but I agress
<headius> so their scripts generate input for gperf?
<headius> yeah I know
<lopex> no they use gperf along the way
<lopex> so we can reuse the logic
<lopex> and try to skip the gperf
<headius> yeah
<lopex> so
<lopex> first question is to intercept the output via trace ?
<lopex> since it's so intertwined
<headius> oh I see
<headius> they call out to gperf in that lookup_hash
<lopex> yea, we dont need that
<lopex> headius: but how to reuse the logic
<headius> yeah tricky
<lopex> headius: intercept tyhose wirtes ?
<lopex> writes
<lopex> the what ?
<headius> and do what?
<lopex> no idea
<headius> hahah ok
<headius> me neither
<lopex> and make it no fragile
<headius> I think we need to refactor this and move the lines of C into some other structure
<headius> so we'd have our own lookup_hash at least
<headius> that skips perfect hashing
<headius> so they generate the hash and then the rest of that function is just massaging the output
<headius> what a mess
<lopex> but I want to intercept just part of that
<lopex> we just need the structures noting else
<lopex> headius: ^
<headius> right
<lopex> assume dest.print("# error ONIG_UNICODE_VERSION_STRING mismatch\n")
<lopex> eh
<headius> C is a ghetto
<lopex> jcking macros
<headius> table generation is simple enough
<headius> we just need to swap in functions for the C-specific bits I'd say
<lopex> form unicode data ? yeah
<headius> dest.print(define_constant(name, expr))
<headius> the actual array structure should be fine as is, yes?
<lopex> you mean to replicate c ?
<lopex> or reuse their code ?
<headius> to reuse their code
<headius> so options...there seems to be a few actually
<lopex> what about other c syntaxes ?
<lopex> macros etc ?
<headius> parsing their source is one end, making this generate our source is the other
<lopex> I see no easy way of replacing that
<headius> the other option is that this is only 420 lines
<headius> maybe we just make our own
<headius> a large part of this logic is C-wrangling
<lopex> dest.print("#if defined ONIG_UNICODE_VERSION_STRING && !( \\\n")
<lopex> it's a little worrying
<headius> most of that will be constant for us though
<headius> all that seems to be doing is error if compiling against the wrong onig
<lopex> yeah yeah
<headius> we don't care about that...we'd remove it or not implement generate_header() or something
<lopex> hmmm
<lopex> headius: I have an idea
<lopex> headius: you're the commiter of mri, so they'll accept zero change logic, that just rejiggers the methods so we can hook up ?
<headius> that's right
<headius> and in my opinion it would be good cleanup anyway
<headius> this is a mess
<lopex> I can make to changes, will you go for it ?
<lopex> s/to/the/
<lopex> er
<lopex> that wasnt english
<lopex> headius: I can rejigger mri scripts so we can hook up
<headius> yeah sounds good
<headius> nobody will care as long as it still works for MRI and we don't start putting JRuby code in it :-)
<lopex> headius: then we should also do for transcoders
<headius> I agree...and I guess we have to because they changed, eh?
<lopex> just to have the flow consistent
<lopex> you seem more doubtful as more we speak why ?
<lopex> headius: just take a look at https://github.com/ruby/ruby/tree/trunk/enc/trans
<lopex> we do too much hacking now wrt transcoders too
<headius> oh neat
<lopex> yeah neat
<headius> the trans files are basically ERB C templates
<lopex> well, mri is mri, so the old days I thought mri might change some of that data for it;s own purposes
<lopex> I woudnt be surprised
<lopex> yeah, erb since the ages
<lopex> headius: the third choice is we can parse the binaries :P
<headius> hah
<headius> we could load the C code into libclang and generate Java from the actual structure
<lopex> so can I happily assume we can back push our things to mri ?
<headius> lopex: yes
<lopex> cool
<GitHub7> [jruby] headius pushed 1 new commit to jruby-9.1: https://git.io/vbmz3
<GitHub7> jruby/jruby-9.1 1705c5f Charles Oliver Nutter: Remove mri_test_env.rb
<lopex> headius: btw, what about those \K tests ?
<headius> I haven't done anything with them
<lopex> in ruby suite
<lopex> headius: those shoult be enabled now
<lopex> *should
<headius> yeah I'll have a look
<headius> I'm working on MRI suite right now anyway
<lopex> do they untag automatically ?
<headius> no
<lopex> test_regexp and test_array
<headius> array also?
<lopex> yeah
<headius> ok
<lopex> test_shared_marking
<lopex> whatever it is
<headius> I have to update excludes manually but it's no big deal
<headius> I just run without them and trim
<headius> ooo four fewer in test_regexp
<headius> K wasn't one of them
<lopex> success
<lopex> eh
<headius> heheh
<headius> I'll see what failed
<lopex> headius: btw in case your interesed http://msinilo.pl/blog2/post/cache-effects-illustrated/
<headius> ah looks nice
<lopex> who ordered that ?
<headius> <"foobazquux/foobazquux"> expected but was
<headius> <"bazquux/bazquux">.
<lopex> new failure ?
<headius> that's the \K failure
<headius> "foobarbazquux/foobarbazquux".gsub(/foo\Kbar/, "")
<headius> match begin must be off
<lopex> ah begin
<lopex> well it matches
<lopex> what that match var in ruby I forger ?
<lopex> ah $~ tells nil
<lopex> and am not upto date
<lopex> headius: easily reduced ?
<headius> well that line is it
<headius> it should only replace bar but it replaces foobar
<lopex> and the assertion ?
<lopex> er, nvm
<headius> interestingly, this just produces "bar": "foobarbazquux/foobarbazquux".match(/foo\Kbar/)[0]
<lopex> that bug number might be helful
bbrowning is now known as bbrowning_away
<lopex> no idea
<headius> heheh
<lopex> what ?
<headius> I thought it would be the begin offset but then it shows the match right
<headius> so I don't know
<headius> I'm back to getting CI green for now
<lopex> just need more reducing
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
s778 has quit [Quit: leaving]