00:00
<
GitHub149 >
jruby/master 75a39d3 Charles Oliver Nutter: All backrefs require the same framing as $~, so set scope flags.
00:06
snowp has quit [Ping timeout: 240 seconds]
00:10
dminuoso has quit [Ping timeout: 255 seconds]
00:12
snowp has joined #jruby
00:12
dminuoso has joined #jruby
00:24
msg has joined #jruby
00:25
msg is now known as Guest6571
00:28
prasun has quit [Remote host closed the connection]
00:29
Guest6571 has quit [Ping timeout: 260 seconds]
00:44
<
lopex >
headius: will be framing of those ever be resolved ?
00:44
<
lopex >
and/or scoping
00:51
alex0ptr has quit [Remote host closed the connection]
01:07
hoodow has quit [Quit: No Ping reply in 180 seconds.]
01:08
hoodow has joined #jruby
01:08
hoodow has joined #jruby
01:08
hoodow has quit [Changing host]
01:17
<
nirvdrum >
lopex: Do you know of any consumers of jcodings outside of JRuby and TruffleRuby?
01:17
<
lopex >
nirvdrum: a few, judging from mvn repo
01:17
<
lopex >
nirvdrum: like 5 to 8 ?
01:18
<
nirvdrum >
Interesting.
01:18
hoodow has quit [Quit: No Ping reply in 180 seconds.]
01:18
<
nirvdrum >
I'd like to make it more AOT friendly, but obviously don't want to break anything on anyone.
01:19
<
lopex >
nirvdrum: did you look at mvn repo deps ?
01:19
<
nirvdrum >
No. I didn't know you could.
01:19
hoodow has joined #jruby
01:19
hoodow has joined #jruby
01:21
<
GitHub164 >
[jruby] headius closed pull request #4498: Separate varargs and specific-arity names in JIT. Fixes #4482 (master...isolate-arity-names)
https://git.io/vDxWu
01:21
<
GitHub97 >
jruby/master 5a21276 Charles Oliver Nutter: Merge pull request #4498 from headius/isolate-arity-names...
01:21
<
GitHub97 >
jruby/master 2723012 Charles Oliver Nutter: Allow indirect indy calls to still call specific arity up to 3....
01:21
<
GitHub97 >
jruby/master 18cde0d Charles Oliver Nutter: Separate varargs and specific-arity names in JIT. Fixes #4482...
01:22
<
GitHub165 >
[jruby] headius closed issue #4499: Make failed indy call sites still use specific-arity dispatch
https://git.io/vDxRm
01:22
<
GitHub106 >
[jruby] headius closed issue #4482: Doing require_relative too often leads to TypeError
https://git.io/vD4Yq
01:22
<
lopex >
nirvdrum: what what do you mean by aot ?
01:23
msg has joined #jruby
01:23
<
lopex >
or how aot would affect there ?
01:23
msg is now known as Guest4073
01:24
<
lopex >
oh I get it now
01:24
<
nirvdrum >
lopex: I guess I specifically mean SVM here. I haven't looked at the Java 9 AOT in detail. But we can't use runtime reflection.
01:24
<
lopex >
nirvdrum: unfortunately joni api suffers the same problem jruby does
01:25
<
nirvdrum >
And then use a method substitution mechanism to override the load call to avoid the reflection paths.
01:25
<
lopex >
nirvdrum: I know joni api is bad
01:25
<
nirvdrum >
That works. It's ugly, but it works.
01:25
<
nirvdrum >
The problem I'd like to fix, however, is the transcoder load up these rather large tables.
01:25
<
lopex >
so that mostly jcodings right ?
01:26
<
nirvdrum >
And most of the time not a single transcoder is ever used. In the apps that do use them, you're talking a handful.
01:26
<
nirvdrum >
But some of these int[] arrays are > 1 MB in memory.
01:26
<
nirvdrum >
And I think a few even push 5 or 6 MB.
01:26
<
lopex >
nirvdrum: right, yeap, but I think those can be fixed
01:27
<
lopex >
nirvdrum: we got those out of control because of mindles porting
01:27
<
nirvdrum >
So, I'd like a way to load the classes a bit lighterweight and then explicitly populate those arrays, taking the new threading concerns into account.
01:27
<
lopex >
nirvdrum: it can be improved
01:27
<
nirvdrum >
I just want to do it all in such a way that I don't break anything on anyone.
01:27
<
lopex >
nirvdrum: which are the most offending ?
01:28
<
nirvdrum >
I'd have to look at the heap dump again.
01:28
<
nirvdrum >
But you can take a guess based on the size of the .bin files.
01:28
Guest4073 has quit [Ping timeout: 260 seconds]
01:28
<
lopex >
nirvdrum: there's another case too
01:29
<
lopex >
nirvdrum: just ship the one most often used
01:29
<
lopex >
nirvdrum: and lazy networkload other ones ?
01:29
<
lopex >
nirvdrum: since it's insane
01:30
<
nirvdrum >
Not a bad idea, but certainly some people aren't going to want that.
01:30
<
lopex >
nirvdrum: hmm, might just a case of a less frequent user ?
01:30
<
lopex >
nirvdrum: like 0.0000% one ?
01:31
<
lopex >
just economics
01:32
<
nirvdrum >
I don't think loading them from file is as much of a problem.
01:33
<
nirvdrum >
It's having to store them in memory the moment the transcoder class is created that I'd like to adjust.
01:33
<
lopex >
nirvdrum: do we know the most frequent transcoder paths ?
01:34
<
lopex >
I guess that the metric right ?
01:34
<
nirvdrum >
Just as an FYI, this problem really doesn't affect JRuby, since it lazily loads transcoders as needed.
01:35
<
lopex >
the case you laid is another issue of course
01:35
<
nirvdrum >
Except, of course, if JRuby is to be built with the SVM.
01:36
<
lopex >
nirvdrum: I also know of paths in transcodinds that havent been optimized in any way
01:36
<
lopex >
nirvdrum: like huge immediate buffers
01:37
<
lopex >
I;d have to look
01:38
<
lopex >
nirvdrum: can you rule out the leaks ?
01:38
<
nirvdrum >
lopex: I have a static reference to every transcoder class.
01:38
<
nirvdrum >
And each of them has a byte[] and and int[] attached to them. Those arrays can get quite large.
01:39
<
lopex >
sounds like a leak
01:39
<
lopex >
well, after transocing ?
01:40
<
nirvdrum >
I have to have a reference to each transcoder class to avoid reflection. And the transcoder classes eagerly populate this cache.
01:41
<
nirvdrum >
I suppose it's a leak in the sense that I'm holding on to them longer than I should, but I don't have any other way to do this I'm afraid.
01:41
<
GitHub18 >
[jruby] headius reopened issue #3663: Never-ending getaddress() call when using compressed IPv6 nameservers in /etc/resolv.conf
https://git.io/vgD0w
01:41
<
lopex >
nirvdrum: unless it's leaking internally
01:41
<
nirvdrum >
It's not.
01:42
<
lopex >
let mee look
01:43
<
nirvdrum >
And then all the classes that load it are kept referenced in a static map.
01:43
<
lopex >
nirvdrum: I recall headius porting some logic and using c stack sizes to allocate java heaps
01:43
<
nirvdrum >
I think we're talking past each other.
01:44
<
nirvdrum >
Or, have an explicit "populate cache" method that's run outside the constructor.
01:45
<
lopex >
dont say I have weasted an hour of yout life ?
01:45
<
nirvdrum >
I wouldn't. You've saved me many hours overall :-)
01:45
<
lopex >
nirvdrum: I have no idea
01:46
<
lopex >
ther's just a hash poulation right ?
01:47
<
lopex >
nirvdrum: why would it couse a problem on svm ?
01:47
<
lopex >
it;s all greedy code
01:49
<
lopex >
convertInternal ??
01:49
<
lopex >
I nned to blame this code
01:49
<
nirvdrum >
I had to copy & paste a bunch from Transcoder and then change it slightly.
01:50
<
nirvdrum >
All of this basically prevents the runtime reflection paths from being run.
01:50
<
lopex >
nirvdrum: if MethodHandle is involved thene headius :P
01:50
<
lopex >
but still lookin where was the problem
01:50
<
nirvdrum >
MethodHandle is fine, in a static context.
01:51
<
lopex >
ret = (EConvResult) convertInternalMethodHandle.invoke(ec, in, inPtr, inStop, out, outPtr, outStop, flags
01:53
<
nirvdrum >
So, everything in that TranscodingManager class I've pointed you at exists solely to avoid Transcoder.load.
01:53
<
lopex >
nirvdrum: sync problem or more ?
01:54
<
nirvdrum >
If the class isn't statically reachable, it's not compiled into the SVM image.
01:56
<
lopex >
nirvdrum: can you force it to make it through ?
01:56
<
nirvdrum >
I don't think so.
01:57
<
nirvdrum >
I don't mind maintaining a lookup table for all the transcoder pairs.
01:57
<
nirvdrum >
But I don't want to pay the cost of keeping those byte & int arrays around if they're not being used.
01:57
<
nirvdrum >
But, they're populated by virtue of instantiating the transcoders.
01:59
<
lopex >
nirvdrum: I'd have to look through the paths
01:59
<
nirvdrum >
Do you understand what I'd like to do?
02:00
<
lopex >
I assume no
02:01
<
lopex >
nirvdrum: where's the allocating areas ?
02:01
<
nirvdrum >
Look at the Transcoder constructor.
02:01
<
lopex >
I havent seen that code for years
02:01
<
nirvdrum >
I linked it a bit earlier.
02:01
<
nirvdrum >
There are two final arrays: byteArray and intArray.
02:02
<
nirvdrum >
I would like to make them non-final and then populate them outside of the constructor.
02:02
<
nirvdrum >
I'm just asking if you think that's a good idea or not. I'm not looking for you to do any work :-)
02:04
<
lopex >
yeah both final
02:05
<
lopex >
I guess I was under an impression of jsr 133 (properly cinstructed objects by then)
02:05
<
lopex >
but I dont care really
02:05
<
lopex >
nirvdrum: make them as you wish
02:06
<
lopex >
it doesnt matter wrt api or ruby api
02:06
<
lopex >
er was it 130 ?
02:08
<
lopex >
them gein final doesnt help ruby or the api so..
02:09
<
lopex >
nirvdrum: still here ??
02:09
<
nirvdrum >
Sorry, was AFK for a moment.
02:10
<
lopex >
nirvdrum: I guess it will never matter wrt ruby memory model :P
02:10
<
lopex >
so it;s all internal
02:11
<
nirvdrum >
I don't think a lot of this is thread-safe to begin with.
02:11
<
lopex >
nirvdrum: like jruby string :P
02:11
<
lopex >
Hash and Array were at least pretending
02:12
<
nirvdrum >
Okay. Well, I'll take a look and see if I can find something that works well enough.
02:13
<
nirvdrum >
Thanks for the help.
02:13
<
lopex >
nirvdrum: well, thak you for keeping it up
02:14
<
lopex >
nirvdrum: I'll jump in happily
02:14
<
lopex >
nirvdrum: I can scan mri sources reald good if that helps
02:14
enebo has quit [Quit: enebo]
02:15
<
nirvdrum >
Cool. Thanks for the offer.
02:23
<
lopex >
nirvdrum: hey I've seen all of you talks
02:23
<
lopex >
nirvdrum: and kneeeling down
02:24
<
lopex >
nirvdrum: any new benchmarks on strings ?
02:33
jeremyevans has joined #jruby
03:01
jeremyevans has quit [Remote host closed the connection]
03:08
jeremyevans has joined #jruby
03:50
snowp has quit [Ping timeout: 240 seconds]
04:51
ankitr has joined #jruby
05:40
_whitelogger has joined #jruby
05:47
snowp has joined #jruby
05:51
snowp has quit [Ping timeout: 240 seconds]
05:56
ankitr has quit [Quit: Leaving]
06:07
msg has joined #jruby
06:07
msg is now known as Guest6663
06:12
ankitr has joined #jruby
06:17
bbrowning_away has quit [Ping timeout: 260 seconds]
06:19
Guest6663 has quit [Remote host closed the connection]
06:36
bbrowning has joined #jruby
06:41
marciol has joined #jruby
06:42
ankitr has quit [Quit: Leaving]
06:43
ankitr has joined #jruby
06:46
marciol has quit [Ping timeout: 260 seconds]
06:49
thedarkone2 has quit [Quit: thedarkone2]
06:58
msg has joined #jruby
06:59
msg is now known as Guest68033
07:10
Guest68033 has quit [Remote host closed the connection]
07:53
msg has joined #jruby
07:53
msg is now known as Guest71432
08:03
Guest71432 has quit [Remote host closed the connection]
08:12
blaxter has joined #jruby
08:14
alex0ptr has joined #jruby
08:48
Specialist has joined #jruby
08:52
msg has joined #jruby
08:53
msg is now known as Guest31912
09:20
Guest31912 has quit [Remote host closed the connection]
09:36
shellac has joined #jruby
09:40
Puffball has quit [Quit: No Ping reply in 180 seconds.]
09:42
Puffball has joined #jruby
09:49
snowp has joined #jruby
09:53
snowp has quit [Ping timeout: 240 seconds]
09:53
msg has joined #jruby
09:54
msg is now known as Guest22659
10:05
drbobbeaty has joined #jruby
10:10
vtunka has joined #jruby
10:19
marciol has joined #jruby
10:19
Specialist has quit [Ping timeout: 260 seconds]
10:24
marciol has quit [Ping timeout: 260 seconds]
10:25
alex0ptr has quit [Remote host closed the connection]
10:27
Specialist has joined #jruby
10:28
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
10:31
Specialist has quit [Ping timeout: 268 seconds]
10:32
Specialist has joined #jruby
10:59
Guest22659 has quit [Remote host closed the connection]
10:59
msg has joined #jruby
11:00
msg is now known as Guest17266
11:07
Specialist has quit [Ping timeout: 260 seconds]
11:09
Specialist has joined #jruby
11:17
Guest17266 has quit [Remote host closed the connection]
11:26
alex0ptr has joined #jruby
11:39
Specialist has quit [Ping timeout: 240 seconds]
12:00
vtunka has quit [Quit: Leaving]
12:00
vtunka has joined #jruby
12:01
Specialist has joined #jruby
12:06
dminuoso has left #jruby [#jruby]
12:16
msg has joined #jruby
12:16
msg is now known as Guest45695
12:20
drbobbeaty has joined #jruby
12:23
marciol has joined #jruby
12:31
ankitr has quit [Ping timeout: 255 seconds]
12:42
tcrawley-away is now known as tcrawley
13:02
snowp has joined #jruby
13:04
subbu_ has joined #jruby
13:04
subbu has quit [Ping timeout: 252 seconds]
13:04
subbu_ is now known as subbu
13:05
subbu is now known as Guest26832
13:08
blaxter has quit [Quit: foo]
13:08
snowp has quit [Ping timeout: 240 seconds]
13:33
_whitelogger has quit [Ping timeout: 240 seconds]
13:36
_whitelogger has joined #jruby
13:36
alex0ptr has joined #jruby
13:37
Guest45695 has quit [Remote host closed the connection]
14:15
enebo has joined #jruby
14:23
ankitr has joined #jruby
14:30
msg has joined #jruby
14:30
msg is now known as Guest45919
14:34
Guest45919 has quit [Ping timeout: 268 seconds]
14:40
prasun has joined #jruby
14:42
<
GitHub103 >
jruby/master b5cfd0d Thomas E. Enebo: Fix ruby/spec Enumerable#max where nil arg will return single maximum value
14:45
Guest26832 is now known as subbu
14:48
<
GitHub197 >
jruby/master 7341634 Thomas E. Enebo: Fix ruby/spec Enumerable#min where nil arg will return single minimum value
14:59
Specialist has quit [Ping timeout: 240 seconds]
15:02
<
GitHub146 >
jruby/master 237fbf9 Thomas E. Enebo: Fixes ruby/spec Enumerable#each_cons to throw an exception when the cons size are is bogus
15:10
<
GitHub191 >
jruby/master 93d52c0 Thomas E. Enebo: Fixes ruby/spec Enumerable#each_slice to throw an exception when the cons size are is bogus
15:14
prasun has quit [Ping timeout: 240 seconds]
15:26
marciol has quit [Remote host closed the connection]
15:27
marciol has joined #jruby
15:27
msg has joined #jruby
15:27
msg is now known as Guest33828
15:29
Guest33828 has quit [Remote host closed the connection]
15:29
camlow325 has joined #jruby
15:31
<
GitHub81 >
jruby/master b97a0d0 Thomas E. Enebo: Fix ruby/spec failure in Enumerable#max_by where it accepts are but has no block...Make Enumerator
15:31
marciol has quit [Ping timeout: 240 seconds]
15:34
Specialist has joined #jruby
15:40
<
GitHub127 >
jruby/master ff996fb Thomas E. Enebo: Fix ruby/spec failure in Enumerable#min_by where it accepts are but has no block...Make Enumerator
16:13
prasun has joined #jruby
16:13
ankitr_ has joined #jruby
16:14
msg has joined #jruby
16:14
msg is now known as Guest71630
16:15
ankitr has quit [Ping timeout: 260 seconds]
16:23
prasun has quit [Ping timeout: 268 seconds]
16:29
swills has quit [Ping timeout: 240 seconds]
16:38
swills has joined #jruby
16:50
prasun has joined #jruby
16:52
thedarkone2 has joined #jruby
16:59
vtunka has quit [Quit: Leaving]
17:04
snowp has joined #jruby
17:05
ankitr_ has quit [Ping timeout: 268 seconds]
17:09
snowp has quit [Ping timeout: 240 seconds]
17:09
Guest71630 has quit [Remote host closed the connection]
17:09
msg has joined #jruby
17:10
msg is now known as Guest29178
17:13
Guest29178 has quit [Ping timeout: 240 seconds]
17:14
ankitr_ has joined #jruby
17:25
marciol has joined #jruby
17:28
ankitr_ has quit [Ping timeout: 240 seconds]
17:37
prasun has quit [Ping timeout: 260 seconds]
17:38
ankitr_ has joined #jruby
17:39
ankitr_ has quit [Client Quit]
18:01
camlow325 has quit [Quit: WeeChat 1.5]
18:04
msg has joined #jruby
18:04
msg is now known as Guest55967
18:11
alex0ptr has quit [Remote host closed the connection]
18:12
Specialist has quit [Remote host closed the connection]
18:54
enebo1 has joined #jruby
19:05
camlow325 has joined #jruby
19:07
snowp has joined #jruby
19:12
snowp has quit [Ping timeout: 255 seconds]
19:41
bbrowning is now known as bbrowning_away
19:47
alex0ptr has joined #jruby
19:53
lanceball is now known as lance|afk
20:07
alex0ptr has quit [Read error: Connection reset by peer]
20:07
alex0ptr_ has joined #jruby
20:14
alex0ptr_ has quit [Ping timeout: 260 seconds]
20:20
alex0ptr has joined #jruby
20:22
alex0ptr_ has joined #jruby
20:26
alex0ptr has quit [Ping timeout: 240 seconds]
20:43
tcrawley is now known as tcrawley-away
20:57
snowp has joined #jruby
21:05
marciol has quit [Remote host closed the connection]
21:22
marciol has joined #jruby
21:23
marciol has quit [Remote host closed the connection]
21:23
marciol has joined #jruby
21:27
marciol has quit [Ping timeout: 268 seconds]
21:43
lance|afk is now known as lanceball
22:04
marciol has joined #jruby
22:11
marciol has quit [Remote host closed the connection]
22:12
marciol has joined #jruby
22:15
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
22:16
marciol has quit [Ping timeout: 260 seconds]
23:52
bbrowning_away is now known as bbrowning