dling has joined #jruby
Balzrael has joined #jruby
Balzrael has quit [Client Quit]
Lan5432 has joined #jruby
rcvalle has quit [Quit: rcvalle]
camlow325 has quit []
pawnbox has joined #jruby
<travis-ci> pitr-ch/jruby (master:24677fc by Petr Chalupa): The build was canceled. (https://travis-ci.org/pitr-ch/jruby/builds/118605681)
pawnbox has quit [Ping timeout: 260 seconds]
nicksieger has joined #jruby
nicksieger has quit [Client Quit]
enebo has joined #jruby
enebo has quit [Client Quit]
<travis-ci> pitr-ch/jruby (master:47668d4 by Petr Chalupa): The build has errored. (https://travis-ci.org/pitr-ch/jruby/builds/118590356)
norc_ has quit [Ping timeout: 244 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
ITXpander has quit [Ping timeout: 264 seconds]
ITXpander has joined #jruby
pawnbox has joined #jruby
tjohnson has quit [Quit: Connection closed for inactivity]
pawnbox has quit [Ping timeout: 250 seconds]
bga57 has quit [Ping timeout: 248 seconds]
bga57 has joined #jruby
johnsonch_afk is now known as johnsonch
<travis-ci> pitr-ch/jruby (master:4ec1227 by Petr Chalupa): The build has errored. (https://travis-ci.org/pitr-ch/jruby/builds/118605897)
yfeldblum has quit [Remote host closed the connection]
Lan5432 has quit [Quit: Lost terminal]
pawnbox has joined #jruby
brauliobo_ has quit [Ping timeout: 260 seconds]
nirvdrum has quit [Ping timeout: 240 seconds]
yfeldblum has joined #jruby
pawnbox has quit [Ping timeout: 252 seconds]
donV has joined #jruby
bjfish2 has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 240 seconds]
thedarkone2 has quit [Quit: thedarkone2]
bjfish2 has quit [Quit: bjfish2]
johnsonch is now known as johnsonch_afk
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
colinsurprenant has quit [Quit: colinsurprenant]
pawnbox has joined #jruby
robbyoconnor has quit [Ping timeout: 260 seconds]
donV has quit [Quit: donV]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
norc_ has joined #jruby
pawnbox has quit [Ping timeout: 246 seconds]
yfeldblu_ has joined #jruby
yfeldblum has quit [Ping timeout: 250 seconds]
yfeldblu_ has quit [Ping timeout: 268 seconds]
jeremyevans has quit [Read error: Connection reset by peer]
tomjoro has joined #jruby
yfeldblum has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
robbyoconnor has joined #jruby
Balzrael has joined #jruby
etehtsea has joined #jruby
<Balzrael> hello
pawnbox_ has joined #jruby
pawnbox has quit [Ping timeout: 248 seconds]
etehtsea has quit [Quit: Computer has gone to sleep.]
pawnbox_ has quit [Remote host closed the connection]
etehtsea has joined #jruby
donV has joined #jruby
pawnbox has joined #jruby
etehtsea has quit [Quit: Computer has gone to sleep.]
pawnbox has quit [Ping timeout: 252 seconds]
etehtsea has joined #jruby
kith_ has joined #jruby
pawnbox has joined #jruby
kith has quit [Ping timeout: 244 seconds]
pawnbox has quit [Remote host closed the connection]
brauliobo_ has joined #jruby
brauliobo_ has quit [Ping timeout: 276 seconds]
kith_ is now known as kith
etehtsea has quit [Quit: Textual IRC Client: www.textualapp.com]
brauliobo_ has joined #jruby
brauliobo_ has quit [Ping timeout: 244 seconds]
yfeldblum has quit [Ping timeout: 268 seconds]
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 260 seconds]
bjfish2 has joined #jruby
norc_ has quit [Ping timeout: 244 seconds]
Balzrael has quit [Remote host closed the connection]
bjfish2 has quit [Ping timeout: 260 seconds]
bjfish2 has joined #jruby
pawnbox has joined #jruby
pawnbox has quit [Ping timeout: 252 seconds]
pawnbox has joined #jruby
enebo has joined #jruby
johnsonch_afk is now known as johnsonch
enebo has quit [Quit: enebo]
Lan5432 has joined #jruby
johnsonch is now known as johnsonch_afk
johnsonch_afk is now known as johnsonch
brauliobo_ has joined #jruby
colinsurprenant has joined #jruby
donValentin has joined #jruby
donV has quit [Ping timeout: 276 seconds]
<eregon> donValentin: Hi
<donValentin> eregon: Hi! Thanks for the response on the PR!
<donValentin> It all looks doable.
donValentin is now known as donV
bjfish2 has quit [Read error: Connection reset by peer]
<eregon> :D
<eregon> mspec is not too intuitive at first
<donV> I’m getting there :)
<eregon> it tries to be similar to RSpec, but there are also other concerns when doing tests for a ruby interepreter :)
<donV> One question: Should we not run ruby/spec tests in travis for MRI 2.3 and JRuby?
pawnbox has quit [Remote host closed the connection]
<eregon> as enebo said, the best is to just test with sth like ../mspec/bin/mspec library/coverage -t myruby
<eregon> you mean ruby/spec's travis?
<donV> yes
pawnbox has joined #jruby
<eregon> they already run under jruby/jruby's travis
<eregon> and it would mean we'd need to get the jruby tags from the jruby repo when doing the build, which seems more hassle
<donV> ok, but visiting ruby/spec does not display JRuby compliance or differences to the Ruby spec.
<donV> Just something to think about.
<donV> What about MRI 2.3?
<eregon> yeah, essentially jruby tests using ruby/spec but do not pass some specs, which are noted in jruby's repo
<eregon> donV: oh, that's an omission in the config, good catch!
<eregon> I will add it, unless you want to do it, donV?
<donV> I want to! :)
<eregon> go ahead then :)
<donV> eregon: Oh, “2.3” did not work as a Ruby version pattern...
<eregon> 2.3.0 is the correct one
<donV> Yeah, just hoped we could just get the patest stable 2.3.x
<eregon> yeah, it needs manual updates to the Travis config
<eregon> but then it expresses the minimal minor, since for instance 2.1.1 is pretty buggy
norc_ has joined #jruby
<eregon> http://rubyci.org/ also tests MRI's of all versions/platforms, but it's good to have Travis as a quick way to catch problems
<donV> green!
<eregon> yeah and merged :)
<eregon> Windows builds using AppVeyor are a WIP, so don't mind about them
johnsonch is now known as johnsonch_afk
Lan5432 has quit [Quit: Lost terminal]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
johnsonch_afk is now known as johnsonch
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
johnsonch is now known as johnsonch_afk
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
ITXpander has quit [Quit: Leaving.]
djellemah_ has joined #jruby
nicoulaj has joined #jruby
ITXpander has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
djellemah has quit [Ping timeout: 276 seconds]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Max SendQ exceeded]
nicoulaj has joined #jruby
nicoulaj has quit [Read error: Connection reset by peer]
<GitHub103> [jruby] bmulvihill opened pull request #3758: Fix strftime %Z to act like CRuby (master...strftime-fix) https://git.io/vVvyw
bjfish2 has joined #jruby
thedarkone2 has joined #jruby
jeremyevans has joined #jruby
<donV> eregon: Implemented all the commented suggestions in https://github.com/ruby/spec/pull/217
<eregon> donV: I think once the require is placed on top we're good to merge :)
<donV> done
<eregon> please squash all commits in one
<donV> ok
<donV> eregon: done
<eregon> donV: So why only line 1 is reported (3 times) when Coverage.result is called later?
<eregon> is there some sort of implicit context to Coverage.start?
<donV> No lines are reported when we load/require the file that starts coverage.
<donV> @config_file => [] <== empty array
<donV> JRuby actually did report something here, but it has been corrected.
<eregon> right, only further load/require start counting?
<donV> yes.
<eregon> But then what hapenned when start is called twice as in the first example?
<donV> It was unexpected for me, but we follow MRI now.
<donV> Second start is a noop.
<eregon> then in coverage result there should be 1,1,1,3,3,3, no?
<donV> for start_coverage.rb there are only 3 lines, so the array should never be longer than 3 entries.
<eregon> ah, right, the array is the lines with index-1 and execution counts
<donV> eregon: not sure what you are asking now :)
<donV> yes, exactly!
<donV> empty array has some special meaning that the file was seen but not covered
<eregon> I think we should separate the case of "second start is noop", so there is a simple and easy basic case to follow :)
<donV> “0” in the array mean loaded but not run.
<donV> eregon: agreed
<donV> “nil” in the array means “not runnable code” like “end” and comments.
<eregon> all these semantics would be awesome if they can be expressed as spec documentation
<donV> eregon: I’ll add a basic example, and change the first example to NOOP case
<eregon> but maybe let's merge this one and improve on it? as you prefer
<donV> I’d prefer to merge and then improve :)
<eregon> ok :)
<eregon> merged!
enebo has joined #jruby
<donV> enebo: Hi!
<enebo> donV: hello
<donV> enebo: Got the first coverage spec into ruby/spec!
<enebo> donV: and you saw that we were not failing with your tests?
<donV> enebo: Yes!
<enebo> donV: or at least not the three specs you made yesterday?
<enebo> ok
<donV> enebo: Working on expanding it now.
<donV> enebo: After Coverage.result is called, result still returns entries for all seen files with empty arrays?
<enebo> donV: yeah if they have been covered at all then they become []
<enebo> donV: if not then they stick around with full [-1, 0…]
<donV> This is in no way mentioned in the doc. What is the point of this?
<donV> It makes all spec depend on all earlier specs
<enebo> donV: I don’t have any idea. I guess they are assuming a new session is not interested in old results
<donV> Yes, but I would expect files from previous start..result sessions to be wiped from the next result.
<enebo> yeah
<donV> …I think I am missing something, but I don’t know what :)
<eregon> so result always accumulate?
<enebo> I was pretty surprised by this behavior as well
<enebo> eregon: the hash never loses keys even if reset
<donV> Line counts do not accumulate, but the keys (the list of files) do.
<donV> exactly
<enebo> eregon: but values arrays will change based on whether a reset changes
<eregon> reset = start?
<donV> reset = result
<enebo> ah yeah I means result
<enebo> meant
<eregon> this is definitely strange indeed
<enebo> I guess they realized some people may not want this so peek_result was added
<donV> eregon: does the fixture helper method load the file?
<eregon> maybe worth a bug report if we can show the behavior to just strange
<enebo> I don’t get it but it seems intentional but it is weird
<eregon> donV: no it just expands to the file path
<donV> ok
<enebo> and not many people really consume this library directly. Only a handful of coverage libraries
<enebo> well I know know of simplecov but I expect it is not the lone consumer of it :)
<eregon> hopefully :)
<eregon> yeah it's pretty much like a CLI flag with some minimal API on top
<donV> Argh! I cannot see a way to write independent specs! Keys are accumulating in the result hash :(
<donV> enebo: Can you help me write a but for it? Never done it for Ruby (MRI) before.
<eregon> donV: one way to deal with global state is for instance to just test coverage for a single file (key of the hash)
<eregon> or using subprocesses if it's not enough, but that's heavy
<donV> eregon: I can also filter the hash for entries with empty arrays.
yfeldblum has joined #jruby
<enebo> donV: I think if your first spec run might look at actual hash and all other specs are just examining a single value from the hash then this buildup of keys is not that important
<eregon> right but then you expect other entries to always be empty arrays
<enebo> donV: certainly one spec is seeing if an entry becomes an empty array too
<eregon> exactly
<donV> enebo: Exactly!
<donV> This weakens the test a lot.
<enebo> Largely though I don’t see much of an issue past perhaps one spec and I have no idea on guaranteed execution order so that one spec could also be a full subspawn (which is costly for us)
<eregon> it's better to test feature by feature than trying the ultimate integration test which will always fail :)
<donV> I’d like to file this as a bug just to see what the retionale behind this is.
<eregon> donV: do you have a gist to reproduce that weird behavior?
<enebo> donV: it may even resolve to some documentation explaining it too
<enebo> require “covererage”; Coverage.start; require “set”; Coverage.result; Coverage.start; require “tmpdir”; p Coverage.result
<enebo> HEH assuming Ruby 2.3 still have a ruby set I guess
tenderlove has quit [Remote host closed the connection]
<enebo> My guess is that someone did not fully think through the lifecycle of the library and then added peek_result to satisfy it’s lack of proper lifecycle
<eregon> coverer - rage :)
<enebo> but they did not want to mess with compatibility of original design
<eregon> enebo: there is a feature bug for adding peek_result
tenderlove has joined #jruby
<enebo> eregon: yeah it feels that way without even knowing
<enebo> eregon: so I am not surprised
<enebo> yeah I am surprised it was even questioned as being useful
<enebo> original design seems fundamentally broken
<enebo> I would never ever use result I don’t thikn
<enebo> At least original result() method seems very specific that once you call it any files with coverage are just dead
<enebo> what coverage tool would want that though?
<enebo> peek_result is just as good but without that limitation
<donV> tenderlove: Hi! You committed the patch for Coverage.peek_result, right?
<enebo> yeah tenderlove … why do you hate coverage
<enebo> heh ok…wrong day for me to be serious about anything
<enebo> donV: thanks. Your work is appreciated
<enebo> donV: we will hopefully have this library spec’d good enough for Truffle by the time they impl this one. So you will get a two-fer by making specs for it
<eregon> enebo: truffle has some basic coverage support with the tooling stuff, but I think it's not fully functional yet
<chrisseaton> eregon enebo: coverage works pretty well and is always enabled and low overhead, however at the moment it can't distinguish between lines with no code on them (nil) and lines with code on them that is never executed (0), we're fixing this though
<enebo> chrisseaton: eregon: ah sorry I thought there was an open bug for impling this
<enebo> nonetheless the specs will help you be compliant
<chrisseaton> oh and we have some issues with file lines if you specify an offset in an eval or something like that
<enebo> chrisseaton: all newline marked nodes (well one per distinct line) which is not from an eval will be a 0 and all others will be -1)
<enebo> chrisseaton: but evals are not covered in coverage at all
<chrisseaton> oh right
<chrisseaton> this is what we need the specs for
<enebo> chrisseaton: I also added a flag on rootnode for this I think ‘needsCoverage'
<enebo> chrisseaton: although that is a rather statically made thing
<chrisseaton> i'll take a look at that
<eregon> The array clearing happens since https://bugs.ruby-lang.org/issues/4796 in MRI
<enebo> chrisseaton: if you do live instrumenting then you really just want to know isEval or not and perhaps we can create another field
<eregon> I'm not sure why the way to restart is to have empty arrays in the hash, weird
<enebo> we do know if a parse is an eval parse or not in ParserConfig
<enebo> we just don’t save it to the tree
<enebo> OTOH you probably do know what you are requesting to be parsed
<chrisseaton> Yes but we don't store it yet either
<enebo> eregon: I wondered about performance
<eregon> they would be afraid to remove a hash key?
<enebo> eregon: perhaps they just do less processing if you keep hitting same file and the empty array check is faster
<enebo> eregon: yeah I don’t get that :)
<enebo> eregon: I guess to make sure it is not re-added
<eregon> well, I think this worth opening a bug, asking why there is this weird clearing strategy which seems absolutely useless
<enebo> eregon: but it is mysterious
<chrisseaton> Maybe they just set the array to size 0 and let the storage stay as they guess they'll use it in the future?
<enebo> chrisseaton: once a zero array it is never populated again
<enebo> chrisseaton: it seems to be used as a marker?
<eregon> Maybe we can tweet mame since he is the maintainer
<enebo> I have divested myself from caring about the why so long as I impld the what correctly
<chrisseaton> yes that's my philosophy
<enebo> This is a fairly old lib now and any fixes will likely result in new methods or a new require for another lib
bb010g has joined #jruby
<donV> I’ve added a few more specs for multiple runs.
<eregon> donV: do you have a twitter handle?
<donV> donV70 why?
<eregon> I plan to ask the maintainer by twitter why, it's the fastest way to get an answer :)
<donV> eregon: :) got it
<eregon> but opening a proper bug would be good too for posterity at https://bugs.ruby-lang.org
<eregon> donV: do you want to do it?
<eregon> I can otherwise
<donV> eregon: Not really. Could you?
<eregon> ok, will do
<donV> eregon: Ah, excellent!
<donV> eregon: Thanks!
enebo has quit [Quit: enebo]
pawnbox has quit [Remote host closed the connection]
<donV> eregon: Modified the specs to filter old results. Now they are green.
<donV> eregon: I added a lot of blank line cases since JRuby had bugs for these that are fixed on master.
cremes_ has joined #jruby
cremes has quit [Ping timeout: 260 seconds]
cremes_ is now known as cremes
<eregon> donV: sounds good, thanks!
Lan5432 has joined #jruby
<donV> eregon: regarding KernelSpecs, how is the module mixed into the spec?
<donV> …or should I have something _much_ simpler and call with explicit module receiver?
<Lan5432> Can you just access the methods of an interface doing Interface.methods?
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
norc_ has quit [Read error: Connection reset by peer]
Lan5432 has quit [Quit: Lost terminal]
Lan5432 has joined #jruby
<donV> eregon: Added the spec_helper and more specs. How to skip specs for peek_result for older Rubies?
<donV> eregon: Used the raise_error helper as suggested.
<donV> eregon: Added guard for peek_results for Ruby 2.3
drbobbeaty has joined #jruby
<eregon> donV: explicit module receiver :)
pietr0 has quit [Quit: pietr0]
<eregon> it's getting late so I might review some of that tomorrow
<Lan5432> headius: did you have any plans for providing a newInstance with parameters? What's that for?
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
yfeldblum has quit [Ping timeout: 248 seconds]
tomjoro has quit [Remote host closed the connection]