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
jgaskins has joined #rom-rb
mbj has quit [Read error: Operation timed out]
Eiam has quit [Ping timeout: 260 seconds]
Eiam has joined #rom-rb
mbj has joined #rom-rb
mbj has quit [Ping timeout: 246 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
snusnu1 has joined #rom-rb
franckverrot has quit [Quit: Connection closed for inactivity]
zekefast has quit [Quit: Leaving.]
Memocr has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
zekefast has joined #rom-rb
zekefast has quit [Quit: Leaving.]
dkubb has quit [Quit: Linkinus - http://linkinus.com]
Memocr has quit [Remote host closed the connection]
cschneid has quit [Ping timeout: 245 seconds]
cschneid has joined #rom-rb
zekefast has joined #rom-rb
mbj has joined #rom-rb
ezkl has joined #rom-rb
ezkl has quit [Client Quit]
mbj has quit [Ping timeout: 260 seconds]
mbj has joined #rom-rb
solnic_ has joined #rom-rb
solnic_ has quit [Client Quit]
solnic has joined #rom-rb
solnic has left #rom-rb ["Linkinus - http://linkinus.com"]
breakingthings has joined #rom-rb
mbj_ has joined #rom-rb
snusnu1 has joined #rom-rb
jgaskins has joined #rom-rb
mbj_ has quit [Quit: leaving]
zekefast has quit [Quit: Leaving.]
zekefast has joined #rom-rb
zekefast has quit [Client Quit]
zekefast has joined #rom-rb
zekefast has quit [Client Quit]
zekefast has joined #rom-rb
zekefast has quit [Client Quit]
zekefast has joined #rom-rb
zekefast has quit [Client Quit]
zekefast has joined #rom-rb
zekefast has quit [Client Quit]
zekefast has joined #rom-rb
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
<mbj> snusnu: wooohooo ....
<mbj> snusnu: my integration spec passes (okay it started to pass a while ago)
<mbj> snusnu: the morpher thing.
<snusnu> mbj: awesome!
<snusnu> mbj: i'm gonna work on polishing my mapper spike and push it to a branch later on
<snusnu> mbj: do you have time to discuss a few of my misunderstandings about ducktrap?
<mbj> snusnu: TBH no.
<mbj> snusnu: later!
<snusnu> ok
irclogger__ has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
bf4 has joined #rom-rb
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
jgaskins has quit [Read error: Connection reset by peer]
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
CraigBuchek has joined #rom-rb
<mbj> snusnu: ping, see skype
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
<mbj> snusnu: Just from: 452 additions and 789 deletions. I love it ;)
<mbj> snusnu: Seems ducktrap is also foundational :D
<snusnu> hehe
<snusnu> to be fair, it doesn't yet implement all the api previously implemented (mostly session integration)
<snusnu> but, it adds EV/EC ;)
<mbj> snusnu: Session is not that complex.
<mbj> snusnu: I'd love to resurrect my rom session and proove its injectable :D
<snusnu> mbj: btw, i'm ready for a skype call in like 5min, worksforyou?
<mbj> snusnu: jo
jgaskins has joined #rom-rb
<snusnu> mbj: btw, i'm not even sure if my spike has fewer loc, i actually nuked all existing specs, so a pure additions/removals comparison probably is everything else but fair
<mbj> snusnu: heh
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
CraigBuchek has quit [Quit: CraigBuchek]
irclogger__ has quit [Remote host closed the connection]
irclogger__ has joined #rom-rb
CraigBuchek has joined #rom-rb
postmodern has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
jgaskins has joined #rom-rb
jgaskins has quit [Quit: This computer has gone to sleep]
breakingthings has quit [Ping timeout: 245 seconds]
breakingthings has joined #rom-rb
CraigBuchek has quit [Quit: CraigBuchek]
dkubb has joined #rom-rb
<dkubb> good morning
<dkubb> mbj: ahh, I see you added Ducktrap::Node::Identity, was that a result of the discussion between snusnu and I yesterday?
<snusnu> dkubb: heh, mbj and me are on a skype call right now, mbj coded it while we're talking (about it ;)
<dkubb> hehe
<dkubb> snusnu: so I guess that'll allow for the default type to be Object, and for it to simply pass-through any objects without transformation?
jgaskins has joined #rom-rb
<mbj> dkubb: will be replaced with: Ducktrap::Node::Block.new([attribute.primitive_check, mappers
<mbj> no conditional anymore.
<dkubb> ahh nice
<dkubb> no separation of Simple and Typed, everything can just be an Attribute
<dkubb> oh I guess it could be Simple, since there are other kinds of Attributes.. EV and EC
snusnu has quit [Quit: Leaving.]
<mbj> dkubb: Lets do some pairing later the week when my morpher refactoring for ducktrap is through.
<mbj> dkubb: I think I'm exploring a very new domain, and I like how evaluators can be "plain", and how they can be transformed to tracing...
<mbj> cc snusnu
<dkubb> sure
snusnu1 has joined #rom-rb
<snusnu1> hey dkubb
<snusnu1> dkubb: thx for giving the spike a review! i fixed lowest hanging fruits, and will tackle the remaining ones after dinner
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
<dkubb> mbj: how well is ducktrap mutation tested?
<snusnu> dkubb: 100%
CraigBuchek has joined #rom-rb
<mbj> dkubb: It was 100% tested 2-3 month ago.
<mbj> dkubb: The code did not changed, but mutant was improved.
<mbj> dkubb: Running with current mutant, posting number in seconds.
<mbj> *minutes :D mutant is not THAT fast ;)
<mbj> dkubb: I expect the new mutant implementation "morpher" to be 50% in size of LOC of original ducktrap.
<dkubb> oh wow
<dkubb> mutant implementation? you mean with an ast?
<mbj> dkubb: │Coverage: 95.71%
<mbj> dkubb: BUT ducktrap was tested 100% with the old rspec strategy that was build on files.
<mbj> dkubb: I think 4% are false positives where I misnamed the describe / context blocks for the new strategy.
<mbj> dkubb: And only 0.29% are REAL new mutants.
<mbj> dkubb: To bad mutcov.org is not online already, and has stats :D
<mbj> dkubb: Mhh, some checks show mutant got 5% better :D
<mbj> dkubb: Checked 10 random locations and only 2 false positives because of naming.
<mbj> dkubb: Lets say it this way: ducktrap master should be more stable than the ruby stdlib that is not 95% mutaiton covered ;)
<dkubb> I love how mutant gets better and makes our code better over time
<dkubb> we're constantly raising the bar!
<mbj> yeah
<mbj> dkubb: most of the mutations are in op assign stuff ||= += etc.
<mbj> dkubb: That 50% is easy to explain.
<mbj> dkubb: Before I had n nodes with n times tracking behavior.
<mbj> dkubb: But now I'll have n nodes, and one universal tracker.
<mbj> dkubb: So I'll do this (nontracking) node(node(node), node(node))
<mbj> dkubb: and tracking: tracker(node(tracker(node), tracker(node), tracker(node)))
<mbj> dkubb: That tracker seems to be able to be generic.
<mbj> dkubb: So a nontracking evaluator (build from an morpher ast) will allocate no intermediary objects.
<mbj> dkubb: A tracking evaluator will allocate an object for each node visit.
<mbj> dkubb: vanguard will add special named nodes, and these can be used to generate human readable error messages, vanguard will obviousely use the tracking evaluators.
<mbj> dkubb: An input sanitizer for a public fancing API would use a hybrid mode.
<mbj> dkubb: A non tracking evaluator (for speed), but in case of failure redo with tracking one and log error tree.
<mbj> dkubb: The ducktrap error trees (regardless how crappy they are currently) save a lot of time in debuggin and operations.
<mbj> dkubb: morpher will provide 2 kinds of nodes.
<mbj> dkubb: one transforming node kind. and a predicate node kind.
<mbj> dkubb: predicate nodes cant "fail"
<mbj> dkubb: but transformers can fail.
<mbj> dkubb: Special transforming guard nodes will only allow the transformation to continue if a predicate the guard transformer node is made of evaluates to true (or false, depending on node direction).
<mbj> dkubb: Ducktrap is currently to complex because I did not made the distinctio between predicate nodes and transforming nodes.
<mbj> dkubb: gonna go home, maybe online later.
<dkubb> k, ttyl
<mbj> dkubb: We need a memo bot in this channel ;) I'd love to discuss my morpher idea more.
<mbj> dkubb: One last note: A typed morpher can be made of a morphing tree, with a predicate describing the result type. Ideally types can be added via this recursion and no external libs ;)
<mbj> typed_morpher = TypedMorpher.new(an_untyped_tree_for_morphing, an_untyped_predicate)
<mbj> where predicates always return true/false obviousely #typedtofast
<dkubb> one of the things I did in axiom is each function returns a specific type
<dkubb> so you have your predicate nodes that return a boolean type, and your transforming nodes that take one kind of type, and return another type (or the same type in a different format)
<dkubb> I'm able to chain things because of this
<dkubb> so I can do: string_attribute.length.gte(5).and(string_attribute.length.lte(10))
<dkubb> length returns an integer, which allows gte. gte returns a boolean, so it allows and, etc
<mbj> dkubb: We talked about this. And I'll try to archive the same.
<mbj> AFAIK that predicates system will be able to substitute axiom-types
<dkubb> but I can also use it for transformation, eg: string_attribute.to_integer.gt(1)
<dkubb> a predicate system would probably use axiom-types or something like it
<mbj> I'd have no problem to include axiom-types support. But I'll try to make it self-hosting. For *fun*.
<dkubb> I need to extra axiom-logic
<mbj> dkubb: What I plan would superseed axiom-logic.
<dkubb> yeah, you'll learn a bunch first, but after that we should try to close the gap
<mbj> plan != will-happen-soon :D
<mbj> dkubb: BTW decoupling DSL from evaluators via an AST as intermediate representation works great.
<mbj> I'd suggest to write a generic "DSL-parser-that-returns-AST" some time.
<mbj> Getting sick of writing DSLs.
<mbj> There was a guy with a simpilar project in this channel, need to find his repo.
<mbj> DSL -> AST -> Domain-Object-Tree
<mbj> Sometimes DSL -> Domain-Object-Tree is 1:1, but in reality stuff occurs :D
<mbj> dkubb: finally have to run, cu!
<mbj> dkubb: Lets talk soon, after I pushed my reimplementation spike.
mbj has quit [Quit: leaving]
<dkubb> yeah, I'll bbl too
dkubb has quit [Quit: Linkinus - http://linkinus.com]
zekefast has quit [Quit: Leaving.]
zekefast has joined #rom-rb
snusnu has quit [Quit: Leaving.]
mbj has joined #rom-rb
CraigBuchek has quit [Quit: CraigBuchek]
mbj has quit [Quit: leaving]
snusnu has joined #rom-rb
dkubb has joined #rom-rb
mbj has joined #rom-rb
snusnu1 has joined #rom-rb
snusnu has quit [Ping timeout: 264 seconds]
jgaskins has quit [Quit: This computer has gone to sleep]
breakingthings has quit []
postmodern has quit [Quit: Leaving]
<mbj> snusnu1: snusnu, JFYI Ducktrap::Node::Noop is EXACTLY the same ass Ducktrap::Node::Identity. I dont know that code base very well after focusing on morpher ;)
bf4 has quit [Ping timeout: 240 seconds]
irclogger__ has quit [Ping timeout: 272 seconds]
snusnu1 has quit [Quit: Leaving.]
snusnu has joined #rom-rb
<snusnu> mbj: lol
<snusnu> mbj: Identity is the better name tho?
mbj has quit [Ping timeout: 246 seconds]
<dkubb> identity is the generic name for a function which returns the arguments it was provided
CraigBuchek has joined #rom-rb
bf4 has joined #rom-rb
irclogger__ has joined #rom-rb
CraigBuchek has quit [Client Quit]
irclogger__ has quit [Ping timeout: 248 seconds]
bf4 has quit [Ping timeout: 264 seconds]