temporalfox has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
zz_denym_ is now known as denym_
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
jensnockert has joined #jruby
benlovell has joined #jruby
jensnockert has quit [Ping timeout: 244 seconds]
guilleiguaran__ has quit [K-Lined]
mccraig has quit [K-Lined]
Guest85414______ has quit [K-Lined]
jeregrine has quit [K-Lined]
knowtheory has quit [K-Lined]
mjc_ has quit [K-Lined]
dcolebatch has quit [K-Lined]
talevy has quit [K-Lined]
lopex has quit [K-Lined]
bffff_ has quit [K-Lined]
olleolleolle has quit [K-Lined]
fidothe has quit [K-Lined]
flavorjones has quit [K-Lined]
bb010g has quit [K-Lined]
aemadrid has quit [K-Lined]
chrisseaton has quit [K-Lined]
zph has quit [K-Lined]
amdprophet has quit [K-Lined]
asarih has quit [K-Lined]
bruceadams has quit [K-Lined]
andrewvc has quit [K-Lined]
n1ftyn8_ has quit [K-Lined]
Scorchin has quit [K-Lined]
skade has joined #jruby
skade has quit [Client Quit]
pawnbox has quit [Remote host closed the connection]
pawnbox has joined #jruby
mdedetri_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pitr-ch has quit [Read error: Connection reset by peer]
pitr-ch has joined #jruby
kith_ is now known as kith
jensnockert has joined #jruby
jensnockert has quit [Ping timeout: 240 seconds]
shellac has joined #jruby
yosafbridge has quit [Ping timeout: 240 seconds]
jensnockert has joined #jruby
yosafbridge has joined #jruby
jensnockert has quit [Ping timeout: 268 seconds]
drbobbeaty has joined #jruby
Scorchin has joined #jruby
<GitHub59>
[jruby] mkristian pushed 2 new commits to master: http://git.io/vnuXk
<GitHub59>
jruby/master ce7d531 Ben Browning: Close any open selectors when tearing down a runtime....
<GitHub59>
jruby/master 4b6c24f Christian Meier: Merge branch 'selector-leak' of https://github.com/bbrowning/jruby into bbrowning-selector-leak
<GitHub119>
[jruby] mkristian closed pull request #3222: Close any open selectors when tearing down a runtime. (master...selector-leak) http://git.io/vO2yI
jensnockert has joined #jruby
temporalfox has joined #jruby
jensnockert has quit [Ping timeout: 268 seconds]
yfeldblum has quit [Ping timeout: 240 seconds]
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pawnbox has quit [Remote host closed the connection]
<enebo>
nirvdrum: in gem list I can see the 3000 symbols are not doing length checks nor making extra objects…which has zero affect on performance but is actually simpler than what we had before
<enebo>
nirvdrum: I may follow up and try to CR strings as they are created but it becomes more dicey for DStr-like things since we can only store a single CR in the lexer
<nirvdrum>
enebo: Heh, thanks :-) Performance is relative. I was hitting an insane number of breakpoints in the UTF-8 length check code.
cremes has quit [Read error: Connection reset by peer]
oblutak has joined #jruby
<nirvdrum>
Not doing that will make development faster.
cremes has joined #jruby
<nirvdrum>
But, hey, you wrote the TODO. I just asked about it :-P
<nirvdrum>
enebo: Any chance we can get a jnr-ffi release? I was going to ask headius, but he doesn't seem to be around. master has some ld_so_conf fixes from mkristian that would be nice to have.
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<enebo>
nirvdrum: yeah I would like to rev jnr-posix too
<enebo>
nirvdrum: althogh only snapshot jnr-posix
<enebo>
nirvdrum: That is a lot of scary new code for windows which needs to bake
SynrG has quit [Read error: Connection reset by peer]
<enebo>
jnr-ffi 2.0.4 has been released on sonatype…but it will take hours to show up
<enebo>
nirvdrum: this afternoon I hope to update jnr-posix to use it and release a snapshot with it
Aethenelle has joined #jruby
<nirvdrum>
And we'll even test on 3 platforms!
vjdhama has joined #jruby
<GitHub80>
[jruby] eregon pushed 1 new commit to master: http://git.io/vng5k
<GitHub80>
jruby/master 6d4df5b Benoit Daloze: [Truffle] Tentative fix for transitions on object field writes.
camlow325 has joined #jruby
<enebo>
nirvdrum: yeah until we beef up those tests I want to see it running with JRuby
vjdhama has quit [Remote host closed the connection]
vjdhama has joined #jruby
<nirvdrum>
I triaged a bit a week ago, but how's the issue tracker looked since 9.0.1.0?
vjdhama has quit [Remote host closed the connection]
<enebo>
I spent a couple of weeks working on an oj port so I have not been tracking our tracker very much lately
lobner has quit [Quit: Ex-Chat]
<nirvdrum>
Oh, cool.
<enebo>
nirvdrum: taking a break on it but I am about 4000 lines in. Parsers work except for saj but I need to finish porting their dumper to get meaningful test results and it is huge
rcvalle has joined #jruby
<enebo>
but saj, object, strict parsers supposedly are done for non-stream parsing. stream parser may end up being an abstraction of non-stream but even if not it will be largely a copy
<nirvdrum>
jrjackson is where it's at!
denym_ is now known as zz_denym_
colinsurprenant has quit [Quit: colinsurprenant]
yfeldblum has joined #jruby
vjdhama has joined #jruby
yfeldblum has quit [Read error: Connection reset by peer]
yfeldblum has joined #jruby
temporalfox has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<rsim>
enebo: Hi! We discovered another problem with UNC path in FileUtils.mkdir_p which is due to the File.dirname with UNC path
<enebo>
rsim: ok
<rsim>
enebo: File.dirname("//localhost/C$") returns "//localhost" and File.dirname("//localhost") returns "/"
<rsim>
enebo: and as a result mkdir_p tries to create at first directory "/" and then "//localhost"
<enebo>
hahaha wow dirname is one set of scary code :)
<rsim>
enebo: I think the correct solution would be that File.dirname("//localhost/C$") returns the same "//localhost/C$" (as it is the root directory")
<rsim>
enebo: and just in case File.dirname("//localhost") should return the same "//localhost" as well
<enebo>
rsim: yeah I think that sounds right
<enebo>
rsim: but there are multiple rules at play
<nirvdrum>
enebo: eregon_ is looking at that.
<enebo>
rsim: //foo/bar should return //foo/
<enebo>
rsim: so the $ syntax is special?
<rsim>
enebo: no - //foo/bar is server foo with share bar
<rsim>
enebo: File.dirname("//foo/bar") should also be "//foo/bar"
<enebo>
rsim: so always first path after //server/path should be the root?
eregon_ is now known as eregon
<eregon>
enebo: yeah that was my fault, should be fixed now
<rsim>
enebo: yes, as //server is just server, there is no such directory //server
<enebo>
eregon: I was hoping you were talking about this windows issue :) but I realize you meant truffle on ci
<rsim>
enebo: on Unix each fragment of the path is a directory but not on Windows :)
samphippen has joined #jruby
<enebo>
//TODO deal with UNC names
<enebo>
int index = name.lastIndexOf('/');
cremes has joined #jruby
<enebo>
rsim: ^ you see there is our UNC support in dirname :)
<rsim>
enebo: ah, just need some robot which converts TODO comments into a working code :)
<enebo>
rsim: you will end up putting us all out of jobs
<enebo>
rsim: except I seem prolific at adding TODOs so I may stay employed
<rsim>
enebo: I usually use FIXME comments instead of TODO if it is kind of a bug :)
<rsim>
enebo: TODO is for new features :)
<enebo>
rsim: Actually now I always fIXME
<enebo>
rsim: fwiw headius made that TODO :)
<enebo>
in that method my only lines are the white space and curly brackets
lanceball is now known as lance|afk
<rsim>
enebo: headius wrote a spec in TODO but you failed at implementation :P
pitr-ch has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
pitr-ch has joined #jruby
<enebo>
rsim: so we probably have this problem in several places
<enebo>
rsim: if you can help shag out more it would be really nice
<rsim>
enebo: we are now patching what we find and building a custom jruby-complete with these patches and then testing if we can start our Rails app on //server/share/directory - when we will manage to run it then will provide the list of these patches / report in jruby issues
<enebo>
rsim: cool
phrinx has joined #jruby
<enebo>
rsim: I saw another weird wrinkle in RubyFile
<enebo>
// Basically, '/path' is treated as a *RELATIVE* path,
<enebo>
// relative to the current drive. '//path' is treated
<enebo>
// as absolute one.
<enebo>
This comment does not make sense to me if MRI supports UNC
<enebo>
or current drive
<enebo>
but //path/bar cannot be what this comment says
<enebo>
rsim: this is RubyFile.java:adjustRootPathOnWindows
<rsim>
enebo: probably we don't need to deal with "/path" on Windows as in Rails apps relative path always is used as "folder/subfolder"
<rsim>
enebo: and Rails.root or similar are returned either as drive:/path or //server/share/path
<enebo>
rsim: sure but I will see it if we add specs/tests for unc paths
<enebo>
rsim: I guess this code pretty much passes through unc paths unchanged so maybe it won’t be an issue
<rsim>
enebo: File.expand_path("/tmp", "//localhost/c$") is "//tmp" which is not right :)
<rsim>
enebo: but Dir.chdir("//localhost/c$"); File.directory?("/tmp") is true
<enebo>
rsim: yeah so based on logic /tmp is C:\tmp so I would expect that
<enebo>
rsim: what would you expect
<enebo>
or I mean /tmp probably
<enebo>
/tmp is weird
<rsim>
enebo: File.expand_path("/tmp", "//localhost/c$") should be "//localhost/c$/tmp"
<rsim>
enebo: well in this case accoring to the Windows logic the first argument is not a full path but relative path
<rsim>
enebo: but File.expand_path always returns full path
<enebo>
rsim: my confusion is that /tmp is considered a relative path on windows
<rsim>
enebo: so File.expand_path("/tmp", "//localhost/c$") should be the same as File.expand_path("tmp", "//localhost/c$")
<enebo>
rsim: I assumed it was a shorthand for current drive but still absolute
<rsim>
enebo: relative to the current drive or current UNC share :)
<enebo>
rsim: I just confirmed MRI does as you say though
<enebo>
rsim: yeah I understand what you are saying but it did not jive with my understanding
<enebo>
rsim: which is ok. We should match MRI and I can accept this definition
<enebo>
rsim: but as a definition it is really interesting how simple it is for someone to fuck up their library by path[0] == / as meaning absolute when it is not on windows
<enebo>
rsim: but windows is special and people should not be hand-rolling those sorts of methods
<enebo>
rsim: ok I think we need to change some stuff internally since I do not think we use that defnition anywhere
<enebo>
rsim: well perhaps we do in the method I mentioned above
<enebo>
rsim: but it is also a problem since it assume /tmp will always be current drive letter so it make C:\tmp which then is wrong for second arg of expand_path
<enebo>
rsim: heh…we need to review stuff
<GitHub118>
[jruby] nirvdrum pushed 1 new commit to truffle-head: http://git.io/vn2g4
<GitHub118>
jruby/truffle-head d65d5f0 Kevin Menard: [Truffle] Trying to stop running unit tests when running Ruby specs.
<rsim>
enebo: as I mention I think that "/path" won't be used in typical Ruby apps - typicall it will be either full path with a drive or share or a relative path without the starting "/"
<enebo>
rsim: sure but I would like to fix this to work properly even if not commonly used
<rsim>
enebo: but I think that the correct implementation for File.expand_path("/tmp", "//localhost/c$") would mean that in the second argument we override the default drive or default share
<enebo>
rsim: really the code for this should be like path(“/tmp”).isAbsolute() which should be false
<rsim>
enebo: and probably File.expand_path("/tmp", "//localhost/c$/windows") should also return "//localhost/c$/tmp" :)
<enebo>
rsim: because it is saying this needs to direct child of the share in the second arg?
<rsim>
enebo: hmm, I don't know if "/tmp" should be considered as absolute or not as it is something between absolute path with a drive or share and a relative path
<enebo>
rsim: vs just “tmp” which would be beneath windows
<rsim>
enebo: yes, probably File.expand_path("/tmp", "//localhost/c$/windows") should be "//localhost/c$/tmp" but File.expand_path("tmp", "//localhost/c$/windows") should be "//localhost/c$/windows/tmp"
<enebo>
rsim: it is absolute relative to a drive or share but when compared against something which includes the share or drive it is relative?
<enebo>
rsim: does MRI do that?
<enebo>
it does
<enebo>
rsim: ok this is helpful
<rsim>
enebo: I have now just MRI 1.9.3 on my windows and it seems that it ignores second argument for "/tmp"
<enebo>
rsim: the behavior you descrived all works for me with Ruby 2.2. on windows
<rsim>
enebo: File.expand_path("/tmp", "//localhost/d$/windows") is still "C:/tmp"
<enebo>
rsim: 2.2 returns "//localhost/c$/tmp"
<enebo>
The irony with this snippet is somehow the code would still work :)
<enebo>
but if we use a share which is not the c drive I am sure it is broken in 1.9.3
<enebo>
and jruby is probably the same level of broken right now
<enebo>
this is one of those few places where Ithink we probably fix it in our 1.9 support to be like 2.2
<rsim>
enebo: on MRI 1.9.3 Dir.chdir("//server/share"); File.expand_path("/tmp") returns wrong "//tmp"
<enebo>
since it seems unlikely anyone using a unc path as second arg wants the default drive
<enebo>
aha
<enebo>
rsim: ok our logic matches then
<enebo>
rsim: so we have to decide whether to break compat and do the correct thing
<enebo>
rsim: //tmp seems like a complelte broken value
<rsim>
enebo: yes, //tmp does not make any sense
<enebo>
rsim: bug for bug compatible :)
<enebo>
rsim: I think we should match MRI 2.2 for 1.8 and 1.9 mode in 1.7.x since these values seem like nonsense (but if that ends up breaking some popular lib we can perhaps replace it with a flag)
<enebo>
rsim: I just don’t think the number of windows-friednly likbraries can be patching this weirdness in their libs
<rsim>
enebo: and Dir.chdir("//localhost/c$"); File.expand_path("/") is "//" :)
<enebo>
heh…funky
yfeldblum has joined #jruby
<rsim>
enebo: hmm - on MRI 1.9.3 FileUtils.mkdir_p("//server/share/tmp") also fails with Errno::ENOENT No such file or directory //server
<rsim>
enebo: but FileUtils.mkdir_p("//localhost/c$/tmp") succeeds
<enebo>
heh
<enebo>
ok so basically unc is broken in 1.9.x already
<enebo>
and by extension 1.8
<rsim>
enebo: don't know where //localhost/c$ is detected as some special case
<enebo>
so we can probably fix this and it will not break how people handle unc in those versions unless they are doing something heroic
<rsim>
enebo: so for CI it would be better to have some real network share that could be used for testing
<enebo>
yeah
<enebo>
I am afk for a bit
<rsim>
ok
yfeldblum has quit [Read error: Connection reset by peer]
<pitr-ch>
https://github.com/jruby/jruby/wiki/Concurrency-in-jruby#concurrency_basics says "Instance variable updates for the first time for a given class/name pair. Because of the way JRuby lazily allocates space for instance variables, early in execution the instance variable table may be replaced when grown. If this happens under concurrent load, one thread's updates might disappear. This should only happen when a new class/name pair is being set, which should be
<pitr-ch>
rare after the application has booted. You can avoid this situation completely by initializing all variables you will use in the initialize method, though this adds a bit of additional overhead to object initialization."
<pitr-ch>
Is this still true or was it corrected, I think it was.
<colinsurprenant>
pitr-ch: AFAIK this particular paragraph was not recently updated and is still true
havenwood has joined #jruby
<thedarkone2>
pitr-ch: no, that paragraph is wrong
<thedarkone2>
pitr-ch: StampedVariableAccessor was introduced for exactly this reason
<pitr-ch>
thedarkone2 I thought so.
<pitr-ch>
colinsurprenant why do you think it's still broken?
<colinsurprenant>
thedarkone2: so the ivar table is now safe to grow under concurrent load?
<thedarkone2>
colinsurprenant: yes
<GitHub192>
[jruby] oblutak opened issue #3343: File.flock does not work on Solaris for 9k http://git.io/vnaeM
<colinsurprenant>
pitr-ch: I assumed so simply because headius just recently updated this section to make it current but did not touch that paragrah …
<pitr-ch>
colinsurprenant ah, thanks
<colinsurprenant>
pitr-ch: so, I saw the thread_safe/util/volatile.rb, but it uses AtomicReference unlike Synchronization::Object + attr_volative + JRubyObject which uses the instance_variable_get_volatile ext …
<thedarkone2>
thread_safe is my oldish code
<pitr-ch>
colinsurprenant yeah, I've only suggested it as a temporary solution, until I'll extract the current c-r solution into a module
<pitr-ch>
colinsurprenanti was under the impresion that you need solution fast
<colinsurprenant>
pitr-ch: ok, make sense so I took a stab at refactoring into a module the specific stuff for attr_volative in Synchronization::Object
yfeldblum has quit [Ping timeout: 240 seconds]
<colinsurprenant>
pitr-ch: I stopped lst night at the Java ext for instance_variable_get_volatile & friends, as it uses a state for the thread context, so I am looking at this now
<colinsurprenant>
what I can do is finish that, and submit a POC/WIP PR you can look at and if you like the idea we can move it forward?
yfeldblum has joined #jruby
yfeldblum has quit [Remote host closed the connection]
<pitr-ch>
colinsurprenant yeah please continue if you've already started, we can then cooperate on the PR once you submit it. That would be very helpful, thanks!
<pitr-ch>
colinsurprenant is it base on master?
<pitr-ch>
*based
djbkd has quit [Remote host closed the connection]
colinsurprenant has quit [Quit: colinsurprenant]
djbkd has joined #jruby
enebo has quit [Quit: enebo]
djbkd has quit [Read error: Connection reset by peer]
djbkd has joined #jruby
colinsurprenant has joined #jruby
<colinsurprenant>
pitr-ch: yup, from master … should I base it on another branch?
<pitr-ch>
colinsurprenant no, master is most up to date
kares has quit [Remote host closed the connection]
colinsurprenant has quit [Quit: colinsurprenant]
colinsurprenant has joined #jruby
cyklOpz has joined #jruby
cyklOpz has quit []
benlovell has joined #jruby
mikemar10 has joined #jruby
djbkd has quit [Remote host closed the connection]
benlovell has quit [Ping timeout: 250 seconds]
phrinx_ has joined #jruby
phrinx has quit [Read error: Connection reset by peer]
subbu is now known as subbu|afk
djbkd has joined #jruby
djbkd has quit [Read error: Connection reset by peer]
djbkd has joined #jruby
subbu|afk is now known as subbu
subbu is now known as subbu|afk
cyklOpz has joined #jruby
djbkd has quit [Remote host closed the connection]
djbkd has joined #jruby
djbkd has quit [Read error: Connection reset by peer]
djbkd has joined #jruby
<GitHub187>
[jruby] chrisseaton pushed 1 new commit to truffle-om-dsl-jars: http://git.io/vnaab
<GitHub187>
jruby/truffle-om-dsl-jars 6948f92 Chris Seaton: Merge branch 'master' into truffle-om-dsl-jars
<thedarkone2>
pitr-ch: yes, it can be a boolean or an int, it doesnt matter
<pitr-ch>
colinsurprenant yeah exactly, sorry there was a comment explaining, it was removed by mistake
<pitr-ch>
ah it's on line 103
subbu|afk is now known as subbu
havenn has joined #jruby
havenwood has quit [Ping timeout: 264 seconds]
<colinsurprenant>
pitr-ch: yeah, saw that, want to make sure I understand correctly
<colinsurprenant>
pitr-ch ok, so, trying to grasp the happens-before, here specifically using threadContext as volatile is not relevant, it could be anything volatile to trigger the read/write fense ? thedarkone2 ^^ that’s what you said above right?
<thedarkone2>
colinsurprenant: yes
<pitr-ch>
yeah, I wanted to make little more harder to eliminate
<colinsurprenant>
right right
<pitr-ch>
constant int value is much easier :)
<pitr-ch>
still this branch is not ideal
<pitr-ch>
I am much more sure about the path when fences are available ...
vjdhama has quit [Remote host closed the connection]
<GitHub159>
[jruby] chrisseaton created truffle-head-om-dsl-jars (+2 new commits): http://git.io/vnaHE
<GitHub159>
jruby/truffle-head-om-dsl-jars d89439f Chris Seaton: Merge branch 'master' into truffle-head
<GitHub159>
jruby/truffle-head-om-dsl-jars 1c54972 Chris Seaton: Merge branch 'truffle-head' into truffle-head-om-dsl-jars...
<GitHub63>
[jruby] chrisseaton fast-forwarded truffle-head from d65d5f0 to d89439f: http://git.io/vnaHz
havenn is now known as havenhaze
<GitHub145>
[jruby] chrisseaton opened pull request #3344: Truffle head om dsl jars (truffle-head...truffle-head-om-dsl-jars) http://git.io/vnaHo
cremes has quit [Read error: Connection reset by peer]