Reduce the Kernel.require extra stack frames some more. Now bootsnap should only add one extra frame per require call.
Better check freeze option support in JSON compile cache.
Previously JSON.load_file(..., freeze: true) would be cached even when the msgpack version is missing support for it.
1.10.1
Fix Kernel#autoload's fallback path always being executed.
Consider unlink failing with ENOENT as a success.
1.10.0
Delay requiring FileUtils. (#285)
FileUtils can be installed as a gem, so it's best to wait for bundler to have setup the load path before requiring it.
Improve support of Psych 4. (#392)
Since 1.8.0, YAML.load_file was no longer cached when Psych 4 was used. This is because load_file loads
in safe mode by default, so the Bootsnap cache could defeat that safety.
Now when precompiling YAML files, Bootsnap first try to parse them in safe mode, and if it can't fallback to unsafe mode,
and the cache contains a flag that records wether it was generated in safe mode or not.
YAML.unsafe_load_file will use safe caches just fine, but YAML.load_file will fallback to uncached YAML parsing
if the cache was generated using unsafe parsing.
Minimize the Kernel.require extra stack frames. (#393)
This should reduce the noise generated by bootsnap on LoadError.
1.9.4
Ignore absolute paths in the loaded feature index. (#385)
This fixes a compatibility issue with Zeitwerk when Zeitwerk is loaded before bootsnap. It also should
reduce the memory usage and improve load performance of Zeitwerk managed files.
Automatically invalidate the load path cache whenever the Ruby version change. (#387)
This is to avoid issues in case the same installation path is re-used for subsequent ruby patch releases.
1.9.3
Only disable the compile cache for source files impacted by Ruby 3.0.3 [Bug 18250].
This should keep the performance loss to a minimum.
1.9.2
Disable compile cache if Ruby 3.0.3's ISeq cache bug is detected.
AKA iseq.rb:13 to_binary: wrong argument type false (expected Symbol)
Fix Kernel.load behavior: before load 'a' would load a.rb (and other tried extensions) and wouldn't load a unless development_mode: true, now only a would be loaded and files with extensions wouldn't be.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps bootsnap from 1.8.0 to 1.10.2.
Changelog
Sourced from bootsnap's changelog.
... (truncated)
Commits
7b7bfca
Release 1.10.223b619f
Reduce theKernel.require
extra stack frames some more.12169cd
Simplify LoadError handling8ddb820
Improve CacheTest#test_path_encoding1da7c3c
Check msgpack freeze support in JSON compile cachee677919
Merge pull request #394 from elia/patch-1647e7e6
Typod5db496
Release 1.10.1f8390ec
FixKernel#autoload
's fallback path always bing executed9fbc008
bs_fetch: consider unlink ENOENT as a successDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)