Path to this page:
Subject: CVS commit: pkgsrc/devel/ruby-zeitwerk
From: Takahiro Kambe
Date: 2023-02-11 14:48:12
Message id: 20230211134812.B59DAFA90@cvs.NetBSD.org
Log Message:
devel/ruby-zeitwerk: update to 2.6.7
2.6.7 (2023-02-10)
* Reset module state on Zeitwerk::NameError.
If an autoload is triggered, the file is loaded successfully, but the
expected constant does not get defined, Ruby resets the state of the
module. In particular, autoload? returns nil for that constant name, and
constants does not include the constant name (starting with Ruby 3.1).
Zeitwerk is more strict, not defining the expected constant is an error
condition and the loader raises Zeitwerk::NameError. But this happens
during the require call and the exception prevents Ruby from doing that
cleanup.
With this change, the parent module is left in a state that makes more
sense and is consistent with what Ruby does.
* A message is logged if an autoload did not define the expected constant.
When that happens, Zeitwerk::NameError is raised and you normally see the
exception. But if the error is shallowed, and you are inspecting the logs
to investigate something, this new message may be helpful.
* By default, Zeitwerk::Loader#dirs filters ignored root directories
out. Please, pass ignored: true if you want them included.
It is very strange to configure a root directory and also ignore it, the
edge case is supported only for completeness. However, in that case,
client code listing root directories rarely needs the ignored ones.
* Documentation improvements.
* Enforcement of private interfaces continues with another gradual patch.
Files: