fkchang has quit [Ping timeout: 260 seconds]
lovclrtxt has joined #opal
lovclrtxt has quit [Remote host closed the connection]
adambeynon has joined #opal
fntzr has joined #opal
GitHub155 has joined #opal
<GitHub155> opal/master 78a2cc6 Adam Beynon: Group all Encoding methods together in corelib/encoding.rb
<GitHub155> [opal] adambeynon pushed 1 new commit to master:
GitHub155 has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1251 (master - 78a2cc6 : Adam Beynon): The build was fixed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
GitHub0 has joined #opal
<GitHub0> opal/master d453167 Adam Beynon: Fix bug with parsing method calls for 'special'
<GitHub0> [opal] adambeynon pushed 1 new commit to master:
GitHub0 has left #opal [#opal]
travis-ci has joined #opal
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1252 (master - d453167 : Adam Beynon): The build passed.
GitHub36 has joined #opal
<GitHub36> opal/master 0c883ef Adam Beynon: Add CallNode#add_special to make it easier to register special methods
GitHub36 has left #opal [#opal]
<GitHub36> [opal] adambeynon pushed 1 new commit to master:
travis-ci has joined #opal
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] opal/opal#1253 (master - 0c883ef : Adam Beynon): The build passed.
<travis-ci> [travis-ci] Build details :
GitHub127 has joined #opal
GitHub127 has left #opal [#opal]
<GitHub127> opal/master 428b89e Adam Beynon: Fix bug in generated code for deconstructed block args
<GitHub127> [opal] adambeynon pushed 1 new commit to master:
kludge` has quit [Ping timeout: 272 seconds]
kludge` has joined #opal
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1254 (master - 428b89e : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
GitHub15 has joined #opal
<GitHub15> opal-rspec/master 7bea4d0 Adam Beynon: Update rspec gems to use latest master
<GitHub15> [opal-rspec] adambeynon pushed 1 new commit to master:
GitHub15 has left #opal [#opal]
GitHub69 has joined #opal
<GitHub69> [opal] adambeynon pushed 1 new commit to master:
<GitHub69> opal/master 2295674 Adam Beynon: Allow gvars to be lhs of mass-assignments
GitHub69 has left #opal [#opal]
GitHub187 has joined #opal
<GitHub187> opal/master 89296d5 Adam Beynon: Fix for reserved js keywords to be used as block names in methods
<GitHub187> [opal] adambeynon pushed 1 new commit to master:
GitHub187 has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1256 (master - 89296d5 : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
meh` has joined #opal
GitHub42 has joined #opal
<GitHub42> [opal-jquery] adambeynon deleted native at 9e02efd:
GitHub42 has left #opal [#opal]
<meh`> adambeynon, hey
<adambeynon> hi meh` - was at lunch
<meh`> adambeynon, I think it's time to cleanup the runtime
<meh`> especially the stuff that gets aliased in the scope and the one that doesn't
<meh`> I'd rather see an explicit $opal.scope than $scope
<meh`> and I don't think it will add any overhead once it's interpreted decently
<adambeynon> $scope needs to be reassigned inside each class/module
<meh`> I see
<meh`> then that one makes sense ◕ ◡ ◔
<meh`> are all the aliased ones reassigned?
fntzr has quit [Ping timeout: 248 seconds]
<meh`> also I'm not sure I get what's the point of having Opal.$yield1 and Opal.$yieldX
<adambeynon> meh`: which aliased ones?
<adambeynon> $scope ?
<meh`> $breaker, $slice and $klass
<adambeynon> ah no. they are used just once
<adambeynon> set at the top of the file
<meh`> yeah
<meh`> that's what I'm saying
<meh`> it makes me cringe to see Opal.$yieldX and $breaker
<meh`> it's all or nothing
<meh`> also Opal.$yieldX is inconsistent with the other helpers
<meh`> I'll work on a branch for the cleanup
GitHub172 has joined #opal
GitHub172 has left #opal [#opal]
<GitHub172> opal/master 2dd4437 Adam Beynon: Fix JSON.from_object() to use options hash
<GitHub172> [opal] adambeynon pushed 1 new commit to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1257 (master - 2dd4437 : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
GitHub67 has joined #opal
<GitHub67> opal/master e390bc6 Adam Beynon: JSON.from_object should pass in js object for literals
GitHub67 has left #opal [#opal]
<GitHub67> [opal] adambeynon pushed 1 new commit to master:
<adambeynon> meh`: Im rewriting a lot of runtime now
<adambeynon> most properties are going to be on an object
<adambeynon> _klass.__info__
<adambeynon> or something like that
GitHub43 has joined #opal
GitHub43 has left #opal [#opal]
<GitHub43> opal-jquery/master 8e5432d Adam Beynon: Run specs using opal master
<GitHub43> [opal-jquery] adambeynon pushed 1 new commit to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] opal/opal#1258 (master - e390bc6 : Adam Beynon): The build passed.
eventualbuddha has joined #opal
<meh`> adambeynon, oh ok, I'll leave that to you then
<meh`> adambeynon, can I have this merged in the meantime?
<meh`> I'm fixing up enumerable
GitHub117 has joined #opal
<GitHub117> [opal-jquery] adambeynon pushed 1 new commit to master:
<GitHub117> opal-jquery/master 257c0d9 Adam Beynon: Slight cleanup
GitHub117 has left #opal [#opal]
<meh`> adambeynon, also I still think those properties should have a prefix that isn't _
<meh`> _ is valid in an instance variable
<meh`> it's a bad idea
<meh`> I'd go with $$klass
<meh`> adambeynon, and can $yieldX be renamed to yield?
<adambeynon> meh`: no :( we had that until I realised it was breaking some older browsers
<adambeynon> ie7/8 and co
eventualbuddha has quit [Ping timeout: 260 seconds]
<meh`> oh
<meh`> fugg
<adambeynon> as for the diff, if the specs are passing, then it looks fine to me
<meh`> Opal is an object right?
<meh`> not a function
<adambeynon> yeap, and Object. just so happens to be the top scope as well
<meh`> we could call it or something
<meh`> in the end it's to call a block
<meh`>, arguments) looks good to me
<meh`> and that cleans up a lot of Enumerable
<adambeynon> meh`: I use as a debug approach in my apps
<meh`> to do what?
<adambeynon> like .send(), but it sets up lots of Error.prototype swizzling and stack tracing
<meh`> do we have an Opal.send?
<adambeynon> yeap
<adambeynon> on master
<meh`> I see
<adambeynon> actually, been there a while
<adambeynon> and blockSend()
<adambeynon> or sendBlock
<adambeynon> ... one of the two
<meh`> block_send
<meh`> couldn't you override Opal.send?
<meh`> instead of using
<meh`> adambeynon, we should have an Opal.debug.send if anything
<adambeynon> meh`: how crucial is method_missing on classes/modules, and not just objects
<meh`> adambeynon, very crucial
<meh`> I use it in lissio
<meh`> what do you have in mind?
<adambeynon> meh`: I'd like to go back to using functions as classes
<meh`> how come?
<adambeynon> hmmm, might be easier to see if that could be done all inside runtime.js
<adambeynon> and have another runtime for function based classes
GitHub109 has joined #opal
<GitHub109> opal/master c5f3384 meh: Support function arguments in Opal.$yieldX
GitHub109 has left #opal [#opal]
<GitHub109> [opal] meh pushed 1 new commit to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] opal/opal#1259 (master - c5f3384 : meh): The build passed.
<meh`> adambeynon, is there a way to have the if check kick in without an actual if?
<meh`> in Enumerable
<meh`> if (value === false || value === nil) {
<meh`> this can go wrong since it's not the actual if check
<meh`> this would be a good candidate really
<meh`> if (#{Opal.truthy(`value`)})
<meh`> or falsy
<meh`> and it gets inlined
<meh`> I'll comment on the helpers issue
<meh`> adambeynon, updated the issue to be more general
elia has joined #opal
elia has quit [Quit: Computer has gone to sleep.]
eventualbuddha has joined #opal
<meh`> adambeynon, also yeah, the current if compilation is wrong
<meh`> >> :ok unless `new Boolean(false)`
<meh`> => nil
<meh`> => "ok"
<meh`> >> :ok unless `false`
<DouweM> note that it works the same in pure JS
<meh`> DouweM, yes, that is exactly the problem :)
<DouweM> I know, just pointing out it's not a problem inherent to Opal ;)
<DouweM> but yeah, we'd need to make if a little more intelligently
<DouweM> *intelligent
<meh`> >> false.tap { |s| break 42 if s }
<meh`> => 42
<meh`> >> false.tap { |s| puts s.inspect; break 42 if s }
<meh`> false
<meh`> => 42
<DouweM> yeah, that's bound to cause trouble
<adambeynon> 32 specs fail when fixing the compiler issue
<adambeynon> thats a lot of false positivies
<meh`> adambeynon, I'm looking into it
<meh`> I have a good enough idea
<meh`> (just tested on IE6 to verify it works)
<adambeynon> obj !== nil && (obj !== false && obj._isBoolean)
<meh`> adambeynon, no, that one is too slow
<adambeynon> too slow?
<meh`> I'm benchmarking if mine is faster
<meh`> yes adambeynon
<meh`> obj._isBoolean is 96% slower
<meh`> gimme a few
GitHub164 has joined #opal
GitHub164 has left #opal [#opal]
<GitHub164> [opal] adambeynon pushed 1 new commit to master:
<GitHub164> opal/master 889c69b Adam Beynon: Move Encoding helper into corelib from spec_helper
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1260 (master - 889c69b : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<meh`> adambeynon, without the first === true the literal true case is as slow as the Object ones
<meh`> although it makes literal false slower, where before we have literal false faster
<meh`> adambeynon, ping, having a weird problem with my patch
<adambeynon> meh`: whats happening?
<meh`> Building build/specs.js...
<meh`> NoMethodError: undefined method `join' for File
<meh`> adambeynon, how can I compile a fragment of Ruby?
<meh`> just the fragment
<meh`> without having all the runtime and corelib stuff
<adambeynon> bundle exec bin/opal -c " 1, 2, 3"
<adambeynon> it also takes a file
<meh`> is opal -e broken?
<adambeynon> meh: works here for me
<adambeynon> whats it outputting?
<meh`> Opal::CLIOptions.inspect
<meh`> adambeynon, do I need to rerun bundle update if I make changes to the compiler?
<adambeynon> meh`: nope
<adambeynon> I cant work out why its inspecting
<adambeynon> og
<adambeynon> I see
<adambeynon> erm, oops
<meh`> I don't get this bug :|
<meh`> also the indentation is broken in that if else
eventualbuddha has quit [Ping timeout: 252 seconds]
GitHub48 has joined #opal
<GitHub48> opal/master e735812 meh: DRY JSON.parse and JSON.from_object
GitHub48 has left #opal [#opal]
<GitHub48> [opal] meh pushed 3 new commits to master:
<GitHub48> opal/master e3df0a0 meh: Remove String#getbyte from string.rb, it's in encoding.rb
<GitHub48> opal/master 9136c99 meh: Keep all helpers under Opal::
<adambeynon> meh`: what is the benefit of those helpers?
<adambeynon> truthy/falsy in opal.rb
<meh`> adambeynon, did you read the inlined helpers issue?
<adambeynon> how is if Opal.truthy?(foo); end
<adambeynon> better than if foo; end
<meh`> adambeynon, it's not for Ruby code, it's for inlined js
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1261 (master - e735812 : meh): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
<meh`> adambeynon, in Enumerable there are various checks that depend on truthiness
<meh`> adambeynon, but they are written as is, so they don't change with the compiler
<meh`> and interpolating an if with an inlined js again is ugly
<meh`> the point of the Opal:: helpers is to be inlined to keep the speed
<meh`> and make the inlined code clearer
<meh`> and less prone to staleness
<meh`> adambeynon, do you see anything wrong with this?
<adambeynon> meh`: do you still have a link to that performance test
<adambeynon> of using a function call
<adambeynon> (just for reference)
<meh`> adambeynon, yes, wait a sec
<meh`> the function is slightly slower
<meh`> adambeynon, and this is the one used in the diff above
<adambeynon> meh`: Yeah. could be useful for a debug mode though
<meh`> adambeynon, with the diff, on `if` true is faster to be checked, on `unless` false is faster to be checked
<meh`> just invert the results
<meh`> I get 58% slower on false, and 3% slower on true
<meh`> but correctness is better than speed in this case imho
<adambeynon> of course
<adambeynon> I think using a runtime helper
<adambeynon> $truthy(value)
<adambeynon> could be a way to go in development mode
<adambeynon> then, for production, a little compiler switch and boom
<adambeynon> uglier code
<adambeynon> but fast
<meh`> yes
<adambeynon> back in a couple of hours
<adambeynon> el classicooo
adambeynon has quit [Quit: ["Textual IRC Client:"]]
DouweM has quit [Read error: Connection reset by peer]
DouweM has joined #opal
adambeynon has joined #opal
<adambeynon> meh`: with that diff you showed earlier, its expected that some specs will fail
<adambeynon> I think they are passing currently, but shouldnt be passing
<adambeynon> (due to new Boolean(false) !== false)
<meh`> adambeynon, oh
<adambeynon> meh`: unless they have been fixed in the meantime anyway...
<adambeynon> that is based on about 3 weeks ago
<adambeynon> it was around 20 failing
<adambeynon> actually, thats not quite right
<adambeynon> that was when I fixed s(:not)
<adambeynon> which does the same
<adambeynon> but all the be_true and be_false checks use that a lot
<meh`> adambeynon, yeah, I guess my knowledge about the internals isn't enough to look into it
<adambeynon> meh`: I might do the fix now
<meh`> just keep the diff around or the method used so we don't have to benchmark it all again
<meh`> that would be awesome :D
<adambeynon> yeah
<meh`> adambeynon, also I'm fixing Enumerable if you haven't seen
<meh`> it's all broken
<meh`> and I added some other helpers
<meh`> just a note, I don't see them as unchanging if you don't want to go the inlining helpers way
<meh`> but you can see it makes the code way easier to work with
<meh`> and less prone to errors because of changes in the compiler/runtime
<adambeynon> meh`: well, if we add them I think its best to add as few as possible
<meh`> adambeynon, I agree
<meh`> I'm adding the ones that are pervasive
<adambeynon> meh`: sure, sounds good
<meh`> and really end up being a "what the fuck is going on"
<adambeynon> lol
<adambeynon> always fun
<adambeynon> meh`: am I treading on your toes by doing this false/nil compiler stuff?
<meh`> adambeynon, not at all
GitHub185 has joined #opal
<GitHub185> [opal] meh pushed 6 new commits to master:
GitHub185 has left #opal [#opal]
<GitHub185> opal/master 8a5a1bf meh: Cleanup and compliancy fixes for Enumerable#any?
<GitHub185> opal/master 9409609 meh: Cleanup and compliancy fixes for Enumerable#collect
<GitHub185> opal/master c472744 meh: Cleanup and compliancy fixes for Enumerable#all?
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1262 (master - 5dc4848 : meh): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
GitHub186 has joined #opal
<GitHub186> opal/master db85d65 Adam Beynon: Fix for eval option on bin/opal
GitHub186 has left #opal [#opal]
<GitHub186> [opal] adambeynon pushed 1 new commit to master:
shurizzle has joined #opal
travis-ci has joined #opal
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1263 (master - db85d65 : Adam Beynon): The build passed.
<shurizzle> l'hai già scaricato quello di mc cavallo?
<shurizzle> ops
<meh`> adambeynon, something's broken with yieldX
<adambeynon> meh`: in which scenario ?
<meh`> Enumerable#detect
<meh`> I'm trying to fix it
<meh`> >> { |x| x.yield 1, 2; x.yield 3, 4, 5; x.yield 6, 7, 8, 9 }.find {|a| puts a.inspect }
<meh`> [1, 2]
<meh`> 1
<meh`> [1, 2] is `arguments`
<meh`> 1 is a.inspect
<meh`> >> { |x| x.yield 1, 2; x.yield 3, 4, 5; x.yield 6, 7, 8, 9 }.to_a
<meh`> => [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
<meh`> so it's not the enumerator being broken
<meh`> var value = Opal.$yieldX(block, arguments);
<meh`> this is the call
<adambeynon> could be down to function.length
<meh`> let me check
<adambeynon> a proc using a splat shows up the same length as a proc with 1 arg
<adambeynon> so we could be wronly assuming the arity of a block
<meh`> it sees it as 1
<meh`> just checked
<meh`> but you know, it's ok if it sees the splat as one, it has the same effect on multi yield
<meh`> it must be something else
<meh`> adambeynon, I'm not following
<meh`> adambeynon, this is the current code I'm working with
<adambeynon> well, yieldX would see the #each block as having arity 0
<meh`> adambeynon, why?
<adambeynon> im confusing myself now
<meh`> yeah
<meh`> it gets it from block
<meh`> the one passed to #detect
<adambeynon> of course, yeah
<adambeynon> hmm
<adambeynon> tried console.log inside #detect to see exactly what is getting passed in?
<adambeynon> bin/opal file.rb
<adambeynon> works well for testing small things
<meh`> adambeynon, yes
<meh`> I showed you earlier
<meh`> arguments is [1, 2]
<meh`> arity is 1
<meh`> and 1 is passed
<meh`> but I'll console log arguments inside the block
<adambeynon> wait… Opal.$yieldX(block, arguments);
<meh`> to see what happens
<adambeynon> arguments._isArray === false
<adambeynon> arguments isnt an array
<meh`> adambeynon, I fixed that earlier
<meh`> adambeynon, now it converts arguments
<adambeynon> shouldnt that check be before the `if (block.length > 1 && args.length == 1) {` line
<adambeynon> surely that logic applies if the args is an arguments object as well
<meh`> yes, it does, it works in other situations
<meh`> I just used it all over the place in the first fixed methods
<meh`> I think
<meh`> I know
<meh`> 0 examples, 722 failures (time taken: 0.20600008964538574)
<meh`> that didn't go well lol
<adambeynon> lol, errrr
<adambeynon> we also lost 2000 examples along the way
<adambeynon> it ran a lot quicker though ;)
<meh`> heh
<meh`> ok, something in $yieldX usage is definitely broken
<meh`> unless it's passing something that acts like a block but isn't
<meh`> probably nil?
<meh`> no, dunno
<meh`> nope
<adambeynon> nil has a .call and .apply property
<adambeynon> but typeof "object"
<meh`> yeah
<meh`> the errors are absurd
<meh`> Exception: 'undefined' is not a function (evaluating ', self)')
<adambeynon> thats from passing in a block?
<adambeynon> very weird error..
<meh`> I don't even know
<meh`> gimme a sec
<adambeynon> is that through rubyspecs?
<meh`> I'll show you
<meh`> adambeynon, this is the current one, and it works
<meh`> "works", no weird errors is what I eman
<meh`> mean
<meh`> adambeynon, this is the version that raises the weird errors
<meh`> adambeynon, basically, our yieldX is broken
<meh`> it works in case of splats because it destructures the arguments itself
<meh`> somehow it magically works in other cases
<meh`> I'm kind of puzzled
<meh`> where does the destructuring happen?
<adambeynon> all a splat block does is do splat = $, index)
<meh`> adambeynon, what about proc { |x| x }
<adambeynon> function(x) { return x }
<adambeynon> blocks dont deconstruct
<adambeynon> thats what yieldX is for
<meh`> yeah
<meh`> but it doesn't do it recursively, does it?
<adambeynon> meh`: well, proc { |a, (b, c)| … }
<adambeynon> that works
<meh`> yeah
<meh`> it's all broken
<meh`> it works for whatever reason
<meh`> but it shouldn't
<adambeynon> lol
<adambeynon> fully works
<adambeynon> or partially works
<meh`> partially
<meh`> like in this case, it doesn't work for whatever reason
<adambeynon> which cases does it not work?
<meh`> I'm puzzled it works in other cases
<meh`> this one :D
<meh`> the find one
<meh`> ok wait
<meh`> wait wait
<meh`> everyone calm down
<meh`> this is... weird
<meh`> adambeynon, I think yield is compiling to the wrong thing
<meh`> not
<meh`> adambeynon, ok, I think our $yieldX is broken, and our Array#each is broken, and they work because they're both broken
ryanstout has joined #opal
<adambeynon> Array#each looks ok to me..
<adambeynon> which case looks wrong?
<meh`> adambeynon, no
<meh`> BEHOLD
<meh`> adambeynon,
<adambeynon> errr
<meh`> I'll try fixing Array
<meh`> and breaking it with #find too
<meh`> then we can fix the real issue
<adambeynon> meh`:
<adambeynon> Array#each gives me the same results as ruby
<meh`> adambeynon, yes
<meh`> adambeynon, but it doesn't use $yieldX
<meh`> which never showed why and if it was broken
<adambeynon> but its still right..
<meh`> ok, you're right
<meh`> I made Array#each use $yieldX and it works
<meh`> even with find
<meh`> now I'm even more confused
<adambeynon> everything works?
<meh`> adambeynon, no, it works with Array
<meh`> but not with yield or
<meh`> so it fails with normal enumerables?
<meh`> how is yield compiled?
<meh`> it's compiled to $yieldX
<meh`> what is going on
<adambeynon> meh`: sometimes it uses yield!
<adambeynon> bundle exec bin/opal -c "yield 42"
<adambeynon> $opal.$yield1($yield, 42)
<meh`> in this case it uses yieldX
<adambeynon> meh`: brb
adambeynon has quit [Quit: Textual IRC Client:]
adambeynon has joined #opal
GitHub21 has joined #opal
<GitHub21> opal/master a02f9e6 meh: Cleanup Array#collect
GitHub21 has left #opal [#opal]
<GitHub21> opal/master bebe8bc meh: Cleanup Array#each
<GitHub21> [opal] meh pushed 4 new commits to master:
<GitHub21> opal/master 9ca6b80 meh: Cleanup Array#collect!
GitHub112 has joined #opal
<GitHub112> [opal] meh pushed 1 new commit to master:
GitHub112 has left #opal [#opal]
<GitHub112> opal/master a689a4c meh: Cleanup Array#empty?
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1264 (master - 47e356e : meh): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1265 (master - a689a4c : meh): The build passed.
travis-ci has left #opal [#opal]
<adambeynon> meh`: progress?
<meh`> adambeynon, no
<meh`> adambeynon, but I just noticed that #each doesn't work correctly with yield
<meh`> while it does with Array
<adambeynon> #each as in Enumerable#each?
<meh`> yes
<meh`> adambeynon, take that as reference
<meh`> >> { |x| puts x.inspect }
<meh`> 1
<meh`> 6
<meh`> 3
<meh`> the compiled yield and the do the wrong thing somehow
<meh`> $opal.$yieldX($yield, [1, 2])
<adambeynon> compiled yield does the same here for me under opal and ruby
<meh`> oh shit
<meh`> you're right
<meh`> count me extra confused
<meh`> ok
<meh`> I get it
<meh`> disregard everything
<meh`> detect somehow is different
<meh`> adambeynon, should I use Opal. or $opal.?
<adambeynon> meh`: thats the thing, all? and any? pass all the specs, its just detect() that doesnt
<adambeynon> meh`: $opal
<meh`> adambeynon, ok
<meh`> ok
<meh`> all specs pass now
<meh`> fuck it, it was a false bug all along
<meh`> least astonishment my ass
<adambeynon> a false bug?
<adambeynon> false !== false ?
<meh`> adambeynon, no, a false in the literal sense
<meh`> not a bug
<meh`> it was all behaving correctly
<meh`> what was misbehaving was #detect
<meh`> for some absolutely retarded reason, it doesn't yield normally
<meh`> it does destructuring before the call
<meh`> I don't even want to know why
<adambeynon> oh
<adambeynon> I see
<adambeynon> so changing it to `value = $opal.$yieldX(…)` to match the others?
<meh`> no
<meh`> it becomes block(#{Opal.destructure(`arguments`)})
<meh`> I was doing the yield, and it was wrong
<ryanstout> quick question, if I wanted to have eval work on the client, I have to include the parser right? is that just a require?
<adambeynon> why wouldnt it just be the same as all? and any?
<adambeynon> ryanstout: yeap
<adambeynon> require "opal-parser"
<adambeynon> which adds Kernel#eval
<meh`> adambeynon, I have no clue
<ryanstout> @adambeynon thanks a bunch
<meh`> ryanstout, keep in mind the parser is bigger than opal itself
<adambeynon> meh`: seems to work here for me
<meh`> (which is hilarious)
<meh`> adambeynon, yes yes, I was cleaning up the code, it was my version that wasn't working
<meh`> wait
<meh`> I think
<adambeynon> why? we are only a little bigger than coffeescript compiler, which seems good going to me
<meh`> it might still be bugged
<meh`> I forgot the bug I was trying to fix in the first place
<meh`> yeah
<meh`> and I haven't fixed it
<meh`> this shit is going to kill my brain
<meh`> adambeynon, { a: 3, b: 4 }.find {|a, b| b == 4 } this doesn't work on opal
<meh`> but if I fix that case, I break the others
<meh`> this means either $yieldX isn't doing the right thing
<meh`> or something else is going on
<meh`> I'm for $yieldX hitting an edge case
<meh`> or
<meh`> or
<meh`> I think I got it
<meh`> it's Hash#each that's broken
<meh`> otherwise the rest wouldn't work
<meh`> nope, I don't get it
<adambeynon> meh`: { a: 3, b: 4 }.find {|a, b| b == 4 } is causing me a "cannot find param" error
<meh`> adambeynon, on opal?
<adambeynon> oh no
<adambeynon> my bad
<adambeynon> bad copy/paste
<adambeynon> no
<adambeynon> its still saying that
<adambeynon> er
<adambeynon> no
<meh`> fixed.
<adambeynon> 2 bad copy.pastes
<meh`> I'm fairly sure I just fixed it
<meh`> specs pass
<meh`> >> { a: 3, b: 4 }.find {|a, b| b == 4 }
<meh`> => ["b", 4]
<meh`> and the result is right
<meh`> fuck it
<meh`> tonight I won the battle
<adambeynon> \o/
<meh`> let's run the specs another time just to be sure
<adambeynon> hah
<meh`> yeah
<meh`> all green
<meh`> here it comes
GitHub14 has joined #opal
<GitHub14> [opal] meh pushed 2 new commits to master:
<GitHub14> opal/master 87db58a meh: Use $opal instead of Opal
<GitHub14> opal/master ea4d2f0 meh: Cleanup and compliancy fixes for Enumerable#detect
GitHub14 has left #opal [#opal]
* meh` waits for travis-ci to show up
<adambeynon> lol, and it would be a good days work
<meh`> adambeynon, all this compliancy fights are somehow extremely satisfying
<adambeynon> travis is being suspiciously slow ;)
<meh`> yeah
<meh`> I killed it all
<meh`> the changes were too awesome for it to handle
<adambeynon> makes sense
<meh`> >network error while fetching
<meh`> I guess travis is having network issues
travis-ci has joined #opal
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] opal/opal#1266 (master - ea4d2f0 : meh): The build has errored.
<travis-ci> [travis-ci] Build details :
<adambeynon> well, it passes on your machine and myn, so thats good enough for me ^_^
<meh`> now onto #drop
<adambeynon> meh`: i gotta go, ping me if you need any help
adambeynon has quit [Quit: Textual IRC Client:]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1266 (master - ea4d2f0 : meh): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
lupine has quit [Ping timeout: 264 seconds]
elia has joined #opal
elia has quit [Ping timeout: 268 seconds]
GitHub109 has joined #opal
<GitHub109> opal/master 0d7dc0f meh: Cleanup and compliancy fixes for Enumerable#drop_while
<GitHub109> opal/master 5471590 meh: Cleanup and consistency fixes for Enumerable#drop
GitHub109 has left #opal [#opal]
<GitHub109> opal/master a6d458b meh: Cleanup Hash#each
<GitHub109> [opal] meh pushed 5 new commits to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1267 (master - 1bdb2b3 : meh): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
lupine has joined #opal