<daveg_lookout[m]>
Hash#slice() doesn't work with HashWithIndifferentAccess, since the former is implemented at the Java level and ignores the method aliasing from the latter. Is this something worth submitting a bug over, or is it known/won't fix? I haven't tried on 9.3.4.0, but it doesn't look like code has changed since it was first implemented
<enebo[m]>
daveg_lookout open an issue. Even if this is something we wontfix (and I am not saying that) we will document it more for anyone else who looks for it. This sounds like we are doing a java direct call instead of dynamic dispatch.
<enebo[m]>
headius: I just nuked all my gems and I am starting over on generating a rails app in case I somehow changed something. I definitely made it past the delegation thing
<headius>
Hmm ok
<enebo[m]>
Successfully installed net-pop-0.1.1
<enebo[m]>
Building native extensions. This could take a while...
<enebo[m]>
headius: Am I still depending on a prerelease of a gem?
<enebo[m]>
I was really heavy handed and nuked all gems/gemsspecs and did a full rebuild
<daveg_lookout[m]>
Just finished testing it while writing up a ticket, looks like this was a bug in ActiveSupport somewhere between 6.0.2.1 and 6.1.5). I'll try to find activesupport bug to make sure. Sorry!
<enebo[m]>
daveg_lookout: no problem
<enebo[m]>
rails is a bigger and bigger piece of software. So is Ruby for that matter :)
<enebo[m]>
Ah yeah I did --pre to get strscan installed and get rails to not complain about wanting 3.0.1
<enebo[m]>
I don't recall what the second gem was but I guess I made it past gem install point for rails with that
<headius>
Yeah I can install all the gems okay but generating an app fails
<enebo[m]>
bleh now I realize we have no arjdbc-7
<enebo[m]>
I will have to add that to the list for this week since it installs 5
<headius>
ah shoot, yeah
<enebo[m]>
I am a bit confused how my previous rails app bundle resolved to arjdb 50.0 and worked
<enebo[m]>
It doesn't matter. I think I will just make a db-less app now anyways since our problems are not related to that currently
<enebo[m]>
once rails loads then I can see fitness of arjdbc7. I also realize this is likely still a travis project
<headius>
same result generating with --dev here
<headius>
thought maybe that was the missing sauce
<enebo[m]>
headius: are you using JRUBY_OPTS for that?
<headius>
yes
<enebo[m]>
require 'maven/ruby/maven'
<enebo[m]>
What gem is this from?
<enebo[m]>
I am trying to build a 3.0.2 of strscan to just not deal with --pre
<enebo[m]>
ruby-maven
<headius>
ruby-maven
<headius>
I attached pre gems to that Rails 7 issue
<enebo[m]>
this maybe should be in strscan's gemspec for development unless we ship it
<headius>
you can just install them and then install works normally
<enebo[m]>
ok I forgot those were attached there
<enebo[m]>
Those two gems are even sitting in my downloads dir
<enebo[m]>
It was complaining about wanting a specific version of jdbc-sqlite3 which it wasn't doing so I manually uninstalled the newer version so only that was there
<enebo[m]>
I will try this again though with skip ar option
<enebo[m]>
since then it should be clean
<enebo[m]>
rails aborted!
<enebo[m]>
NoMethodError: private method `importmap=' called for #<Testv::Application:0x68c615f3>
<enebo[m]>
you can do stuff like def foo(a, ...); super; end
<headius>
sure
<enebo[m]>
but it is possible I can detect ... but the way zsuper works is we extract all references to receives so we can get the proper variable and we build a call out of those extracted things
<headius>
you could just commit the monitor fix for now if you want... we are not pulling this from the gem
<headius>
so we'd differ slightly but it will go back once fixed
<enebo[m]>
so that extraction would have to then ignore those receives
<enebo[m]>
I think the zsuper logic just needs to extract those values and I have to add the keyword arg marking++ that ordinary calls so
<enebo[m]>
s/so/do
<enebo[m]>
It is pretty icky
<enebo[m]>
but I will commit monitor for now
<enebo[m]>
That has been pushed
<enebo[m]>
In theory I think you should be able to run the command line in the gist above and get it generating until it hits importmap stuff
<headius>
yeah that is where it fails for me too
<enebo[m]>
once you do get to this point I think you can just try rails console and it will be a short repro
<headius>
getting a clean build and I will try it
<enebo[m]>
app.importmap{,=} may be some funky delegation
<enebo[m]>
but I do know self.private_thing is now just private_string and works. I did fix that feature but perhaps there is more to it than just self.
<enebo[m]>
It was always weird that self. on front of private method would not work
<headius>
so you get that importmap thing during generation as well
<enebo[m]>
yeah it will be the end of that gist
<enebo[m]>
It is part of rails importmap:install
<enebo[m]>
amusingly the backtrace is just points to: Rails.application.initialize!
<enebo[m]>
Disabling all private errors in call would tell us if that is the only thing holding us from running though
<headius>
the first chunk there repeats a couple times for subprocesses
<headius>
my patch should at least fix alias_method :foo, :foo
<headius>
pushed that fix
<enebo[m]>
nice
<headius>
wow Ruby 3.1 prints a TON of warnings with -d
<headius>
thousands and thousands... can this be right?
<enebo[m]>
I think once they added categories they decided to add more
<enebo[m]>
I also think it might be user-definable too?
<enebo[m]>
LOL I made a mistake and should have made unnabledrestargnode "*" and not null BUT now instead of -1 it is -2
<headius>
mostly I just see these from MRI:
<headius>
/Users/headius/.rvm/gems/ruby-3.1.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:24: warning: method redefined; discarding old require
<headius>
/Users/headius/.rvm/gems/ruby-3.1.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:8: warning: previous definition of require was here
<headius>
I do not see the Time ones I showed above
<headius>
hmmm
<headius>
if (RTEST(ruby_verbose) &&
<headius>
(old_def->alias_count == 0) &&
<headius>
(!old_def->no_redef_warning) &&
<headius>
type != VM_METHOD_TYPE_UNDEF &&
<headius>
looks like they track if the old definition has been aliased and assume it's ok to overwrite?
<enebo[m]>
ah yay
<enebo[m]>
ok so they alias to itself which does nothing but mark it is as aliases without changing anything
<enebo[m]>
it brings a tear to my eye that this is known semantics
<headius>
yeah so this is some accounting they have added over the years to avoid warnings for these alias chains
<headius>
we just don't have it
<headius>
and in fact the aliasing to itself had some changes in 2022 that now specifically mark the method as no warning
<headius>
enebo: we should get byteit101 blog post up too
<byteit101[m]>
I'd like someone to ensure the code works as written on not-my-machine, but yes
<enebo[m]>
yeah
<enebo[m]>
headius: I just pushed fix for nested forwards. Rails console/generation should work now
<enebo[m]>
It does for me anyways
<enebo[m]>
headius: something I think you have more experience with me is GHA for JRuby projects. We need our activerecord-jdbc project moved from travis. Any chance you can do that?
<headius>
yeah I can take a look
<headius>
I will pull your change first and confirm it generates for me
<headius>
enebo: why does it install ar-jdbc 50.0? Do we not have a 6.0 version?
<enebo[m]>
It is because it never got yanked.
<enebo[m]>
It has a poor specifier
<headius>
oh I see
<enebo[m]>
If we have a release for 7.0 then it goes away
<enebo[m]>
I feel like it should get yanked but then I am leery of yanking gems
<headius>
yeah it is drastic
<headius>
confirmed app generates
<enebo[m]>
Once we get a new CI running for ARJDBC then I think we can get out a release soon
<enebo[m]>
HEH...13 safe tags can go away since safe is not a thing
<headius>
thank god that is finally gone
<headius>
this is no trivial CI workflow to swap over
<enebo[m]>
THAT'S WHY I CALLED IN THE EXPERT
<headius>
I'm honored
<enebo[m]>
Actually I recall it is involved but I don't remember much past it loading versions of Rails
<enebo[m]>
Unless I removed that
<enebo[m]>
Pre-Rails 5 it would grab all supported versions of Rails to run tests against
<enebo[m]>
but now we just only need the single version it supports
<enebo[m]>
ah yeah...a lot of env stuff
<headius>
7.0 gems will have to run in jruby-head probably
<enebo[m]>
yeah for sure
<headius>
I will try to get something running today though
<enebo[m]>
other branches will get adapter from the changes to master since each one has differences
<enebo[m]>
but I am not too worried about that and I imagine once on is done it is just a little editing
<enebo[m]>
I fixed a long-standing issue that the argument order should match the order the encode so instrs can depend on super() doing the correct thing
<enebo[m]>
One reason it didn't start like that was sharing a base class with an additional field some instrs did not want to persist and load