- Various performance enhancements
- Fix race condition in heavy concurrent load scenarios that would cause bootsnap to raise
-
Fix bug that was erroneously considering that files containing
.
in the names were being required if a different file with the same name was already being requiredExample:
require 'foo' require 'foo.en'
Before bootsnap was considering
foo.en
to be the same file asfoo
-
Use glibc as part of the ruby_platform cache key
- MRI 2.7 support
- Fixed concurrency bugs
- Disable ISeq cache in
bootsnap/setup
by default in Ruby 2.5
- Fix some cache permissions and umask issues after switch to mkstemp
- Fix bug when removing features loaded by relative path from
$LOADED_FEATURES
- Fix bug with propagation of
NameError
up from nested calls torequire
- Don't register change observers to frozen objects.
- When running in development mode, always fall back to a full path scan on LoadError, making bootsnap more able to detect newly-created files. (#230)
- Respect
$LOADED_FEATURES.delete
in order to support code reloading, for integration with Zeitwerk. (#230) - Minor performance improvement: flow-control exceptions no longer generate backtraces.
- Better support for requiring from environments where some features are not supported (especially JRuby). (#226)k
- More robust handling of OS errors when creating files. (#225)
- Fix Spring + Bootsnap incompatibility when there are files with similar names.
- Fix
YAML.load_file
monkey patch to keep accepting File objects as arguments. - Fix the API for
ActiveSupport::Dependencies#autoloadable_module?
. - Some performance improvements.
- Change load path scanning to more correctly follow symlinks.
- Handle cases where load path entries are symlinked (#136)
- Fix method visibility of
Kernel#require
.
- Add
LoadedFeaturesIndex
to preserve fix a common bug related toLOAD_PATH
modifications after loading bootsnap.
- Don't cache YAML documents with
!ruby/object
- Fix cache write mode on Windows
- Create cache entries as 0775/0664 instead of 0755/0644
- Better handling around cache updates in highly-parallel workloads
- Assortment of minor bugfixes
- bugfix re-release of 1.1.4
- Avoid loading a constant twice by checking if it is already defined
- Properly resolve symlinked path entries
- Minor fix: deprecation warning
- Fix crash in
Native.compile_option_crc32=
on 32-bit platforms.
- Add
bootsnap/setup
- Support jruby (without compile caching features)
- Better deoptimization when Coverage is enabled
- Consider
Bundler.bundle_path
to be stable
- (none)
- Minor performance savings around checking validity of cache in the presence of relative paths.
- When coverage is enabled, skips optimization instead of exploding.
- Don't whitelist paths under
RbConfig::CONFIG['prefix']
as stable; instead use['libdir']
(#41). - Catch
EOFError
when reading load-path-cache and regenerate cache. - Support relative paths in load-path-cache.
- Migrate CompileCache from xattr as a cache backend to a cache directory
- Adds support for Linux and FreeBSD
- Support more versions of ActiveSupport (
depend_on
's signature varies; don't reiterate it) - Fix bug in handling autoloaded modules that raise NoMethodError