tildeio / helix

Native Ruby extensions without fear

Home Page:https://usehelix.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Helix always crash ("[BUG] Segmentation fault") with dynamic libraries build by Windows rustc installed with x86_64-pc-windows-gnu (gcc compiler)

johnnytemp opened this issue · comments

When install Rust using rustup-init.exe, with x86_64-pc-windows-msvc, helix can run. However, with x86_64-pc-windows-gnu (choose custom install) it always crash (Tested with msvc compiler not installed in the OS).

To reproduce, try the flipper application from https://usehelix.com/getting_started. ( Or attached here: flipper.zip )
Running "rake irb" under folder "D:/dev/flipper/crates/text_transform" got this crash:

$ bundle exec rake irb
   Compiling cstr-macro v0.1.0
   Compiling cslice v0.3.0
   Compiling libcruby-sys v0.6.4
   Compiling libc v0.2.31
   Compiling helix v0.6.4
   Compiling text_transform v0.1.0 (file:///D:/dev/flipper/crates/text_transform)
    Finished release [optimized] target(s) in 3.67 secs
D:/dev/flipper/crates/text_transform/lib/text_transform/native.so: [BUG] Segmentation fault
ruby 2.4.2p198 (2017-09-14 revision 59899) [x64-mingw32]

-- Control frame information -----------------------------------------------
c:0011 p:-7918332 s:0047 e:000046 TOP    [FINISH]
c:0010 p:---- s:0044 e:000043 CFUNC  :require
c:0009 p:0019 s:0039 e:000038 TOP    D:/dev/flipper/crates/text_transform/lib/text_transform.rb:4 [FINISH]
c:0008 p:---- s:0036 e:000035 CFUNC  :require
c:0007 p:0016 s:0031 e:000030 BLOCK  C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:281 [FINISH]
c:0006 p:---- s:0027 e:000026 CFUNC  :each
c:0005 p:0016 s:0023 e:000022 METHOD C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:279
c:0004 p:0068 s:0017 e:000016 METHOD C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:21
c:0003 p:0056 s:0012 e:000011 METHOD C:/Ruby24-x64/lib/ruby/2.4.0/irb.rb:378
c:0002 p:0030 s:0006 e:000005 EVAL   C:/Ruby24-x64/bin/irb.cmd:19 [FINISH]
c:0001 p:0000 s:0003 E:000b40 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
C:/Ruby24-x64/lib/ruby/2.4.0/irb.rb:378:in `start'
C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:21:in `setup'
C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:279:in `load_modules'
C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:279:in `each'
C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:281:in `block in load_modules'
C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb:281:in `require'
D:/dev/flipper/crates/text_transform/lib/text_transform.rb:4:in `<top (required)>'
D:/dev/flipper/crates/text_transform/lib/text_transform.rb:4:in `require'

-- C level backtrace information -------------------------------------------
C:\WINDOWS\SYSTEM32\ntdll.dll(ZwWaitForSingleObject+0x14) [0x00007ffad3735424]
C:\WINDOWS\System32\KERNELBASE.dll(WaitForSingleObjectEx+0x9f) [0x00007ffad081988f]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_print_backtrace+0x36) [0x0000000067b029e6]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_bugreport+0x65) [0x0000000067b02a55]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_bug_context+0x69) [0x00000000679dce29]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_check_safe_obj+0x6ac) [0x0000000067a988ec]
 [0x0000000000402467]
C:\WINDOWS\SYSTEM32\ntdll.dll(_C_specific_handler+0x96) [0x00007ffad3726466]
C:\WINDOWS\SYSTEM32\ntdll.dll(_chkstk+0x11d) [0x00007ffad373a07d]
C:\WINDOWS\SYSTEM32\ntdll.dll(RtlLookupFunctionEntry+0xab8) [0x00007ffad36a9c58]
C:\WINDOWS\SYSTEM32\ntdll.dll(KiUserExceptionDispatcher+0x2e) [0x00007ffad37390fe]
C:\WINDOWS\System32\msvcrt.dll(strlen+0x10) [0x00007ffad288c170]
D:\dev\flipper\crates\text_transform\lib\text_transform\native.so(Init_native+0xef9d) [0x000000006ea121fd]
D:\dev\flipper\crates\text_transform\lib\text_transform\native.so(Init_native+0x1bf3) [0x000000006ea04e53]
D:\dev\flipper\crates\text_transform\lib\text_transform\native.so(Init_native+0xb) [0x000000006ea0326b]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(dln_load+0x1b9) [0x00000000679815e9]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_call_cfunc+0xaf) [0x0000000067afe97f]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_require_internal+0x3a4) [0x0000000067a19b14]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_require_safe+0xd) [0x0000000067a19fcd]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_error_arity+0x10c) [0x0000000067ae8cfc]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_invoke_proc+0x9e8) [0x0000000067af6d88]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x4b1) [0x0000000067aee2a1]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x66c3) [0x0000000067af44b3]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_iseqw_local_variables+0xb95) [0x0000000067a18465]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_require_internal+0x795) [0x0000000067a19f05]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_require_safe+0xd) [0x0000000067a19fcd]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_error_arity+0x10c) [0x0000000067ae8cfc]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_invoke_proc+0x9e8) [0x0000000067af6d88]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x4b1) [0x0000000067aee2a1]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x66c3) [0x0000000067af44b3]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_yield+0x36c) [0x0000000067afdf0c]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_ary_each+0x3d) [0x0000000067983a8d]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_error_arity+0x10c) [0x0000000067ae8cfc]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_invoke_proc+0x9e8) [0x0000000067af6d88]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x63b) [0x0000000067aee42b]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_vm_localjump_error+0x66c3) [0x0000000067af44b3]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(rb_call_end_proc+0x17e) [0x00000000679dfdde]
C:\Ruby24-x64\bin\x64-msvcrt-ruby240.dll(ruby_run_node+0x59) [0x00000000679e2a09]
 [0x0000000000402d57]
 [0x00000000004013f7]
 [0x000000000040152b]
C:\WINDOWS\System32\KERNEL32.DLL(BaseThreadInitThunk+0x14) [0x00007ffad2972774]

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

* Loaded script: irb.cmd

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/encdb.so
    5 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/trans/transdb.so
    6 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/big5.so
    7 C:/Ruby24-x64/lib/ruby/2.4.0/unicode_normalize.rb
    8 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/rbconfig.rb
    9 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/compatibility.rb
   10 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/defaults.rb
   11 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/deprecate.rb
   12 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/errors.rb
   13 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/version.rb
   14 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/requirement.rb
   15 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/platform.rb
   16 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/basic_specification.rb
   17 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/stub_specification.rb
   18 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/util/list.rb
   19 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/stringio.so
   20 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/specification.rb
   21 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/exceptions.rb
   22 C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/ruby_installer/runtime/singleton.rb
   23 C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/ruby_installer/runtime.rb
   24 C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/ruby_installer/runtime/msys2_installation.rb
   25 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/fiddle.so
   26 C:/Ruby24-x64/lib/ruby/2.4.0/fiddle/function.rb
   27 C:/Ruby24-x64/lib/ruby/2.4.0/fiddle/closure.rb
   28 C:/Ruby24-x64/lib/ruby/2.4.0/fiddle.rb
   29 C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/ruby_installer/runtime/dll_directory.rb
   30 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/utf_16le.so
   31 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/trans/utf_16_32.so
   32 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/defaults/operating_system.rb
   33 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/dependency.rb
   34 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_gem.rb
   35 C:/Ruby24-x64/lib/ruby/2.4.0/monitor.rb
   36 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb
   37 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems.rb
   38 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/path_support.rb
   39 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/version.rb
   40 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/core_ext/name_error.rb
   41 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/levenshtein.rb
   42 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/jaro_winkler.rb
   43 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checker.rb
   44 C:/Ruby24-x64/lib/ruby/2.4.0/delegate.rb
   45 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   46 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   47 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   48 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   49 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/spell_checkers/null_checker.rb
   50 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean/formatter.rb
   51 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/did_you_mean-1.1.0/lib/did_you_mean.rb
   52 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/pathname.so
   53 C:/Ruby24-x64/lib/ruby/2.4.0/pathname.rb
   54 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/constants.rb
   55 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/util.rb
   56 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/io/console.so
   57 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/user_interaction.rb
   58 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/etc.so
   59 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/config_file.rb
   60 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/rubygems_integration.rb
   61 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/current_ruby.rb
   62 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/shared_helpers.rb
   63 C:/Ruby24-x64/lib/ruby/2.4.0/fileutils.rb
   64 C:/Ruby24-x64/lib/ruby/2.4.0/tmpdir.rb
   65 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/errors.rb
   66 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/environment_preserver.rb
   67 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/plugin/api.rb
   68 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/plugin.rb
   69 C:/Ruby24-x64/lib/ruby/2.4.0/uri/rfc2396_parser.rb
   70 C:/Ruby24-x64/lib/ruby/2.4.0/uri/rfc3986_parser.rb
   71 C:/Ruby24-x64/lib/ruby/2.4.0/uri/common.rb
   72 C:/Ruby24-x64/lib/ruby/2.4.0/uri/generic.rb
   73 C:/Ruby24-x64/lib/ruby/2.4.0/uri/ftp.rb
   74 C:/Ruby24-x64/lib/ruby/2.4.0/uri/http.rb
   75 C:/Ruby24-x64/lib/ruby/2.4.0/uri/https.rb
   76 C:/Ruby24-x64/lib/ruby/2.4.0/uri/ldap.rb
   77 C:/Ruby24-x64/lib/ruby/2.4.0/uri/ldaps.rb
   78 C:/Ruby24-x64/lib/ruby/2.4.0/uri/mailto.rb
   79 C:/Ruby24-x64/lib/ruby/2.4.0/uri.rb
   80 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/digest.so
   81 C:/Ruby24-x64/lib/ruby/2.4.0/digest.rb
   82 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/git.rb
   83 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/installed.rb
   84 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/specific_file.rb
   85 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/local.rb
   86 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/lock.rb
   87 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source/vendor.rb
   88 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/source.rb
   89 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/gem_helpers.rb
   90 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/match_platform.rb
   91 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/rubygems_ext.rb
   92 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/version.rb
   93 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler.rb
   94 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/settings.rb
   95 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/ext/builder.rb
   96 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source.rb
   97 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/digest/sha1.so
   98 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source/path.rb
   99 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source/git.rb
  100 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source/rubygems.rb
  101 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/lockfile_parser.rb
  102 C:/Ruby24-x64/lib/ruby/2.4.0/set.rb
  103 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/definition.rb
  104 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/dependency.rb
  105 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/ruby_dsl.rb
  106 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/dsl.rb
  107 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source_list.rb
  108 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/index.rb
  109 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/source/gemspec.rb
  110 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/lazy_specification.rb
  111 C:/Ruby24-x64/lib/ruby/2.4.0/tsort.rb
  112 C:/Ruby24-x64/lib/ruby/2.4.0/forwardable/impl.rb
  113 C:/Ruby24-x64/lib/ruby/2.4.0/forwardable.rb
  114 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/spec_set.rb
  115 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/ui.rb
  116 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/ui/silent.rb
  117 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/ui/rg_proxy.rb
  118 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/text.rb
  119 C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/util/licenses.rb
  120 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/remote_specification.rb
  121 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/gem_version_promoter.rb
  122 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/runtime.rb
  123 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/dep_proxy.rb
  124 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/stub_specification.rb
  125 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/endpoint_specification.rb
  126 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/ruby_version.rb
  127 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/setup.rb
  128 C:/Ruby24-x64/lib/ruby/2.4.0/e2mmap.rb
  129 C:/Ruby24-x64/lib/ruby/2.4.0/irb/init.rb
  130 C:/Ruby24-x64/lib/ruby/2.4.0/irb/workspace.rb
  131 C:/Ruby24-x64/lib/ruby/2.4.0/irb/inspector.rb
  132 C:/Ruby24-x64/lib/ruby/2.4.0/irb/output-method.rb
  133 C:/Ruby24-x64/lib/ruby/2.4.0/irb/context.rb
  134 C:/Ruby24-x64/lib/ruby/2.4.0/irb/extend-command.rb
  135 C:/Ruby24-x64/lib/ruby/2.4.0/irb/notifier.rb
  136 C:/Ruby24-x64/lib/ruby/2.4.0/irb/slex.rb
  137 C:/Ruby24-x64/lib/ruby/2.4.0/irb/ruby-token.rb
  138 C:/Ruby24-x64/lib/ruby/2.4.0/irb/ruby-lex.rb
  139 C:/Ruby24-x64/lib/ruby/2.4.0/irb/src_encoding.rb
  140 C:/Ruby24-x64/lib/ruby/2.4.0/irb/magic-file.rb
  141 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/euc_jp.so
  142 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/enc/windows_31j.so
  143 C:/Ruby24-x64/lib/ruby/site_ruby/rbreadline/version.rb
  144 C:/Ruby24-x64/lib/ruby/site_ruby/rbreadline.rb
  145 C:/Ruby24-x64/lib/ruby/site_ruby/readline.rb
  146 C:/Ruby24-x64/lib/ruby/2.4.0/irb/input-method.rb
  147 C:/Ruby24-x64/lib/ruby/2.4.0/irb/locale.rb
  148 C:/Ruby24-x64/lib/ruby/2.4.0/irb.rb
  149 C:/Ruby24-x64/lib/ruby/site_ruby/2.4.0/irbrc_predefiner.rb
  150 C:/Ruby24-x64/lib/ruby/2.4.0/irb/ext/save-history.rb
  151 C:/Ruby24-x64/lib/ruby/2.4.0/irb/completion.rb
  152 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime/version.rb
  153 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime/platform.rb
  154 C:/Ruby24-x64/lib/ruby/2.4.0/x64-mingw32/date_core.so
  155 C:/Ruby24-x64/lib/ruby/2.4.0/date.rb
  156 C:/Ruby24-x64/lib/ruby/2.4.0/time.rb
  157 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/slice.rb
  158 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/cause.rb
  159 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/source/line_cache.rb
  160 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/source.rb
  161 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/can_flatten.rb
  162 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/context.rb
  163 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/dsl.rb
  164 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/base.rb
  165 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/named.rb
  166 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/lookahead.rb
  167 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/alternative.rb
  168 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/sequence.rb
  169 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/repetition.rb
  170 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/re.rb
  171 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/str.rb
  172 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/entity.rb
  173 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/capture.rb
  174 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/dynamic.rb
  175 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms/scope.rb
  176 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/atoms.rb
  177 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/pattern.rb
  178 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/pattern/binding.rb
  179 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/transform.rb
  180 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/parser.rb
  181 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/error_reporter/tree.rb
  182 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/error_reporter/deepest.rb
  183 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/error_reporter.rb
  184 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet/scope.rb
  185 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/parslet-1.5.0/lib/parslet.rb
  186 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/version.rb
  187 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/key.rb
  188 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/table.rb
  189 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/parslet.rb
  190 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/transformer.rb
  191 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/parser.rb
  192 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml/generator.rb
  193 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/toml-0.1.2/lib/toml.rb
  194 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime/project.rb
  195 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime/parent_project.rb
  196 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime/native.so
  197 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/helix_runtime-0.6.4/lib/helix_runtime.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


This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

More info

  • 64-bit Windows 10
  • Tested mainly using MSYS2 (64-bit) with mingw64 gcc compiler for rustc
  • Ruby 2.4.1 or 2.4.2 (64-bit version)
  • Rails 5.1.x
  • Run "rake irb" on Window's "Command Prompt" also crash

I think this is a known issue. What's your reason for using the gnu compiler over msvc?

Gnu is free & open source. I doubt if msvc compile is free without VS license for commercial use (any MS official clarification would be good)

Yea we should definitely investigate this. Is it possible to add this scenario to our app veyor matrix?

I have the same issue. Here's the output of running bundle exec rake from exampes/text_transform
output.txt

I can reproduce this.

It looks like the MSVC version is actually preferred for Rust on Windows, including by Mozilla. It looks like you only need the Visual C++ Build Tools and not Visual Studio itself. AFAICT, any proprietary Windows components aren't bundled and are instead dynamically linked at runtime. I'm certainly not an expert here, but I don't think there are any licensing concerns around using the MSVC compiler.

That said, it's not a bad idea to try to get things working with the GNU compiler. However, unless there are strong concrete concerns with MSVC, I don't think this will be a priority.

Also, the rubyinstaller project, which is probably the most used ruby installation for windows, uses the GNU compiler toolchain.