Code: * Test mutant with dynamically created zombie. * Fix ugly code within default parameter mutations * Break up lib/mutant/mutator/node/send.rb in class specific files * Log all warnings throug reporter, so remove random $stderr.puts calls AST: * Fix the rubinius AST to allow setting @vcall_style variable in Rubinius::AST::Send nodes. Mutations: * Add binary operator specific mutations (YAY, finally reached this point) * Add some kind of a "do not touch me object" that raises on all messages. It can be used to make sure each literal value is touched. * Replace nil or add "do not touch me object" to literal mutations. * Mutate options on Regexp literals * Add mutations for dynamic regexp symbol and string literals * Mutate "def foo; bar; end" to "def foo; self; end"? * Emit negative and positive mutations * Mutate Block catch "def foo(&block)" and block pass "foo(&block)" * Mutate super arguments just like send arguments * Add timeout to terminate infinite loops Example of a negative mutation: Mutations on local variables and arguments prefixed with an underscore would be emitted as negative mutations that must be alive. Loader: * Make sure loader does not change visibility of injected mutants Killers: * Aggregate warnings on missing spec files * Add a general master <=> killer IPC interface. So different strategies of isolation (fork, vs jruby runtime creation) will work without big impact. Strategy: * Provide "expicit files to kill with" strategy * Automatically load ./spec/spec_helper.rb for rspec strategies (No need to specify -I and -r anymore) Matcher: * Allow matches on attr_reader with literal name argument(s)? * Allow matches on define_method with literal name argument? jruby-support: * Hook melbourne via ffi * Create a runtime per mutation to kill mutations in isolation