<mkristian>
I wanted to see these failing tests on master. but this one does not run on 1.7 either
<enebo>
I am condused about the change on 113…the logic is reversed no?
<mkristian>
i.e. is never runs because the method gets defined twice and the Proc.new just needs a block get created
<mkristian>
to get created
<enebo>
mkristian: but you removed the ! in the assert?
<enebo>
mkristian: and the original test was fine I think without the {}
<mkristian>
I was confused as well. but I think it is fine. the assert test if there is block and now it has a block
<mkristian>
but it does not run
blaines has joined #jruby
ddarkpassenger has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ddarkpassenger has joined #jruby
<mkristian>
ArgumentError: tried to create Proc object without a block
<mkristian>
on both master and jruby-1_7
blaines_ has joined #jruby
<enebo>
mkristian: let me get 1.8.7 and see if this was behavior which got dropped
<enebo>
mkristian: if I take your changed snippet and put into a file it does work
<enebo>
class CheckBlockGiven; def self.go() block_given? end; end
<enebo>
p CheckBlockGiven.go(&Proc.new)
<enebo>
I get true back
<enebo>
heh Proc.new{}
<mkristian>
hmm
blaines has quit [Ping timeout: 256 seconds]
ddarkpassenger has quit [Ping timeout: 276 seconds]
<enebo>
mkristian: I have verified we behave the same as MRI2.2 on this and I think 1.9.3 for that matter so this test should just be removed…between MRI and rubyspec I find it impossible to think we do not already have coverage on this
<enebo>
mkristian: but blockless constructor is giving same error on MRI22 as well
<mkristian>
it never ran for some time now - will remove it then
<enebo>
mkristian: interesting 1.8.7 also does not run bare proc.new
tvo has joined #jruby
tvo has joined #jruby
<enebo>
mkristian: so it could be a 1.8.6 or even 1.6.4 (really really early version emulation of jruby)
<mkristian>
enebo, actually I did not look why those tests failed on embedded jruby for those redefined test methods
<enebo>
mkristian: I know you are never bored…but if you ever do get bored…removing tests from test/jruby which are clearly tested by mri or rubyspec would hopefully evventually simplify our testing situation
<enebo>
mkristian: could just be lucky?
<enebo>
mkristian: oh but last definition should win I would think
<enebo>
hmm don't know
<mkristian>
if I start staring at the screen without thinking then I will remember your request
<enebo>
haha
<enebo>
If we all did like 1 file a week we would probably beef up other suites if there are any missing coverage and get rid of another test target
colinsurprenant has quit [Quit: colinsurprenant]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] eregon pushed 4 new commits to master: http://git.io/vqEuv
<JRubyGithub>
jruby/master 096125d Benoit Daloze: Add spec for Module#prepend...
<JRubyGithub>
jruby/master b61eeb1 Benoit Daloze: Be more precise in Module#prepend example
<JRubyGithub>
jruby/master c8f9ee8 Benoit Daloze: [Truffle] Always create a PrependMarker....
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
jruby/jruby-1_7 424661f Christian Meier: removed obsolete, never ran and broken test
<JRubyGithub>
[jruby] mkristian pushed 1 new commit to jruby-1_7: http://git.io/vqEzv
<headius>
they're just having trouble because it's trying to use earlier maven...bees only has up to 3.2.x
<nirvdrum>
headius: Can't use the mvnw wrapper?
<headius>
nirvdrum: that's what I'm changing them to, but with jenkins if you set up a "maven build" you have to pick a maven
<nirvdrum>
Oh, right.
<nirvdrum>
Fun.
<headius>
so they have to be recreated as free-form builds
<headius>
mvnw works fine though
<nirvdrum>
enebo, headius: After seeing some discussion in concurrent-ruby, I'm going to try to get jnr-posix running in Appveyor (Windows CI), unless you have any objections.
<headius>
sounds great
<headius>
do they have a free tier?
<nirvdrum>
For OSS, yes.
<headius>
mkristian: did we do something in the past few days that would make maven 3.3.1 absolutely required?
<headius>
the cloudbees builds were set up to generate poms and then use maven 3.2.x, but they started failing recently saying they need 3.3 to complete
<headius>
only on master
<headius>
just in the past day dist started complaining
<mkristian>
no - it was enebo asking whether we can give nicer error when someone uses an older maven. let's revert this commit from yesterday.
<headius>
enebo: I can't use mvn 3.3.x on 'bees so that error means I have to remake these builds
subbu is now known as subbu|lunch
emakris has quit [Remote host closed the connection]
<mkristian>
headius, 7c7dfb0d3acd53cc027a7c9c1cfd7826eb3b859e is the cause of all the maven trouble - feel free to revert anytime. can not find that conversation from yesterday anymore.
<headius>
ok
<headius>
ahh yes
<headius>
mkristian: I'll take it from here, thanks
<headius>
mkristian: I'm going to make it warn instead
<nirvdrum>
I thought I was going crazy, but nope, thread_safe did switch from minitest to rspec since the last release.
djbkd has quit [Read error: Connection reset by peer]
djbkd has joined #jruby
<headius>
ah-ha, there's a skip enforcement property
<JRubyGithub>
[jruby] nirvdrum pushed 3 new commits to master: http://git.io/vquyK
<JRubyGithub>
jruby/master c1d4d28 Kevin Menard: [Truffle] Untagged passing String#% tags.
<JRubyGithub>
jruby/master bf0ccc2 Kevin Menard: [Truffle] Support the left-justified format modifier.
<JRubyGithub>
jruby/master a5b4bbc Kevin Menard: [Truffle] Added a constant-rewriting hack to support 3rd party code relying on JRuby internals that JRuby+Truffle doesn't support.
JRubyGithub has left #jruby [#jruby]
<enebo>
lopex: that had to have been a change at some point
<lopex>
enebo: wiki says in 2013
<enebo>
lopex: ah so they decided why fight it…cost of maintaining that stuff must be insanely high
<lopex>
yeah
<enebo>
lopex: although mozilla doubled down with servo
<lopex>
is that the one written in rust ?
<enebo>
lopex: they will probably use some amount of original code though
<enebo>
lopex: yeah
<enebo>
TO ALL LURKERS AND MISCREANTS 1.7.21 HAS BEEN RELEASED (not updating topic since rc2 will be out within 24 hours and we don’t list maintenance releases on topic line)
qmx has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to master: http://git.io/vqu9m
<JRubyGithub>
jruby/master 5e4d2f8 Charles Oliver Nutter: Ensure anonymous args get anon form of ArgType. Fixes ##3086.
JRubyGithub has left #jruby [#jruby]
qmx has quit [Changing host]
qmx has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius closed issue #3086: JavaLang::NullPointerException in RubySymbol.javaStringHashCode() http://git.io/vtBNR
<nirvdrum>
But the license is simpler. And it'd cover everything from what I can tell.
<enebo>
nirvdrum: well looks like a unicorn to me
<enebo>
nirvdrum: I mean I hope it is awesome but no code drop until they/it is so far into having something working is kind of weird to me
<nirvdrum>
Agreed. They've missed their own roadmap deadlines. But cygwin does a lot of it, so it's not impossible.
<enebo>
nirvdrum: yeah but cygwin has a public repo showing actual progress
<enebo>
nirvdrum: which in theory means other can help
<nirvdrum>
There seems to be activity from them on the LLVM list and there was Twitter chatter with one of the musl devs.
<enebo>
nirvdrum: but having dealt with their forums I am not sure cygwin people want help :)
<enebo>
LLVM?
<enebo>
for crossplat windows posix api?
<nirvdrum>
I'm guessing just the compiler part of it. But the point was more that they have some form of public activity.
<enebo>
nirvdrum: ah I see…interesting…I would have almost thought they would just bundle mingw or fork it?
<enebo>
nirvdrum: I mean making a full compiler is much more work than just making posix libs
<enebo>
nirvdrum: I am smelling a double rainbow
<nirvdrum>
Oh, yeah. My guess is they were looking at how musl does things & clang.
<nirvdrum>
But I didn't read all the threads.
<enebo>
nirvdrum: well fun thing to follow and who knows it may be the next great thing
<enebo>
nirvdrum: the amount of opaqueness of that page makes me leery but I hope all projects suceed
<enebo>
nirvdrum: god knows Windows needs better posix support
<nirvdrum>
It's a shame. NT had it.
<nirvdrum>
Of course, a lot of the POSIX stuff is dated and Windows has better alternatives. But that's not immediately helpful.
<enebo>
nirvdrum: it is possible MS will start improving things if they are porting stuff off windows to other oses
<enebo>
nirvdrum: I could see windows make a cross-platform lib of their APIs for linux, etc… and be OSS
<enebo>
nirvdrum: then they would target that
<nirvdrum>
Well, the process model is different. That's going to be really hard to reconcile.
<nirvdrum>
And NT's permissions are like a billion times better than RWX.
<nirvdrum>
I guess just "Windows" now.
<nirvdrum>
It's just weird to me that Ruby is that tightly integrated to this stuff.
<enebo>
nirvdrum: well not if you consider Ruby’s history of being an OO Perl
<nirvdrum>
It's just weird to me that Perl is that tightly integrated to this stuff.
<enebo>
nirvdrum: he took lots of ideas of other languages for libraries but for fuck’s sake: sysread, syswrite on IO :)
<enebo>
nirvdrum: Matz admitted at a Euruko to mapping Perl methods into his language so I think he liked how effective perl was but made one which was sane
<nirvdrum>
Heh.
<enebo>
(for any lurkers I was an avid perl user for 10-11 years)
<headius>
I remember
<nirvdrum>
Way back when, I was going to write a Perl -> Win32 exe compiler. But I was in high school and had no idea what I was doing and ActiveState came out.
<headius>
I got to start my career updating gnarly perl scripts for the UMN web team
<enebo>
I went back to a Bayesian spam filter I wrote around the end of my time writing Perl after about 3 years and it looked fucking crazy…
Aethenelle has joined #jruby
<headius>
well technically my first real job was maintaining a web site on an old Apple machine using AppleScript for CGI
<enebo>
I had idioms and it was consistent but the syntax was numbingly scary to me after like 3 years of Ruby
<enebo>
headius: I did not write any of those though
<headius>
enebo: pure Ben
<enebo>
headius: yeah I had a minor career rewriting some of Ben’s programs
<headius>
I spent a portion of each day in his cube just having him explain that code
<enebo>
headius: across more than one job weirdly enough
<nirvdrum>
And why is zsuper the most convoluted thing I've ever encountered?
<enebo>
headius: he enjoyed doing things differently every time…I think he just liked figuring out more ways of doing the same thing
<headius>
heh, just realized we've worked together for nearly 20 years, on and off
<enebo>
nirvdrum: you should not neccesaily look at 9k’s design of zsuper
<enebo>
nirvdrum: we actually work the way you would expect zsuper to work for things like define_method but we do not match MRI
<enebo>
nirvdrum: but I don’t think MRI will ever fix their impl so we should probably behave like them
<enebo>
nirvdrum: subbu did an amazing job of making that work
<nirvdrum>
We have a bug where if the zsuper call is made within a block, we pass up the block arguments, not the containing method's arguments.
<enebo>
headius: yeah life flies by doesn’t it :)
<enebo>
nirvdrum: heh yeah well we can help with that
<headius>
nirvdrum: the zsuper rat hole goes very deep
<enebo>
nirvdrum: really you just need to walk parents until the parent is not a closure scope
<headius>
I assume you can walk frames easily enough to find the original args
<enebo>
nirvdrum: we are too clever and capture all scopes and args at all scopes and pick arg scope in define_method case otherwise walk to method scope
<nirvdrum>
Well it gets shittier than that because the argument could be reassigned and that reassignment needs to be visible as well.
<enebo>
nirvdrum: but define_method is a method so we need to keep all of them until we encounter it
<nirvdrum>
So we end up wrapping the AST nodes to reevaluate them.
<enebo>
nirvdrum: oh yeah you need to retrieve them
<headius>
eesh
<headius>
need to make sure you don't side effect during reeval
<headius>
like for optional args
<nirvdrum>
Yeah.
<nirvdrum>
There be dragons, for sure.
<enebo>
memorize
<enebo>
heh
<enebo>
memoize and then memorize
<enebo>
:)
<nirvdrum>
The wrapper just reads back from the frame, so it's not a full reeval.
<enebo>
Does anyone remember if redo redorces calculation of opt-args?
<nirvdrum>
We just can't walk back up to the parent and take its args node is all.
<enebo>
nirvdrum: so values are still truffle tree nodes?
<headius>
enebo: retry did, redo only works in loops
<enebo>
headius: ah
<enebo>
thanks
<enebo>
nirvdrum: no separate variable?
<nirvdrum>
enebo: Well, we need them to be wrapped up as arg nodes for the super method call.
<headius>
hmm
<enebo>
nirvdrum: sure. I guess I figured you would ujst make a new arg node
<enebo>
or subtree
<enebo>
whatever
<nirvdrum>
Yeah, we do. I mean we can't just take the parent's arg nodes and pass them through.
<enebo>
nirvdrum: yeah you need to sanitize the evaluation away I guess mainly
<nirvdrum>
Yeah. I probably just explained it poorly to start.
<enebo>
nirvdrum: no I just like to loop
<nirvdrum>
I guess as confusing as this is, Proc.new taking its parent's block implicitly has been my biggest WTF thus far.
<enebo>
nirvdrum: my latest was foo(a: 1, :b => 2, c:2) having kwargs hash of {a: 1, c: 2} and final hash argument {b: 2}
<enebo>
I guess in theory this may never happen in anything but weirdly generated code but it was still a weird discovery
<nirvdrum>
Heh.
<nirvdrum>
My experience is someone is (ab)using it somewhere.
<enebo>
crap like def foo(a = def foo; puts 1; end); foo; end; foo; foo is weird as well
<enebo>
zsuper is surprisingly simple to remove confusion of
<enebo>
we could add a keywork zsuper
<enebo>
then super would be super with no args
<enebo>
zsuper would be the special reuse args method
<enebo>
so one dimension of confusion would just melt away
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<nirvdrum>
Except for the weird call by name and call by value differences.
<enebo>
logging out for tonight
<nirvdrum>
Later.
<enebo>
nirvdrum: yeah that is another dimension of confusion but mostly for implementers
enebo has quit [Quit: enebo]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]