ruby / ruby/ruby.wasm

Safari WebAssembly: Maximum call stack size exceeded

Ouverte
#532 4 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Ruby
Étoiles
875
Forks
68
Merge moyen
9 j 5 h
PR mergées (30 j)
1

Description

It seems that there is some limit we hit on Safari related to call stack size. Loading a greenfield Rails application (Rails.application.initialize!, eager_load is true) results in a maximum call stack size exceeded error. The crash dump only shows ~100 stack frames.

dump.txt
-- Control frame information -----------------------------------------------
c:0104 p:---- s:0532 e:000531 CFUNC  :eval
c:0103 p:0054 s:0525 E:000ed8 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087
c:0102 p:0061 s:0517 e:000516 METHOD /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:195
c:0101 p:0033 s:0512 e:000511 METHOD /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:151
c:0100 p:0013 s:0508 e:000507 METHOD /usr/local/lib/ruby/3.3.0/rubygems/basic_specification.rb:76
c:0099 p:0006 s:0502 e:000501 BLOCK  /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:152 [FINISH]
c:0098 p:---- s:0498 e:000497 IFUNC 
c:0097 p:---- s:0495 e:000494 CFUNC  :each
c:0096 p:---- s:0492 e:000491 CFUNC  :find
c:0095 p:0028 s:0488 e:000484 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151
c:0094 p:0007 s:0479 e:000478 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:966
c:0093 p:0006 s:0474 e:000473 METHOD /usr/local/lib/ruby/3.3.0/rubygems.rb:194
c:0092 p:0007 s:0466 e:000465 BLOCK  :139 [FINISH]
c:0091 p:---- s:0463 e:000462 CFUNC  :synchronize
c:0090 p:0027 s:0459 e:000458 RESCUE :139
c:0089 p:0024 s:0455 e:000454 METHOD :135
c:0088 p:0055 s:0449 e:000448 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34
c:0087 p:0095 s:0441 e:000440 CLASS  /bundle/gems/erubi-1.13.0/lib/erubi.rb:21
c:0086 p:0007 s:0438 e:000437 TOP    /bundle/gems/erubi-1.13.0/lib/erubi.rb:3 [FINISH]
c:0085 p:---- s:0435 e:000434 CFUNC  :require
c:0084 p:0023 s:0430 e:000429 METHOD :136
c:0083 p:0055 s:0424 e:000423 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34
c:0082 p:0005 s:0416 e:000415 TOP    /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb/erubi.rb:3 [FINISH]
c:0081 p:---- s:0413 e:000412 CFUNC  :require
c:0080 p:0023 s:0408 e:000407 METHOD :136
c:0079 p:0055 s:0402 e:000401 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0078 p:0021 s:0394 e:000391 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:17
c:0077 p:0007 s:0389 e:000388 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:9
c:0076 p:0007 s:0386 e:000385 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:8
c:0075 p:0007 s:0383 e:000382 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:7
c:0074 p:0019 s:0380 e:000379 TOP    /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:6 [FINISH]
c:0073 p:---- s:0377 e:000376 CFUNC  :require
c:0072 p:0023 s:0372 e:000371 METHOD :136
c:0071 p:0055 s:0366 e:000365 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0070 p:0017 s:0358 e:000355 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers.rb:14 [FINISH]
c:0069 p:---- s:0351 e:000350 CFUNC  :extend
c:0068 p:0022 s:0346 e:000345 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179
c:0067 p:0007 s:0343 e:000342 CLASS  /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:8
c:0066 p:0019 s:0340 e:000339 TOP    /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:6 [FINISH]
c:0065 p:---- s:0337 e:000336 CFUNC  :require
c:0064 p:0023 s:0332 e:000331 METHOD :136
c:0063 p:0055 s:0326 e:000325 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34
c:0062 p:0023 s:0318 e:000317 TOP    /bundle/gems/actionview-7.2.1/lib/action_view/template/resolver.rb:6 [FINISH]
c:0061 p:---- s:0315 e:000314 CFUNC  :require
c:0060 p:0023 s:0310 e:000309 METHOD :136
c:0059 p:0055 s:0304 e:000303 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0058 p:0052 s:0296 e:000292 BLOCK  /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:34 [FINISH]
c:0057 p:---- s:0289 e:000288 CFUNC  :map
c:0056 p:0010 s:0285 e:000284 BLOCK  /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27 [FINISH]
c:0055 p:---- s:0281 e:000280 CFUNC  :synchronize
c:0054 p:0013 s:0277 e:000276 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25
c:0053 p:0017 s:0272 e:000271 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:34
c:0052 p:0007 s:0267 e:000264 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:55
c:0051 p:0013 s:0260 e:000259 BLOCK  /bundle/gems/railties-7.2.1/lib/rails/engine.rb:613 [FINISH]
c:0050 p:---- s:0257 e:000256 CFUNC  :class_eval
c:0049 p:0031 s:0253 e:000252 BLOCK  /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97
c:0048 p:0033 s:0250 e:000249 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:87
c:0047 p:0014 s:0243 e:000242 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:92
c:0046 p:0011 s:0235 e:000234 BLOCK  /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:78 [FINISH]
c:0045 p:---- s:0230 e:000229 CFUNC  :each
c:0044 p:0026 s:0226 e:000225 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77
c:0043 p:0340 s:0220 e:000219 CLASS  /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:330
c:0042 p:0008 s:0217 e:000216 CLASS  /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:207
c:0041 p:0025 s:0214 e:000213 TOP    /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:9 [FINISH]
c:0040 p:---- s:0211 e:000210 CFUNC  :require
c:0039 p:0023 s:0206 e:000205 METHOD :136
c:0038 p:0055 s:0200 e:000199 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH]
c:0037 p:0004 s:0192 e:000190 TOP    /rails/app/controllers/application_controller.rb:1 [FINISH]
c:0036 p:---- s:0188 e:000187 CFUNC  :require
c:0035 p:0023 s:0183 e:000182 METHOD :136
c:0034 p:0024 s:0177 e:000176 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:26 [FINISH]
c:0033 p:---- s:0169 e:000168 CFUNC  :const_get
c:0032 p:0010 s:0163 e:000162 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91
c:0031 p:0040 s:0159 e:000158 BLOCK  /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:173
c:0030 p:0108 s:0151 e:000150 BLOCK  /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:47 [FINISH]
c:0029 p:---- s:0145 e:000144 CFUNC  :each
c:0028 p:0018 s:0141 e:000140 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25
c:0027 p:0062 s:0135 e:000134 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:168
c:0026 p:0010 s:0124 e:000123 BLOCK  /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:17 [FINISH]
c:0025 p:---- s:0119 e:000118 CFUNC  :each
c:0024 p:0038 s:0115 e:000114 BLOCK  /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16 [FINISH]
c:0023 p:---- s:0112 e:000111 CFUNC  :synchronize
c:0022 p:0006 s:0108 e:000107 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10
c:0021 p:0005 s:0102 e:000101 BLOCK  /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:413 [FINISH]
c:0020 p:---- s:0098 e:000097 CFUNC  :each
c:0019 p:0007 s:0094 e:000093 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411
c:0018 p:0020 s:0090 e:000089 BLOCK  /bundle/gems/railties-7.2.1/lib/rails/application/finisher.rb:80 [FINISH]
c:0017 p:---- s:0086 e:000085 CFUNC  :instance_exec
c:0016 p:0013 s:0081 e:000080 METHOD /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32
c:0015 p:0017 s:0076 e:000075 BLOCK  /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:61
c:0014 p:0016 s:0072 e:000071 BLOCK  /usr/local/lib/ruby/3.3.0/tsort.rb:231
c:0013 p:0004 s:0068 e:000067 BLOCK  /usr/local/lib/ruby/3.3.0/tsort.rb:353
c:0012 p:0098 s:0064 E:000f18 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:434
c:0011 p:0023 s:0052 E:00162c BLOCK  /usr/local/lib/ruby/3.3.0/tsort.rb:352 [FINISH]
c:0010 p:---- s:0048 e:000047 CFUNC  :each
c:0009 p:---- s:0045 e:000044 CFUNC  :call
c:0008 p:0029 s:0041 E:0023f8 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:350
c:0007 p:0024 s:0033 E:001b00 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:229
c:0006 p:0026 s:0027 e:000026 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:208
c:0005 p:0019 s:0020 E:000890 METHOD /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:60
c:0004 p:0021 s:0014 e:000013 METHOD /bundle/gems/railties-7.2.1/lib/rails/application.rb:435
c:0003 p:0054 s:0009 e:000008 EVAL   eval:19 [FINISH]
c:0002 p:---- s:0006 e:000005 CFUNC  :eval
c:0001 p:0000 s:0003 E:002238 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:0:in eval' eval:19:in

'
/bundle/gems/railties-7.2.1/lib/rails/application.rb:435:in initialize!' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:60:in run_initializers'
/usr/local/lib/ruby/3.3.0/tsort.rb:208:in tsort_each' /usr/local/lib/ruby/3.3.0/tsort.rb:229:in tsort_each'
/usr/local/lib/ruby/3.3.0/tsort.rb:350:in each_strongly_connected_component' /usr/local/lib/ruby/3.3.0/tsort.rb:350:in call'
/usr/local/lib/ruby/3.3.0/tsort.rb:350:in each' /usr/local/lib/ruby/3.3.0/tsort.rb:352:in block in each_strongly_connected_component'
/usr/local/lib/ruby/3.3.0/tsort.rb:434:in each_strongly_connected_component_from' /usr/local/lib/ruby/3.3.0/tsort.rb:353:in block (2 levels) in each_strongly_connected_component'
/usr/local/lib/ruby/3.3.0/tsort.rb:231:in block in tsort_each' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:61:in block in run_initializers'
/bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32:in run' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32:in instance_exec'
/bundle/gems/railties-7.2.1/lib/rails/application/finisher.rb:80:in block in <module:Finisher>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:in eager_load_all'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:in each' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:413:in block in eager_load_all'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:in eager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:in synchronize'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:in block in eager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:in each'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:17:in block (2 levels) in eager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:168:in actual_eager_load_dir'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:in ls' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:in each'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:47:in block in ls' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:173:in block in actual_eager_load_dir'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:in get' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:in const_get'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:26:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' /rails/app/controllers/application_controller.rb:1:in <top (required)>'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:9:in <top (required)>'
/bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:207:in <module:ActionController>' /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:330:in class:Base'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77:in run_load_hooks' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77:in each'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:78:in block in run_load_hooks' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:92:in execute_hook'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:87:in with_execution_control' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97:in block in execute_hook'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97:in class_eval' /bundle/gems/railties-7.2.1/lib/rails/engine.rb:613:in block (2 levels) in class:Engine'
/bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:55:in prepend_view_path' /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:34:in _build_view_paths'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25:in cast_file_system_resolvers' /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25:in synchronize'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27:in block in cast_file_system_resolvers' /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27:in map'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:34:in block (2 levels) in cast_file_system_resolvers' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/resolver.rb:6:in <top (required)>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
/bundle/gems/actionview-7.2.1/lib/action_view/template.rb:6:in <top (required)>' /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:8:in module:ActionView'
/bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179:in <class:Template>' /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179:in extend'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers.rb:14:in extended' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:6:in <top (required)>' /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:7:in module:ActionView'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:8:in <class:Template>' /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:9:in module:Handlers'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:17:in <class:ERB>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb/erubi.rb:3:in <top (required)>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in require'
/bundle/gems/erubi-1.13.0/lib/erubi.rb:3:in <top (required)>' /bundle/gems/erubi-1.13.0/lib/erubi.rb:21:in module:Erubi'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:135:in require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:139:in rescue in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:139:in synchronize'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:139:in block in require' /usr/local/lib/ruby/3.3.0/rubygems.rb:194:in try_activate'
/usr/local/lib/ruby/3.3.0/rubygems/specification.rb:966:in find_by_path' /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:in find_by_path'
/usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:in find' /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:in each'
/usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:152:in block in find_by_path' /usr/local/lib/ruby/3.3.0/rubygems/basic_specification.rb:76:in contains_requirable_file?'
/usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:151:in missing_extensions?' /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:195:in spec'
/usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087:in load' /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087:in eval'

What's interesting is that simply calling a recursive method hits the stack level too deep error at much higher values, see, for example: https://runruby.dev/?gist=84cc1d932b19755f45d9ec52b20567f2

Details

Ruby Version: 3.3.0.
rbwasm version: 2.6.2
js version: 2.6.2

The RubyVM information is as follows:

{:thread_vm_stack_size=>1048576, :thread_machine_stack_size=>1048576, :fiber_vm_stack_size=>65536, :fiber_machine_stack_size=>262144}

Other

Some possibly related issues found in the wild:

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduire une application Rails vierge exécutant Rails.application.initialize! avec eager_load activé dans Safari, puis inspecter dump.txt et les chemins de pile à travers railties, Zeitwerk et RubyGems. Suivre l’endroit où la limite de la pile d’appels WebAssembly est atteinte ; c’est terminé lorsque l’initialisation de l’application se termine dans Safari sans l’erreur maximum-call-stack.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rails, ruby, wasm
Domaine
tooling
Type d'issue
Bug
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.