Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-zeitwerk for 
openSUSE:Factory checked in at 2022-01-03 10:49:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-zeitwerk (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-zeitwerk.new.1896 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-zeitwerk"

Mon Jan  3 10:49:45 2022 rev:11 rq:943427 version:2.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-zeitwerk/rubygem-zeitwerk.changes        
2021-12-29 21:11:30.206312499 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-zeitwerk.new.1896/rubygem-zeitwerk.changes  
    2022-01-03 10:50:32.139606094 +0100
@@ -1,0 +2,9 @@
+Sat Jan  1 18:12:41 UTC 2022 - Manuel Schnitzer <mschnit...@suse.com>
+
+- updated to version 2.5.3
+
+  * The change introduced in 2.5.2 implied a performance regression
+    that was particularly dramatic in Ruby 3.1. We'll address
+    [#198](https://github.com/fxn/zeitwerk/issues/198) in a different way.
+
+-------------------------------------------------------------------

Old:
----
  zeitwerk-2.5.2.gem

New:
----
  zeitwerk-2.5.3.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-zeitwerk.spec ++++++
--- /var/tmp/diff_new_pack.CpJ3kL/_old  2022-01-03 10:50:32.603606271 +0100
+++ /var/tmp/diff_new_pack.CpJ3kL/_new  2022-01-03 10:50:32.607606273 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-zeitwerk
 #
-# Copyright (c) 2021 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-zeitwerk
-Version:        2.5.2
+Version:        2.5.3
 Release:        0
 %define mod_name zeitwerk
 %define mod_full_name %{mod_name}-%{version}

++++++ zeitwerk-2.5.2.gem -> zeitwerk-2.5.3.gem ++++++
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/zeitwerk/kernel.rb new/lib/zeitwerk/kernel.rb
--- old/lib/zeitwerk/kernel.rb  2021-12-27 13:00:43.000000000 +0100
+++ new/lib/zeitwerk/kernel.rb  2021-12-30 19:06:32.000000000 +0100
@@ -29,7 +29,6 @@
         required
       else
         loader.on_dir_autoloaded(path)
-        $LOADED_FEATURES << path
         true
       end
     else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/zeitwerk/loader.rb new/lib/zeitwerk/loader.rb
--- old/lib/zeitwerk/loader.rb  2021-12-27 13:00:43.000000000 +0100
+++ new/lib/zeitwerk/loader.rb  2021-12-30 19:06:32.000000000 +0100
@@ -123,7 +123,13 @@
     # @sig () -> void
     def unload
       mutex.synchronize do
-        abspaths_of_unloaded_crefs = Set.new
+        # We are going to keep track of the files that were required by our
+        # autoloads to later remove them from $LOADED_FEATURES, thus making 
them
+        # loadable by Kernel#require again.
+        #
+        # Directories are not stored in $LOADED_FEATURES, keeping track of 
files
+        # is enough.
+        unloaded_files = Set.new
 
         autoloads.each do |abspath, (parent, cname)|
           if parent.autoload?(cname)
@@ -133,7 +139,7 @@
             # and the constant path would escape unloadable_cpath? This is just
             # defensive code to clean things up as much as we are able to.
             unload_cref(parent, cname)
-            abspaths_of_unloaded_crefs.add(abspath)
+            unloaded_files.add(abspath) if ruby?(abspath)
           end
         end
 
@@ -144,14 +150,10 @@
           end
 
           unload_cref(parent, cname)
-          abspaths_of_unloaded_crefs.add(abspath)
+          unloaded_files.add(abspath) if ruby?(abspath)
         end
 
-        unless abspaths_of_unloaded_crefs.empty?
-          # We remove these abspaths from $LOADED_FEATURES because, otherwise,
-          # `require`'s idempotence would prevent newly defined autoloads from
-          # loading them again.
-          #
+        unless unloaded_files.empty?
           # Bootsnap decorates Kernel#require to speed it up using a cache and
           # this optimization does not check if $LOADED_FEATURES has the file.
           #
@@ -163,7 +165,7 @@
           # Rails applications may depend on bootsnap, so for unloading to work
           # in that setting it is preferable that we restrict our API choice to
           # one of those methods.
-          $LOADED_FEATURES.reject! { |file| 
abspaths_of_unloaded_crefs.member?(file) }
+          $LOADED_FEATURES.reject! { |file| unloaded_files.member?(file) }
         end
 
         autoloads.clear
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/zeitwerk/version.rb new/lib/zeitwerk/version.rb
--- old/lib/zeitwerk/version.rb 2021-12-27 13:00:43.000000000 +0100
+++ new/lib/zeitwerk/version.rb 2021-12-30 19:06:32.000000000 +0100
@@ -1,5 +1,5 @@
 # frozen_string_literal: true
 
 module Zeitwerk
-  VERSION = "2.5.2"
+  VERSION = "2.5.3"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2021-12-27 13:00:43.000000000 +0100
+++ new/metadata        2021-12-30 19:06:32.000000000 +0100
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: zeitwerk
 version: !ruby/object:Gem::Version
-  version: 2.5.2
+  version: 2.5.3
 platform: ruby
 authors:
 - Xavier Noria
 autorequire:
 bindir: bin
 cert_chain: []
-date: 2021-12-27 00:00:00.000000000 Z
+date: 2021-12-30 00:00:00.000000000 Z
 dependencies: []
 description: |2
       Zeitwerk implements constant autoloading with Ruby semantics. Each gem

Reply via email to