solnic changed the topic of #rom-rb to: Ruby Object Mapper | Mailing List: https://groups.google.com/forum/?fromgroups#!forum/rom-rb | Logs: http://irclog.whitequark.org/rom-rb
djsell has quit [Ping timeout: 264 seconds]
cored has quit [Ping timeout: 256 seconds]
djsell has joined #rom-rb
dkubb has joined #rom-rb
<mbj> dkubb: BTW mutant is a littlebit slower than before
<mbj> You might notice, I can speed it up via reducing the amount of unparsing / parsing
<mbj> I can gut it by half
<mbj> But the port to parser was enough work to focus on
<mbj> Lets rip out the missing bugs and the unparser errors
<mbj> Than we can optimize it!
<dkubb> the speed is fine
<dkubb> accuracy is way more important
<mbj> jo
djsell has quit [Ping timeout: 246 seconds]
mbj has quit [Quit: leaving]
solnic_ has joined #rom-rb
solnic- has joined #rom-rb
solnic- has quit [Client Quit]
solnic_ has quit [Ping timeout: 268 seconds]
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/devtools#7 (mutant-0.3 - 5606c70 : Dan Kubb): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8332762
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Change view : https://github.com/rom-rb/devtools/compare/2c3f2c5e63e9^...5606c70d0f21
_whitelogger has joined #rom-rb
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/devtools#11 (master - 0aea94c : Piotr Solnica): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8333667
travis-ci has left #rom-rb [#rom-rb]
solnic has joined #rom-rb
<solnic> dkubb: awesome news
<solnic> dkubb: ps. we need cinchy :D
<solnic> I mean here
<solnic> also good morning
solnic_ has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
<dkubb> good morning
<dkubb> and yeah we do need it
<solnic_> dkubb: I tried to find how to install it
<solnic_> and got super confused
<solnic_> it seems cinchy is a framework for building irc bots
<solnic_> dkubb: is it ~2 am on your side?
<dkubb> yeah
<dkubb> it's pretty late here
<dkubb> I saw some gists on how to install it on heroku
<solnic_> dkubb: I wanted to make sure one of my multi-tz clocks matches your TZ
<dkubb> hehe
<solnic_> dkubb: yeah me too, I even tried
<solnic_> but then I realized it's NOT what I needed (probably)
<solnic_> got confused and gave up :)
<solnic_> I believe there's a message bot in freenode anyway
<solnic_> it's just less convenient to use than cinchy
solnic has joined #rom-rb
solnic_ has quit [Read error: Connection reset by peer]
<dkubb> I thought that cinchy provided all of those things we used ootb
<solnic> dkubb: ooh I see
<solnic> hmm
<solnic> I will try again then :)
<solnic> although afair the installation on heroku failed (I used that gist you pointed me to IIRC)
<dkubb> holy crap travis is unstable
<dkubb> I wonder if we should just switch the gems to circleci
<solnic> it's getting worse and worse :(
<dkubb> I know right
<solnic> dkubb: circleci doesn't support OSS no?
<dkubb> I think it does now
<solnic> oh
<solnic> yeah
<solnic> we could switch
<dkubb> hmm
<dkubb> I can't find any mention of it, but I started seeing circleci.yml files popping up in oss projects
<dkubb> maybe it was from people using a free trial
<dkubb> :(
<dkubb> solnic: ok, I was wrong about circleci. no oss plans yet
<dkubb> solnic: ok, I'm going to hit bed now, good night!
<solnic> dkubb: yeah that's what I thought
<solnic> drone.io
<solnic> ?
<solnic> dkubb: night!
solnic_ has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
solnic_ has quit [Ping timeout: 248 seconds]
solnic has joined #rom-rb
cored has joined #rom-rb
cored has joined #rom-rb
cored has quit [Changing host]
solnic has quit [Quit: Leaving...]
cored has quit [Remote host closed the connection]
cored has joined #rom-rb
cored has quit [Changing host]
cored has joined #rom-rb
mbj has joined #rom-rb
<mbj> morning!
solnic has joined #rom-rb
solnic has quit [Quit: Leaving...]
cored has quit [Ping timeout: 248 seconds]
_whitelogger has joined #rom-rb
postmodern has quit [Quit: Leaving]
solnic has joined #rom-rb
solnic has quit [Quit: Leaving...]
solnic has joined #rom-rb
mbj has quit [Ping timeout: 248 seconds]
mbj has joined #rom-rb
<dkubb> good morning
<solnic> dkubb: morning
<solnic> I'm about to try mutant 0.3 from master :)
<solnic> dkubb: hmm 100% - something must be broken :D
<solnic> oh ok I get it, it's doesn't mutate everything under a given namespace
<solnic> hmm I ran for all classes, 100% mutation coverage
<solnic> I don't believe this
<dkubb> you use * in the regexp
<dkubb> so it's now: ::MyClass*
<dkubb> I guess it's not a regexp, but the matching syntax
<dkubb> without the asterisk it will not recurse
<dkubb> solnic: I just ran mutant 0.3 against axiom and found one issue. going to try axiom-types in a sec, which was previously 100% covered
<solnic> nice
<solnic> lemme see with *
<solnic> mutant "ROM::Session::*" --rspec-unit
<solnic> No matchers given
<solnic> wat
<solnic> :(
<solnic> mbj: ^^^ what does that mean?
<Gibheer> solnic: I think you have to use ROM::Session
<solnic> tried that too
<Gibheer> same error message?
<solnic> yes
<dkubb> try Rom::Session*
<solnic> dkubb: starts but crashes
<solnic> ah lol
<solnic> I knew sth must be wrong
<dkubb> woo hoo, mutant found a bunch of new mutations in axiom-types
<solnic> my specs fail on rbx
<dkubb> aside from a couple of bugs
<dkubb> hehe
<solnic> hence 100% mutcov
<solnic> haha
<dkubb> the new mutant works on 1.9.3
<solnic> I know...but I can't use 1.9.3 atm
<solnic> my system is broken
<dkubb> no rvm?
<solnic> I can't compile a lot of stuff
<solnic> no, mavericks :P
<dkubb> I was thinking about building a vagrant setup for us
<dkubb> oic
<solnic> yeah, I will do it
<solnic> I need to switch to vms until issues with compilation are resolved on mavericks
<dkubb> I did one for the project I'm on and it worked well. I kind of took the same ideas you started with on that other project we did a while ago
<dkubb> I think I will probably switch to using a vm all the time
<mbj> hi guys
<dkubb> I can install all the dbs and stuff on it and not worry about deps
<solnic> yeah it's a cool thing
<dkubb> mbj: good morning
<mbj> solnic: After I use option parsers the matcehrs mut come after the options
<dkubb> mbj: mutant 0.3 found some new mutations in axiom-types!
<mbj> mutant --rspec-foo ::Matcher::A ::Matcher::B
<mbj> dkubb: nice!
<solnic> I only need to figure out how to send notifications from a VM :)
<solnic> for guard...
<solnic> it should be possible with some trickery
<mbj> dkubb: I fixed some issues from yesterday already
<dkubb> mbj: I need to dig in and see if they are valid, but it found a ton of new stuff in what was previously 100% mutation covered
<solnic> wow
<mbj> dkubb: nice, I expected this
<dkubb> mbj: I saw that. I was able to do a run-through with axiom-types today
<dkubb> mbj: there was one case where unparser introduced a syntax error, which I am about to report
<dkubb> mbj: it had to do with a case statement, where the else branch was simply: else; super; end
<solnic> mbj, dkubb: please if you have a "moment" check out PR with rewritten rom-session
<solnic> I'd love to get feedback before I continue
<solnic> it's probably best to just read the sources
<mbj> solnic, dkubb: Have to participate with clothing :D
<solnic> it's not much to read actually
<solnic> hehe :)
<mbj> Promised my GF to help, no way to avoid this.
<solnic> been there done that ;)
<mbj> Back in minutes....
<solnic> I gotta run, so ttyt
<solnic> dkubb: I'll set up a vm tomorrow...
<solnic> dkubb: oh one more thing, I tried drone.io today, it's cool but it doesn't support vm matrix so...not an option
<solnic> ok, ttyt
<dkubb> solnic: kk. I think circleci doesn't support the matrix either :(
<dkubb> solnic: ttyl
solnic has quit [Quit: Leaving...]
<mbj> back
<mbj> dkubb: circleci has an rvm setup, we can easily script our matrix
<mbj> We cann add that feature to devtools
<dkubb> interesting
<dkubb> mbj: I just ran the following on axiom-types: mutant --rspec-dm2 Axiom::Types::Set* and i got this back: https://gist.github.com/dkubb/a611e5fe665a682f1cb5 ..that second mutation, when I do it by hand, is a syntax error
<dkubb> mbj: do you want me to report this to mutant or unparser? I assume the former
<dkubb> mbj: or am I forgetting one of the switches? I noticed the -Ilib and -r axiom-types switches were no longer accepted
<mbj> dkubb: The 2nd mutation is: equal?(Set) => equal?
<mbj> This should not be a syntax error?
<mbj> Most likely I got you wrong.
<mbj> dkubb: -Ilib and -r something are not needed anymore
<mbj> We rely on the test frameworks to setup load path and require files correctly.
<mbj> dkubb: I need to update README and write a verbose Changelog
<dkubb> mbj: equal? should be a syntax error, shouldn't it? yet it's being treated as a valid mutation
<dkubb> mbj: or maybe I'm reading this report wrong?
<mbj> mbj@mbj ~/devel/unparser (master*) % bundle exec ruby-parse -e 'equal?'
<mbj> (send nil :equal?)
<mbj> It is valid ruby.
<mbj> dkubb: Can you show me the syntax error?
<dkubb> mbj: it's not valid according to irb
<dkubb> oh wait, I guess it's not a syntax error, but rather a runtime error
<dkubb> ArgumentError: wrong number of arguments(0 for 1)
<mbj> dkubb: Yeah
<dkubb> but still, I would assume mutant would catch those issues
<mbj> dkubb: The mutation is NOT killed.
<mbj> For some reason.
<mbj> As it should result in an ArgumentError
<mbj> Making rspec CLI exiting nonzero
<mbj> So we have to find why this is not the case!
<dkubb> mbj: also, that first mutation does cause a spec failure too
<dkubb> mbj: but it's not killed
<mbj> dkubb: interesting
<dkubb> mbj: is it maybe because that's a private class method?
<mbj> dkubb: Mutant only cares if rspec returns nonzero exit status
<mbj> I'll preproduce
<mbj> Let me adjust to parser-2.0.0.beta7 first.
<mbj> Already ported unparser.
<dkubb> I can update devtool's mutant-0.3 branch to use it too
<dkubb> temporarily
<mbj> mom
zirni has joined #rom-rb
<mbj> dkubb: I fucked something up in unparser.
<mbj> Will take some time.
<dkubb> mbj: no worries
<dkubb> this is weird, I updated to use the latest parser from edge git and mutant says it is disabled now
<dkubb> I comment it out in my Gemfile and it runs
<mbj> dkubb: The rake task sais mutant is disabled.
<mbj> Mutant for it self never.
<mbj> Just explore mutant via the CLI, this is faster than dealing with devtools at this stage.
<mbj> (From feedback cycle point of view)
<mbj> Okay, that failures I saw where easy to reproduce.
<mbj> I'll use mutant from git source and track that failure down.
<dkubb> oh I see, parser doesn't have a valid gemspec in it's repo
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/devtools#12 (mutant-0.3 - 8b7371a : Dan Kubb): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8344743
travis-ci has left #rom-rb [#rom-rb]
<dkubb> I don't know if that's whitequark's intention or not
<mbj> dkubb: Use the latest release from rubygems.
<mbj> dkubb: He released it some hours ago
<mbj> 60min ago :D
<dkubb> yeah I know
<dkubb> I just use edge stuff when debugging sometimes
<mbj> With parser I'd suggest to use the latest release, it is very close to master and typically works.
<mbj> dkubb: In the equals case mutant does not execute the correct examples!
<mbj> mom, making my child to hit bed.
<mbj> spec selection is broken for private methods
<dkubb> ahh ok
<dkubb> good to know i'm not going crazy
<dkubb> I expected mutant to find a handful of new mutations in axiom-types, but not > 200
<dkubb> at best i was expecting 10-20
<mbj> hehe
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] rom-rb/devtools#14 (mutant-0.3 - ff82c4a : Dan Kubb): The build has errored.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/devtools/builds/8344973
<mbj> latest news, not spec selection is broken, our file nameing is
<mbj> "spec/unit/axiom/types/set/class_methods/base_predicate_spec.rb"
<mbj> That file is expected, but does not exist.
<mbj> Axiom::Types::Set.base? is public, hence we'd need a dedicated file.
<dkubb> it's made private I thought
<dkubb> there's a private_class_method :base?
<mbj> okay
<mbj> so public private detection is broken
<mbj> Trusted mutant here. mom.
<mbj> I'm up again for to much hours, pls excuse my unsharp debugging.
<dkubb> no worries
<dkubb> I figured you had very little sleep last night
<dkubb> so did I
<dkubb> I'm probably only going to be around for another 15-20 mins, and then I'll be back later tonight to do some stuff on axiom-memory-adapter
<mbj> ruby is such a broken language,....
<mbj> public private detection should be easy
<mbj> Worked perfectly for month.
<dkubb> yeah, the api around that stuff is confusing
<dkubb> imho there should be 3 methods for testing public/private/protected by name, and 3 methods for returning the public/private/protected methods
<mbj> dkubb: jo
<dkubb> you can also implement the first 3 methods using the last 3, eg: object.public_methods.include?(method_name)
<dkubb> I suppose there's also the case of inherited/locally defined methods
<dkubb> I know that ruby is somewhat like this, but it's just inconsistent. too many methods that seem like they should do the same thing, but don't
<mbj> dkubb: doesnt work in this case :(
<mbj> mbj@mbj ~/devel/axiom-types (master*) % bundle exec irb -I lib -r axiom-types
<mbj> irb(main):001:0> Axiom::Types::Set.public_methods.include?(:base?)
<mbj> => false
<mbj> But inside mutant this returns true!
<dkubb> mbj: fwiw, I've found that the Object methods are better to depend on: http://ruby-doc.org/core-2.0/Object.html#method-i-private_methods
<dkubb> Axiom::Types::Set.public_methods(false).include?(:base) # => false
<dkubb> oh that's weird that it returns true inside mutant
<dkubb> mbj: what about just using respond_to? ?
<dkubb> mbj: Axiom::Types::Set.respond_to?(:base?)
<mbj> dkubb: maybe, but let me track down why there is a difference!
<dkubb> a class is just an object, and we basically only care if the method is publicly visible
<dkubb> mbj: could it be that you're running that method inside mutant using a different version of ruby? some rubies return the list of methods as an Array of Strings, while some do an Array of Symbols
<dkubb> mbj: I think MRI 1.9+ does an Array of Symbol objects consistently. I do recall writing cross-ruby impl code that used .map(&:to_sym) before testing it with #include?
<dkubb> mbj: ok, kids are home now. I will bbl
<mbj> dkubb: I dont think this is a Symbol vs String issue
zirni has quit [Ping timeout: 268 seconds]
zirni has joined #rom-rb
<dkubb> mbj: yeah, I was just throwing that out there
<dkubb> mbj: I see what you're talking about wrt the method becoming public. is it possible that a mutation changed it's visibility?
<dkubb> mbj: I don't know if this is significant, but the source_location for the method changes at some point before mutant parses the code
<dkubb> mbj: the class' object_id stays the same, but the source_location changes by about 3 lines.. which is odd. almost like something is rewriting the code
<dkubb> mbj: I would never expect source_location to ever change once a method was parsed, unless it was overwritten by something
mbj has quit [Read error: Connection reset by peer]
<dkubb> mbj: oh! what if the no-op step is overwriting the original source but forgetting the visibility?
zirni has quit [Ping timeout: 268 seconds]
<dkubb> I bet that's it. too bad mbj left :(
<Gibheer> you should get the bot to tell him
<dkubb> I did in #datamapper
<dkubb> we need to get cinchy setup here
<dkubb> I just reported the issue: https://github.com/mbj/mutant/issues/53
<dkubb> heh, in writing the bug report I think I may have found the fix
zirni has joined #rom-rb
zirni has quit [Ping timeout: 268 seconds]
zekefast has joined #rom-rb
zirni has joined #rom-rb
zirni has quit [Ping timeout: 246 seconds]
postmodern has joined #rom-rb
zirni has joined #rom-rb
zirni has quit [Ping timeout: 246 seconds]