shopify / bootsnap Goto Github PK
View Code? Open in Web Editor NEWBoot large Ruby/Rails apps faster
License: MIT License
Boot large Ruby/Rails apps faster
License: MIT License
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'
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.
# 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.
I just heard about bootsnap, and it seems interesting.
I'm currently using spring.
what is the interaction?
get rid of spring?
use both?
it would be great to mention this in the readme or wiki
What is the minimum required version of active support?
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
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
The overwritten default rake task should run brakeman and then run the parallel specs.
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
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
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.
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.
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
There is no lib/bootsnap/setup.rb
in the release tagged 1.0:
https://github.com/Shopify/bootsnap/tree/dc29efb55cf5ac595dbb0aeb99c8d3172da9ed56/lib/bootsnap
So the gem can't be used, I had to get it from github.
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:
bash <(wget -qO- https://raw.githubusercontent.com/gschlager/install-rails/master/linux)
snappy
gemsudo apt install libsnappy-dev
Gemfile
with the following content:
source 'https://rubygems.org'
gem 'bootsnap', require: false
bundle install
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>'
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?
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!
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.
...........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
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?
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?
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
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
.
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!
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.
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?
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>'
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
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?
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.
What does development_mode
actually do?
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.
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?
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
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>'
It looks like the optimizations here might be benefitial for all ruby apps.
Have you opened issues to add some of these features to the language itself?
Love the gem. Saw the 50% speed up on my own machine, just like you mentioned. I have a few questions:
development
group?BootLib::Require
pro tip does not work for me. Throws an error, uninitialized constant BootLib
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.
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
.
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 LoadError
s 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.
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?
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!
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
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
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
During a deploy using Capistrano, we have Bundler::GemRequireError
errors. It's not always the same gem, not always in the same Capistrano task.
Here is a backtrace of one error: https://pastebin.com/aMcykz4x
So we are enabling bootsnap only on development and test environments for now.
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.
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>'
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.
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>'
NameError
during load_missing_constant
results in constants being loaded twice.
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.
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.
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
.
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.
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?
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.