ruurd has quit [Read error: Connection reset by peer]
ruurd has joined #jruby
<headius[m]>
Good morning!
<rdubya[m]>
Good morning!
subbu is now known as subbu|meetings
<headius[m]>
hmm
<headius[m]>
interesting issue about restoring the one-click installers that include JDK
<headius[m]>
I forget that not everyone knows how or where to go get a JDK
subbu|meetings is now known as subbu
daveg_lookout[m] has joined #jruby
<daveg_lookout[m]>
What's the status of ruby-debug with JRub 9.2.14.0? I had to revert to jruby-debug 0.10.4 (which doesn't work, per https://github.com/jruby/jruby/issues/6018) from 0.11 when I updated to 9.2.14. Is this already known, or should I comment on that issue?
<boc_tothefuture[>
Have a question about Java objects that are prepended/monkeypatched. Lets say I took a Java object and added a hashmap to that object. Then it goes out of scope from a JRuby perspective, but later comes back into scope. Will that hashmap still be there?
<boc_tothefuture[>
also, happy new year.
<headius[m]>
daveg_lookout: ugh, the management of that gem is very frustrating
<headius[m]>
daveg_lookout: it looks like we are still waiting on a release of 0.11.0 so I would say to comment on the ruby-debug issue where I request a release
<headius[m]>
oh wait... no it was released but doesn't work?
<headius[m]>
ahh because ruby-debug-base is not 0.11.0
<daveg_lookout[m]>
That's right
<headius[m]>
so we need to figure out who we need to lean on or bribe to get these releases out
<boc_tothefuture[>
Hey headius , HNY. Did my question above make sense? I couldn't find an answer in the wiki.
<headius[m]>
oh boc_tothefuture sorry I missed that
<headius[m]>
as you might suspect, anything you attach to that object will not necessarily stick with it in all cases
<headius[m]>
We used to try to get the same wrapper object every time but it meant every call across that boundary had to do expensive weak map lookups
<headius[m]>
it turns out to be cheaper to just create a new thin wrapper for any object entering Ruby world, but it means we can't guarantee it is the same wrapper
<headius[m]>
you can force us to use the same wrapper on a per-class basis by setting MyJavaClass.persistent = true I think
<headius[m]>
oops highlighting
<headius[m]>
`MyJavaClass.__persistent__ = true`
<boc_tothefuture[>
no worries.. Thanks for the answer.. I figured that was the case. Ok, let me play with the persistent value.
<boc_tothefuture[>
If i am doing that on the abstract superclass.. will all children get it?
<headius[m]>
no, it is specific to the class
<boc_tothefuture[>
* If i am doing that on the abstract superclass.. will all sub classes get it?
<headius[m]>
it could perhaps be made class and descendants but it does not look that way now
<boc_tothefuture[>
ok, so if I set that value on the abstract, put an object in the abstract. The sub classes won't see the value. I might be better off using a weakmap myself perhaps..
<boc_tothefuture[>
They net is I want to attach a hash to a set of objects that all descend from a specific type.
<headius[m]>
yeah you see the challenge here... either we maintain a weak map for everything or you do it for specific things
<headius[m]>
we opted to do the lowest overhead option since we can't do anything to really decorate the Java objects
<boc_tothefuture[>
yep, that makes sense... So on my side, I would want to do a weak map.. and when I do that I want to do it based on the underlying java object itself because when I use it in JRuby I will be working with a wrapper?
<boc_tothefuture[>
And any weak map I need to make needs to be global right? Doing it with @@ in the superclass won't help, correct?
<headius[m]>
well you can put it in a constant or something
<headius[m]>
you can also just use a Java WeakHashMap and calls to it will unwrap the object (but also rewrap it when getting)
<boc_tothefuture[>
Ok thanks. I will play around a bit.
<boc_tothefuture[>
@headius For this to work I would need to be running in SINGLETON mode, correct?
<headius[m]>
I hate the mode naming... I think so, yes
<headius[m]>
if that is the mode where you are going to be using a single runtime across threads
<headius[m]>
enebo: also what do you think about getting a JDK installer back into our artifacts?
<headius[m]>
this guy complained on twitter and then filed an issue and he makes a good point... we don't even provide instructions on how to get a JDK
<enebo[m]>
headius: I am not for it
<headius[m]>
I was trying to remember why we stopped... was it just licensing questions with the binary oracle builds?
<enebo[m]>
I think the main issue is it requires bundling a JVM and then updating it as CVEs and other things are released
<headius[m]>
I also don't know enough about install4j to know if we can point it at an arbitrary OpenJDK build
<headius[m]>
ah that is true
<enebo[m]>
Install4j I think also changed in some weird way at some point where they had some legal problems with having their own repo of JVMs
<enebo[m]>
I may be misremembering that though
<headius[m]>
so if we have an old JDK that was no good we would need to spin releases
<enebo[m]>
yeah and if it was important CVE we would have to
<headius[m]>
maybe there is a way to have it run a net installer
<enebo[m]>
that I think is my main pain point...I do not follow CVEs on JVMs but I bet they get a fix for nearly every u release
<headius[m]>
I agree bundling our own is a big hassle but you get the issue here right?
<headius[m]>
like if someone knows zero about JDK installs but wants to install JRuby
<enebo[m]>
I think we could maybe detect in launcher no JVM is found and give a url to adoptjdk
<headius[m]>
that would probably be enough
<headius[m]>
I can propose that on the issue
<headius[m]>
the rbenv thing I'm not sure is our bug... they should be checking for JDK before installing
<enebo[m]>
headius: yeah it is perhaps not as simple as possible but we should be able to provide a good link
<ahorek[m]>
hey enebo headius ! as a Windows user I'm NOT for shipping a prebuild jdk. On the other hand, the installer should detect if there's no JDK present and let you know where and how to get it.
<headius[m]>
ahorek: yeah this is the first time someone has complained about it but I get the confusion
<enebo[m]>
ahorek: I am working on a new installer so this is something I think we can do pretty easily
<enebo[m]>
err sorry not installer but launcher
<headius[m]>
this would be an opt-in if we did restore it, like before you would have to download the one with JRE included to get it
<enebo[m]>
Which is a little weird to see the error afterwards but we could possibly do it during install too maybe
<ahorek[m]>
yeah, that would be better
<headius[m]>
I think adoptopenjdk is the best option for Windows too since I think MS bought those guys and now maintains those builds
<enebo[m]>
I think it would be just running the launcher once at the end of install and making sure that text appears in install screen (less sure about that part)
<headius[m]>
I have also wanted to explore using jlink to build an all-in-one JRuby + modularized JDK but even that isn't something we would ship
<headius[m]>
enebo: so basically have the launcher provide JDK instructions if it can't detect one
<enebo[m]>
headius: yeah there are two reasons too
<enebo[m]>
1. if it can be used by installer then it can also tell people they need it at that point
<enebo[m]>
2. If someone messed up their java install the launcher will give them the link again
<headius[m]>
and 3. you can just run from the zip and it will tell you what you need
<headius[m]>
I know you can't do anything about this but this crap keeps getting reported
<headius[m]>
there's still no ruby-debug-base 0.11.0 and the gemspec seems to be strict
subbu|lunch is now known as subbu
<enebo[m]>
yeah
<GGibson[m]>
I found the error - I'm using spoon to daemonize the process
<headius[m]>
Another headius project, huzzah
<headius[m]>
G. Gibson: you'll have to elaborate on that... is spoon causing your problem?
<GGibson[m]>
I think so
<GGibson[m]>
when I call the start script from the console, as root - it can open a port for the server but still has high cpu. When I use systemd to start it -- I get high cpu and it cannot open a server port. scratching head still on it.
<GGibson[m]>
but it doesn't look like a JRuby issue is all I'm saying