dinfuehr has quit [Remote host closed the connection]
jph98 has joined #jruby
ryez has joined #jruby
jph98 has quit [Quit: jph98]
mister_solo has quit [Ping timeout: 252 seconds]
drbobbeaty has joined #jruby
mister_solo has joined #jruby
shellac has joined #jruby
mister_s_ has joined #jruby
mister_solo has quit [Ping timeout: 245 seconds]
keeguon has quit [Quit: keeguon]
keeguon has joined #jruby
skade has joined #jruby
skade has quit [Client Quit]
yosafbridge has quit [Ping timeout: 248 seconds]
vtunka has joined #jruby
skade has joined #jruby
yh has joined #jruby
skade has quit [Read error: Connection reset by peer]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
skade has joined #jruby
vadviktor has quit [Remote host closed the connection]
vadviktor has joined #jruby
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 246 seconds]
<TheBrayn>
how can I install the latest version of jruby (the beta) with rvm?
yosafbridge has joined #jruby
ryez has quit [Ping timeout: 246 seconds]
yosafbridge has quit [Ping timeout: 248 seconds]
pjammer has joined #jruby
yosafbridge has joined #jruby
skade has quit [Read error: Connection reset by peer]
keeguon has quit [Quit: keeguon]
vikaton has joined #jruby
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 264 seconds]
vtunka has quit [Quit: Leaving]
yosafbridge has quit [Ping timeout: 248 seconds]
drbobbeaty has joined #jruby
skade has joined #jruby
keeguon has joined #jruby
rsim1 has joined #jruby
rsim has quit [Ping timeout: 265 seconds]
yosafbridge has joined #jruby
colinsurprenant has joined #jruby
yosafbridge has quit [Ping timeout: 248 seconds]
dinfuehr has joined #jruby
yosafbridge has joined #jruby
dinfuehr has quit [Ping timeout: 246 seconds]
pjammer has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] dzjuck opened issue #2907: Hash#take_while wrong behavior in 1.7.9 http://git.io/vJ1kM
JRubyGithub has left #jruby [#jruby]
shellac has quit [Remote host closed the connection]
pjammer has joined #jruby
marr has quit [Ping timeout: 264 seconds]
nirvdrum has joined #jruby
tcrawley-away is now known as tcrawley
keeguon has quit [Quit: keeguon]
keeguon has joined #jruby
<headius>
hah, the Cameron voice
<headius>
TheBrayn: I really hope you're Tim Bray, because that would be a great nickname
<headius>
TheBrayn: rvm install jruby-9.0.0.0.pre2 should work if rvm has been updated (and maybe if it hasn't)
<headius>
rvm install jruby-head isn't far ahead of that
bbrowning_away is now known as bbrowning
pjammer has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
nateberkopec has joined #jruby
yosafbridge has quit [Ping timeout: 248 seconds]
<nirvdrum>
Well, I got a couple things working for Windows in jnr-posix last night. But the tests make some bad assumptions that are going to require some work to clean up, unfortunately.
yosafbridge has joined #jruby
yh has quit [Ping timeout: 240 seconds]
yfeldblum has quit [Ping timeout: 265 seconds]
yosafbridge has quit [Ping timeout: 256 seconds]
<headius>
I figured the last big push before RC1 would be getting tests running on Windows
<headius>
we've done that for previous big releases
dinfuehr has joined #jruby
<nirvdrum>
The two biggest problems I've encountered are: 1) Windows doesn't let you delete open files; and 2) the private fd field in FileDescriptor is always -1 on Windows.
<nirvdrum>
The first one is annoying, but it's how Windows works. I split the unlink test for a Windows and non-Windows variant.
<nirvdrum>
The second problem is arguably a failing of our test suite. But other than making other jnr calls, I'm not sure how you'd get a FD any other way.
yosafbridge has joined #jruby
dinfuehr has quit [Ping timeout: 256 seconds]
vtunka has joined #jruby
<nirvdrum>
headius: Why doesn't JavaPOSIX implement most of the methods?
<nirvdrum>
Technical reasons? Or someone just didn't get to it?
bjfish2 has joined #jruby
enebo has joined #jruby
havenwood has joined #jruby
yh has joined #jruby
colinsurprenant has quit [Quit: colinsurprenant]
vtunka has quit [Quit: Leaving]
vtunka has joined #jruby
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJ1DZ
<JRubyGithub>
jruby/master 485de9e Brandon Fish: [Truffle] Add Errno::EACCES for File.open
JRubyGithub has left #jruby [#jruby]
<headius>
nirvdrum: at some point they started to get harder to come up with Java equivalents for
<headius>
and we started to rely on native version more
mrmargolis has joined #jruby
subbu has joined #jruby
<enebo>
nirvdrum: you rock out with jnr-posix on windows?
<headius>
ugh..."bug" preventing me from landing this Match refactoring turned out to be a file in cwd that matched one a test tried to load
<headius>
enebo: review?
bjfish2 has quit [Quit: bjfish2]
<enebo>
BUG
<enebo>
headius: testing release bits
<enebo>
headius: so no bug anymore?
<enebo>
headius: send me a link and I will looksee
<enebo>
headius: yeah I just saying I am trying to get it out so I am not in full on review mode
<headius>
yeah no worries, it's not a big deal
<enebo>
hahah buildMatch3
<enebo>
headius: then nirvdrum will follow up and make that consistent
<headius>
hahah
<headius>
yeah I will add a comment there
colinsurprenant has joined #jruby
subbu has quit [Ping timeout: 265 seconds]
<enebo>
headius: yeah looks great. The best part is this puts us under 7bits worth of operations again
<enebo>
headius: well no the best part is this is simpler altogether
<headius>
I'm not sure it's supposed to always dyncall but I didn't really see a reason not to
<headius>
and it obviously simplifies everything
<headius>
yeah MRI has checks for replaced/overridden methods on Regexp, but they also don't have a call site for match
<headius>
enebo: I can only find regexpmatch1 and regexpmatch2 in MRI insns.def but 1 looks like our 3 did
<headius>
their 1 checks if Regexp has methods altered, dyncalling if so
<enebo>
headius: so semantically we may have to split back to two at worst case if something weird falls out
<headius>
their 2 checks if arg is a String and not modified, dyncalling against the pattern if so
<enebo>
headius: of course you reduced interp perf on this but if it is hot we should depend on JIT
pierreatkillbill has joined #jruby
<headius>
the behavioral difference would be if calling String's =~ directly is significantly different than calling Regexp =~ dynamically...I don't think that's the case, since String#=~ just slips the dispatch
<headius>
slips=flips
<enebo>
headius: It is interesting to see how much semantics are affected by the implementation underneath
<headius>
yeah
<enebo>
headius: but there is one unimportant semantic change…it is now visible in JRuby that =~ is being called but not in MRI
<headius>
I almost could have eliminated Match and just used a call
yosafbridge has quit [Ping timeout: 248 seconds]
<headius>
enebo: that's true...it will show up for profiling and tracing
<enebo>
headius: yeah but you still need to mark the scope as updating $~ although you could have made a call and manually difd that during build time rather than letting an instr do it
<headius>
CallBase would just need to see it's =~ or ~ as the method to flag it
<headius>
but yeah
<enebo>
headius: another impl change of this is match is now mark is_call internally
<headius>
I think it will be useful to have it separate since this is one of those explicit $~ cases
<enebo>
headius: but I think this is potentially more correct since it may really end up being a call
<enebo>
headius: well it is always a call now but I mean before
<headius>
what effect does that have on things?
<temporal_>
headius hello
<headius>
temporal_: good day sir
<enebo>
headius: yeah I don’t remember but it cannot be a big deal virtually no scopes don’t contain calls so it won'
<enebo>
t affect scope-level opts
<enebo>
excuse my double negatives :)
<temporal_>
headius I have to port some specific behavior from vert.x 2 jruby integration to vert.x 3 and I am wondering the best way to do it
<temporal_>
headius is it possible to get some explanation and see if there is a better way to do it ?
<headius>
enebo: it looks like we're getting the right opto still... just a frame for $~
<headius>
temporal_: sure, fire away
<headius>
enebo: pushing
<temporal_>
headius there are two specific features, I will start with global variable isolation
marr has joined #jruby
<enebo>
headius: yeah I still would like to somehow decompose regexp into something finer-grained so we can see $~ and if not used eliminate it
<temporal_>
headius the V2 code wraps the verticle in a module and that seems to create isolation with the same ScriptingContainer
<headius>
enebo: if that took the form of explicit load/stores around $~ aware calls it would work
<temporal_>
headius I don't understand how that works actually
<enebo>
headius: yeah I think $~ is solvable unlike $_
<headius>
use objects, they carry per-verticle state, and invoking them is just calling down into the object
<temporal_>
the issue is not the $vertx
<temporal_>
the issue is that each deployed verticle can declare globals
<temporal_>
and they should remain private somehow to each verticle
<enebo>
headius: fuzzily I think there was something about jsr223 and ability to pass in globals as map without having to recreate them
<headius>
temporal_: why
<temporal_>
because that's the wanted behavior :-)
<headius>
to that I say "don't use globals, because Rubyists never use globals in any real apps"
<headius>
temporal_: you can't have that
<headius>
how's that for an answer :-D
<headius>
so the impl itself doesn't depend on globals being isolated, yes?
<temporal_>
so we have this for vert.x 2 and it seems to magically work
<temporal_>
no the api wrapper is not affected by the the global
<temporal_>
there is just a global $vertx object
<headius>
ok
<temporal_>
that is used then to create things like http servers, etc...
<headius>
enebo: yeah, there's 223 behavior, BSF behavior, and then deeper config changes you can make
<headius>
temporal_: so the same code does not work on what exactly?
<headius>
vertx3? jruby 1.7.20?
<headius>
I need to understand what needs to be fixed
<headius>
or converted
<temporal_>
I tried to put $ vars in a module with normal ruby
<temporal_>
and that did not see mto work like it is supposed to do with vertx 2
<enebo>
headius: yeah. I am suggesting it may have been that way at some point to not have to recreate n runtimes if you had a n maps containing a single $vertx in each
<temporal_>
perhaps i should investigate more this vertx 2 global thing
<temporal_>
and trace the code
<headius>
temporal_: and what has changed between the two
<headius>
that's what I need to understand
<enebo>
headius: if so then this would be a single container passing in the global map per call/scriptlet
<headius>
I'm guessing the way the JRuby instance is being created does not isolage globals anymore in vertx3
<headius>
so that's the code to investigate
<headius>
enebo: I assume vertx2 embedded JRuby one way and vertx3 does it a different way, and they're just configured differently for globals
<temporal_>
would it be possible to plug the behavior of the global variable resolution ?
<headius>
temporal_: it is, if we can see where in vertx2 and 3 they launch JRuby so we can see the difference
<enebo>
headius: yeah that would make sense since we have not changed any behavior for this stuff
<temporal_>
headius can you point to me the API for doing that ?
<headius>
temporal_: ScriptingContainer.new can take a LocalVariableBehavior enum
<temporal_>
ok
<temporal_>
and then ?
<headius>
that governs top-level local vars and $ globals
<headius>
trying to see which one's the right one for you
<temporal_>
the best option I think would be to proivde my own resolver
<temporal_>
and scope according to the current verticle running
<temporal_>
but that does not seem plugable
<temporal_>
LocalContextProvider does not seem changeable
<headius>
does this exist in 3 yet, or is that what you're trying to do right now?
<temporal_>
it does not exist yet
<temporal_>
no I'm not trying to do that at all
<headius>
ok, why don't we start from the top...what are you trying to do? :-)
<temporal_>
I would like to have a $ global variable scoped per verticle deployed
<temporal_>
verticles share the same ScriptingContainer
<temporal_>
in vert.x 2 that seems done using a module that wraps the actual verticle source code
<temporal_>
StringBuilder svert = new StringBuilder( "require 'core/vertx_require'\n").append("module ").append(modName).append(";extend self;");
<headius>
right, that code should never have done anything to isolate globals
<headius>
at least not the anonymous module part of it
<bbrowning>
yeah that has zero to do with globals
<temporal_>
the comment says
<temporal_>
"Read the whole file into a string and wrap it in a module to provide a degree of isolation"
<bbrowning>
isolation not of globals though - only of other stuff
<bbrowning>
and that isolation is VERY leaky
<headius>
it will isolate *local* variables, methods, and nested classes/modules, but not globals
<temporal_>
ok
<temporal_>
I see however a unit test in vertx 2 that seems to prove it though :-)
<bbrowning>
then the test is wrong :)
<headius>
right, something else explains that
<headius>
so it's a 1.7 scripting container, SingleThread isolation (which means it's just a normal non-global runtime)
erikhatcher has joined #jruby
<headius>
(these names are not good, we know)
<temporal_>
here is what the test does
<temporal_>
sorry I will paste some ruby code here
<bbrowning>
maybe use a gist?
<temporal_>
and annoy maybe people but it's simpler
<temporal_>
ok
<bbrowning>
or link to github?
<temporal_>
but that"s convoluated
<temporal_>
because it's java code deploying ruby vertiles
<headius>
this constructor uses TRANSIENT LocalVariableBehavior, which would mean each call into the container has separate local/global variables I think
<temporal_>
taht sens messages over the event bus
<temporal_>
to do tests :-)
<headius>
the test likely just makes two *separate* calls
<bbrowning>
temporal_: the jruby implementation in vertx 2 had quite a few bugs, so you probably don't want to try to match it too closely
<temporal_>
headius so that would explain this
<headius>
that's my guess at the moment
<temporal_>
bbrowning unit tests will save me from this hell :-)
<temporal_>
headius question is why somthing called "LocalVariableBehavior" governs the behavior of global variables ?
<temporal_>
I've tried to do a similar test locally in vertx 3 and I use the same constructor though
<bbrowning>
headius: then you have to give up isolation, right? of more than just globals
<bbrowning>
all the things jruby shares internally that's tied to a Ruby instance
<bbrowning>
loaded features, class caching, java proxy objects, etc etc?
<headius>
invokeAsync
<headius>
is that or something like it used for calls into the verticle?
<headius>
bbrowning: yes
<headius>
we can do something for globals but not contants or existing classes
<headius>
interesting weekend project: boot parallel, independent core class namespaces within a single jruby
drbobbeaty has quit [Read error: Connection reset by peer]
<temporal_>
Tim told me that the module wrapping is done for isolating module/classes indeed
<temporal_>
I have no answers yet about global vars :-)
<headius>
temporal_: isolating those namespaces makes sense
drbobbeaty has joined #jruby
<headius>
temporal_ how does the test make those calls?
<headius>
to test_isolated_global_init*
pjammer has joined #jruby
<temporal_>
via the event bus
<temporal_>
it sends a message
<temporal_>
to the verticle that registred an event handler
<temporal_>
for testing
<headius>
how does the event bus call into the container
<headius>
temporal_: what I'm trying to get at: global isolation for a container happens via the container's runScriptlet and similar
<headius>
if vertx3 is calling more directly, like with an object in hand using callMethod, it would bypass the global isolation logic
rsim has joined #jruby
<headius>
and FWIW even the old module isolation is not going to hide everything
<headius>
you can still define a top-level class or module by reopening object or doing class ::EveryoneCanSeeMe
<headius>
or something like that
<temporal_>
so runScriplet can have its own global scope ?
<headius>
runScriptlet does a lot of indirection to isolate you from both the runtime and the runtime's normal globals table
<nirvdrum>
enebo: Sorry, I didn't get to Match3 yet. On the docket.
<nirvdrum>
enebo: I did get some jnr-posix going on Windows yesterday.
<nirvdrum>
Reposting some feedback from before you were online:
<nirvdrum>
<nirvdrum> The two biggest problems I've encountered are: 1) Windows doesn't let you delete open files; and 2) the private fd field in FileDescriptor is always -1 on Windows.
<nirvdrum>
<nirvdrum> The first one is annoying, but it's how Windows works. I split the unlink test for a Windows and non-Windows variant.
<nirvdrum>
<nirvdrum> The second problem is arguably a failing of our test suite. But other than making other jnr calls, I'm not sure how you'd get a FD any other way.
<enebo>
nirvdrum: totally fine since headius only just landed his changes
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJMlt
<headius>
private fd field shouldn't be used normally on Windows because most of the native IO stuff is disabled
<headius>
if we want to get more of it working, there's a handle field we'd used to get the fd
rsim1 has quit [Ping timeout: 265 seconds]
<enebo>
nirvdrum: There is some weird fd to handle stuff in MS libc support but those same files I think have a HANDLE field
<nirvdrum>
headius: This is just how the jnr-posix test suite is structured. A lot of tests try to get the FD from a channel via FileDescriptor and reflection.
<enebo>
err FileDescriptor I think has HANDLE on windows
<headius>
ahh you mean actually jnr-posix tests
<nirvdrum>
Yeah.
<enebo>
oh heh headius just said same thing as I
<enebo>
nirvdrum: anyways you are correct on both counts
<headius>
yup, I don't remember if those have ever run on Windows, but I assume they have
<headius>
I mean I assume some of jnr-posix tests must have run
<enebo>
nirvdrum: you can try mapping fd to HANDLE crap but real native on windows should just use handle
<enebo>
headius: they did until you added all those fd-related stuff for io rewrite
<nirvdrum>
enebo: Okay, I do see a handle value. Is that just an HWND value? Or is that a legitimate FD?
<enebo>
headius: you were a good citizen and wrote unit tests for them so it is good breakage :)
<temporal_>
and I get 1 then 2
<headius>
enebo: what a good boy am I
<nirvdrum>
headius: Ahh, right. I thought it was one of those overloaded things.
<nirvdrum>
I guess it's FILE or something silly. I should just go get my book.
<headius>
nirvdrum: I don't remember what they call file handles but in the end there's a handle-to-fd API
<headius>
some win32 call we just need to map for getting fd out of FileDescriptor's handle
<headius>
wouldn't it be nice if they did it for us
<nirvdrum>
Cool. I'll look into that.
<enebo>
nirvdrum: I am not sure but I think it is really called HANDLE too? HWND may be same thing but it is more or less a void * to indirect memory access
<nirvdrum>
I just moved this book out of my office to storage, too. I haven't opened it in years.
<headius>
I'm pretty sure the field is "handle
<headius>
"
<enebo>
handles in windows are used to indirect all sorts of things
<nirvdrum>
1,435 pages, excluding the index.
<headius>
temporal_: has jruby verison changed between your two envs?
<temporal_>
I'm using 1.7.18 in V3 at the moment
<headius>
and in v2?
<temporal_>
let me check
<enebo>
nirvdrum: like handles are used as references to windows and things like that too
<temporal_>
headius 1.7.13
<enebo>
oh god I know some window shit…I promised myself I would not let this happen
<nirvdrum>
enebo: Yeah.
<temporal_>
headius and that gives the same result
<headius>
temporal_: ok
<headius>
hmm
<nirvdrum>
It looks like _open_osfhandle is it.
<nirvdrum>
And it's used elsewhere in the codebase.
vtunka has joined #jruby
<nirvdrum>
Updating JavaLibCHelper might be enough.
pjammer has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<bga57>
headius, is there anything I can look at for the freebsd chmod issue I reported?
<headius>
bga57: can you write a test and show it failing?
<fuzzyhorns1>
newb query: is there any way i can keep a jvm up and send jruby programs to it?
<fuzzyhorns1>
(so that each jruby run doesnt mean booting the jvm?) im failing at googling this
<headius>
bga57: ahh right...do you think you could write a test in jnr-posix for this?
<headius>
so we could narrow it down to whether it's jnr-posix binding of chmod or jruby's use of it
<headius>
fuzzyhorns1: drip or nailgun
<headius>
drip spins up vm N + 1 when you start a command for N, so the next one's ready
<headius>
nailgun maintains a persistent JVM as a server and tosses it commands
<fuzzyhorns1>
oh neat
<headius>
both are supported directly in JRuby
<fuzzyhorns1>
awesome! thanks headius ill check those out
<fuzzyhorns1>
you guys are always so helpful :)
<headius>
jruby startup time wiki page has some additional links for you
<bga57>
When I try to build jnr-posix, I get two failures, in testSendRecvMsg_NoControl and testSendRecvMsg_WithControl, but I haven't opened an issue yet.
<headius>
temporal_: so bottom line is that this test doesn't work in vertx3 and we can't figure out why it worked in 2
<temporal_>
headius yes
<headius>
temporal_: I'm still curious where the event gets dispatched back into the jruby container
<temporal_>
it is dispatched because it receives an eventfrom the bus
<bga57>
both with: java.lang.UnsupportedOperationException: unimplemented method: allocateMsgHdr
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJM2D
<JRubyGithub>
jruby/master 1e80aa2 Brandon Fish: [Truffle] Add find to stdlib
JRubyGithub has left #jruby [#jruby]
<temporal_>
there is @tu.register_all(self)
<temporal_>
that register the methods for callback on the event bus using the method names
<temporal_>
doing "test_isolated_global_init1_1" calls the test_isolated_global_init1_1 via a message
<headius>
has that changed in vertx3?
<headius>
i.e. the way it registers for events
shellac has joined #jruby
erikhatcher has quit [Quit: erikhatcher]
<temporal_>
headius no, we just run test differently
<headius>
so if I'm reading right, the event handler -- a Ruby class that implements org.vertx.core.java.Handler, is registered with the bus
<temporal_>
at an address
<headius>
right
<temporal_>
each method is registered at an address
<headius>
events are delivered by calling handle(message) with the test method names above
<headius>
yes so far?
<temporal_>
yes
<temporal_>
def register_all(object)
<temporal_>
methods = object.methods
<temporal_>
methods.each do |meth|
<temporal_>
if meth.to_s.start_with? 'test_'
<temporal_>
register(meth) {
<temporal_>
object.method(meth).call
<temporal_>
}
<temporal_>
end
<temporal_>
end
<temporal_>
end
<headius>
use gist for anything more than a couple lines
<temporal_>
:) ues
<temporal_>
yes
<headius>
right ok
<temporal_>
that means 5 keyboaeds interactions for me :-)
<headius>
what has changed in the test running?
<temporal_>
we don't use event bus anymore
KevinCorcoran has joined #jruby
<headius>
well that could be related :-)
fuzzyhorns1 has left #jruby [#jruby]
<headius>
how does it do it now?
KevinCorcoran has quit [Remote host closed the connection]
<temporal_>
headius why would it be related ?
<temporal_>
now I have jsut done a simple test that uses a callback registered to a static Runnable of a java class
<temporal_>
I deploy 2 verticles that setup a global
<temporal_>
and I use the runnable to print the global value in the first verticle
<temporal_>
similar to the previous gist I gave
<headius>
right
<headius>
and it's not isolated
<temporal_>
except the previous gist does not use vert.x at all
<headius>
what i'm saying is that the way the tests are run could explain what changed
<headius>
at this point it seems like you've narrowed it down to something in vertx code, since same jruby version behaves differently in vertx3 versus 2
<headius>
the module code does not isolate globals, so that's a red herring
<headius>
dispatch of the tests has changed in vertx3, so that's a suspect
<temporal_>
headius I may also produce a wrong test at the moment :-)
<headius>
ok...I think you should focus on how the tests are being dispatched and try to reduce this more
<temporal_>
headius ok let me investigate this more deeply
<headius>
ahh, we are in agreement :-)
<headius>
and don't trust anything I said about container isolation because I never use that stuff
<headius>
I'm inferring from the container impl, so you'd do just as well
<headius>
my guess is that it all comes down to difference in how the tests are run
<temporal_>
headius ok
skade has quit [Read error: Connection reset by peer]
<temporal_>
headius how about jruby 1.7.20 release btw ?
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius pushed 1 new commit to master: http://git.io/vJMPa
<JRubyGithub>
jruby/master 8d67e58 Charles Oliver Nutter: Refactor three match instrs to one and always dyncall.
JRubyGithub has left #jruby [#jruby]
<headius>
temporal_: as we speak
<temporal_>
great
camlow325 has joined #jruby
erikhatcher has joined #jruby
<headius>
enebo: we're using rc1 as next bug milestone, right?
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius closed issue #2905: Different Regexp behavior from MRI http://git.io/vJlQh
JRubyGithub has left #jruby [#jruby]
<headius>
nirvdrum: ^
<enebo>
headius: I think we should be that optimistic but we can always edit it
camlow32_ has joined #jruby
<enebo>
headius: I realized there was an edit button because the issues script required milestons to be prefixed with JRuby so I just changed the last two mileston names
<headius>
ok
camlow325 has quit [Ping timeout: 264 seconds]
<nirvdrum>
headius: Thanks.
<nirvdrum>
I'll go through and remove the need for "// This reversal is intentional"
<nirvdrum>
bjfish2: I'm working on adding rename to jnr-posix right now.
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to jruby-1_7: http://git.io/vJM94
<JRubyGithub>
jruby/jruby-1_7 3086e6a Thomas E. Enebo: Bump for version
<headius>
enebo: but nobody's going to be looking for truffle issues+PRs
klemanski has joined #jruby
<headius>
nirvdrum: looks good
<nirvdrum>
Great. Thanks.
<enebo>
headius: I guess I don’t know.. maybe not yet
camlow32_ has quit [Remote host closed the connection]
<enebo>
bah…I want this release done. I will mess with adding PR’s for next release
<nirvdrum>
Truffle PRs are in 1.7.20?
<enebo>
we have not ever included them so one more point release won’t kill us
<klemanski>
Hi, I'm trying to update one app to Jruby 1.7.19 and 1.7.0_79 but there is something broken (?) with Process.pid - process (irb) have pid 17721 but Process.pid shows 27685468
<headius>
nirvdrum: facepalm
<headius>
of course they're not
<enebo>
nirvdrum: no. it was just a more general question
<headius>
nevermind
<enebo>
headius: it is a valid question just not for today
<headius>
it wasn't a general question, I was just in 9k mode
<headius>
yeah
<headius>
ok
<enebo>
headius: well I took it as one
<headius>
for 9k I guess I don't care
camlow325 has joined #jruby
<headius>
it's just PRs
<headius>
well mostly PRs for truffle anyway
<klemanski>
java.io.File.new("/proc/self").getCanonicalFile().getName() returns "17721" and that is OK
<headius>
and it shows progress
camlow325 has quit [Client Quit]
<headius>
klemanski: not on Windows eh?
<headius>
gist an example that fails
<klemanski>
Debian 6.0.7
<headius>
you have procfs so this must be linux
<klemanski>
i was using java 1.6 and jruby 1.7.13 and it was ok
<headius>
show me example script that gives wrong pid
<klemanski>
headius, OK I will create an issue on GH for this
subbu has joined #jruby
<headius>
rtyler: hmm, it does
<headius>
rtyler: if you run jruby debug mode there you can get full NPE trace
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 1 new commit to jruby-1_7: http://git.io/vJDmG
<JRubyGithub>
jruby/jruby-1_7 7fea057 Thomas E. Enebo: Bump for next development cycle
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] kml opened issue #2908: 32 bit Java 1.7 on 64 bit GNU/Linux - invalid Process.pid http://git.io/vJDYV
JRubyGithub has left #jruby [#jruby]
<klemanski>
headius, thank you for help
<klemanski>
I've had this problem before but i thought it was because of upgrading puma, but after checking how it's creating pidfile i found this is just Process.pid
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJDs0
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJD4T
<JRubyGithub>
jruby/master 1280a58 Brandon Fish: [Truffle] Removing extra RbConfig::CONFIG["host_os"] entry
JRubyGithub has left #jruby [#jruby]
gazay has joined #jruby
<nirvdrum>
headius, enebo: If you could request access from the folks at JetBrains, it'd be kinda nice to have access to CLion for looking at MRI source.
<enebo>
nirvdrum: oh yeah…I would love this too…asarih ^^ ;P
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian closed issue #1823: getting jars work with Dir globs for all classloaders http://git.io/vJDE1
JRubyGithub has left #jruby [#jruby]
<headius>
I am using the C/C++ support in nonstandard plugins
<headius>
it seems fine
<headius>
Browse repositories in plugins pane and it's there
<nirvdrum>
I'll check that out. Thanks.
_djbkd has joined #jruby
mrmargolis has quit [Remote host closed the connection]
<nirvdrum>
To what degree do you guys look at MRI's source when implementing stuff in jnr-posix? I see in win32 they defined their own access() function, but Win32 has one built in.
mrmargolis has joined #jruby
<headius>
enebo looked at it quite a bit for exec stuff
<headius>
other than that, not much
<headius>
jnr-posix is intended to be mostly just a thin mapping, so we'd implement what MRI has as Java
<enebo>
nirvdrum: yeah exec and the whole spawn thing was mostly ported
<headius>
outside of jnr-posix
<headius>
jnr-posix access() should just be native access()
<nirvdrum>
Okay. Sounds good.
<enebo>
exec was a weird beast
<headius>
still is
<enebo>
yeah
<headius>
I think I'm going to work from the garden today, bbiab
<nirvdrum>
Does anyone use jnr-constants without jnr-posix?
<headius>
I don't even know who uses jnr-posix
subbu has joined #jruby
<headius>
we obviously use all of them, and some of the jnr projects have cross-deps
<headius>
why?
mcclurmc has quit [Remote host closed the connection]
<nirvdrum>
I just need new constants.
phrinx has joined #jruby
<nirvdrum>
It seems a bit circuitous to update one project, push a snapshot, update the snapshot for another project, and then use the constants I need.
<nirvdrum>
Not the craziest thing in the world.
tcrawley is now known as tcrawley-away
mrmargol_ has joined #jruby
subbu is now known as subbu|meeting
mrmargolis has quit [Ping timeout: 256 seconds]
<nirvdrum>
What's generating the files in jnr-constants? There's a header on all the enums saying the were generated automatically back in 2010.
subbu|meeting has quit [Ping timeout: 264 seconds]
fuzzyhorns1 has joined #jruby
<nirvdrum>
Looks like it's this constantine thing.
<fuzzyhorns1>
question, I see a speedup with `jruby --ng -e "puts 1"`
<fuzzyhorns1>
as compared to not using nailgun
<fuzzyhorns1>
but can i send something like rubocop to nailgun?
subbu|meeting has joined #jruby
mcclurmc has joined #jruby
pglombardo has joined #jruby
drbobbeaty has quit [Read error: Connection reset by peer]
pjammer has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<nirvdrum>
headius: What are the fake constants used for? I'm seeing different values for them than are in unistd.h.
<headius>
platforms for which we haven't generated the right constants
<headius>
or platforms that don't have some of them
<headius>
fuzzyhorns1: I don't know how rubocop works differently from running a command
<headius>
do you want to keep a JRuby instance running, or just a JVM? Every command from jruby --ng will start a new JRuby instance in the nailgun server
<fuzzyhorns1>
headius: i guess whatever is my major overhead, good point
<headius>
nirvdrum: there's some ruby scripts and templates in jnr-constants to generate the java files
<headius>
we haven't regenerated any of them in a long time, generally just adding or fixing manually
<nirvdrum>
Yeah, I've figured that out.
<fuzzyhorns1>
headius: basically i just want to be able to use syntax checking in a way that doesnt take over 10 secs per check :c
<nirvdrum>
I had to update everything to work with require_relative.
<headius>
jnr-* really needs a VM-based multibuild
<nirvdrum>
I guess the last time they were generated it was done on 1.8.
<headius>
oh nice
<nirvdrum>
So I have the Access enum generated. It's a bitmask and the value needs to start at 0. The platform files look good. But the fake one starts at 1.
<headius>
fuzzyhorns1: well whatever you'd do at command line should work through --ng, and syntax checking is a pretty lightweight thing to ask it to do
pierreatkillbill has quit [Ping timeout: 276 seconds]
<mjc_>
startup time on 1.7.20 is improved for our , y'all rock
<headius>
fuzzyhorns1: you were the one with jruby doing syntax stuff in the background of your editor, yes?
<fuzzyhorns1>
headius: it does seem to help
<fuzzyhorns1>
headius: i wanted to, yeah
<headius>
mjc_: that's great!
<headius>
fuzzyhorns1: first couple will still be slower than MRI but it should catch up quick
<fuzzyhorns1>
headius: syntastic lets you set the executable for jruby, so i wondered if i could set up ng to be listening, and send checks to it
<fuzzyhorns1>
yeah i am seeing that!
<fuzzyhorns1>
under 3 seconds now
<headius>
you might run the ng server with --dev too so it's doing the minimum boot-time logic
<headius>
that will disable some heavier stuff used for prod app scaling
<fuzzyhorns1>
make sense
pjammer has joined #jruby
<fuzzyhorns1>
yeah, hardly need anything to do the checks
mje113__ has joined #jruby
<headius>
if there's a way to have it just send the content of the file to an existing process, that would be the best...you would just have a single jruby in the background and it stays completely booted with rubocop or whatever else
<headius>
this would be good to document too if we figure out the right combination of stuff for you :-)
<fuzzyhorns1>
hmm not liking `—dev`
<fuzzyhorns1>
yeah headius, that would be ideal
<fuzzyhorns1>
i mean really i want to be able to run all the chckers while im working
<fuzzyhorns1>
rubocop is just where im starting
ponga has quit [Quit: Leaving...]
rsim1 has joined #jruby
dinfuehr_ has joined #jruby
<headius>
fuzzyhorns1: maybe there's some stdin/stdout protocol supported by syntastic
<headius>
if it's using a subprocess it must have some protocol
KevinCor_ has quit [Remote host closed the connection]
<fuzzyhorns1>
bummer still is that on loading a new file, wicked slow
<fuzzyhorns1>
i pair program a lot and my coworkers would not put up with waiting 10 seconds to open a file x)
<headius>
neither would I
<headius>
what's the command line syntastic is using?
<headius>
I've seen a warm JRuby instance rip through 65kloc files in milliseconds
<headius>
parsing anyway
<headius>
there may be something in the libs you're using that's slow, even on MRI?
dinfuehr has quit [Ping timeout: 276 seconds]
rsim has quit [Ping timeout: 265 seconds]
<fuzzyhorns1>
i mean if i was checking a bunch of libs
drbobbeaty has quit [Ping timeout: 264 seconds]
<fuzzyhorns1>
but this is just even to check a poro + active record inheritance
<headius>
yeah, that seems like too much
<fuzzyhorns1>
thing is, syntastic afaik is always gonna run jruby cold
<headius>
even 3s is too long for a warm instance
<headius>
I just want to see that 3s locally
<fuzzyhorns1>
yeah :/ fwiw, it's a serializer file
<fuzzyhorns1>
so afaik it just needs to load active model serializers which should be _that_ huge a footprint?
<headius>
hmm
<headius>
I don't know
<headius>
we could get a heap snapshot once everything's loaded to see how big that is
<headius>
rails is a lot of code to load
<headius>
even on MRI
<fuzzyhorns1>
yeah, maybe that's the whole ish? it's just rails load itself?
pierreatkillbill has quit [Ping timeout: 250 seconds]
lopex has quit [Ping timeout: 256 seconds]
DomKM has quit [Ping timeout: 256 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] bjfish pushed 1 new commit to master: http://git.io/vJSl3
<JRubyGithub>
jruby/master 6c80587 Brandon Fish: [Truffle] Adding tags for new failures after adding RbConfig::CONFIG["host_os"]
JRubyGithub has left #jruby [#jruby]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius opened issue #2909: Psych gem installs, but refuses to use gem's jar http://git.io/vJSlW
JRubyGithub has left #jruby [#jruby]
DomKM has joined #jruby
lopex has joined #jruby
dinfuehr_ has quit [Remote host closed the connection]
dinfuehr has joined #jruby
dinfuehr has quit [Read error: Connection reset by peer]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] headius closed issue #2909: Psych gem installs, but refuses to use gem's jar http://git.io/vJSlW
JRubyGithub has left #jruby [#jruby]
aramisbear has quit [Read error: Connection reset by peer]
dinfuehr has joined #jruby
brightball has joined #jruby
yh has joined #jruby
mkristian has joined #jruby
tcrawley is now known as tcrawley-away
fuzzyhorns1 has quit [Quit: Leaving.]
camlow325 has joined #jruby
fuzzyhorns1 has joined #jruby
<mkristian>
headius, is the psych thing OK now ?
fuzzyhorns1 has left #jruby [#jruby]
mister_solo has quit [Ping timeout: 240 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] enebo pushed 4 new commits to master: http://git.io/vJSzW
<JRubyGithub>
jruby/master ea02984 Thomas E. Enebo: ASTInterpreter dead
<JRubyGithub>
jruby/master b783cbc Thomas E. Enebo: Start removing deadl MultipleAsgnNode (replaced by MultipleAsgn19Node)
<JRubyGithub>
jruby/master c3a18b3 Thomas E. Enebo: More MAsgnNode removal
JRubyGithub has left #jruby [#jruby]
mrmargol_ has quit [Remote host closed the connection]
x1337807x has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
camlow325 has quit [Remote host closed the connection]
camlow325 has joined #jruby
lanceball is now known as lance|afk
<headius>
nirvdrum: I guess you're in
<headius>
mkristian: no :-(
<headius>
I thought it was working
<nirvdrum>
I see. I'm updating the jnr-constants README and then I'm going to try to push. Thanks again!
<headius>
I think there's various version mismatches and things at play, but tenderlove is preparing a log showing build + install with various problems
<headius>
I will do the same
<headius>
nirvdrum: you'll need to do something to maven settings.xml but I don't remember what
<headius>
look for ossrh, sonatype OSS support walkthrough
<enebo>
tenderlove: have you tried timing JRuby with your gem patches?
<tenderlove>
it's not a shell script
<tenderlove>
enebo: no. I should.
<tenderlove>
the test I wrote uses fork...
<enebo>
booo
<tenderlove>
ya
<nirvdrum>
headius: I'm a bit confused. It looks like there should be a <distributionManagement> section in the POM that I don't see. Do you have this in your ~/.m2/settings.xml?
<enebo>
tenderlove: rg is the one program I wish did not store in the filesystem
<tenderlove>
enebo: I don't know how to write the test without fork
<enebo>
tenderlove: then we could cache or pre-calc all the gemspecs
<tenderlove>
since it makes a bunch of global changes
<tenderlove>
enebo: ya, that's what I've been working on
<tenderlove>
the bottleneck is searching for files
<enebo>
tenderlove: I thought no one liked that because of people manually fucking with gem dirs
<headius>
nirvdrum: checking
<enebo>
tenderlove: yeah totally and opening up hundreds of files and parsing them
<enebo>
tenderlove: our bottleneck of parsing may be more pronounced though
<headius>
nirvdrum: I think that is inherited from the parent sonatype pom, but I'll show you what I have in settings.xml
<headius>
nirvdrum: deploying and fetching dependencies makes up for most of maven's pain
<headius>
it's still the most robust system for that I've used
mitchellhenke has quit [Quit: Computer has gone to sleep.]
<nirvdrum>
My biggest gripes still stem from when I used to write plugins. It was this weird free-form XML that wasn't documented and all came in through some weird xdoc-like system.
x1337807x has joined #jruby
mitchellhenke has joined #jruby
<headius>
yeah the plugin system seems really half-baked
<headius>
it's not really a plugin so much as an extension, with all the pain that entails
<nirvdrum>
If any of you Mac users want to check out jnr-constants and run "rake generate:platform" and then commit the results, that'd be cool. Any OS other than Linux is welcome to join in. But I think the "fake" one should be good enough (works on Windows now).
<nirvdrum>
And I'm just using Win32 to mean Windows. I guess these are technically msvcrt. I hope no one minds.
<nirvdrum>
headius: This is the open discussion of whether to default to using /dev/urandom instead of /dev/random, essentially.
<bjfish2>
nirvdrum I’ll send you a PR
mitchellhenke has quit [Ping timeout: 255 seconds]
<nirvdrum>
bjfish2: Awesome. Thanks.
codefing_ has joined #jruby
<headius>
nirvdrum: you remember that guy in here the other day with startup issues
<headius>
sebedwards on twitter
codefinger has quit [Read error: Connection reset by peer]
<headius>
I think I saw some discussion about entropy, but in any case I just found out that fixing his entropy pool solved his startup time issues
<nirvdrum>
headius, enebo: FYI . . . probably not a ton of overhead, but jnr-constants does this weird search path thing to figure out which enum implementation to load. The first entry in that list is <OS>.<ARCH>. As far as I can tell, we currently have no arch-specific enums. So that lookup path just always ends up throwing a CNFE.
<headius>
ick, we should fix that
<headius>
getResource from classloader to see if it's there first, like our JRuby exts do
<nirvdrum>
headius: How do you fix the entropy pool?
<headius>
this guy set up a background entropy server
<headius>
there's a few options I just discovered... based on random audio sampling, temperature readings, timers
<nirvdrum>
That sounds like a lot of work (and potentially error-prone) to ask of users.
<nirvdrum>
I think tarcieri was of the mindset that by the time a JVM can even start, /dev/urandom will have been sourced from /dev/random and be just as cryptographically strong.
<nirvdrum>
I'd have to look at unistd.h on a Mac, but structurally it seems fine. And the values match Linux.
mrmargolis has joined #jruby
rsim1 has quit [Ping timeout: 265 seconds]
bbrowning is now known as bbrowning_away
dinfuehr has quit [Remote host closed the connection]
robbyoconnor has quit [Read error: Connection reset by peer]
x1337807x has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
robbyoconnor has joined #jruby
<headius>
nirvdrum: I'm fine at this point just going with /dev/urandom, but I thought we had it boiled down to /dev/random on boot and PRNG from then on
<headius>
as our defaults
jph98 has quit [Quit: jph98]
<nirvdrum>
I think you did something to source once per-thread.
<nirvdrum>
But if you're blocked at startup, even that can suck *shrug*
mister_solo has quit [Ping timeout: 245 seconds]
<nirvdrum>
And I'm not sure if once-per-thread means once-per-Fiber, too.
donV has quit [Quit: donV]
<nirvdrum>
FWIW, this RNG thing has been coming up with Selenium and people running tests in containers.
<nirvdrum>
Maybe the adoption of docker will force the issue for someone.
codefing_ has quit [Remote host closed the connection]
<headius>
nirvdrum: if switching to urandom exclusively would fix it without hurting RNG quality, I don't care
codefinger has joined #jruby
<nirvdrum>
That seems to be the consensus from people in the know. But it's one of those things where I'm not really qualified on the matter.
codefinger has quit [Remote host closed the connection]
codefinger has joined #jruby
tcrawley is now known as tcrawley-away
codefinger has quit [Quit: Leaving...]
subbu has quit [Ping timeout: 265 seconds]
mister_solo has joined #jruby
chrisseaton_ has joined #jruby
subbu has joined #jruby
asarih_ has joined #jruby
jeremyevans_ has joined #jruby
mcclurmc_ has joined #jruby
flori_ has joined #jruby
dbussink has quit [Ping timeout: 252 seconds]
chrisseaton has quit [Ping timeout: 252 seconds]
asarih has quit [Ping timeout: 252 seconds]
jeremyevans has quit [Ping timeout: 252 seconds]
flori has quit [Ping timeout: 252 seconds]
asarih_ is now known as asarih
chrisseaton_ is now known as chrisseaton
mcclurmc has quit [Ping timeout: 252 seconds]
dbussink has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
mister_s_ has joined #jruby
mister_solo has quit [Ping timeout: 264 seconds]
JRubyGithub has joined #jruby
<JRubyGithub>
[jruby] mkristian opened issue #2910: can not install leafy-metrics http://git.io/vJ9kU
JRubyGithub has left #jruby [#jruby]
<mkristian>
headius, first I need to see to this --^^^^ the psych issue is more general