<headius> enebo: I've been chasing a hang I thought was my fault but then I saw you untagged some stuff
<headius> it's hanging in UNIXSocket#accept_nonblock
<headius> oh wait... this is in JRuby tests though
<headius> how is this suddenly failing
<headius> ok this is some older issue... 9.4.2.0 also hangs
<headius> test_can_create_socket_server_and_accept_nonblocking
<enebo[m]> I am doing some stuff on socket this morning and yesterday afternoon but i do not think I landed anything
<enebo[m]> interesting. parallel still wins on anything I run but G1 improves a bit each release
sagax has joined #jruby
<headius> enebo: I think this test may be hanging on m1 and it goes back to at least 9.3.9
<headius> I assume you can run test:jruby:jit to completion
<enebo[m]> good question. I will try it
<enebo[m]> headius: yeah runs
<headius> Okay I guess I've been chasing my tail on this one then. There is something hanging in this suite on CI on Linux though, at least on my indy branch
SyedMSawaid[m] has joined #jruby
<SyedMSawaid[m]> Hello everyone! I am joining straight out of GSoC page for Ruby (JRuby). I want to contribute on Fixing Rails test failures as it seems like a low-hanging fruit and I want to work on Ruby on Rails.
<SyedMSawaid[m]> A quick intro about me, I am a software engineer working at TEO International as a backend engineer for around 1.5 years now. I working on ASP.NET(please don't hate me for using C# :p) backend APIs here and now I want to shift to Ruby on Rails.
<SyedMSawaid[m]> When I was joining, I saw that we have 51 members here. Is that really it?
<SyedMSawaid[m]> Or is there any other place where JRuby community hangs out?
<headius> Hi there! You are in the right place!
<headius> This is more of a JRuby developer chat so it's mostly people who have filed bugs or work on JRuby in some capacity. But it's the right place to talk about GSoC and helping out
<headius> Since you are a C# developer I think the main thing to figure out is how easily you'd be able to transition to our large Java codebase
<SyedMSawaid[m]> I have worked quite a well back when I was in university. Java seems almost identical to C# so transition won't be an issue.
<headius> it's pretty close indeed...mostly the differences come in the runtime libraries and patterns people use
<SyedMSawaid[m]> So I will be working on Java or Ruby?
<headius> Both! Most of JRuby itself is implemented in Java, but parts are in Ruby and if there's things we can patch just writing Ruby code that is ok
<headius> for Rails a lot of the failing tests are going to be edge cases in the core Ruby classes, most of which are implemented in Java with a little bit of Ruby
<headius> and failures in ActiveRecord will be a mix of Java and Ruby work too
<enebo[m]> Part of evaluating test failures in RoR unit tests will be figuring out if it is JRuby bug or test assumptions that are wrong (or done in parallel when the code cannot really work in parallel)
<headius> yes, some tests may be too specific to standard Ruby's behavior (like float rounding for example) so there may be patches to Rails itself to improve tests
<SyedMSawaid[m]> Okay. And is there Slack community as well?
<SyedMSawaid[m]> http://slack.bundler.io/ seems to down after that Heroku episode.
<headius> no, we decided to stick to a free and OSS option so we are largely here on Matrix
<headius> there is a bridge to liberachat IRC network that isn't always working
<SyedMSawaid[m]> Alright, let me state my intentions. I want to switch to Ruby on Rails after working around 1.5 years on ASP.NET. The issue is that company won't accept me as Rails developer as I don't have any experience in Rails. I was looking to get into rails somehow and prove it the any potential employer that I am indeed competent with Rails.
<SyedMSawaid[m]> Do you guys think this would help? Btw, I am already somewhat deep into rails and have been working on side project for about 3 months.
<SyedMSawaid[m]> * 3 months now.
<SyedMSawaid[m]> s/the/to/
<SyedMSawaid[m]> Chris from GoRails announced in a discord about Ruby and GitLab being in GSoC.
<enebo[m]> I think it is a potential avenue to getting something for the resume which implies you know Rails but it from a practical standpoint will be much deeper than nearly all Rails programmers knowledge wise
<enebo[m]> As an example, in activerecordJDBC we support postgresql
<enebo[m]> there is an error with some column type advertising limit when the test says there should not be
<enebo[m]> in order to debug that you need to dig into the internals of how activerecord works
<enebo[m]> That in indeed is deep Rails knowledge but it will not teach you how to use inner joins in a rails app
<enebo[m]> the other positive side is if it leads to a PR into Rails then obviously you have gotten something accepted into the Rails code base. That obviously looks good
<SyedMSawaid[m]> That seems good enough to me. Also I don't see any other guy talking about taking this task. Am I the only one here from GSoC? Btw, is there any Discord?
<SyedMSawaid[m]> Do these guys hang around here? I would love to get in touch with them as they are potential mentors for JRuby.
<enebo[m]> yeah we don't use discord either
<SyedMSawaid[m]> Oh F.
<headius> I do hang out on the Ruby discord
<SyedMSawaid[m]> You guys are indeed here. 😅
<headius> but I don't monitor it closely
<SyedMSawaid[m]> So enebo and headius, are you going to be mentors for this GSoC?
<headius> yes, we would be, and kares might also help as time permits since he works on Rails-related parts of JRuby too
<SyedMSawaid[m]> Am I the only one here regarding JRuby yet?
<SyedMSawaid[m]> * regarding JRuby (for GSoC) yet?
<headius> we have had one other person stop by asking about some project ideas too
<headius> I think the deadline for proposals is in April yes?
<SyedMSawaid[m]> Yep. It is I think 5 April or something.
<SyedMSawaid[m]> What do I need to get my hands dirty?
<headius> Getting JRuby source checked out and building it and bootstrapping a Rails dev environment would be the big first steps
<SyedMSawaid[m]> What are some other projects you guys considering?
<headius> we use IntelliJ for Java dev, and it supports Ruby and has a free community version
<enebo[m]> I think addressing arjdbc failing tests would be good and somewhat isolated
<headius> did you see our information on the Ruby GSoC wiki?
<SyedMSawaid[m]> headius: I have used it quite a lot. I am using RubyMine right now.
<headius> ah that's great
<enebo[m]> it is a combination of activerecord ruby + our own ruby with a central Java native adapter which makes JDBC calls to the database
<SyedMSawaid[m]> headius: I just read through the projects and where I can connect with the community.
<headius> yeah there are several things there related to compatibility and passing tests/specs
<enebo[m]> but if you can rcheck out jruby and rails (even ignoring arjdbc project) it would give you an idea
<SyedMSawaid[m]> enebo[m]: I will look into it.
<headius> yes, good idea to just get JRuby built locally and start poking around
<enebo[m]> yeah if you can get JRuby (build it) and clone rails rails-7-stable branch and run let's say activesupport unit tests you will figure a lot out
<SyedMSawaid[m]> Btw I always have this question. Why do people prefer Java over .NET? Microsoft seems to be putting a lot of effort behind .NET recently. Like there is JRuby but not IronRuby.
<enebo[m]> Different groups of people is one answer but I have never deployed to a MS server in 30 years
<enebo[m]> So Java tends to be much more cmomon in a linux deploy than let's say Mono
<headius> The JVM is a better runtime for building dynamic languages, unfortunately for the .NET world
<headius> since it constantly reoptimizes at runtime
<SyedMSawaid[m]> enebo[m]: .NET is now cross-platform.
<enebo[m]> yeah that is why I mentioned mono itself but I just do not have exposure to that side of things or know people who do
<headius> we have been doing this work for a long time and knew the IronRuby folks and many of the people on the DLR. It was an exciting time and interesting projects but CLR has trouble optimizing things that are very dynamic
<headius> Java has also been fully open source since 2007 so there's many companies that contribute to it... Microsoft just opened up CLR a few years ago
<headius> they are both great platforms that just grew up differently
<enebo[m]> yeah I think they are just largely different groups of people
<headius> enebo: so I figured out my hang in test:jruby:jit with indy
<headius> the indy thread checkpoint logic never checkpoints 😂
<enebo[m]> so litering in that TC method?
<headius> it has a SwitchPoint to make it zero cost when there's no thread event, but even with it invalidates I guess I forgot to do the actual poll
<enebo[m]> Here is an interesting incompatibility I don't want to fix
<headius> the case that ended up exposing it is a while true; Thread.pass; end
<headius> if there were more code there other types of polls would kick in but this is so small only the backward branch checkpoint gets hit
<SyedMSawaid[m]> Alright, I'll poke around JRuby and get my hands wet. I'll ping you guys once I am done.
<headius> Syed M. Sawaid: sounds great!
<SyedMSawaid[m]> Btw, is there a good mobile app for Matrix?
<enebo[m]> I need to take protocol family value like IPPROTO_TCP (6) and then when output it should be "IPPROTO_TCP" and not 6
<SyedMSawaid[m]> on Android?
<enebo[m]> I see no mechanism to reverse lookup and I don't even see the value in giving back the var name
<headius> yeah I am using the mobile version of Element
<headius> and the desktop Element on my laptop
<enebo[m]> Expected 6 == "IPPROTO_TCP"
<enebo[m]> Ironically if you are returning a unix domain socket it does return the number and not the var name
<headius> Syed M. Sawaid: Element is what you want on Android and probably desktop... pretty sure that's what we all use
<headius> enebo: huh so we are returning the number or the name?
<enebo[m]> neither it was unimplemented
<headius> oh I see
<enebo[m]> I just did it but I am doing number for both
<enebo[m]> which to me is useful since you can reverse this to load and the number is usable without const_get or an eval
<SyedMSawaid[m]> What's the difference between JRuby and TraffleRuby?
<headius> JRuby's goal is to be the best JVM Ruby we can be... on any JVM
<headius> that means we don't get to customize the JVM runtime as much as TruffleRuby can do with GraalVM, but we run on any standard JVM
<headius> and we do pretty well considering everything we do has to work on a regular JVM 😀
<SyedMSawaid[m]> Do you guys work fulltime on JRuby?
<enebo[m]> yeah
<SyedMSawaid[m]> <enebo[m]> "yeah if you can get JRuby (build..." <- I can't find `rails-7-stable` branch on rails repo.
<enebo[m]> Syed M. Sawaid: sorry it is: 7-0-stable
<SyedMSawaid[m]> got it.
<SyedMSawaid[m]> Build successful. Now trying to run it.
<SyedMSawaid[m]> Trying to bootstrap Rails environment.
<SyedMSawaid[m]> Btw, do I need to uninstall CRuby?
<headius> Most people use one of the ruby installers or switchers to switch back and forth
<headius> RVM or chruby or whatever the windows one is
<headius> Otherwise you can just juggle the PATH yourself so JRuby or CRuby come first
<headius> For local testing you can just put the bin/ due at the front of path
<headius> s/due/dir/
<SyedMSawaid[m]> Okay. Let me check it.
<SyedMSawaid[m]> I installed JRuby using the installer but that defeats the purpose. Doesn't it?
<SyedMSawaid[m]> Is there a way to install it from my local jruby.jar build
<SyedMSawaid[m]> If I replace my version of jruby.jar with the one in lib folder of my installation directory, will that do the trick?
<SyedMSawaid[m]> <enebo[m]> "yeah if you can get JRuby (build..." <- There are a lot of test files in `activesupport`. Which test file should I run?