Giter Site home page Giter Site logo

bootsnap's Introduction

Bootsnap Actions Status

Bootsnap is a library that plugs into Ruby, with optional support for YAML and JSON, to optimize and cache expensive computations. See How Does This Work.

Performance

  • Discourse reports a boot time reduction of approximately 50%, from roughly 6 to 3 seconds on one machine;
  • One of our smaller internal apps also sees a reduction of 50%, from 3.6 to 1.8 seconds;
  • The core Shopify platform -- a rather large monolithic application -- boots about 75% faster, dropping from around 25s to 6.5s.
  • In Shopify core (a large app), about 25% of this gain can be attributed to compile_cache_* features; 75% to path caching. This is fairly representative.

Usage

This gem works on macOS and Linux.

Add bootsnap to your Gemfile:

gem 'bootsnap', require: false

If you are using Rails, add this to config/boot.rb immediately after require 'bundler/setup':

require 'bootsnap/setup'

Note that bootsnap writes to tmp/cache (or the path specified by ENV['BOOTSNAP_CACHE_DIR']), and that directory must be writable. Rails will fail to boot if it is not. If this is unacceptable (e.g. you are running in a read-only container and unwilling to mount in a writable tmpdir), you should remove this line or wrap it in a conditional.

Note also that bootsnap will never clean up its own cache: this is left up to you. Depending on your deployment strategy, you may need to periodically purge tmp/cache/bootsnap*. If you notice deploys getting progressively slower, this is almost certainly the cause.

It's technically possible to simply specify gem 'bootsnap', require: 'bootsnap/setup', but it's important to load Bootsnap as early as possible to get maximum performance improvement.

You can see how this require works here.

If you are not using Rails, or if you are but want more control over things, add this to your application setup immediately after require 'bundler/setup' (i.e. as early as possible: the sooner this is loaded, the sooner it can start optimizing things)

require 'bootsnap'
env = ENV['RAILS_ENV'] || "development"
Bootsnap.setup(
  cache_dir:            'tmp/cache',          # Path to your cache
  ignore_directories:   ['node_modules'],     # Directory names to skip.
  development_mode:     env == 'development', # Current working environment, e.g. RACK_ENV, RAILS_ENV, etc
  load_path_cache:      true,                 # Optimize the LOAD_PATH with a cache
  compile_cache_iseq:   true,                 # Compile Ruby code into ISeq cache, breaks coverage reporting.
  compile_cache_yaml:   true,                 # Compile YAML into a cache
  compile_cache_json:   true,                 # Compile JSON into a cache
  readonly:             true,                 # Use the caches but don't update them on miss or stale entries.
)

Protip: You can replace require 'bootsnap' with BootLib::Require.from_gem('bootsnap', 'bootsnap') using this trick. This will help optimize boot time further if you have an extremely large $LOAD_PATH.

Note: Bootsnap and Spring are orthogonal tools. While Bootsnap speeds up the loading of individual source files, Spring keeps a copy of a pre-booted Rails process on hand to completely skip parts of the boot process the next time it's needed. The two tools work well together.

Environment variables

require 'bootsnap/setup' behavior can be changed using environment variables:

  • BOOTSNAP_CACHE_DIR allows to define the cache location.
  • DISABLE_BOOTSNAP allows to entirely disable bootsnap.
  • DISABLE_BOOTSNAP_LOAD_PATH_CACHE allows to disable load path caching.
  • DISABLE_BOOTSNAP_COMPILE_CACHE allows to disable ISeq and YAML caches.
  • BOOTSNAP_READONLY configure bootsnap to not update the cache on miss or stale entries.
  • BOOTSNAP_LOG configure bootsnap to log all caches misses to STDERR.
  • BOOTSNAP_STATS log hit rate statistics on exit. Can't be used if BOOTSNAP_LOG is enabled.
  • BOOTSNAP_IGNORE_DIRECTORIES a comma separated list of directories that shouldn't be scanned. Useful when you have large directories of non-ruby files inside $LOAD_PATH. It defaults to ignore any directory named node_modules.

Environments

All Bootsnap features are enabled in development, test, production, and all other environments according to the configuration in the setup. At Shopify, we use this gem safely in all environments without issue.

If you would like to disable any feature for a certain environment, we suggest changing the configuration to take into account the appropriate ENV var or configuration according to your needs.

Instrumentation

Bootsnap cache misses can be monitored though a callback:

Bootsnap.instrumentation = ->(event, path) { puts "#{event} #{path}" }

event is either :hit, :miss, :stale or :revalidated. You can also call Bootsnap.log! as a shortcut to log all events to STDERR.

To turn instrumentation back off you can set it to nil:

Bootsnap.instrumentation = nil

How does this work?

Bootsnap optimizes methods to cache results of expensive computations, and can be grouped into two broad categories:

  • Path Pre-Scanning
    • Kernel#require and Kernel#load are modified to eliminate $LOAD_PATH scans.
  • Compilation caching
    • RubyVM::InstructionSequence.load_iseq is implemented to cache the result of ruby bytecode compilation.
    • YAML.load_file is modified to cache the result of loading a YAML object in MessagePack format (or Marshal, if the message uses types unsupported by MessagePack).
    • JSON.load_file is modified to cache the result of loading a JSON object in MessagePack format

Path Pre-Scanning

(This work is a minor evolution of bootscale).

Upon initialization of bootsnap or modification of the path (e.g. $LOAD_PATH), Bootsnap::LoadPathCache will fetch a list of requirable entries from a cache, or, if necessary, perform a full scan and cache the result.

Later, when we run (e.g.) require 'foo', ruby would iterate through every item on our $LOAD_PATH ['x', 'y', ...], looking for x/foo.rb, y/foo.rb, and so on. Bootsnap instead looks at all the cached requirables for each $LOAD_PATH entry and substitutes the full expanded path of the match ruby would have eventually chosen.

If you look at the syscalls generated by this behaviour, the net effect is that what would previously look like this:

open  x/foo.rb # (fail)
# (imagine this with 500 $LOAD_PATH entries instead of two)
open  y/foo.rb # (success)
close y/foo.rb
open  y/foo.rb
...

becomes this:

open y/foo.rb
...

The following diagram flowcharts the overrides that make the *_path_cache features work.

Flowchart explaining Bootsnap

Bootsnap classifies path entries into two categories: stable and volatile. Volatile entries are scanned each time the application boots, and their caches are only valid for 30 seconds. Stable entries do not expire -- once their contents has been scanned, it is assumed to never change.

The only directories considered "stable" are things under the Ruby install prefix (RbConfig::CONFIG['prefix'], e.g. /usr/local/ruby or ~/.rubies/x.y.z), and things under the Gem.path (e.g. ~/.gem/ruby/x.y.z) or Bundler.bundle_path. Everything else is considered "volatile".

In addition to the Bootsnap::LoadPathCache::Cache source, this diagram may help clarify how entry resolution works:

How path searching works

It's also important to note how expensive LoadErrors can be. If ruby invokes require 'something', but that file isn't on $LOAD_PATH, it takes 2 * $LOAD_PATH.length filesystem accesses to determine that. Bootsnap caches this result too, raising a LoadError without touching the filesystem at all.

Compilation Caching

(A more readable implementation of this concept can be found in yomikomu).

Ruby has complex grammar and parsing it is not a particularly cheap operation. Since 1.9, Ruby has translated ruby source to an internal bytecode format, which is then executed by the Ruby VM. Since 2.3.0, Ruby exposes an API that allows caching that bytecode. This allows us to bypass the relatively-expensive compilation step on subsequent loads of the same file.

We also noticed that we spend a lot of time loading YAML and JSON documents during our application boot, and that MessagePack and Marshal are much faster at deserialization than YAML and JSON, even with a fast implementation. We use the same strategy of compilation caching for YAML and JSON documents, with the equivalent of Ruby's "bytecode" format being a MessagePack document (or, in the case of YAML documents with types unsupported by MessagePack, a Marshal stream).

These compilation results are stored in a cache directory, with filenames generated by taking a hash of the full expanded path of the input file (FNV1a-64).

Whereas before, the sequence of syscalls generated to require a file would look like:

open    /c/foo.rb -> m
fstat64 m
close   m
open    /c/foo.rb -> o
fstat64 o
fstat64 o
read    o
read    o
...
close   o

With bootsnap, we get:

open      /c/foo.rb -> n
fstat64   n
close     n
open      /c/foo.rb -> n
fstat64   n
open      (cache) -> m
read      m
read      m
close     m
close     n

This may look worse at a glance, but underlies a large performance difference.

(The first three syscalls in both listings -- open, fstat64, close -- are not inherently useful. This ruby patch optimizes them out when coupled with bootsnap.)

Bootsnap writes a cache file containing a 64 byte header followed by the cache contents. The header is a cache key including several fields:

  • version, hardcoded in bootsnap. Essentially a schema version;
  • ruby_platform, A hash of RUBY_PLATFORM (e.g. x86_64-linux-gnu) variable.
  • compile_option, which changes with RubyVM::InstructionSequence.compile_option does;
  • ruby_revision, A hash of RUBY_REVISION, the exact version of Ruby;
  • size, the size of the source file;
  • mtime, the last-modification timestamp of the source file when it was compiled; and
  • data_size, the number of bytes following the header, which we need to read it into a buffer.

If the key is valid, the result is loaded from the value. Otherwise, it is regenerated and clobbers the current cache.

Putting it all together

Imagine we have this file structure:

/
├── a
├── b
└── c
    └── foo.rb

And this $LOAD_PATH:

["/a", "/b", "/c"]

When we call require 'foo' without bootsnap, Ruby would generate this sequence of syscalls:

open    /a/foo.rb -> -1
open    /b/foo.rb -> -1
open    /c/foo.rb -> n
close   n
open    /c/foo.rb -> m
fstat64 m
close   m
open    /c/foo.rb -> o
fstat64 o
fstat64 o
read    o
read    o
...
close   o

With bootsnap, we get:

open      /c/foo.rb -> n
fstat64   n
close     n
open      /c/foo.rb -> n
fstat64   n
open      (cache) -> m
read      m
read      m
close     m
close     n

If we call require 'nope' without bootsnap, we get:

open    /a/nope.rb -> -1
open    /b/nope.rb -> -1
open    /c/nope.rb -> -1
open    /a/nope.bundle -> -1
open    /b/nope.bundle -> -1
open    /c/nope.bundle -> -1

...and if we call require 'nope' with bootsnap, we get...

# (nothing!)

Precompilation

In development environments the bootsnap compilation cache is generated on the fly when source files are loaded. But in production environments, such as docker images, you might need to precompile the cache.

To do so you can use the bootsnap precompile command.

Example:

$ bundle exec bootsnap precompile --gemfile app/ lib/

When not to use Bootsnap

Alternative engines: Bootsnap is pretty reliant on MRI features, and parts are disabled entirely on alternative ruby engines.

Non-local filesystems: Bootsnap depends on tmp/cache (or whatever you set its cache directory to) being on a relatively fast filesystem. If you put it on a network mount, bootsnap is very likely to slow your application down quite a lot.

bootsnap's People

Contributors

bo98 avatar burke avatar byroot avatar casperisfine avatar dylanahsmith avatar eregon avatar etiennebarrie avatar gmcgibbon avatar jhawthorn avatar jpogran avatar jules2689 avatar kpumuk avatar lavoiesl avatar ngan avatar ojab avatar olleolleolle avatar pdagrawal avatar rafaelfranca avatar rwstauner avatar ryooooooga avatar sambostock avatar samsaffron avatar sponomarev avatar stanhu avatar takonomura avatar tenderlove avatar therusskiy avatar wjordan avatar xrxr avatar zunda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bootsnap's Issues

rational needs some special handling as well

I fixed my boot errors by adding

def require(path)
   return if path == 'thread.rb'.freeze || path == 'rational'

to the kernel_require monkey patch

looks like prev fix did not full fix the thread.rb issue, and rational special handling may be missing

compile_cache_iseq and compile_cache_yaml on Linux

I wanted to open a placeholder topic for getting support for compile_cache_iseq and compile_cache_yaml on Linux.

In general (when I am not travelling) Linux is my dev box so I would love to have everything working there.

What are the blockers here? What needs to be implemented?

`require': cannot load such file -- bootsnap/setup (LoadError)

I just followed the setup process mentioned in the README and got this error.

confit/boot.rb

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup'

Error stack

home/bhanu/workspace/truckola/config/boot.rb:4:in `require': cannot load such file -- bootsnap/setup (LoadError)
	from /home/bhanu/workspace/truckola/config/boot.rb:4:in `<top (required)>'
	from /home/bhanu/workspace/truckola/bin/rails:8:in `require_relative'
	from /home/bhanu/workspace/truckola/bin/rails:8:in `<top (required)>'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/client/rails.rb:28:in `load'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/client/rails.rb:28:in `call'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/client/command.rb:7:in `call'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/client.rb:30:in `run'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/bin/spring:49:in `<top (required)>'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/binstub.rb:31:in `load'
	from /home/bhanu/.rbenv/versions/2.3.1/gemsets/truckola/gems/spring-2.0.1/lib/spring/binstub.rb:31:in `<top (required)>'
	from /home/bhanu/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
	from /home/bhanu/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68:in `require'
	from /home/bhanu/workspace/truckola/bin/spring:13:in `<top (required)>'
	from bin/rails:3:in `load'
	from bin/rails:3:in `<main>'

Documentation questions

Love the gem. Saw the 50% speed up on my own machine, just like you mentioned. I have a few questions:

  1. Since I am seeing a number of issues regarding problems with linux machines, would it make sense add the gem only in the development group?
  2. How Bootsnap prevented from running in production?
  3. The BootLib::Require pro tip does not work for me. Throws an error, uninitialized constant BootLib
  4. Does Bootsnap have away to disable it for devs not running osx?
  5. Seems like this would work great for speeding up tests as well. But without the linux support, wouldn't work with CI setups, so we'd need to be able to turn Bootsnap off in that case.
  6. We do a lot of git branch switching, I am assuming that this invalidates the cache.

I'm running Rails 4.2.7.1 and added the Bootsnap code to config/boot.rb.

Figured if I had these questions, someone else might as well.

Make libsnappy dependency optional

Out of the box when installing bootsnap on ubuntu it fails with

etching: snappy-0.0.15.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing bootsnap:
	ERROR: Failed to build gem native extension.

    current directory: /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/snappy-0.0.15/ext
/home/sam/.rbenv/versions/2.4.1/bin/ruby -r ./siteconf20170429-5708-1yrjbba.rb extconf.rb
checking for -lsnappy... no
./autogen.sh: 3: ./autogen.sh: aclocal: not found
./autogen.sh: 3: ./autogen.sh: aclocal: not found
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/home/sam/.rbenv/versions/2.4.1/bin/$(RUBY_BASE_NAME)
	--with-libsnappy-config
	--without-libsnappy-config
	--with-pkg-config
	--without-pkg-config
	--with-snappylib
	--without-snappylib
extconf.rb:17:in `block in <main>': `autogen.sh` failed (RuntimeError)
	from extconf.rb:14:in `chdir'
	from extconf.rb:14:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/snappy-0.0.15/mkmf.log

extconf failed, exit code 1

This is since the snappy gem requires libsnappy-dev

  • Can the dependency on snappy be "optional" and then you only compress the yaml if the library is installed?

  • What kind of gains are we seeing from this yaml compression? Should this be done in the c extension to avoid the ruby gem dependency?

Upgrading bundler breaks cache

After uninstalling bundler 1.14.6 and installing 1.15.0, got this the first time I tried to do something:

/Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require': cannot load such file -- /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bundler-1.14.6/lib/bundler.rb (LoadError)
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bundler-1.15.0/lib/bundler/shared_helpers.rb:263:in `prints_major_deprecations?'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bundler-1.15.0/lib/bundler/shared_helpers.rb:133:in `major_deprecation'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bundler-1.15.0/lib/bundler/rubygems_integration.rb:438:in `block in replace_bin_path'
	from /Users/jaiken/.rvm/gems/ruby-2.3.4/gems/bundler-1.15.0/lib/bundler/rubygems_integration.rb:463:in `block in replace_bin_path'

unmatched platform 😩

System: OSX High Sierra 10.13.1
ruby-version : 2.4.1

When I run my project always show following error message

unmatched platform for file /Users/Nic/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/yaml.rb
rake aborted!
unmatched platform
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache/iseq.rb:18:in `load_from_binary'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache/iseq.rb:18:in `storage_to_output'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache/iseq.rb:37:in `fetch'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache/iseq.rb:37:in `load_iseq'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293:in `block in require'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:259:in `load_dependency'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293:in `require'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache/yaml.rb:36:in `install!'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/compile_cache.rb:11:in `setup'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap.rb:29:in `setup'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.1.5/lib/bootsnap/setup.rb:39:in `<top (required)>'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/config/boot.rb:4:in `require'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/config/boot.rb:4:in `<top (required)>'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/config/application.rb:1:in `require_relative'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/config/application.rb:1:in `<top (required)>'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/Rakefile:4:in `require_relative'
/Users/Nic/Dropbox/projects/business/growthschool/otcbtc/Rakefile:4:in `<top (required)>'
/Users/Nic/.rvm/gems/ruby-2.4.1/gems/rake-12.1.0/exe/rake:27:in `<top (required)>'
/Users/Nic/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
/Users/Nic/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)

Try google unmatched platform bootsnap but not find good result to resolve my problem.

Start rails server success when I comment out the require "bootsnap/setup" but is not good idea.

How can I resolve this problem?

Having issues bootsnapping discourse

bin/rails c
/Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require': cannot load such file -- thread.rb (LoadError)
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/2.3.0/thwait.rb:8:in `<main>'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/sam/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'

Trying 2.4.1 one now to see if it works there.

Syntax error in rails when parsing secrets.yml

Hi guys,

I wanted to give bootsnap a try, but when I wanted to run the tests, I've got the following error in here:

/usr/local/rvm/gems/ruby-2.3.3@global/gems/railties-5.1.2/lib/rails/secrets.rb:45: invalid multibyte char (US-ASCII)
/usr/local/rvm/gems/ruby-2.3.3@global/gems/railties-5.1.2/lib/rails/secrets.rb:42: syntax error, unexpected end-of-input, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
        <<-end_of_template.strip_heredoc
                          ^

The tests run inside docker. secrets.yml is correct. There is string interpolation inside the yml <%= ENV["SOMETHING"] %>) in case it matters

Bootsnap not compiling on branch main ( FreeBSD 10.0 ) [ fatal error: sys/xattr.h: No such file or directory #include <sys/xattr.h> ]

branch: master
OS: 10.3-STABLE FreeBSD

since bootsnap was added to discourse on May 11 when i try to

env GYP_DEFINES="make_clang_dir=" CXX=/usr/bin/clang++ CC=/usr/bin/clang bundle install --without development test

I get error

(...)
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /usr/home/spider/.rvm/gems/ruby-2.3.3/gems/bootsnap-0.2.14/ext/bootsnap
/home/spider/.rvm/rubies/ruby-2.3.3/bin/ruby -r ./siteconf20170515-61851-u8spxp.rb extconf.rb
creating Makefile

current directory: /usr/home/spider/.rvm/gems/ruby-2.3.3/gems/bootsnap-0.2.14/ext/bootsnap
make "DESTDIR=" clean

current directory: /usr/home/spider/.rvm/gems/ruby-2.3.3/gems/bootsnap-0.2.14/ext/bootsnap
make "DESTDIR="
compiling bootsnap.c
bootsnap.c:3:23: fatal error: sys/xattr.h: No such file or directory
 #include <sys/xattr.h>
                       ^
compilation terminated.
*** Error code 1

Stop.
make: stopped in /usr/home/spider/.rvm/gems/ruby-2.3.3/gems/bootsnap-0.2.14/ext/bootsnap

make failed, exit code 1

Gem files will remain installed in /home/spider/.rvm/gems/ruby-2.3.3/gems/bootsnap-0.2.14 for inspection.
Results logged to /home/spider/.rvm/gems/ruby-2.3.3/extensions/x86_64-freebsd-10/2.3.0/bootsnap-0.2.14/gem_make.out

An error occurred while installing bootsnap (0.2.14), and Bundler cannot continue.
Make sure that `gem install bootsnap -v '0.2.14'` succeeds before bundling.

Issue with Simplecov

Hey! Wasn't sure if already know, but we're seeing an issue with the iseq cache for Simplecov

$ rspec
Enabling Bootsnap
Coverage report generated for RSpec to /Users/rickcsong/Development/myapp/coverage. 0.0 / 0.0 LOC (100.0%) covered.
/Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:8:in `to_binary': should not compile with coverage (RuntimeError)
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:8:in `input_to_storage'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `block in require'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:in `load_dependency'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `require'
  from /Users/rickcsong/Development/myapp/spec/rails_helper.rb:11:in `<top (required)>'
  from /Users/rickcsong/Development/myapp/spec/models/dummy.rb:1:in `require'
  from /Users/rickcsong/Development/myapp/spec/models/dummy.rb:1:in `<top (required)>'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `load'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `each'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `load_spec_files'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/bin/rspec:23:in `load'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/bin/rspec:23:in `<main>'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval'
  from /Users/rickcsong/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>'

Minimum Ruby version support?

Bootsnap seems to contain >= Ruby 2.3-specific code. I haven't found where this is mentioned. First failure on Ruby 2.2.6 is from the <~EOF heredoc. I suspect subsequent failures regarding finding libyaml are similar since switching to Ruby 2.3.3 resulted in expected behavior.

Cache issue after deleting one gem

Hello

I removed one gem from my gemfile but when I run the app...

$ bundle exec rspec
Run options: --seed 46427
/Users/bti/.rvm/gems/ruby-2.4.1@app/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require': cannot load such file -- emm_pubsub (LoadError)

As mention here #53

I removed the cache folder in tmp (I have the default config). But I still have the issue. Do you have any idea how to fix it?

`with_bootsnap_fallback`: Constants are loaded twice when a `NameError` occurs

Problem

NameError during load_missing_constant results in constants being loaded twice.

Investigation

Take the following basic example, which can be found in this repo also:

# example.rb
a = Bar.new
# Bar.rb
class Bar
  DoesNotExist
end

The following methods are called when Bar is first encountered:

  • ActiveSupport::Dependencies#const_missing
  • Bootsnap#load_missing_constant
  • Bootsnap#with_bootsnap_fallback
  • super => ActiveSupport::load_missing_constant from_mod: Object, const_name: Bar
  • ...

Once Bar is loaded, DoesNotExist now has to be loaded, the same methods are called for DoesNotExist but remember this is all wrapped in the original Bootsnap#load_missing_constant and Bootsnap#with_bootsnap_fallback.

Since DoesNotExist cannot be found, a NameError is raised. It is reraised through the stack until it hits the rescue in with_bootsnap_fallback.

The exception is caught, and then yield is called again because the loading is tried this time without_bootsnap_cache. This means the orignial load_missing_constant for DoesNotExist is called again. This of cource raises a NameError again, which this time is not caught by this rescue. Instead, it is caught by an other load_missing_constant call, the original call to load the Bar class.

The same process is repeated, yield is called again, which causes Bar to be reloaded, executing any logic twice.

Real life example

This causes issues when a loaded constant sets state on load. Take this example:

class Foo
  class_attribute :items
  self.items = {}
  
  def self.add_item(name, klass)
   if items.key?(name)
     raise Error, "cannot add same item twice!!!"
   end
   
    self.items = items.merge(name: klass)
  end
  
  # This one will run ok
  add_item :a, Bar
  # This one raises and causes the double load
  add_item :b, DoesNotExist
end

When loading DoesNotExist, DoesNotExist is being loaded twice, which fails both times but Foo is also loaded twice since it rescues the NameError.

This causes add_item, :a, Bar to be called twice, which causes this error to be raised:

raise Error, "cannot add same item twice!!!"

In reality, we would've liked to see the NameError raised, which causes a really weird developer experience.

TL;DR

In load_missing_constant, NameErrors are caught by Bootsnap's with_bootsnap_fallback, and retried without bootsnap cache. This causes ActiveSupport's load_missing_constant to be called twice on all constants that were loading / led to the NameError.

Questions

  • Is this the expected behaviour?
  • My ruby internals knowledge is limited on this one, should constants be loaded twice like this, could we unload them before trying without bootsnap cache?
  • Is this something developers need to be mindful of? Seems like this could happen to anybody using the gem.

cc @jules2689, @burke, @rafaelfranca

Getting 2x boot times using bootsnap

Importing from rails/rails#29313

Not sure what can I be doing wrong but adding bootsnap to my app doubles the loading time:

Without bootsnap:

~/src/app[master] % time bin/rails runner "puts Rails.env"
development
bin/rails runner "puts Rails.env"  10.34s user 3.74s system 56% cpu 24.864 total

With bootsnap:

~/src/app[master] % time bin/rails runner "puts Rails.env"
development
bin/rails runner "puts Rails.env"  7.22s user 1.69s system 17% cpu 51.722 total

I've tested this a dozen times getting similar numbers every time.

Boot time regression using bootsnap

Hello,
I'm wondering what instrumentation exists within this gem to help figure out why replacing bootscale with bootsnap caused a regression in my Rails app boot time. The environment is a Ubuntu VM running in Virtualbox on a macos host. The experiment command I've been benchmarking with is time be rake routes.

With bootscale, I'm getting times 11-12 seconds.

A cold bootsnap boot took far longer as expected - ~32 seconds.

Subsequent bootsnap runs were 14-15seconds. Turning off iseq caching brought it to parity with bootscale and turning off yaml caching saved another second.

Is it possible to localise if I have some pathological config files or generated iseq that are slowing things down?

If that can be done, I can try to fix and send a PR.

Problems when using brakeman as rake task

Hi, everyone. I'd just like to start saying that I find this gem pretty neat and that it does provide a significant performance improvement.

Now to the actual issue.

When adding bootsnap to a project and invoking rake (default task) or brakeman through the console, everything works fine.

On the other hand, if I create a rake task that includes both running brakeman and the specs, I receive and error. Here are the specific details

Steps to reproduce

I am overwriting the default rake task to run brakeman:check (from brakeman) first and then run parallel:spec (from parallel_tests).

Rake::Task['default'].clear

task :default do
  Rake::Task['brakeman:check'].invoke
  Rake::Task['parallel:spec'].invoke
end

Expected behavior

The overwritten default rake task should run brakeman and then run the parallel specs.

Actual behavior

I get numerous warnings and an error, as can be seen below.

TypeError: superclass mismatch for class Mapping
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/brakeman-3.6.2/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib/tilt/mapping.rb:219: warning: already initialized constant Tilt::Mapping::LOCK
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/tilt-2.0.7/lib/tilt/mapping.rb:219: warning: previous definition of LOCK was here
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/brakeman-3.6.2/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib/tilt/mapping.rb:263: warning: already initialized constant Tilt::Mapping::AUTOLOAD_IS_BROKEN
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/tilt-2.0.7/lib/tilt/mapping.rb:263: warning: previous definition of AUTOLOAD_IS_BROKEN was here
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/brakeman-3.6.2/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib/tilt/template.rb:5: warning: already initialized constant Tilt::TOPOBJECT
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/tilt-2.0.7/lib/tilt/template.rb:5: warning: previous definition of TOPOBJECT was here
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/brakeman-3.6.2/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib/tilt/template.rb:16: warning: already initialized constant Tilt::LOCK
/HOME/USER/.rvm/gems/ruby-2.4.1@mygemset/gems/tilt-2.0.7/lib/tilt/template.rb:16: warning: previous definition of LOCK was here

System configuration

Rails version: 5.1.1
Ruby version: 2.4.1
Brakeman version: 3.6.2
Parallel tests version: 2.14.1
OS: Ubuntu 16.04

Operation not supported

I just tried adding bootsnap to my rails project but when i try to load the rails server i run into the following problem:
.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in fetch': Operation not supported (Errno::EOPNOTSUPP)

full stack trace:

/home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch': Operation not supported (Errno::EOPNOTSUPP)
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/yaml.rb:34:in `install!'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache.rb:12:in `setup'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/bootsnap-0.2.12/lib/bootsnap.rb:29:in `setup'
        from /mnt/c/Workspace/kennislink/config/boot.rb:6:in `<top (required)>'
        from /mnt/c/Workspace/kennislink/bin/rails:8:in `require_relative'
        from /mnt/c/Workspace/kennislink/bin/rails:8:in `<top (required)>'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/client.rb:30:in `run'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/bin/spring:49:in `<top (required)>'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load'
        from /home/joost/.rvm/gems/ruby-2.4.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>'
        from /home/joost/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /home/joost/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /mnt/c/Workspace/kennislink/bin/spring:13:in `<top (required)>'
        from bin/rails:3:in `load'
        from bin/rails:3:in `<main>'

Segmentation fault on DB migration in Shopify

Doing a dev up in Shopify (Mac OS Sierra 10.12.5) causes the following for me when needing to do a db migration:

Steves-MacBook-Pro-2:Shopify stevelegault$ dev cd shopify
👩‍💻  activated ruby:2.3.3, node:v6.10.0
Steves-MacBook-Pro-2:shopify stevelegault$ dev up
⭑  1/13 Prerequisites
⭑  2/13 XCode Command Line Tools
⭑  3/13 Homebrew Packages
⭑  4/13 GeoIP
⭑  5/13 Ruby
⭑  6/13 Node
┏━━ 👩‍💻  7/13 Railgun ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ ⭑ install railgun
┃ ⭑ add project to Railgun.app
┃ ⭑ start railgun
┃ ⭑ add hosts to /etc/hosts
┃ 𝒾 launch railgun app
┃ ✓ launch railgun app: done
┃ ⭑ railgun garbage collection
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (0.1s) ━━
⭑  8/13 Bundler
⭑  9/13 Database Cache
┏━━ 👩‍💻  10/13 Database Bootstrap/Migrate ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ ⭑ activate ruby
┃ ⭑ create initial db/schema.rb
┃ ⭑ install database packages
┃ ⭑ bootstrap database
┃ 𝒾 migrate database
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:18: [BUG] Segmentation fault at 0xffffffff8559da20
┃ ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
┃
┃ -- Crash Report log information --------------------------------------------
┃    See Crash Report log file under the one of following:
┃      * ~/Library/Logs/CrashReporter
┃      * /Library/Logs/CrashReporter
┃      * ~/Library/Logs/DiagnosticReports
┃      * /Library/Logs/DiagnosticReports
┃    for more details.
┃ Don't forget to include the above Crash Report log file in bug reports.
┃
┃ -- Control frame information -----------------------------------------------
┃ c:0016 p:---- s:0076 e:000075 CFUNC  :load_from_binary
┃ c:0015 p:0018 s:0072 e:000071 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:18 [FINISH]
┃ c:0014 p:---- s:0067 e:000066 CFUNC  :fetch
┃ c:0013 p:0048 s:0061 e:000060 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:34 [FINISH]
┃ c:0012 p:---- s:0056 e:000055 CFUNC  :require
┃ c:0011 p:0034 s:0052 e:000051 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
┃ c:0010 p:0012 s:0047 e:000046 BLOCK  /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293
┃ c:0009 p:0057 s:0045 e:000044 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:259
┃ c:0008 p:0017 s:0040 e:000039 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293
┃ c:0007 p:0010 s:0035 e:000034 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/yaml.rb:34
┃ c:0006 p:0051 s:0029 e:000028 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache.rb:12
┃ c:0005 p:0097 s:0022 e:000021 METHOD /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap.rb:29
┃ c:0004 p:0384 s:0011 e:000010 TOP    /Users/stevelegault/src/github.com/Shopify/shopify/config/boot.rb:37 [FINISH]
┃ c:0003 p:---- s:0008 e:000007 CFUNC  :require_relative
┃ c:0002 p:0008 s:0004 E:000570 EVAL   bin/rake:2 [FINISH]
┃ c:0001 p:0000 s:0002 E:000560 (none) [FINISH]
┃
┃ -- Ruby level backtrace information ----------------------------------------
┃ bin/rake:2:in `<main>'
┃ bin/rake:2:in `require_relative'
┃ /Users/stevelegault/src/github.com/Shopify/shopify/config/boot.rb:37:in `<top (required)>'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap.rb:29:in `setup'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache.rb:12:in `setup'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/yaml.rb:34:in `install!'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293:in `require'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:259:in `load_dependency'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb:293:in `block in require'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:34:in `load_iseq'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:34:in `fetch'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:18:in `storage_to_output'
┃ /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb:18:in `load_from_binary'
┃
┃ -- Machine register context ------------------------------------------------
┃  rax: 0x0000000000000000 rbx: 0xffffffff8559da20 rcx: 0x0000000000000001
┃  rdx: 0xffffffff8559da20 rdi: 0xffffffff8559da20 rsi: 0x00007fd38559d9f8
┃  rbp: 0x00007fff581fadf0 rsp: 0x00007fff581fadd0  r8: 0x00007fd381c03c78
┃   r9: 0x0000000000000992 r10: 0x00007fd386e00000 r11: 0x0000000000000111
┃  r12: 0x00007fd381c038c0 r13: 0x00007fd381e58340 r14: 0x00007fd38559d9f8
┃  r15: 0x00007fd386e99350 rip: 0x0000000107b7f2af rfl: 0x0000000000010246
┃
┃ -- C level backtrace information -------------------------------------------
┃ 0   ruby                                0x0000000107bacce4 rb_vm_bugreport + 388
┃ 1   ruby                                0x0000000107a485ca rb_bug_context + 490
┃ 2   ruby                                0x0000000107b1d564 sigsegv + 68
┃ 3   libsystem_platform.dylib            0x00007fffca8e3b3a _sigtramp + 26
┃ 4   ruby                                0x0000000107b7f2af ibf_load_setup + 31
┃ 5   ruby                                0x0000000107b7f277 iseq_ibf_load + 55
┃ 6   ruby                                0x0000000107b8870f iseqw_s_load_from_binary + 15
┃ 7   ruby                                0x0000000107ba2f2a vm_call_cfunc + 314
┃ 8   ruby                                0x0000000107b8d6ff vm_exec_core + 10159
┃ 9   ruby                                0x0000000107b9d76a vm_exec + 122
┃ 10  ruby                                0x0000000107baa31d rb_call0 + 397
┃ 11  ruby                                0x0000000107b98906 rb_funcall + 374
┃ 12  ruby                                0x0000000107a51f9a rb_protect + 250
┃ 13  bootsnap.bundle                     0x00000001081e7516 bs_rb_fetch + 774
┃ 14  ruby                                0x0000000107ba2f2a vm_call_cfunc + 314
┃ 15  ruby                                0x0000000107b8d6ff vm_exec_core + 10159
┃ 16  ruby                                0x0000000107b9d76a vm_exec + 122
┃ 17  ruby                                0x0000000107b97d22 rb_check_funcall_default + 514
┃ 18  ruby                                0x0000000107b85a51 rb_iseq_load_iseq + 81
┃ 19  ruby                                0x0000000107a54d52 rb_load_internal0 + 194
┃ 20  ruby                                0x0000000107a556b5 rb_require_internal + 1829
┃ 21  ruby                                0x0000000107a54e38 rb_f_require + 24
┃ 22  ruby                                0x0000000107ba2f2a vm_call_cfunc + 314
┃ 23  ruby                                0x0000000107b8d6ff vm_exec_core + 10159
┃ 24  ruby                                0x0000000107b9d76a vm_exec + 122
┃ 25  ruby                                0x0000000107a54db0 rb_load_internal0 + 288
┃ 26  ruby                                0x0000000107a556b5 rb_require_internal + 1829
┃ 27  ruby                                0x0000000107a54f29 rb_f_require_relative + 57
┃ 28  ruby                                0x0000000107ba2f2a vm_call_cfunc + 314
┃ 29  ruby                                0x0000000107b8d6ff vm_exec_core + 10159
┃ 30  ruby                                0x0000000107b9d76a vm_exec + 122
┃ 31  ruby                                0x0000000107a510e8 ruby_exec_internal + 152
┃ 32  ruby                                0x0000000107a50ff6 ruby_run_node + 54
┃ 33  ruby                                0x0000000107a035ff main + 79
┃
┃ -- Other runtime information -----------------------------------------------
┃
┃ * Loaded script: bin/rake
┃
┃ * Loaded features:
┃
┃     0 enumerator.so
┃     1 thread.rb
┃     2 rational.so
┃     3 complex.so
┃     4 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/encdb.bundle
┃     5 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/trans/transdb.bundle
┃     6 /opt/rubies/2.3.3/lib/ruby/2.3.0/unicode_normalize.rb
┃     7 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/rbconfig.rb
┃     8 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/compatibility.rb
┃     9 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/defaults.rb
┃    10 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/deprecate.rb
┃    11 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/errors.rb
┃    12 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/version.rb
┃    13 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/requirement.rb
┃    14 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/platform.rb
┃    15 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/basic_specification.rb
┃    16 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/stub_specification.rb
┃    17 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/util/list.rb
┃    18 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/stringio.bundle
┃    19 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/specification.rb
┃    20 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/exceptions.rb
┃    21 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/dependency.rb
┃    22 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
┃    23 /opt/rubies/2.3.3/lib/ruby/2.3.0/monitor.rb
┃    24 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb
┃    25 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems.rb
┃    26 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/path_support.rb
┃    27 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/version.rb
┃    28 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb
┃    29 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/levenshtein.rb
┃    30 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/jaro_winkler.rb
┃    31 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkable.rb
┃    32 /opt/rubies/2.3.3/lib/ruby/2.3.0/delegate.rb
┃    33 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
┃    34 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
┃    35 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
┃    36 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
┃    37 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/null_checker.rb
┃    38 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/formatter.rb
┃    39 /opt/rubies/2.3.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean.rb
┃    40 /Users/stevelegault/src/github.com/Shopify/shopify/lib/boot_lib/flag.rb
┃    41 /Users/stevelegault/src/github.com/Shopify/shopify/lib/boot_lib/require.rb
┃    42 /Users/stevelegault/src/github.com/Shopify/shopify/lib/boot_lib.rb
┃    43 /opt/rubies/2.3.3/lib/ruby/2.3.0/observer.rb
┃    44 /opt/rubies/2.3.3/lib/ruby/2.3.0/logger.rb
┃    45 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/bigdecimal.bundle
┃    46 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/digest.bundle
┃    47 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_16be.bundle
┃    48 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_16le.bundle
┃    49 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_32be.bundle
┃    50 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_32le.bundle
┃    51 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/iso_8859_1.bundle
┃    52 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/euc_jp.bundle
┃    53 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/shift_jis.bundle
┃    54 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/trans/utf_16_32.bundle
┃    55 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/trans/single_byte.bundle
┃    56 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/enc/windows_31j.bundle
┃    57 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/etc.bundle
┃    58 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/io/console.bundle
┃    59 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/io/wait.bundle
┃    60 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/zlib.bundle
┃    61 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/vendor/postit/lib/postit/parser.rb
┃    62 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/vendor/postit/lib/postit/environment.rb
┃    63 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/vendor/postit/lib/postit/installer.rb
┃    64 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/vendor/postit/lib/postit/version.rb
┃    65 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/vendor/postit/lib/postit.rb
┃    66 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/postit_trampoline.rb
┃    67 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/pathname.bundle
┃    68 /opt/rubies/2.3.3/lib/ruby/2.3.0/pathname.rb
┃    69 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/constants.rb
┃    70 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/util.rb
┃    71 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/user_interaction.rb
┃    72 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/config_file.rb
┃    73 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/rubygems_integration.rb
┃    74 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/current_ruby.rb
┃    75 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/shared_helpers.rb
┃    76 /opt/rubies/2.3.3/lib/ruby/2.3.0/fileutils.rb
┃    77 /opt/rubies/2.3.3/lib/ruby/2.3.0/tmpdir.rb
┃    78 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/errors.rb
┃    79 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/environment_preserver.rb
┃    80 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/plugin/api.rb
┃    81 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/plugin.rb
┃    82 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/rfc2396_parser.rb
┃    83 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/rfc3986_parser.rb
┃    84 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/common.rb
┃    85 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/generic.rb
┃    86 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/ftp.rb
┃    87 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/http.rb
┃    88 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/https.rb
┃    89 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/ldap.rb
┃    90 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/ldaps.rb
┃    91 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri/mailto.rb
┃    92 /opt/rubies/2.3.3/lib/ruby/2.3.0/uri.rb
┃    93 /opt/rubies/2.3.3/lib/ruby/2.3.0/digest.rb
┃    94 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/git.rb
┃    95 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/installed.rb
┃    96 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/specific_file.rb
┃    97 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/local.rb
┃    98 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/lock.rb
┃    99 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source/vendor.rb
┃   100 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/source.rb
┃   101 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/gem_helpers.rb
┃   102 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/match_platform.rb
┃   103 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/rubygems_ext.rb
┃   104 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/version.rb
┃   105 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler.rb
┃   106 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/settings.rb
┃   107 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/yaml_serializer.rb
┃   108 /opt/rubies/2.3.3/lib/ruby/site_ruby/2.3.0/rubygems/ext/builder.rb
┃   109 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source.rb
┃   110 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/digest/sha1.bundle
┃   111 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source/path.rb
┃   112 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source/git.rb
┃   113 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source/rubygems.rb
┃   114 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/lockfile_parser.rb
┃   115 /opt/rubies/2.3.3/lib/ruby/2.3.0/set.rb
┃   116 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/definition.rb
┃   117 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/dependency.rb
┃   118 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/ruby_dsl.rb
┃   119 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/dsl.rb
┃   120 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source_list.rb
┃   121 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/lazy_specification.rb
┃   122 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/index.rb
┃   123 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/ui.rb
┃   124 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/ui/silent.rb
┃   125 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/ui/rg_proxy.rb
┃   126 /opt/rubies/2.3.3/lib/ruby/2.3.0/tsort.rb
┃   127 /opt/rubies/2.3.3/lib/ruby/2.3.0/forwardable.rb
┃   128 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/spec_set.rb
┃   129 /opt/rubies/2.3.3/lib/ruby/2.3.0/shellwords.rb
┃   130 /opt/rubies/2.3.3/lib/ruby/2.3.0/tempfile.rb
┃   131 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source/git/git_proxy.rb
┃   132 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/gem_version_promoter.rb
┃   133 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/source/gemspec.rb
┃   134 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/runtime.rb
┃   135 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/dep_proxy.rb
┃   136 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/remote_specification.rb
┃   137 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/stub_specification.rb
┃   138 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/endpoint_specification.rb
┃   139 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/ruby_version.rb
┃   140 /Users/stevelegault/.gem/ruby/2.3.3/gems/bundler-1.15.0/lib/bundler/setup.rb
┃   141 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/version.rb
┃   142 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/path_scanner.rb
┃   143 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/path.rb
┃   144 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/explicit_require.rb
┃   145 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/cache.rb
┃   146 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/version.rb
┃   147 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/msgpack.bundle
┃   148 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/packer.rb
┃   149 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/unpacker.rb
┃   150 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/factory.rb
┃   151 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack/symbol.rb
┃   152 /Users/stevelegault/.gem/ruby/2.3.3/gems/msgpack-1.1.0/lib/msgpack.rb
┃   153 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/store.rb
┃   154 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/change_observer.rb
┃   155 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache.rb
┃   156 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/bootsnap.bundle
┃   157 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/iseq.rb
┃   158 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache/yaml.rb
┃   159 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/compile_cache.rb
┃   160 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap.rb
┃   161 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb
┃   162 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/thread.bundle
┃   163 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/constants.rb
┃   164 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/utility/engine.rb
┃   165 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/abstract_object.rb
┃   166 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/utility/native_extension_loader.rb
┃   167 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_object.rb
┃   168 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/jruby_object.rb
┃   169 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/rbx_object.rb
┃   170 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/truffle_object.rb
┃   171 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/object.rb
┃   172 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/volatile.rb
┃   173 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/abstract_lockable_object.rb
┃   174 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/mri_lockable_object.rb
┃   175 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/jruby_lockable_object.rb
┃   176 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/rbx_lockable_object.rb
┃   177 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/truffle_lockable_object.rb
┃   178 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/lockable_object.rb
┃   179 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/condition.rb
┃   180 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization/lock.rb
┃   181 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/synchronization.rb
┃   182 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/collection/map/non_concurrent_map_backend.rb
┃   183 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/collection/map/mri_map_backend.rb
┃   184 /Users/stevelegault/.gem/ruby/2.3.3/gems/concurrent-ruby-1.0.5/lib/concurrent/map.rb
┃   185 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/aliasing.rb
┃   186 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/array/extract_options.rb
┃   187 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/attribute_accessors.rb
┃   188 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/array/prepend_and_append.rb
┃   189 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/hash/deep_merge.rb
┃   190 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/hash/except.rb
┃   191 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/hash/slice.rb
┃   192 /Users/stevelegault/.gem/ruby/2.3.3/gems/i18n-0.8.4/lib/i18n/version.rb
┃   193 /opt/rubies/2.3.3/lib/ruby/2.3.0/cgi/core.rb
┃   194 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/cgi/escape.bundle
┃   195 /opt/rubies/2.3.3/lib/ruby/2.3.0/cgi/util.rb
┃   196 /opt/rubies/2.3.3/lib/ruby/2.3.0/cgi/cookie.rb
┃   197 /opt/rubies/2.3.3/lib/ruby/2.3.0/cgi.rb
┃   198 /Users/stevelegault/.gem/ruby/2.3.3/gems/i18n-0.8.4/lib/i18n/exceptions.rb
┃   199 /Users/stevelegault/.gem/ruby/2.3.3/gems/i18n-0.8.4/lib/i18n/interpolate/ruby.rb
┃   200 /Users/stevelegault/.gem/ruby/2.3.3/gems/i18n-0.8.4/lib/i18n.rb
┃   201 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/lazy_load_hooks.rb
┃   202 /Users/stevelegault/.gem/ruby/2.3.3/gems/i18n-0.8.4/lib/i18n/config.rb
┃   203 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/i18n.rb
┃   204 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/inflector/inflections.rb
┃   205 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/multibyte.rb
┃   206 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/string/multibyte.rb
┃   207 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/inflector/transliterate.rb
┃   208 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/inflections.rb
┃   209 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/inflector/methods.rb
┃   210 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/string/inflections.rb
┃   211 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/inflector.rb
┃   212 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/introspection.rb
┃   213 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/anonymous.rb
┃   214 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/qualified_const.rb
┃   215 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/object/blank.rb
┃   216 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/kernel/reporting.rb
┃   217 /opt/rubies/2.3.3/lib/ruby/2.3.0/singleton.rb
┃   218 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/kernel/singleton_class.rb
┃   219 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/delegation.rb
┃   220 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation/instance_delegator.rb
┃   221 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/openssl.bundle
┃   222 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/bn.rb
┃   223 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/pkey.rb
┃   224 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/cipher.rb
┃   225 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/config.rb
┃   226 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/digest.rb
┃   227 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/x509.rb
┃   228 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/buffering.rb
┃   229 /opt/rubies/2.3.3/lib/ruby/2.3.0/x86_64-darwin16/io/nonblock.bundle
┃   230 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl/ssl.rb
┃   231 /opt/rubies/2.3.3/lib/ruby/2.3.0/openssl.rb
┃   232 /opt/rubies/2.3.3/lib/ruby/2.3.0/securerandom.rb
┃   233 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/notifications/instrumenter.rb
┃   234 /opt/rubies/2.3.3/lib/ruby/2.3.0/mutex_m.rb
┃   235 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/notifications/fanout.rb
┃   236 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/per_thread_registry.rb
┃   237 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/notifications.rb
┃   238 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation/behaviors.rb
┃   239 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation/reporting.rb
┃   240 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation/method_wrappers.rb
┃   241 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation/proxy_wrappers.rb
┃   242 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/module/deprecation.rb
┃   243 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/deprecation.rb
┃   244 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/load_error.rb
┃   245 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/name_error.rb
┃   246 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/core_ext/string/starts_ends_with.rb
┃   247 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/concurrency/share_lock.rb
┃   248 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies/interlock.rb
┃   249 /Users/stevelegault/.gem/ruby/2.3.3/gems/activesupport-5.0.4/lib/active_support/dependencies.rb
┃   250 /Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1/lib/bootsnap/load_path_cache/core_ext/active_support.rb
┃
┃ [NOTE]
┃ You may have encountered a bug in the Ruby interpreter or extension libraries.
┃ Bug reports are welcome.
┃ For details: http://www.ruby-lang.org/bugreport.html
┃
┃ sh: line 1: 57154 Abort trap: 6           bin/rake db:migrate db:test:prepare
┃ ✗ migrate database: failed!
┃ ✗ Error Reason:
┃   dev wasn't able to run database migrations.
┃     * If we were unable to connect to the database entirely, run
┃       dev down; dev up to try again.
┃     * If it looks like it did some work, but then failed, there's
┃       probably something wrong with the migrations. You can try re-running
┃       from a blank slate with dev reset-db. If this still
┃       doesn't work, ask in your project's slack room, maybe #developers-talk.
┗━━ 🤷  Failed! Aborting! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (0.66s) ━━
Steves-MacBook-Pro-2:shopify stevelegault$  git diff
Steves-MacBook-Pro-2:shopify stevelegault$ bundle show bootsnap
/Users/stevelegault/.gem/ruby/2.3.3/gems/bootsnap-0.3.1

Only workaround seems to be to do a dev reset-db - which is annoying as I have to do that everytime instead of dev up.

Windows support

In the light of #50 I wonder if the missing support for Windows is a final decision or if you would accept pull requests for Windows support? (At least partial support, see below)

I'm asking because I could get the path pre-scanning feature working on Windows with Ruby 2.4.1 (using MSYS2) in about 30 minutes and some minor code changes. (Mostly making the C code compile and fixing two root path detection lines in Ruby)

The speed improvements were dreamlike! On a fast Windows workstation I could bring the startup time of my Rails app down to 10 seconds from 30 seconds and on a very slow laptop down to 25 seconds from originally 2 minutes. (🐌 -> 🚀)

The compilation caching did create the cache files, but reading them results in a "bad file descriptor" error in the C code, which I couldn't track down (yet). But still, the speed improvements of the path scanning alone warrant the use of bootsnap on Windows platforms. (IMO)

The only downside is detecting an absolute path: Under a Unix-like platform it's just checking for a leading slash, but on Windows it's a little more involved. Currently I'm checking path[1..2] == ':/' but that might not be sufficient and - perhaps more importantly - slows down the check on all platforms.

In any case: Thank you for this awesome gem!

using bundle --standalone make bootsnap slow

I was playing around with

bundle install --standalone

# require 'bundler/setup' ->
require 'bundler'
require './vendor/bundle/bundler/setup.rb'
def gem(*);end

the time it takes to reach "after require bundler" is significantly faster (1s -> 0.2s), but overall boot time suffers ... so I'm thinking that there are optimizations done in bootsnap that somehow now stop working ... this might be an interesting approach to solving #16

for a playground app: zendesk/samson#2081

/fyi @FooBarWidget @jules2689 @burke

Fails to install on Ubuntu

Installing the bootsnap gem on Ubuntu (I tested 16.10 and 17.04) fails with the following error:

Fetching gem metadata from https://rubygems.org/..............
Fetching version metadata from https://rubygems.org/.
Resolving dependencies...
Fetching msgpack 1.1.0
Installing msgpack 1.1.0 with native extensions
Fetching snappy 0.0.15
Installing snappy 0.0.15 with native extensions
Using bundler 1.15.0.pre.2
Fetching bootsnap 0.2.10
Installing bootsnap 0.2.10 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /home/gerhard/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.10/ext/bootsnap
/home/gerhard/.rbenv/versions/2.3.4/bin/ruby -r ./siteconf20170426-59125-1nl3kx4.rb extconf.rb
creating Makefile

current directory: /home/gerhard/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.10/ext/bootsnap
make "DESTDIR=" clean

current directory: /home/gerhard/.rbenv/versions/2.3.4/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.10/ext/bootsnap
make "DESTDIR="
compiling bootsnap.c
In file included from /home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby.h:33:0,
                 from bootsnap.h:6,
                 from bootsnap.c:1:
/home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby/ruby.h:841:45: error: enumerator value for ‘RUBY_FL_USER19’ is not an integer
constant expression [-Werror=pedantic]
 #define RUBY_FL_USER_N(n) RUBY_FL_USER##n = (1<<(RUBY_FL_USHIFT+n))
                                             ^
/home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby/ruby.h:862:5: note: in expansion of macro ‘RUBY_FL_USER_N’
     RUBY_FL_USER_N(19),
     ^~~~~~~~~~~~~~
In file included from /home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby/ruby.h:1992:0,
                 from /home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby.h:33,
                 from bootsnap.h:6,
                 from bootsnap.c:1:
/home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby/intern.h:923:29: error: ‘struct timespec’ declared inside parameter list will
not be visible outside of this definition or declaration [-Werror]
 void rb_timespec_now(struct timespec *);
                             ^~~~~~~~
/home/gerhard/.rbenv/versions/2.3.4/include/ruby-2.3.0/ruby/intern.h:926:41: error: ‘struct timespec’ declared inside parameter list will
not be visible outside of this definition or declaration [-Werror]
 VALUE rb_time_timespec_new(const struct timespec *, int);
                                         ^~~~~~~~
cc1: error: unrecognized command line option ‘-Wno-keyword-macro’ [-Werror]
cc1: all warnings being treated as errors
Makefile:238: recipe for target 'bootsnap.o' failed
make: *** [bootsnap.o] Error 1

make failed, exit code 2

Steps to reproduce:

  • Install Ubuntu Desktop 17.04
  • Install Ruby 2.3.4 and dependencies
    bash <(wget -qO- https://raw.githubusercontent.com/gschlager/install-rails/master/linux)
  • Install missing dependency for the snappy gem
    sudo apt install libsnappy-dev
  • Create a simple Gemfile with the following content:
    source 'https://rubygems.org'
    gem 'bootsnap', require: false
    
  • Run bundle install

Error during crc update on 32bit platforms

On 32 bit platforms like raspbian on the pi2, the following error is thrown when using this library:

TypeError: wrong argument type Bignum (expected Fixnum)
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.0.0/lib/bootsnap/compile_cache/iseq.rb:73:in `compile_option_crc32='
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.0.0/lib/bootsnap/compile_cache/iseq.rb:73:in `compile_option_updated'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.0.0/lib/bootsnap/compile_cache/iseq.rb:78:in `install!'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.0.0/lib/bootsnap/compile_cache.rb:8:in `setup'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.0.0/lib/bootsnap.rb:29:in `setup'

The zlib.crc32 appears to be returning a Bignum on 32bit platforms, and FIxnum on 64bit. This is using ruby 2.3.3

Bootsnap does not work with version of msgpack from git

I was trying a branch of msgpack on Shopify core, but the application just did not want to start. I found out that the cause was that ExplicitRequire relies on the fact that the gem has the same name as it's path. It is not the case with msgpack, since the gem is called msgpack, but the repo is msgpack-ruby.

I was able to make it start with this patch:

require "bootsnap/explicit_require"
Bootsnap::ExplicitRequire.singleton_class.prepend(Module.new do
  def with_gems(*gems, &body)
    super(
      *gems.map do |gem|
        case gem
        when "msgpack" then "msgpack-ruby"
        else gem
        end
      end,
      &body
    )
  end
end)

I don't know if there is a way to map the name of a gem back to the folder where it is stored?

Does not play nice with docker

The way bootsnap considers anything in the ruby distribution path to be stable is causing problems for our docker setup, and I expect it's a common setup for many ruby docker environments.

If you install ruby on ubuntu with the brightbox/ruby-ng aptitude PPA, it sets the install prefix to /usr. However, in docker, your app path is generally /usr/src/app/.... Since bootsnap considers anything that falls in RbConfig::CONFIG['prefix'] to be stable, the entire rails app gets marked as stable, which means any path change or new file requires a manual purge of the cache.

The easiest fix is probably to whitelist usr/src/app as a volatile path.

Fails to load iseq cache in Linux

I have xfs + xattrs configured on my linux box, when booting I get:

/home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch': Argument list too long (Errno::E2BIG)
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /home/sam/.rbenv/versions/2.4.1/lib/ruby/2.4.0/psych/visitors.rb:3:in `<main>'

Cannot define multiple 'included' blocks for a Concern

After seeing rails/rails#29313 I wanted to give bootsnap a try, created a new rails 5.1.2 app on ruby 2.4.1 via rails new test_bootsnap. I added bootsnap to Gemfile and boot.rb like in the pull request and tried to start rails console via bundle exec rails c resulting in the following error:

$ bundle exec rails c
/Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/concern.rb:126:in `included': Cannot define multiple 'included' blocks for a Concern (ActiveSupport::Concern::MultipleIncludedBlocks)
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.2/lib/action_view/view_paths.rb:5:in `<module:ViewPaths>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.2/lib/action_view/view_paths.rb:2:in `<module:ActionView>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.2/lib/action_view/view_paths.rb:1:in `<main>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/actionview-5.1.2/lib/action_view/rendering.rb:1:in `<main>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:15:in `<module:ApiRendering>'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:14:in `<module:ActionController>'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/jbuilder-2.7.0/lib/jbuilder/railtie.rb:13:in `block in <class:Railtie>'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/railties-5.1.2/lib/rails/initializable.rb:30:in `instance_exec'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/railties-5.1.2/lib/rails/initializable.rb:30:in `run'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/railties-5.1.2/lib/rails/initializable.rb:59:in `block in run_initializers'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `call'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/railties-5.1.2/lib/rails/initializable.rb:58:in `run_initializers'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/railties-5.1.2/lib/rails/application.rb:353:in `initialize!'
	from /Users/aqualon/Projects/test_bootsnap/config/environment.rb:5:in `<main>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/gems/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
	from /Users/aqualon/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /Users/aqualon/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from -e:1:in `<main>'

If I remove bootsnap/setup from boot.rb, rails console starts fine.

System is macOS Sierra 10.12.6, ruby managed via rvm, bundler version 1.15.1.

Failing tests on Linux

...........F............F................

Finished in 0.069678s, 588.4248 runs/s, 1420.8307 assertions/s.

  1) Failure:
Bootsnap::LoadPathCache::CacheTest#test_builtin_features [/home/sam/Source/bootsnap/test/load_path_cache/cache_test.rb:32]:
[Bootsnap::LoadPathCache::ReturnFalse] exception expected, not
Class: <Bootsnap::LoadPathCache::FallbackScan>
Message: <"Bootsnap::LoadPathCache::FallbackScan">
---Backtrace---
/home/sam/Source/bootsnap/lib/bootsnap/load_path_cache/cache.rb:83:in `block in find'
/home/sam/Source/bootsnap/lib/bootsnap/load_path_cache/cache.rb:53:in `synchronize'
/home/sam/Source/bootsnap/lib/bootsnap/load_path_cache/cache.rb:53:in `find'
/home/sam/Source/bootsnap/test/load_path_cache/cache_test.rb:32:in `block in test_builtin_features'
---------------


  2) Failure:
CompileCacheTest#test_no_write_permission [/home/sam/Source/bootsnap/test/compile_cache_test.rb:22]:
Expected /no write perm.*no write perm/m to match "".

After my PR these two specs are failing on Linux

Intermittent segmentation faults on Circle CI

Yesterday we saw a number of builds fail with a seg fault, that is seemingly related to bootsnap. It was inconsistent at best, but happened on a number of unrelated builds. I'd be happy to share more logs, if you think those would help?

/home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/store.rb:72: [BUG] Segmentation fault at 0x00000000000033
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0045 p:---- s:0201 e:000200 CFUNC  :dump
c:0044 p:0078 s:0197 e:000194 METHOD /home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/store.rb:72
c:0043 p:0015 s:0191 e:000190 METHOD /home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/store.rb:53
c:0042 p:0038 s:0188 e:000186 METHOD /home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/store.rb:45
c:0041 p:0011 s:0184 e:000183 METHOD /home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/cache.rb:140
c:0040 p:0070 s:0180 e:000179 BLOCK  /home/circleci/project/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/cache.rb:123 [FINISH]
c:0039 p:---- s:0178 e:000177 CFUNC  :synchronize

💾 build12502.log

Error loading ISeq from cache for sass-3.4.23

Hi @burke! Thanks for this project. On my first try, it yelled back at me.

The 'fix' got me to the next gem with a similar issue. Please let me know if this is too much info.
I'll submit a separate issue for each gem I run into a similar issue with.

Details below:

16:03:11 web.1    | [90160] Puma starting in cluster mode...
16:03:11 web.1    | [90160] * Version 3.8.2 (ruby 2.4.1-p111), codename: Sassy Salamander
16:03:11 web.1    | [90160] * Min threads: 5, max threads: 5
16:03:11 web.1    | [90160] * Environment: development
16:03:11 web.1    | [90160] * Process workers: 2
16:03:11 web.1    | [90160] * Preloading application
16:03:12 web.1    | Error loading ISeq from cache for /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb!
16:03:12 web.1    | You can likely fix this by running:
16:03:12 web.1    |   xattr -c /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb
16:03:12 web.1    | ...but, first, please make sure @burke knows you ran into this bug!
16:03:12 web.1    | He will want to see the results of:
16:03:12 web.1    |   /bin/ls -l@ /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb
16:03:12 web.1    | and:
16:03:12 web.1    |   xattr -p user.aotcc.key /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb
16:03:12 web.1    | [90160] ! Unable to load application: Bundler::GemRequireError: There was an error while trying to load the gem 'bootstrap-sass'.
16:03:12 web.1    | Gem Load Error is: Result too large

results from:

/bin/ls -l@ /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb

=

-rw-r--r--@ 1 jpowell  staff  107122 May  3 19:46 /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb
	user.aotcc.key	    22
	user.aotcc.value	167991

results from:

 xattr -p user.aotcc.key /Users/jpowell/.rvm/gems/ruby-2.4.1@milner/gems/sass-3.4.23/lib/sass/script/functions.rb

=

0B 0C D2 F2 E4 3C 2F 90 02 00 C5 E2 00 00 E3 6B
0A 59 00 00 00 00

here's the full trace:

16:03:12 web.1    | Backtrace for gem load error is:
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:34:in `<module:Script>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:8:in `<module:Sass>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:3:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/engine.rb:46:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass.rb:99:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:60:in `configure_sass'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:16:in `load!'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:94:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/application.rb:20:in `<top (required)>'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `require'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `<top (required)>'
16:03:12 web.1    | config.ru:3:in `require'
16:03:12 web.1    | config.ru:3:in `block in <main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `instance_eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `initialize'
16:03:12 web.1    | config.ru:in `new'
16:03:12 web.1    | config.ru:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `new_from_string'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:40:in `parse_file'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:313:in `load_rackup'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:242:in `app'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/runner.rb:138:in `load_and_bind'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cluster.rb:391:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/launcher.rb:172:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cli.rb:77:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/bin/puma:10:in `<top (required)>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `load'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
16:03:12 web.1    | Bundler Error Backtrace:
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:94:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'bootstrap-sass'. (Bundler::GemRequireError)
16:03:12 web.1    | Gem Load Error is: Result too large
16:03:12 web.1    | Backtrace for gem load error is:
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:34:in `<module:Script>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:8:in `<module:Sass>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/script.rb:3:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass/engine.rb:46:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/sass-3.4.23/lib/sass.rb:99:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:in `load_dependency'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:293:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:60:in `configure_sass'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:16:in `load!'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootstrap-sass-3.3.7/lib/bootstrap-sass.rb:94:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bootsnap-0.2.12/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/application.rb:20:in `<top (required)>'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `require'
16:03:12 web.1    | /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `<top (required)>'
16:03:12 web.1    | config.ru:3:in `require'
16:03:12 web.1    | config.ru:3:in `block in <main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `instance_eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `initialize'
16:03:12 web.1    | config.ru:in `new'
16:03:12 web.1    | config.ru:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `new_from_string'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:40:in `parse_file'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:313:in `load_rackup'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:242:in `app'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/runner.rb:138:in `load_and_bind'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cluster.rb:391:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/launcher.rb:172:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cli.rb:77:in `run'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/bin/puma:10:in `<top (required)>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `load'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `<main>'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
16:03:12 web.1    | /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
16:03:12 web.1    | Bundler Error Backtrace:
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:90:in `block (2 levels) in require'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `each'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:86:in `block in require'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `each'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler/runtime.rb:75:in `require'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/bundler-1.14.6/lib/bundler.rb:107:in `require'
16:03:12 web.1    | 	from /Users/jpowell/Dropbox/Clients/crm/config/application.rb:20:in `<top (required)>'
16:03:12 web.1    | 	from /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `require'
16:03:12 web.1    | 	from /Users/jpowell/Dropbox/Clients/crm/config/environment.rb:2:in `<top (required)>'
16:03:12 web.1    | 	from config.ru:3:in `require'
16:03:12 web.1    | 	from config.ru:3:in `block in <main>'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `instance_eval'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:55:in `initialize'
16:03:12 web.1    | 	from config.ru:in `new'
16:03:12 web.1    | 	from config.ru:in `<main>'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `eval'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:49:in `new_from_string'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/rack-2.0.2/lib/rack/builder.rb:40:in `parse_file'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:313:in `load_rackup'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/configuration.rb:242:in `app'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/runner.rb:138:in `load_and_bind'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cluster.rb:391:in `run'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/launcher.rb:172:in `run'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/lib/puma/cli.rb:77:in `run'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/gems/puma-3.8.2/bin/puma:10:in `<top (required)>'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `load'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/puma:22:in `<main>'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
16:03:12 web.1    | 	from /Users/jpowell/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
16:03:13 web.1    | exited with code 1
16:03:13 system   | sending SIGTERM to all processes

incompatible with armv7l

I think this is still related to #65 I'm trying to use v1.1.1 of this library - which indeed compiles fine on my armv7l (ODROID XU3-Lite using Arch Linux).

On using this library the following error appears:

/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:18: [BUG] Bus Error at 0xefce7b
ruby 2.3.4p301 (2017-03-30 revision 58214) [armv7l-linux-eabihf]

-- Control frame information -----------------------------------------------
c:0064 p:---- s:0266 e:000265 CFUNC  :load_from_binary
c:0063 p:0018 s:0262 e:000261 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:18 [FINISH]
c:0062 p:---- s:0257 e:000256 CFUNC  :fetch
c:0061 p:0082 s:0251 e:000250 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:37 [FINISH]
c:0060 p:---- s:0246 e:000245 CFUNC  :require
c:0059 p:0034 s:0242 e:000241 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
c:0058 p:0012 s:0237 e:000236 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0057 p:0059 s:0235 e:000234 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0056 p:0017 s:0230 e:000229 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0055 p:0035 s:0225 e:000224 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/logger.rb:4 [FINISH]
c:0054 p:---- s:0223 e:000222 CFUNC  :require
c:0053 p:0034 s:0219 e:000218 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
c:0052 p:0012 s:0214 e:000213 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0051 p:0059 s:0212 e:000211 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0050 p:0017 s:0207 e:000206 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0049 p:0035 s:0202 e:000201 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support.rb:27 [FINISH]
c:0048 p:---- s:0200 e:000199 CFUNC  :require
c:0047 p:0034 s:0196 e:000195 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
c:0046 p:0012 s:0191 e:000190 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0045 p:0059 s:0189 e:000188 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0044 p:0017 s:0184 e:000183 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0043 p:0026 s:0179 e:000178 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/railties-4.2.8/lib/rails.rb:5 [FINISH]
c:0042 p:---- s:0177 e:000176 CFUNC  :require
c:0041 p:0034 s:0173 e:000172 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
c:0040 p:0012 s:0168 e:000167 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0039 p:0059 s:0166 e:000165 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0038 p:0017 s:0161 e:000160 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0037 p:0008 s:0156 e:000155 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/railties-4.2.8/lib/rails/all.rb:1 [FINISH]
c:0036 p:---- s:0154 e:000153 CFUNC  :require
c:0035 p:0034 s:0150 e:000149 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17
c:0034 p:0012 s:0145 e:000144 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0033 p:0059 s:0143 e:000142 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240
c:0032 p:0017 s:0138 e:000137 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274
c:0031 p:0029 s:0133 e:000132 TOP    /home/git/gitlab/config/application.rb:3 [FINISH]
c:0030 p:---- s:0131 e:000130 CFUNC  :require
c:0029 p:0020 s:0127 e:000126 TOP    /home/git/gitlab/Rakefile:5 [FINISH]
c:0028 p:---- s:0124 e:000123 CFUNC  :load
c:0027 p:0010 s:0120 e:000119 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/rake_module.rb:28
c:0026 p:0199 s:0116 e:000115 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:689
c:0025 p:0008 s:0111 e:000110 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:94
c:0024 p:0006 s:0109 e:000108 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176
c:0023 p:0009 s:0105 e:000104 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:93
c:0022 p:0015 s:0102 e:000101 BLOCK  /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:77
c:0021 p:0006 s:0100 e:000099 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176
c:0020 p:0009 s:0096 e:000095 METHOD /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:75
c:0019 p:0045 s:0093 e:000092 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/bin/rake:33 [FINISH]
c:0018 p:---- s:0091 e:000090 CFUNC  :load
c:0017 p:0136 s:0087 e:000086 TOP    /home/git/gitlab/vendor/bundle/ruby/2.3.0/bin/rake:22 [FINISH]
c:0016 p:---- s:0083 e:000082 CFUNC  :load
c:0015 p:0170 s:0079 e:000078 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74
c:0014 p:0089 s:0070 e:000069 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:27
c:0013 p:0032 s:0066 e:000065 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:360
c:0012 p:0078 s:0062 e:000061 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb:27
c:0011 p:0058 s:0055 e:000054 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126
c:0010 p:0305 s:0049 e:000048 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb:369
c:0009 p:0012 s:0037 e:000036 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:20
c:0008 p:0070 s:0033 e:000032 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb:444
c:0007 p:0012 s:0027 e:000026 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:10
c:0006 p:0090 s:0022 e:000021 BLOCK  /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/exe/bundle:35
c:0005 p:0006 s:0017 e:000016 METHOD /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121
c:0004 p:0157 s:0013 E:0003b4 TOP    /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/exe/bundle:27 [FINISH]
c:0003 p:---- s:0010 e:000009 CFUNC  :load
c:0002 p:0136 s:0006 E:0009a0 EVAL   /usr/bin/bundle:22 [FINISH]
c:0001 p:0000 s:0002 E:001bc8 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/bin/bundle:22:in `<main>'
/usr/bin/bundle:22:in `load'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:10:in `start'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:20:in `dispatch'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb:360:in `exec'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:27:in `run'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `kernel_load'
/opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `load'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/bin/rake:22:in `<top (required)>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/bin/rake:22:in `load'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/bin/rake:33:in `<top (required)>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:75:in `run'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:77:in `block in run'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:93:in `load_rakefile'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:94:in `block in load_rakefile'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:689:in `raw_load_rakefile'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/rake_module.rb:28:in `load_rakefile'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/rake_module.rb:28:in `load'
/home/git/gitlab/Rakefile:5:in `<top (required)>'
/home/git/gitlab/Rakefile:5:in `require'
/home/git/gitlab/config/application.rb:3:in `<top (required)>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/railties-4.2.8/lib/rails/all.rb:1:in `<main>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/railties-4.2.8/lib/rails.rb:5:in `<main>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support.rb:27:in `<main>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/logger.rb:4:in `<main>'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:37:in `load_iseq'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:37:in `fetch'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:18:in `storage_to_output'
/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb:18:in `load_from_binary'

-- Other runtime information -----------------------------------------------

* Loaded script: /home/git/gitlab/vendor/bundle/ruby/2.3.0/bin/rake

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/encdb.so
    5 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/trans/transdb.so
    6 /opt/ruby2.3/lib/ruby/2.3.0/unicode_normalize.rb
    7 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/rbconfig.rb
    8 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/compatibility.rb
    9 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/defaults.rb
   10 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/deprecate.rb
   11 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/errors.rb
   12 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/version.rb
   13 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/requirement.rb
   14 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/platform.rb
   15 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/basic_specification.rb
   16 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/stub_specification.rb
   17 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/util/list.rb
   18 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/stringio.so
   19 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/specification.rb
   20 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/exceptions.rb
   21 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/dependency.rb
   22 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
   23 /opt/ruby2.3/lib/ruby/2.3.0/monitor.rb
   24 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb
   25 /opt/ruby2.3/lib/ruby/2.3.0/rubygems.rb
   26 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/path_support.rb
   27 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/version.rb
   28 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb
   29 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/levenshtein.rb
   30 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/jaro_winkler.rb
   31 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkable.rb
   32 /opt/ruby2.3/lib/ruby/2.3.0/delegate.rb
   33 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   34 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   35 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   36 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   37 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/null_checker.rb
   38 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/formatter.rb
   39 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean.rb
   40 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/postit/lib/postit/parser.rb
   41 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/postit/lib/postit/environment.rb
   42 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/postit/lib/postit/installer.rb
   43 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/postit/lib/postit/version.rb
   44 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/postit/lib/postit.rb
   45 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/postit_trampoline.rb
   46 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/etc.so
   47 /opt/ruby2.3/lib/ruby/2.3.0/fileutils.rb
   48 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/pathname.so
   49 /opt/ruby2.3/lib/ruby/2.3.0/pathname.rb
   50 /opt/ruby2.3/lib/ruby/2.3.0/tmpdir.rb
   51 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/errors.rb
   52 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/environment_preserver.rb
   53 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/plugin/api.rb
   54 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/plugin.rb
   55 /opt/ruby2.3/lib/ruby/2.3.0/uri/rfc2396_parser.rb
   56 /opt/ruby2.3/lib/ruby/2.3.0/uri/rfc3986_parser.rb
   57 /opt/ruby2.3/lib/ruby/2.3.0/uri/common.rb
   58 /opt/ruby2.3/lib/ruby/2.3.0/uri/generic.rb
   59 /opt/ruby2.3/lib/ruby/2.3.0/uri/ftp.rb
   60 /opt/ruby2.3/lib/ruby/2.3.0/uri/http.rb
   61 /opt/ruby2.3/lib/ruby/2.3.0/uri/https.rb
   62 /opt/ruby2.3/lib/ruby/2.3.0/uri/ldap.rb
   63 /opt/ruby2.3/lib/ruby/2.3.0/uri/ldaps.rb
   64 /opt/ruby2.3/lib/ruby/2.3.0/uri/mailto.rb
   65 /opt/ruby2.3/lib/ruby/2.3.0/uri.rb
   66 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest.so
   67 /opt/ruby2.3/lib/ruby/2.3.0/digest.rb
   68 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/util.rb
   69 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/git.rb
   70 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/installed.rb
   71 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/specific_file.rb
   72 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/local.rb
   73 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/lock.rb
   74 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source/vendor.rb
   75 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/source.rb
   76 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/gem_helpers.rb
   77 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/match_platform.rb
   78 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/rubygems_ext.rb
   79 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/console.so
   80 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/user_interaction.rb
   81 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/config_file.rb
   82 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/rubygems_integration.rb
   83 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/version.rb
   84 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/constants.rb
   85 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/current_ruby.rb
   86 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler.rb
   87 /opt/ruby2.3/lib/ruby/2.3.0/cgi/core.rb
   88 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/cgi/escape.so
   89 /opt/ruby2.3/lib/ruby/2.3.0/cgi/util.rb
   90 /opt/ruby2.3/lib/ruby/2.3.0/cgi/cookie.rb
   91 /opt/ruby2.3/lib/ruby/2.3.0/cgi.rb
   92 /opt/ruby2.3/lib/ruby/2.3.0/set.rb
   93 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb
   94 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb
   95 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb
   96 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/error.rb
   97 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb
   98 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/parser/argument.rb
   99 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb
  100 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/parser/option.rb
  101 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/parser/options.rb
  102 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/parser.rb
  103 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/shell.rb
  104 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb
  105 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/readline.so
  106 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb
  107 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/line_editor.rb
  108 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/util.rb
  109 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb
  110 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb
  111 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendored_thor.rb
  112 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb
  113 /opt/ruby2.3/lib/ruby/2.3.0/rubygems/ext/builder.rb
  114 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/settings.rb
  115 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/feature_flag.rb
  116 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/shared_helpers.rb
  117 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/yaml_serializer.rb
  118 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/plugin.rb
  119 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli.rb
  120 /opt/ruby2.3/lib/ruby/2.3.0/tempfile.rb
  121 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/shell/basic.rb
  122 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/shell/color.rb
  123 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/ui.rb
  124 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/ui/silent.rb
  125 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/ui/rg_proxy.rb
  126 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/ui/shell.rb
  127 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb
  128 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source.rb
  129 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest/sha1.so
  130 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source/path.rb
  131 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source/git.rb
  132 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb
  133 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/lockfile_parser.rb
  134 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/definition.rb
  135 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/dependency.rb
  136 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/ruby_dsl.rb
  137 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/dsl.rb
  138 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source_list.rb
  139 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/lazy_specification.rb
  140 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/index.rb
  141 /opt/ruby2.3/lib/ruby/2.3.0/tsort.rb
  142 /opt/ruby2.3/lib/ruby/2.3.0/forwardable.rb
  143 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/spec_set.rb
  144 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/gem_version_promoter.rb
  145 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/source/gemspec.rb
  146 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/runtime.rb
  147 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/dep_proxy.rb
  148 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/remote_specification.rb
  149 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/stub_specification.rb
  150 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/endpoint_specification.rb
  151 /opt/ruby2.3/lib/ruby/gems/2.3.0/gems/bundler-1.15.1/lib/bundler/setup.rb
  152 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/version.rb
  153 /opt/ruby2.3/lib/ruby/2.3.0/singleton.rb
  154 /opt/ruby2.3/lib/ruby/2.3.0/optparse.rb
  155 /opt/ruby2.3/lib/ruby/2.3.0/ostruct.rb
  156 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/ext/module.rb
  157 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/ext/core.rb
  158 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/ext/string.rb
  159 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/early_time.rb
  160 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/late_time.rb
  161 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/ext/time.rb
  162 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/alt_system.rb
  163 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/win32.rb
  164 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/linked_list.rb
  165 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/cpu_counter.rb
  166 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/scope.rb
  167 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/task_argument_error.rb
  168 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb
  169 /opt/ruby2.3/lib/ruby/2.3.0/shellwords.rb
  170 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/task_manager.rb
  171 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/cloneable.rb
  172 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/file_utils.rb
  173 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/file_utils_ext.rb
  174 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/pathmap.rb
  175 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/file_list.rb
  176 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/promise.rb
  177 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/thread_pool.rb
  178 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/private_reader.rb
  179 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/thread_history_display.rb
  180 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/trace_output.rb
  181 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/application.rb
  182 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/rake_module.rb
  183 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/pseudo_status.rb
  184 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/task_arguments.rb
  185 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/invocation_chain.rb
  186 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb
  187 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/task.rb
  188 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/file_task.rb
  189 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/file_creation_task.rb
  190 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/multi_task.rb
  191 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb
  192 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/default_loader.rb
  193 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/name_space.rb
  194 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake/backtrace.rb
  195 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/rake-10.5.0/lib/rake.rb
  196 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/version.rb
  197 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/path_scanner.rb
  198 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/path.rb
  199 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/explicit_require.rb
  200 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/cache.rb
  201 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/version.rb
  202 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/msgpack.so
  203 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/packer.rb
  204 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/unpacker.rb
  205 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/factory.rb
  206 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/symbol.rb
  207 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack.rb
  208 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/store.rb
  209 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/change_observer.rb
  210 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache.rb
  211 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache.rb
  212 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap.rb
  213 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb
  214 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/thread.so
  215 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe/version.rb
  216 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe/synchronized_delegator.rb
  217 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe.rb
  218 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/aliasing.rb
  219 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/array/extract_options.rb
  220 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/attribute_accessors.rb
  221 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/array/prepend_and_append.rb
  222 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/hash/deep_merge.rb
  223 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/hash/except.rb
  224 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/hash/slice.rb
  225 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/i18n-0.8.1/lib/i18n/version.rb
  226 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/i18n-0.8.1/lib/i18n/exceptions.rb
  227 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/i18n-0.8.1/lib/i18n/interpolate/ruby.rb
  228 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/i18n-0.8.1/lib/i18n.rb
  229 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/lazy_load_hooks.rb
  230 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/i18n-0.8.1/lib/i18n/config.rb
  231 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/i18n.rb
  232 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe/non_concurrent_cache_backend.rb
  233 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe/mri_cache_backend.rb
  234 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/thread_safe-0.3.6/lib/thread_safe/cache.rb
  235 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/inflector/inflections.rb
  236 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/multibyte.rb
  237 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/string/multibyte.rb
  238 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/inflector/transliterate.rb
  239 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/inflections.rb
  240 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/inflector/methods.rb
  241 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/string/inflections.rb
  242 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/inflector.rb
  243 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/introspection.rb
  244 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/anonymous.rb
  245 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/qualified_const.rb
  246 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/object/blank.rb
  247 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/kernel/singleton_class.rb
  248 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/delegation.rb
  249 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation/instance_delegator.rb
  250 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/openssl.so
  251 /opt/ruby2.3/lib/ruby/2.3.0/openssl/bn.rb
  252 /opt/ruby2.3/lib/ruby/2.3.0/openssl/pkey.rb
  253 /opt/ruby2.3/lib/ruby/2.3.0/openssl/cipher.rb
  254 /opt/ruby2.3/lib/ruby/2.3.0/openssl/config.rb
  255 /opt/ruby2.3/lib/ruby/2.3.0/openssl/digest.rb
  256 /opt/ruby2.3/lib/ruby/2.3.0/openssl/x509.rb
  257 /opt/ruby2.3/lib/ruby/2.3.0/openssl/buffering.rb
  258 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/nonblock.so
  259 /opt/ruby2.3/lib/ruby/2.3.0/openssl/ssl.rb
  260 /opt/ruby2.3/lib/ruby/2.3.0/openssl.rb
  261 /opt/ruby2.3/lib/ruby/2.3.0/securerandom.rb
  262 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications/instrumenter.rb
  263 /opt/ruby2.3/lib/ruby/2.3.0/mutex_m.rb
  264 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications/fanout.rb
  265 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/per_thread_registry.rb
  266 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications.rb
  267 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation/behaviors.rb
  268 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation/reporting.rb
  269 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation/method_wrappers.rb
  270 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation/proxy_wrappers.rb
  271 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/module/deprecation.rb
  272 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/deprecation.rb
  273 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/kernel/reporting.rb
  274 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/load_error.rb
  275 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/name_error.rb
  276 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/core_ext/string/starts_ends_with.rb
  277 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies.rb
  278 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/load_path_cache/core_ext/active_support.rb
  279 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/bootsnap.so
  280 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/zlib.so
  281 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/iseq.rb
  282 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/compile_cache/yaml.rb
  283 /opt/ruby2.3/lib/ruby/2.3.0/psych/exception.rb
  284 /opt/ruby2.3/lib/ruby/2.3.0/psych/syntax_error.rb
  285 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/psych.so
  286 /opt/ruby2.3/lib/ruby/2.3.0/psych/omap.rb
  287 /opt/ruby2.3/lib/ruby/2.3.0/psych/set.rb
  288 /opt/ruby2.3/lib/ruby/2.3.0/psych/class_loader.rb
  289 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/strscan.so
  290 /opt/ruby2.3/lib/ruby/2.3.0/psych/scalar_scanner.rb
  291 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/node.rb
  292 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/stream.rb
  293 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/document.rb
  294 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/sequence.rb
  295 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/scalar.rb
  296 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/mapping.rb
  297 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes/alias.rb
  298 /opt/ruby2.3/lib/ruby/2.3.0/psych/nodes.rb
  299 /opt/ruby2.3/lib/ruby/2.3.0/psych/streaming.rb
  300 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/visitor.rb
  301 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/to_ruby.rb
  302 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/emitter.rb
  303 /opt/ruby2.3/lib/ruby/2.3.0/psych/handler.rb
  304 /opt/ruby2.3/lib/ruby/2.3.0/psych/tree_builder.rb
  305 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/yaml_tree.rb
  306 /opt/ruby2.3/lib/ruby/2.3.0/psych/json/ruby_events.rb
  307 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/json_tree.rb
  308 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors/depth_first.rb
  309 /opt/ruby2.3/lib/ruby/2.3.0/psych/visitors.rb
  310 /opt/ruby2.3/lib/ruby/2.3.0/psych/parser.rb
  311 /opt/ruby2.3/lib/ruby/2.3.0/psych/coder.rb
  312 /opt/ruby2.3/lib/ruby/2.3.0/psych/core_ext.rb
  313 /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/date_core.so
  314 /opt/ruby2.3/lib/ruby/2.3.0/date.rb
  315 /opt/ruby2.3/lib/ruby/2.3.0/psych/deprecated.rb
  316 /opt/ruby2.3/lib/ruby/2.3.0/psych/stream.rb
  317 /opt/ruby2.3/lib/ruby/2.3.0/psych/json/yaml_events.rb
  318 /opt/ruby2.3/lib/ruby/2.3.0/psych/json/tree_builder.rb
  319 /opt/ruby2.3/lib/ruby/2.3.0/psych/json/stream.rb
  320 /opt/ruby2.3/lib/ruby/2.3.0/psych/handlers/document_stream.rb
  321 /opt/ruby2.3/lib/ruby/2.3.0/psych.rb
  322 /opt/ruby2.3/lib/ruby/2.3.0/yaml.rb
  323 /home/git/gitlab/config/boot.rb
  324 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/railties-4.2.8/lib/rails/ruby_version_check.rb
  325 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/dependencies/autoload.rb
  326 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/gem_version.rb
  327 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/version.rb
  328 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/concern.rb
  329 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/logger_silence.rb
  330 /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/logger_thread_safe_level.rb

* Process memory map:

00010000-00011000 r-xp 00000000 b3:01 1448834    /opt/ruby2.3/bin/ruby-2.3
00020000-00021000 r--p 00000000 b3:01 1448834    /opt/ruby2.3/bin/ruby-2.3
00021000-00022000 rw-p 00001000 b3:01 1448834    /opt/ruby2.3/bin/ruby-2.3
00022000-00f1e000 rw-p 00000000 00:00 0          [heap]
b646c000-b6495000 r-xp 00000000 b3:01 1583072    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/date_core.so
b6495000-b64a4000 ---p 00029000 b3:01 1583072    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/date_core.so
b64a4000-b64a5000 r--p 00028000 b3:01 1583072    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/date_core.so
b64a5000-b64a6000 rw-p 00029000 b3:01 1583072    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/date_core.so
b64a6000-b64aa000 r-xp 00000000 b3:01 1583069    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/strscan.so
b64aa000-b64b9000 ---p 00004000 b3:01 1583069    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/strscan.so
b64b9000-b64ba000 r--p 00003000 b3:01 1583069    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/strscan.so
b64ba000-b64bb000 rw-p 00004000 b3:01 1583069    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/strscan.so
b64bb000-b64d4000 r-xp 00000000 b3:01 1198472    /usr/lib/libyaml-0.so.2.0.5
b64d4000-b64e3000 ---p 00019000 b3:01 1198472    /usr/lib/libyaml-0.so.2.0.5
b64e3000-b64e4000 r--p 00018000 b3:01 1198472    /usr/lib/libyaml-0.so.2.0.5
b64e4000-b64e5000 rw-p 00019000 b3:01 1198472    /usr/lib/libyaml-0.so.2.0.5
b64e5000-b64ea000 r-xp 00000000 b3:01 1583085    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/psych.so
b64ea000-b64f9000 ---p 00005000 b3:01 1583085    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/psych.so
b64f9000-b64fa000 r--p 00004000 b3:01 1583085    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/psych.so
b64fa000-b64fb000 rw-p 00005000 b3:01 1583085    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/psych.so
b64fb000-b650e000 r-xp 00000000 b3:01 1197004    /usr/lib/libz.so.1.2.11
b650e000-b651d000 ---p 00013000 b3:01 1197004    /usr/lib/libz.so.1.2.11
b651d000-b651e000 r--p 00012000 b3:01 1197004    /usr/lib/libz.so.1.2.11
b651e000-b651f000 rw-p 00013000 b3:01 1197004    /usr/lib/libz.so.1.2.11
b651f000-b656b000 r-xp 00000000 b3:01 1220111    /usr/lib/libssl.so.1.0.0
b656b000-b657b000 ---p 0004c000 b3:01 1220111    /usr/lib/libssl.so.1.0.0
b657b000-b657d000 r--p 0004c000 b3:01 1220111    /usr/lib/libssl.so.1.0.0
b657d000-b6581000 rw-p 0004e000 b3:01 1220111    /usr/lib/libssl.so.1.0.0
b6581000-b65c4000 r-xp 00000000 b3:01 1583082    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/openssl.so
b65c4000-b65d3000 ---p 00043000 b3:01 1583082    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/openssl.so
b65d3000-b65d4000 r--p 00042000 b3:01 1583082    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/openssl.so
b65d4000-b65d6000 rw-p 00043000 b3:01 1583082    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/openssl.so
b65d6000-b663c000 rw-p 00000000 00:00 0 
b664e000-b6658000 r-xp 00000000 b3:01 1583084    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/zlib.so
b6658000-b6667000 ---p 0000a000 b3:01 1583084    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/zlib.so
b6667000-b6668000 r--p 00009000 b3:01 1583084    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/zlib.so
b6668000-b6669000 rw-p 0000a000 b3:01 1583084    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/zlib.so
b6669000-b666b000 r-xp 00000000 b3:01 529164     /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/bootsnap.so
b666b000-b667a000 ---p 00002000 b3:01 529164     /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/bootsnap.so
b667a000-b667b000 r--p 00001000 b3:01 529164     /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/bootsnap.so
b667b000-b667c000 rw-p 00002000 b3:01 529164     /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.1.1/lib/bootsnap/bootsnap.so
b667c000-b667d000 r-xp 00000000 b3:01 1583118    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/nonblock.so
b667d000-b668c000 ---p 00001000 b3:01 1583118    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/nonblock.so
b668c000-b668d000 r--p 00000000 b3:01 1583118    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/nonblock.so
b668d000-b668e000 rw-p 00001000 b3:01 1583118    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/nonblock.so
b668e000-b668f000 r-xp 00000000 b3:01 1583078    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/thread.so
b668f000-b669e000 ---p 00001000 b3:01 1583078    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/thread.so
b669e000-b669f000 r--p 00000000 b3:01 1583078    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/thread.so
b669f000-b66a0000 rw-p 00001000 b3:01 1583078    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/thread.so
b66a0000-b66e2000 rw-p 00000000 00:00 0 
b66e2000-b66f2000 r-xp 00000000 b3:01 16474      /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/msgpack.so
b66f2000-b6701000 ---p 00010000 b3:01 16474      /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/msgpack.so
b6701000-b6702000 r--p 0000f000 b3:01 16474      /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/msgpack.so
b6702000-b6703000 rw-p 00010000 b3:01 16474      /home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/msgpack-1.1.0/lib/msgpack/msgpack.so
b6703000-b6868000 r-xp 00000000 b3:01 1220110    /usr/lib/libcrypto.so.1.0.0
b6868000-b6878000 ---p 00165000 b3:01 1220110    /usr/lib/libcrypto.so.1.0.0
b6878000-b6886000 r--p 00165000 b3:01 1220110    /usr/lib/libcrypto.so.1.0.0
b6886000-b688d000 rw-p 00173000 b3:01 1220110    /usr/lib/libcrypto.so.1.0.0
b688d000-b6890000 rw-p 00000000 00:00 0 
b6890000-b6891000 r-xp 00000000 b3:01 1583127    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest/sha1.so
b6891000-b68a0000 ---p 00001000 b3:01 1583127    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest/sha1.so
b68a0000-b68a1000 r--p 00000000 b3:01 1583127    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest/sha1.so
b68a1000-b68a2000 rw-p 00001000 b3:01 1583127    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest/sha1.so
b68a2000-b68f4000 r-xp 00000000 b3:01 1180509    /usr/lib/libncursesw.so.6.0
b68f4000-b6904000 ---p 00052000 b3:01 1180509    /usr/lib/libncursesw.so.6.0
b6904000-b6906000 r--p 00052000 b3:01 1180509    /usr/lib/libncursesw.so.6.0
b6906000-b6907000 rw-p 00054000 b3:01 1180509    /usr/lib/libncursesw.so.6.0
b6907000-b6908000 rw-p 00000000 00:00 0 
b6908000-b693e000 r-xp 00000000 b3:01 1194620    /usr/lib/libreadline.so.7.0
b693e000-b694e000 ---p 00036000 b3:01 1194620    /usr/lib/libreadline.so.7.0
b694e000-b694f000 r--p 00036000 b3:01 1194620    /usr/lib/libreadline.so.7.0
b694f000-b6953000 rw-p 00037000 b3:01 1194620    /usr/lib/libreadline.so.7.0
b6953000-b6954000 rw-p 00000000 00:00 0 
b6961000-b6967000 r-xp 00000000 b3:01 1583095    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/readline.so
b6967000-b6976000 ---p 00006000 b3:01 1583095    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/readline.so
b6976000-b6977000 r--p 00005000 b3:01 1583095    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/readline.so
b6977000-b6978000 rw-p 00006000 b3:01 1583095    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/readline.so
b6978000-b6979000 r-xp 00000000 b3:01 1583203    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/cgi/escape.so
b6979000-b6988000 ---p 00001000 b3:01 1583203    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/cgi/escape.so
b6988000-b6989000 r--p 00000000 b3:01 1583203    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/cgi/escape.so
b6989000-b698a000 rw-p 00001000 b3:01 1583203    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/cgi/escape.so
b698a000-b698d000 r-xp 00000000 b3:01 1583121    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/console.so
b698d000-b699c000 ---p 00003000 b3:01 1583121    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/console.so
b699c000-b699d000 r--p 00002000 b3:01 1583121    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/console.so
b699d000-b699e000 rw-p 00003000 b3:01 1583121    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/io/console.so
b699e000-b69a1000 r-xp 00000000 b3:01 1583089    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest.so
b69a1000-b69b0000 ---p 00003000 b3:01 1583089    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest.so
b69b0000-b69b1000 r--p 00002000 b3:01 1583089    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest.so
b69b1000-b69b2000 rw-p 00003000 b3:01 1583089    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/digest.so
b69b2000-b69b8000 r-xp 00000000 b3:01 1583100    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/pathname.so
b69b8000-b69c7000 ---p 00006000 b3:01 1583100    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/pathname.so
b69c7000-b69c8000 r--p 00005000 b3:01 1583100    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/pathname.so
b69c8000-b69c9000 rw-p 00006000 b3:01 1583100    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/pathname.so
b69c9000-b69ce000 r-xp 00000000 b3:01 1583071    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/etc.so
b69ce000-b69dd000 ---p 00005000 b3:01 1583071    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/etc.so
b69dd000-b69de000 r--p 00004000 b3:01 1583071    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/etc.so
b69de000-b69df000 rw-p 00005000 b3:01 1583071    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/etc.so
b69df000-b69e4000 r-xp 00000000 b3:01 1583068    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/stringio.so
b69e4000-b69f3000 ---p 00005000 b3:01 1583068    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/stringio.so
b69f3000-b69f4000 r--p 00004000 b3:01 1583068    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/stringio.so
b69f4000-b69f5000 rw-p 00005000 b3:01 1583068    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/stringio.so
b69f5000-b69f7000 r-xp 00000000 b3:01 1583183    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/trans/transdb.so
b69f7000-b6a06000 ---p 00002000 b3:01 1583183    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/trans/transdb.so
b6a06000-b6a07000 r--p 00001000 b3:01 1583183    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/trans/transdb.so
b6a07000-b6a08000 rw-p 00002000 b3:01 1583183    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/trans/transdb.so
b6a08000-b6a0a000 r-xp 00000000 b3:01 1583144    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/encdb.so
b6a0a000-b6a19000 ---p 00002000 b3:01 1583144    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/encdb.so
b6a19000-b6a1a000 r--p 00001000 b3:01 1583144    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/encdb.so
b6a1a000-b6a1b000 rw-p 00002000 b3:01 1583144    /opt/ruby2.3/lib/ruby/2.3.0/armv7l-linux-eabihf/enc/encdb.so
b6a1b000-b6a9e000 rw-p 00000000 00:00 0 
b6a9e000-b6b11000 r-xp 00000000 b3:01 1180710    /usr/lib/libm-2.25.so
b6b11000-b6b20000 ---p 00073000 b3:01 1180710    /usr/lib/libm-2.25.so
b6b20000-b6b21000 r--p 00072000 b3:01 1180710    /usr/lib/libm-2.25.so
b6b21000-b6b22000 rw-p 00073000 b3:01 1180710    /usr/lib/libm-2.25.so
b6b22000-b6b29000 r-xp 00000000 b3:01 1180241    /usr/lib/libcrypt-2.25.so
b6b29000-b6b38000 ---p 00007000 b3:01 1180241    /usr/lib/libcrypt-2.25.so
b6b38000-b6b39000 r--p 00006000 b3:01 1180241    /usr/lib/libcrypt-2.25.so
b6b39000-b6b3a000 rw-p 00007000 b3:01 1180241    /usr/lib/libcrypt-2.25.so
b6b3a000-b6b61000 rw-p 00000000 00:00 0 
b6b61000-b6b63000 r-xp 00000000 b3:01 1180746    /usr/lib/libdl-2.25.so
b6b63000-b6b72000 ---p 00002000 b3:01 1180746    /usr/lib/libdl-2.25.so
b6b72000-b6b73000 r--p 00001000 b3:01 1180746    /usr/lib/libdl-2.25.so
b6b73000-b6b74000 rw-p 00002000 b3:01 1180746    /usr/lib/libdl-2.25.so
b6b74000-b6bd1000 r-xp 00000000 b3:01 1196567    /usr/lib/libgmp.so.10.3.2
b6bd1000-b6be0000 ---p 0005d000 b3:01 1196567    /usr/lib/libgmp.so.10.3.2
b6be0000-b6be1000 r--p 0005c000 b3:01 1196567    /usr/lib/libgmp.so.10.3.2
b6be1000-b6be2000 rw-p 0005d000 b3:01 1196567    /usr/lib/libgmp.so.10.3.2
b6be2000-b6bf8000 r-xp 00000000 b3:01 1180779    /usr/lib/libpthread-2.25.so
b6bf8000-b6c07000 ---p 00016000 b3:01 1180779    /usr/lib/libpthread-2.25.so
b6c07000-b6c08000 r--p 00015000 b3:01 1180779    /usr/lib/libpthread-2.25.so
b6c08000-b6c09000 rw-p 00016000 b3:01 1180779    /usr/lib/libpthread-2.25.so
b6c09000-b6c0b000 rw-p 00000000 00:00 0 
b6c0b000-b6d39000 r-xp 00000000 b3:01 1180733    /usr/lib/libc-2.25.so
b6d39000-b6d49000 ---p 0012e000 b3:01 1180733    /usr/lib/libc-2.25.so
b6d49000-b6d4b000 r--p 0012e000 b3:01 1180733    /usr/lib/libc-2.25.so
b6d4b000-b6d4c000 rw-p 00130000 b3:01 1180733    /usr/lib/libc-2.25.so
b6d4c000-b6d4f000 rw-p 00000000 00:00 0 
b6d4f000-b6f5d000 r-xp 00000000 b3:01 1448180    /opt/ruby2.3/lib/libruby.so.2.3.0
b6f5d000-b6f6c000 ---p 0020e000 b3:01 1448180    /opt/ruby2.3/lib/libruby.so.2.3.0
b6f6c000-b6f6f000 r--p 0020d000 b3:01 1448180    /opt/ruby2.3/lib/libruby.so.2.3.0
b6f6f000-b6f71000 rw-p 00210000 b3:01 1448180    /opt/ruby2.3/lib/libruby.so.2.3.0
b6f71000-b6f78000 rw-p 00000000 00:00 0 
b6f78000-b6f98000 r-xp 00000000 b3:01 1180781    /usr/lib/ld-2.25.so
b6fa1000-b6fa2000 ---p 00000000 00:00 0 
b6fa2000-b6fa7000 rw-p 00000000 00:00 0 
b6fa7000-b6fa8000 r--p 0001f000 b3:01 1180781    /usr/lib/ld-2.25.so
b6fa8000-b6fa9000 rw-p 00020000 b3:01 1180781    /usr/lib/ld-2.25.so
be6aa000-beea9000 rw-p 00000000 00:00 0          [stack]
bef9f000-befa0000 r-xp 00000000 00:00 0          [sigpage]
befa0000-befa1000 r--p 00000000 00:00 0          [vvar]
befa1000-befa2000 r-xp 00000000 00:00 0          [vdso]
ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]


[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

cannot load such file : thread.bundle (LoadError)

Hello

Thanks for this project. I tried to use it:

#gemfile
group :development, :test do
  gem 'bootsnap', require: false

# boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap'
Bootsnap.setup(
  cache_dir:            'tmp/cache', # Path to your cache
  development_mode:     ENV['MY_ENV'] == 'development',
  load_path_cache:      true,        # Should we optimize the LOAD_PATH with a cache?
  autoload_paths_cache: true,        # Should we optimize ActiveSupport autoloads with cache?
  disable_trace:        false,       # Sets `RubyVM::InstructionSequence.compile_option = { trace_instruction: false }`
  compile_cache_iseq:   true,        # Should compile Ruby code into ISeq cache?
  compile_cache_yaml:   true         # Should compile YAML into a cache?
)

require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge(Host:  '0.0.0.0', Port: 3000)
    end
  end
end
/Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap/explicit_require.rb:16:in `require': cannot load such file -- /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-darwin16/thread.bundle (LoadError)
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap/explicit_require.rb:16:in `from_archdir'
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap/load_path_cache/cache.rb:3:in `<top (required)>'
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap/load_path_cache.rb:50:in `require_relative'
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap/load_path_cache.rb:50:in `<top (required)>'
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap.rb:2:in `require_relative'
	from /Users/bti/.rvm/gems/ruby-2.4.1@appaloosa/gems/bootsnap-0.2.0/lib/bootsnap.rb:2:in `<top (required)>'
	from /Users/bti/code/appaloosa/config/boot.rb:4:in `require'
	from /Users/bti/code/appaloosa/config/boot.rb:4:in `<top (required)>'
	from /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from bin/rails:5:in `<main>'

I tried different way of using it (loading it in gemfile without require: false), replacing require bootsnap with BootLib::Require.from_gem('bootsnap', 'bootsnap') but it will then raise :

/Users/bti/code/appaloosa/config/boot.rb:4:in `<top (required)>': uninitialized constant BootLib (NameError)
	from /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /Users/bti/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from bin/rails:5:in `<main>'

Errno::EACCES: Permission denied

When we added bootsnap to our application we started getting the following errors whenever we run anything:

"Errno::EACCES: Permission denied",
"/app/vendor/bundle/ruby/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/compile_cache/iseq.rb:37:in `fetch'",
"/app/vendor/bundle/ruby/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/compile_cache/iseq.rb:37:in `load_iseq'",
"/app/vendor/bundle/ruby/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'",
"/app/vendor/bundle/ruby/2.4.0/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'",
"/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'",
"/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'",
"/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'",
"/app/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.2/lib/active_record/railtie.rb:34:in `block (3 levels) in <class:Railtie>'",
"/app/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'",

Cache path is /app/tmp/cache/bootsnap-compile-cache, which writable for the processes running tasks.

Also, some files are created:

$ /app/tmp/cache/bootsnap-compile-cache$ ls
00  05  0a  0f  14  19  1e  23  28  2d  32  37  3c  41  46  4b  50  55  5a  5f  64  69  6e  73  78  7d  82  87  8c  91  96  9b  a0  a5  aa  af  b4  b9  be  c3  c8  cd  d2  d7  dc  e1  e6  eb  f0  f5  fa  ff
01  06  0b  10  15  1a  1f  24  29  2e  33  38  3d  42  47  4c  51  56  5b  60  65  6a  6f  74  79  7e  83  88  8d  92  97  9c  a1  a6  ab  b0  b5  ba  bf  c4  c9  ce  d3  d8  dd  e2  e7  ec  f1  f6  fb
02  07  0c  11  16  1b  20  25  2a  2f  34  39  3e  43  48  4d  52  57  5c  61  66  6b  70  75  7a  7f  84  89  8e  93  98  9d  a2  a7  ac  b1  b6  bb  c0  c5  ca  cf  d4  d9  de  e3  e8  ed  f2  f7  fc
03  08  0d  12  17  1c  21  26  2b  30  35  3a  3f  44  49  4e  53  58  5d  62  67  6c  71  76  7b  80  85  8a  8f  94  99  9e  a3  a8  ad  b2  b7  bc  c1  c6  cb  d0  d5  da  df  e4  e9  ee  f3  f8  fd
04  09  0e  13  18  1d  22  27  2c  31  36  3b  40  45  4a  4f  54  59  5e  63  68  6d  72  77  7c  81  86  8b  90  95  9a  9f  a4  a9  ae  b3  b8  bd  c2  c7  cc  d1  d6  db  e0  e5  ea  ef  f4  f9  fe

Ruby 2.4.1, bootsnap 1.1.2.

Minor optimisation of reducing array creation count.

I was going through the source code for the Cache module, and noticed this line:

if [DOT_SO, *DL_EXTENSIONS].include?(ext)

This part is inside the reduce loop. Since this is an array of constants, I'm wondering if it would be better to initialise the array upfront, and then check for membership inside the loop, thereby avoiding the creation of the array caused by * operator on the DL_EXTENSIONS constant.

Do you think this micro optimisation is required? Or am I making a mistake somewhere and reading this wrong?

Idea: generate cache at 'gem install' / 'bundle install' time

Bootsnap is a great idea! I think it can be further improved as follows: instead of generating a cache at application boot time, generate it at 'gem install' / 'bundle install' time. After all, for stable paths, gem and bundle are the only apps that could modify the contents. This avoids a big scan during application boot time.

The cache file index filenames to the directories in which they can be found, e.g.:

nokogiri/xpath.rb => ["/gems/nokogiri-1.5.2/lib", "/gems/nokogir-1.2.0/lib"]
active_support/all.rb => ["/gems/activesupport-5.0.0/lib"]

And suppose we make the cache file in an mmap()-able format. Then we can even have multiple processes share the memory occupied by this cache, which reduces memory usage.

Apparent scoping problem?

Short form: There appears to be attempts to call without_bootsnap_cache in a context where the resolution chain doesn't include anything on which the method is attached.

Specifically, lines 50, and 58 of lib/bootsnap/load_path_cache/core_ext/active_support.rb read:

without_bootsnap_cache { super }

After upgrading Bootsnap from 1.1.3 to 1.1.4, drawing routes for ActiveAdmin 1.1.0 dies with this error:

/Users/jon/.rbenv/versions/2.4.1/gemsets/lightningai.com/gems/bootsnap-1.1.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:58:in `rescue in depend_on': undefined method `without_bootsnap_cache' for ActiveSupport::Dependencies:Module (NoMethodError)

The problem goes away if I remove ActiveAdmin.routes(self) from routes.rb -- or downgrade to Bootsnap 1.1.3 -- but obviously that's less than ideal. I presume it means ActiveAdmin is trying to blindly require some things that don't actually exist, but it seems to be tickling some sort of scoping/lifecycle bug in Bootsnap itself.

The problem is fixed if I patch bootsnap (either by editing the relevant file or via monkey-patch) so those lines read like so:

Bootsnap::LoadPathCache::CoreExt::ActiveSupport.without_bootsnap_cache { super }

If I put those patches in place everything works. If I also patch depend_on's rescue clause to dump info about captured LoadErrors I get these warnings on load:

#<LoadError: No such file to load -- inherited_resources/base_helper.rb>
#<LoadError: No such file to load -- active_admin/base_helper.rb>
#<LoadError: No such file to load -- active_admin/resource_helper.rb>
#<LoadError: No such file to load -- admin/administrators_helper.rb>
#<LoadError: No such file to load -- active_admin/page_helper.rb>
#<LoadError: No such file to load -- admin/dashboard_helper.rb>
#<LoadError: No such file to load -- admin/users_helper.rb>
#<LoadError: No such file to load -- admin/comments_helper.rb>

I'm trying to isolate this to a smaller repro-case, but I'm hoping this is enough info to be helpful.

What is MY_ENV?

The standard setup code shown in the README includes the line:

development_mode:     ENV['MY_ENV'] == 'development',

Is MY_ENV something used in Shopify? Was the intention to refer to ENV['RAILS_ENV']?

I mention this not just because I want to be sure, but because chances are a lot of people will do what I initially did, i.e. copypaste without thinking too much, and not notice that MY_ENV was meant to be replaced with something else, leading to development_mode always being false.

Reset cache?

At some point it seemed to me that bootsnap cached ruby paths and I found no way to reset cache except recreate new server from scratch.

Is there a way to reset bootsnap cache?

Caching tmp/cache/bootsnap-load-cache on CI

Should we be saving/restoring tmp/cache/bootsnap-load-path-cache across CI runs? We're splitting up our tests and running it across multiple containers.

Will the contents of tmp/cache/bootsnap-load-path-cache be the same across all of them?

Failing with "No space left on device (Errno::ENOSP)"?

Hey there, I just tried it out on our codebase and got this. Ubuntu 16.04

/home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch': No space left on device (Errno::ENOSPC)
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/iseq.rb:30:in `load_iseq'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/2.3.0/yaml.rb:6:in `<main>'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `block in require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:274:in `require'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache/yaml.rb:34:in `install!'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap/compile_cache.rb:12:in `setup'
	from /home/zmoazeni/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bootsnap-0.2.14/lib/bootsnap.rb:29:in `setup'

But I have plenty of space available. Any idea what this could be failing on? I'm just using the typical setup from https://github.com/Shopify/bootsnap/blob/d47839c9f10e5e0462809973dfaceb53164039f1/README.md#usage

date_core (LoadError)

Hello,

I tried install the bootsnap gem in my monolithic project to reduce the boot time but I receive the date_core (LoadError) that I didn't find much about this error.

  • macOS Sierra 10.12.6
  • rvm
  • ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-darwin16]
  • rails 4.2.8
# config/boot.rb

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup'
$ rails s
/Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:19:in `require': cannot load such file -- date_core (LoadError)
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/date.rb:3:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/rubies/ruby-2.2.5/lib/ruby/2.2.0/time.rb:1:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/rack-1.6.5/lib/rack/utils.rb:6:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/rack-1.6.5/lib/rack.rb:95:in `<module:Rack>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/rack-1.6.5/lib/rack.rb:12:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/actionpack-4.2.8/lib/action_dispatch.rb:29:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/railties-4.2.8/lib/rails/commands/server.rb:3:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/railties-4.2.8/lib/rails/commands/commands_tasks.rb:123:in `require_command!'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/railties-4.2.8/lib/rails/commands/commands_tasks.rb:73:in `server'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/railties-4.2.8/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/railties-4.2.8/lib/rails/commands.rb:17:in `<top (required)>'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/bootsnap-1.1.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `block in require'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:240:in `load_dependency'
	from /Users/rodolfo/.rvm/gems/ruby-2.2.5@bioritmo--smart-system/gems/activesupport-4.2.8/lib/active_support/dependencies.rb:274:in `require'
	from bin/rails:4:in `<main>'

The rails c command give me the same error.

Thanks for your help.

Getting mtime': Not a directory @ rb_file_s_mtime

load_path_cache/path.rb:63:in `mtime': Not a directory @ rb_file_s_mtime - /app/channels/digital_boards_channel.rb/ (Errno::ENOTDIR)

It's happening for all action cable channel files. I deleted them all and it boots!

Performance benchmarks in README

The README is a pleasure to read, and quite extensive!

That said, I was expecting to see some benchmark comparisons (with vs without bootsnap) against one or more large rails apps... OSS ones like Discourse perhaps?

Can't wait to try out this gem in dev and hopefully eventually (partially) in production. Thanks for the amazing work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.