gettext_i18n_rails_js 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +6 -6
  4. data/lib/gettext_i18n_rails_js/parser/javascript.rb +2 -0
  5. data/lib/gettext_i18n_rails_js/version.rb +1 -1
  6. data/lib/tasks/gettext_i18n_rails_js_tasks.rake +2 -0
  7. data/vendor/bundle/ruby/4.0.0/cache/action_text-trix-2.1.16.gem +0 -0
  8. data/vendor/bundle/ruby/4.0.0/cache/ffi-1.17.3-x86_64-linux-gnu.gem +0 -0
  9. data/vendor/bundle/ruby/4.0.0/cache/po_to_json-3.0.0.gem +0 -0
  10. data/vendor/bundle/ruby/4.0.0/cache/thor-1.5.0.gem +0 -0
  11. data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.15 → action_text-trix-2.1.16}/app/assets/javascripts/trix.js +583 -504
  12. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.16/lib/action_text/trix/version.rb +3 -0
  13. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/CHANGELOG.md +25 -0
  14. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/Gemfile +7 -4
  15. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/README.md +1 -0
  16. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/Rakefile +7 -4
  17. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/Steepfile +8 -0
  18. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/ffi.gemspec +4 -5
  19. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/3.0/ffi_c.so +0 -0
  20. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/3.1/ffi_c.so +0 -0
  21. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/3.2/ffi_c.so +0 -0
  22. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/3.3/ffi_c.so +0 -0
  23. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/3.4/ffi_c.so +0 -0
  24. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/4.0/ffi_c.so +0 -0
  25. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/autopointer.rb +6 -0
  26. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/compat.rb +11 -0
  27. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/function.rb +23 -0
  28. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/library.rb +19 -3
  29. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/struct_by_reference.rb +1 -1
  30. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/lib/ffi/version.rb +3 -0
  31. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/hello_ractor.rb +9 -1
  32. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/qsort_ractor.rb +9 -1
  33. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/auto_pointer.rbs +1 -1
  34. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/sig/ffi/errno.rbs +8 -0
  35. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.3-x86_64-linux-gnu/sig/ffi/platform.rbs +49 -0
  36. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/struct.rbs +2 -2
  37. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/struct_by_reference.rbs +1 -1
  38. data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi.rbs +4 -1
  39. data/vendor/bundle/ruby/4.0.0/gems/{po_to_json-2.2.1 → po_to_json-3.0.0}/CHANGELOG.md +7 -0
  40. data/vendor/bundle/ruby/4.0.0/gems/{po_to_json-2.2.1 → po_to_json-3.0.0}/README.md +2 -2
  41. data/vendor/bundle/ruby/4.0.0/gems/{po_to_json-2.2.1 → po_to_json-3.0.0}/lib/po_to_json/version.rb +1 -1
  42. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/CONTRIBUTING.md +17 -0
  43. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/README.md +1 -2
  44. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/inject_into_file.rb +35 -2
  45. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/base.rb +2 -1
  46. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/basic.rb +14 -6
  47. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/color.rb +2 -0
  48. data/vendor/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor/version.rb +3 -0
  49. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor.rb +34 -1
  50. data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/thor.gemspec +3 -3
  51. data/vendor/bundle/ruby/4.0.0/specifications/{action_text-trix-2.1.15.gemspec → action_text-trix-2.1.16.gemspec} +4 -4
  52. data/vendor/bundle/ruby/4.0.0/specifications/ffi-1.17.3-x86_64-linux-gnu.gemspec +24 -0
  53. data/vendor/bundle/ruby/4.0.0/specifications/{po_to_json-2.2.1.gemspec → po_to_json-3.0.0.gemspec} +3 -3
  54. data/vendor/bundle/ruby/4.0.0/specifications/{thor-1.4.0.gemspec → thor-1.5.0.gemspec} +5 -5
  55. metadata +197 -690
  56. data/vendor/bundle/ruby/4.0.0/cache/action_text-trix-2.1.15.gem +0 -0
  57. data/vendor/bundle/ruby/4.0.0/cache/ffi-1.17.2.gem +0 -0
  58. data/vendor/bundle/ruby/4.0.0/cache/po_to_json-2.2.1.gem +0 -0
  59. data/vendor/bundle/ruby/4.0.0/cache/thor-1.4.0.gem +0 -0
  60. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/ffi-1.17.2/ffi_c.so +0 -0
  61. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/ffi-1.17.2/gem.build_complete +0 -0
  62. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/ffi-1.17.2/gem_make.out +0 -48
  63. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/ffi-1.17.2/mkmf.log +0 -272
  64. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.15/lib/action_text/trix/version.rb +0 -3
  65. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/AbstractMemory.c +0 -1129
  66. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/AbstractMemory.h +0 -176
  67. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/ArrayType.c +0 -198
  68. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/ArrayType.h +0 -60
  69. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Buffer.c +0 -417
  70. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Call.c +0 -504
  71. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Call.h +0 -108
  72. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/ClosurePool.c +0 -333
  73. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/ClosurePool.h +0 -59
  74. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/DynamicLibrary.c +0 -397
  75. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/DynamicLibrary.h +0 -98
  76. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Function.c +0 -1081
  77. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Function.h +0 -84
  78. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/FunctionInfo.c +0 -322
  79. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/LastError.c +0 -243
  80. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/LastError.h +0 -47
  81. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/LongDouble.c +0 -65
  82. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/LongDouble.h +0 -47
  83. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Makefile +0 -273
  84. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MappedType.c +0 -211
  85. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MappedType.h +0 -57
  86. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MemoryPointer.c +0 -219
  87. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MemoryPointer.h +0 -49
  88. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MethodHandle.c +0 -350
  89. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/MethodHandle.h +0 -56
  90. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Platform.c +0 -78
  91. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Platform.h +0 -45
  92. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Pointer.c +0 -549
  93. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Pointer.h +0 -60
  94. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Struct.c +0 -904
  95. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Struct.h +0 -115
  96. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/StructByValue.c +0 -177
  97. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/StructByValue.h +0 -55
  98. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/StructLayout.c +0 -769
  99. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Thread.c +0 -129
  100. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Thread.h +0 -76
  101. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Type.c +0 -448
  102. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Type.h +0 -63
  103. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Types.c +0 -144
  104. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Types.h +0 -87
  105. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/Variadic.c +0 -348
  106. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/compat.h +0 -82
  107. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/extconf.h +0 -8
  108. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/extconf.rb +0 -115
  109. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/ffi.c +0 -97
  110. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/ChangeLog.old +0 -7407
  111. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/LICENSE +0 -21
  112. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +0 -353
  113. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/Makefile.am +0 -158
  114. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/Makefile.in +0 -2107
  115. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/README.md +0 -548
  116. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/acinclude.m4 +0 -383
  117. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/autogen.sh +0 -2
  118. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/compile +0 -348
  119. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/config.guess +0 -1812
  120. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/config.sub +0 -1973
  121. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/configure +0 -22807
  122. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/configure.ac +0 -452
  123. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/configure.host +0 -332
  124. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/doc/Makefile.am +0 -3
  125. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/doc/Makefile.in +0 -819
  126. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/doc/libffi.texi +0 -1046
  127. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/doc/version.texi +0 -4
  128. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/fficonfig.h.in +0 -188
  129. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +0 -312
  130. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/Makefile.am +0 -9
  131. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/Makefile.in +0 -610
  132. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/ffi.h.in +0 -518
  133. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/ffi_cfi.h +0 -78
  134. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/ffi_common.h +0 -201
  135. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/include/tramp.h +0 -45
  136. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/install-sh +0 -541
  137. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/libffi.map.in +0 -81
  138. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/libffi.pc.in +0 -11
  139. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +0 -997
  140. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/libtool-ldflags +0 -106
  141. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/libtool-version +0 -29
  142. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/ltmain.sh +0 -11436
  143. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/asmcfi.m4 +0 -13
  144. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_append_flag.m4 +0 -50
  145. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +0 -198
  146. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +0 -158
  147. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_check_compile_flag.m4 +0 -53
  148. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +0 -119
  149. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_configure_args.m4 +0 -49
  150. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +0 -302
  151. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +0 -267
  152. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +0 -89
  153. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_prepend_flag.m4 +0 -51
  154. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/m4/ax_require_defined.m4 +0 -37
  155. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/make_sunver.pl +0 -333
  156. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/Makefile.am +0 -8
  157. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/Makefile.in +0 -566
  158. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/ffi.3 +0 -41
  159. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/ffi_call.3 +0 -103
  160. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/ffi_prep_cif.3 +0 -68
  161. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +0 -73
  162. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/missing +0 -215
  163. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.sln +0 -33
  164. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj +0 -130
  165. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.filters +0 -57
  166. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.user +0 -4
  167. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +0 -511
  168. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/fficonfig.h +0 -219
  169. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/msvcc.sh +0 -353
  170. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/aarch64/ffi.c +0 -1145
  171. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/aarch64/ffitarget.h +0 -97
  172. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/aarch64/internal.h +0 -146
  173. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/aarch64/sysv.S +0 -699
  174. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +0 -506
  175. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/alpha/ffi.c +0 -521
  176. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/alpha/ffitarget.h +0 -57
  177. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/alpha/internal.h +0 -23
  178. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/alpha/osf.S +0 -282
  179. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arc/arcompact.S +0 -210
  180. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arc/ffi.c +0 -447
  181. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arc/ffitarget.h +0 -67
  182. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arm/ffi.c +0 -921
  183. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arm/ffitarget.h +0 -89
  184. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arm/internal.h +0 -17
  185. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arm/sysv.S +0 -456
  186. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/arm/sysv_msvc_arm32.S +0 -311
  187. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/avr32/ffi.c +0 -423
  188. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/avr32/ffitarget.h +0 -55
  189. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/avr32/sysv.S +0 -208
  190. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/bfin/ffi.c +0 -196
  191. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/bfin/ffitarget.h +0 -43
  192. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/bfin/sysv.S +0 -179
  193. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/closures.c +0 -1107
  194. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/cris/ffi.c +0 -386
  195. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/cris/ffitarget.h +0 -56
  196. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/cris/sysv.S +0 -215
  197. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/csky/ffi.c +0 -395
  198. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/csky/ffitarget.h +0 -63
  199. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/csky/sysv.S +0 -371
  200. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/debug.c +0 -64
  201. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/dlmalloc.c +0 -5172
  202. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/frv/eabi.S +0 -128
  203. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/frv/ffi.c +0 -292
  204. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/frv/ffitarget.h +0 -62
  205. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/ia64/ffi.c +0 -616
  206. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/ia64/ffitarget.h +0 -56
  207. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/ia64/ia64_flags.h +0 -40
  208. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/ia64/unix.S +0 -585
  209. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/java_raw_api.c +0 -374
  210. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/kvx/asm.h +0 -5
  211. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/kvx/ffi.c +0 -273
  212. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/kvx/ffitarget.h +0 -75
  213. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/kvx/sysv.S +0 -127
  214. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/loongarch64/ffi.c +0 -624
  215. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/loongarch64/ffitarget.h +0 -82
  216. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/loongarch64/sysv.S +0 -327
  217. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m32r/ffi.c +0 -249
  218. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m32r/ffitarget.h +0 -53
  219. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m32r/sysv.S +0 -121
  220. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m68k/ffi.c +0 -362
  221. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m68k/ffitarget.h +0 -54
  222. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m68k/sysv.S +0 -357
  223. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m88k/ffi.c +0 -400
  224. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m88k/ffitarget.h +0 -49
  225. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/m88k/obsd.S +0 -209
  226. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/metag/ffi.c +0 -330
  227. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/metag/ffitarget.h +0 -53
  228. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/metag/sysv.S +0 -311
  229. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/microblaze/ffi.c +0 -321
  230. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/microblaze/ffitarget.h +0 -53
  231. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/microblaze/sysv.S +0 -302
  232. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/mips/ffi.c +0 -1317
  233. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/mips/ffitarget.h +0 -249
  234. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/mips/n32.S +0 -827
  235. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/mips/o32.S +0 -565
  236. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/moxie/eabi.S +0 -101
  237. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/moxie/ffi.c +0 -310
  238. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/moxie/ffitarget.h +0 -52
  239. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/or1k/ffi.c +0 -341
  240. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/or1k/ffitarget.h +0 -58
  241. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/or1k/sysv.S +0 -107
  242. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/ffi.c +0 -673
  243. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/ffi64.c +0 -614
  244. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/ffitarget.h +0 -94
  245. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/hpux32.S +0 -417
  246. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/hpux64.S +0 -681
  247. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/pa/linux.S +0 -427
  248. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/aix.S +0 -566
  249. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/aix_closure.S +0 -694
  250. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/asm.h +0 -125
  251. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/darwin.S +0 -378
  252. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +0 -571
  253. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffi.c +0 -188
  254. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +0 -1464
  255. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +0 -1160
  256. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +0 -105
  257. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +0 -933
  258. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ffitarget.h +0 -204
  259. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/internal.h +0 -10
  260. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/linux64.S +0 -293
  261. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +0 -613
  262. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +0 -421
  263. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/sysv.S +0 -173
  264. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/powerpc/t-aix +0 -5
  265. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/prep_cif.c +0 -280
  266. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/raw_api.c +0 -267
  267. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/riscv/ffi.c +0 -514
  268. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/riscv/ffitarget.h +0 -69
  269. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/riscv/sysv.S +0 -293
  270. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/s390/ffi.c +0 -783
  271. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/s390/ffitarget.h +0 -70
  272. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/s390/internal.h +0 -22
  273. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/s390/sysv.S +0 -363
  274. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh/ffi.c +0 -717
  275. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh/ffitarget.h +0 -54
  276. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh/sysv.S +0 -850
  277. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh64/ffi.c +0 -469
  278. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh64/ffitarget.h +0 -58
  279. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sh64/sysv.S +0 -539
  280. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/ffi.c +0 -484
  281. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/ffi64.c +0 -630
  282. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/ffitarget.h +0 -81
  283. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/internal.h +0 -26
  284. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/v8.S +0 -443
  285. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/sparc/v9.S +0 -440
  286. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/tile/ffi.c +0 -355
  287. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/tile/ffitarget.h +0 -65
  288. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/tile/tile.S +0 -360
  289. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/tramp.c +0 -716
  290. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/types.c +0 -106
  291. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/vax/elfbsd.S +0 -195
  292. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/vax/ffi.c +0 -276
  293. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/vax/ffitarget.h +0 -49
  294. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/wasm32/ffi.c +0 -695
  295. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/wasm32/ffitarget.h +0 -62
  296. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/asmnames.h +0 -30
  297. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/ffi.c +0 -835
  298. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/ffi64.c +0 -953
  299. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/ffitarget.h +0 -164
  300. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/ffiw64.c +0 -361
  301. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/internal.h +0 -43
  302. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/internal64.h +0 -36
  303. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/sysv.S +0 -1272
  304. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/sysv_intel.S +0 -998
  305. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/unix64.S +0 -711
  306. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/win64.S +0 -254
  307. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/x86/win64_intel.S +0 -238
  308. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/xtensa/ffi.c +0 -306
  309. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/xtensa/ffitarget.h +0 -57
  310. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/src/xtensa/sysv.S +0 -268
  311. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/stamp-h.in +0 -1
  312. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/Makefile.am +0 -88
  313. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/Makefile.in +0 -618
  314. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  315. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -34
  316. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -46
  317. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -86
  318. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -23
  319. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
  320. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
  321. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -682
  322. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  323. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  324. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  325. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  326. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  327. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
  328. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
  329. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  330. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
  331. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  332. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  333. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
  334. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
  335. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +0 -99
  336. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +0 -108
  337. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +0 -114
  338. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +0 -119
  339. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  340. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -163
  341. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  342. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  343. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
  344. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  345. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  346. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
  347. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  348. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  349. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  350. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  351. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  352. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  353. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +0 -54
  354. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  355. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  356. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
  357. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  358. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  359. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  360. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  361. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  362. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  363. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  364. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  365. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  366. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
  367. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  368. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
  369. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  370. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
  371. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
  372. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
  373. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  374. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  375. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  376. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  377. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  378. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  379. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  380. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  381. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  382. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  383. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  384. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  385. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  386. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
  387. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
  388. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
  389. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
  390. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
  391. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
  392. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
  393. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +0 -88
  394. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
  395. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
  396. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  397. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
  398. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
  399. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
  400. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
  401. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -135
  402. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -141
  403. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +0 -31
  404. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
  405. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
  406. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
  407. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
  408. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
  409. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
  410. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
  411. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
  412. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
  413. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
  414. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
  415. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
  416. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
  417. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
  418. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
  419. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
  420. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
  421. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
  422. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
  423. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
  424. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
  425. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
  426. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
  427. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
  428. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
  429. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
  430. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
  431. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
  432. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
  433. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
  434. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
  435. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
  436. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
  437. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
  438. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
  439. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
  440. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
  441. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
  442. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
  443. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
  444. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
  445. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
  446. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
  447. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
  448. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
  449. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
  450. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
  451. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
  452. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
  453. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
  454. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
  455. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
  456. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
  457. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
  458. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
  459. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
  460. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
  461. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
  462. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
  463. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
  464. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
  465. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
  466. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
  467. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
  468. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
  469. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
  470. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
  471. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
  472. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
  473. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
  474. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
  475. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
  476. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
  477. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
  478. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
  479. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -343
  480. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
  481. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
  482. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
  483. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
  484. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
  485. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
  486. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
  487. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
  488. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
  489. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
  490. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
  491. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
  492. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
  493. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
  494. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
  495. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
  496. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
  497. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
  498. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
  499. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
  500. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
  501. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
  502. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
  503. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -118
  504. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -55
  505. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  506. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  507. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  508. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  509. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  510. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  511. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  512. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  513. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  514. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  515. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  516. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  517. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  518. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  519. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  520. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  521. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  522. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  523. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  524. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  525. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  526. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  527. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  528. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  529. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  530. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  531. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  532. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  533. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  534. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  535. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  536. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  537. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  538. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  539. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  540. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  541. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  542. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  543. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  544. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  545. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  546. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  547. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  548. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  549. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  550. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  551. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  552. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.bsd.mk +0 -40
  553. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.darwin.mk +0 -105
  554. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.gnu.mk +0 -32
  555. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.mk +0 -18
  556. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.vc.mk +0 -26
  557. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/libffi.vc64.mk +0 -26
  558. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/rbffi.h +0 -55
  559. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/ext/ffi_c/rbffi_endian.h +0 -59
  560. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/lib/ffi/tools/types_generator.rb +0 -137
  561. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/lib/ffi/version.rb +0 -3
  562. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/lib/ffi_c.so +0 -0
  563. data/vendor/bundle/ruby/4.0.0/gems/ffi-1.17.2/rakelib/ffi_gem_helper.rb +0 -65
  564. data/vendor/bundle/ruby/4.0.0/gems/thor-1.4.0/lib/thor/version.rb +0 -3
  565. data/vendor/bundle/ruby/4.0.0/specifications/ffi-1.17.2.gemspec +0 -34
  566. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.15 → action_text-trix-2.1.16}/LICENSE +0 -0
  567. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.15 → action_text-trix-2.1.16}/app/assets/stylesheets/trix.css +0 -0
  568. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.15 → action_text-trix-2.1.16}/lib/action_text/trix/engine.rb +0 -0
  569. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.15 → action_text-trix-2.1.16}/lib/action_text/trix.rb +0 -0
  570. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/COPYING +0 -0
  571. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/LICENSE +0 -0
  572. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/LICENSE.SPECS +0 -0
  573. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/abstract_memory.rb +0 -0
  574. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/buffer.rb +0 -0
  575. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/callback.rb +0 -0
  576. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/data_converter.rb +0 -0
  577. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/dynamic_library.rb +0 -0
  578. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/enum.rb +0 -0
  579. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/errno.rb +0 -0
  580. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/ffi.rb +0 -0
  581. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/io.rb +0 -0
  582. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/library_path.rb +0 -0
  583. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/managedstruct.rb +0 -0
  584. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/memorypointer.rb +0 -0
  585. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-darwin/types.conf +0 -0
  586. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-freebsd/types.conf +0 -0
  587. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-freebsd12/types.conf +0 -0
  588. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-linux/types.conf +0 -0
  589. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-openbsd/types.conf +0 -0
  590. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/aarch64-windows/types.conf +0 -0
  591. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/arm-freebsd/types.conf +0 -0
  592. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/arm-freebsd12/types.conf +0 -0
  593. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/arm-linux/types.conf +0 -0
  594. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/hppa1.1-linux/types.conf +0 -0
  595. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/hppa2.0-linux/types.conf +0 -0
  596. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-cygwin/types.conf +0 -0
  597. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-darwin/types.conf +0 -0
  598. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-freebsd/types.conf +0 -0
  599. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-freebsd12/types.conf +0 -0
  600. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-gnu/types.conf +0 -0
  601. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-linux/types.conf +0 -0
  602. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-netbsd/types.conf +0 -0
  603. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-openbsd/types.conf +0 -0
  604. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-solaris/types.conf +0 -0
  605. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/i386-windows/types.conf +0 -0
  606. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/ia64-linux/types.conf +0 -0
  607. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/loongarch64-linux/types.conf +0 -0
  608. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mips-linux/types.conf +0 -0
  609. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mips64-linux/types.conf +0 -0
  610. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mips64el-linux/types.conf +0 -0
  611. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mipsel-linux/types.conf +0 -0
  612. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mipsisa32r6-linux/types.conf +0 -0
  613. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mipsisa32r6el-linux/types.conf +0 -0
  614. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mipsisa64r6-linux/types.conf +0 -0
  615. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/mipsisa64r6el-linux/types.conf +0 -0
  616. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc-aix/types.conf +0 -0
  617. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc-darwin/types.conf +0 -0
  618. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc-linux/types.conf +0 -0
  619. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc-openbsd/types.conf +0 -0
  620. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc64-linux/types.conf +0 -0
  621. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/powerpc64le-linux/types.conf +0 -0
  622. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/riscv64-linux/types.conf +0 -0
  623. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/s390-linux/types.conf +0 -0
  624. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/s390x-linux/types.conf +0 -0
  625. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sparc-linux/types.conf +0 -0
  626. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sparc-solaris/types.conf +0 -0
  627. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sparcv9-linux/types.conf +0 -0
  628. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sparcv9-openbsd/types.conf +0 -0
  629. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sparcv9-solaris/types.conf +0 -0
  630. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/sw_64-linux/types.conf +0 -0
  631. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-cygwin/types.conf +0 -0
  632. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-darwin/types.conf +0 -0
  633. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-dragonflybsd/types.conf +0 -0
  634. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-freebsd/types.conf +0 -0
  635. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-freebsd12/types.conf +0 -0
  636. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-haiku/types.conf +0 -0
  637. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-linux/types.conf +0 -0
  638. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-msys/types.conf +0 -0
  639. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-netbsd/types.conf +0 -0
  640. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-openbsd/types.conf +0 -0
  641. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-solaris/types.conf +0 -0
  642. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform/x86_64-windows/types.conf +0 -0
  643. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/platform.rb +0 -0
  644. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/pointer.rb +0 -0
  645. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/struct.rb +0 -0
  646. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/struct_layout.rb +0 -0
  647. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/struct_layout_builder.rb +0 -0
  648. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/tools/const_generator.rb +0 -0
  649. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/tools/generator.rb +0 -0
  650. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/tools/generator_task.rb +0 -0
  651. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/tools/struct_generator.rb +0 -0
  652. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/types.rb +0 -0
  653. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/union.rb +0 -0
  654. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi/variadic.rb +0 -0
  655. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/lib/ffi.rb +0 -0
  656. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/getlogin.rb +0 -0
  657. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/getpid.rb +0 -0
  658. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/gettimeofday.rb +0 -0
  659. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/hello.rb +0 -0
  660. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/inotify.rb +0 -0
  661. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/pty.rb +0 -0
  662. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/samples/qsort.rb +0 -0
  663. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/abstract_memory.rbs +0 -0
  664. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/buffer.rbs +0 -0
  665. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/data_converter.rbs +0 -0
  666. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/dynamic_library.rbs +0 -0
  667. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/enum.rbs +0 -0
  668. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/function.rbs +0 -0
  669. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/library.rbs +0 -0
  670. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/native_type.rbs +0 -0
  671. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/pointer.rbs +0 -0
  672. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/struct_by_value.rbs +0 -0
  673. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/struct_layout.rbs +0 -0
  674. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/struct_layout_builder.rbs +0 -0
  675. /data/vendor/bundle/ruby/4.0.0/gems/{ffi-1.17.2 → ffi-1.17.3-x86_64-linux-gnu}/sig/ffi/type.rbs +0 -0
  676. /data/vendor/bundle/ruby/4.0.0/gems/{po_to_json-2.2.1 → po_to_json-3.0.0}/LICENSE +0 -0
  677. /data/vendor/bundle/ruby/4.0.0/gems/{po_to_json-2.2.1 → po_to_json-3.0.0}/lib/po_to_json.rb +0 -0
  678. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/LICENSE.md +0 -0
  679. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/bin/thor +0 -0
  680. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/create_file.rb +0 -0
  681. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/create_link.rb +0 -0
  682. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/directory.rb +0 -0
  683. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/empty_directory.rb +0 -0
  684. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions/file_manipulation.rb +0 -0
  685. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/actions.rb +0 -0
  686. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/command.rb +0 -0
  687. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -0
  688. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/error.rb +0 -0
  689. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/group.rb +0 -0
  690. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/invocation.rb +0 -0
  691. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/line_editor/basic.rb +0 -0
  692. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/line_editor/readline.rb +0 -0
  693. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/line_editor.rb +0 -0
  694. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/nested_context.rb +0 -0
  695. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/parser/argument.rb +0 -0
  696. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/parser/arguments.rb +0 -0
  697. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/parser/option.rb +0 -0
  698. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/parser/options.rb +0 -0
  699. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/parser.rb +0 -0
  700. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/rake_compat.rb +0 -0
  701. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/runner.rb +0 -0
  702. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/column_printer.rb +0 -0
  703. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/html.rb +0 -0
  704. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/lcs_diff.rb +0 -0
  705. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/table_printer.rb +0 -0
  706. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/terminal.rb +0 -0
  707. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell/wrapped_printer.rb +0 -0
  708. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/shell.rb +0 -0
  709. /data/vendor/bundle/ruby/4.0.0/gems/{thor-1.4.0 → thor-1.5.0}/lib/thor/util.rb +0 -0
@@ -1,1081 +0,0 @@
1
- /*
2
- * Copyright (c) 2009-2011 Wayne Meissner
3
- *
4
- * Copyright (c) 2008-2013, Ruby FFI project contributors
5
- * All rights reserved.
6
- *
7
- * Redistribution and use in source and binary forms, with or without
8
- * modification, are permitted provided that the following conditions are met:
9
- * * Redistributions of source code must retain the above copyright
10
- * notice, this list of conditions and the following disclaimer.
11
- * * Redistributions in binary form must reproduce the above copyright
12
- * notice, this list of conditions and the following disclaimer in the
13
- * documentation and/or other materials provided with the distribution.
14
- * * Neither the name of the Ruby FFI project nor the
15
- * names of its contributors may be used to endorse or promote products
16
- * derived from this software without specific prior written permission.
17
- *
18
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
- * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
22
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
- */
29
-
30
- #ifndef _MSC_VER
31
- #include <sys/param.h>
32
- #endif
33
- #include <sys/types.h>
34
- #ifndef _WIN32
35
- # include <sys/mman.h>
36
- # include <unistd.h>
37
- #endif
38
-
39
- #include <stdio.h>
40
- #include <stdint.h>
41
- #include <stdbool.h>
42
- #include <ruby.h>
43
- #include <ruby/thread.h>
44
-
45
- #if HAVE_RB_EXT_RACTOR_SAFE
46
- #include <ruby/ractor.h>
47
- #endif
48
-
49
- #include <ffi.h>
50
- #if defined(HAVE_NATIVETHREAD) && !defined(_WIN32)
51
- #include <pthread.h>
52
- #endif
53
- #include <fcntl.h>
54
-
55
- #include "rbffi.h"
56
- #include "compat.h"
57
-
58
- #include "AbstractMemory.h"
59
- #include "Pointer.h"
60
- #include "Struct.h"
61
- #include "Platform.h"
62
- #include "Type.h"
63
- #include "LastError.h"
64
- #include "Call.h"
65
- #include "ClosurePool.h"
66
- #include "MappedType.h"
67
- #include "Thread.h"
68
- #include "LongDouble.h"
69
- #include "MethodHandle.h"
70
- #include "Function.h"
71
-
72
- #define DEFER_ASYNC_CALLBACK 1
73
-
74
- struct async_cb_dispatcher;
75
- typedef struct Function_ {
76
- Pointer base;
77
- FunctionType* info;
78
- MethodHandle* methodHandle;
79
- bool autorelease;
80
- Closure* closure;
81
- VALUE rbProc;
82
- VALUE rbFunctionInfo;
83
- #if defined(DEFER_ASYNC_CALLBACK)
84
- struct async_cb_dispatcher *dispatcher;
85
- #endif
86
- } Function;
87
-
88
- static void function_mark(void *data);
89
- static void function_compact(void *data);
90
- static void function_free(void *data);
91
- static size_t function_memsize(const void *data);
92
- static VALUE function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc);
93
- static void callback_invoke(ffi_cif* cif, void* retval, void** parameters, void* user_data);
94
- static bool callback_prep(void* ctx, void* code, Closure* closure, char* errmsg, size_t errmsgsize);
95
- static void* callback_with_gvl(void* data);
96
- static VALUE invoke_callback(VALUE data);
97
- static VALUE save_callback_exception(VALUE data, VALUE exc);
98
-
99
- #if defined(DEFER_ASYNC_CALLBACK)
100
- static VALUE async_cb_event(void *);
101
- static VALUE async_cb_call(void *);
102
- #endif
103
-
104
- extern int ruby_thread_has_gvl_p(void);
105
- extern int ruby_native_thread_p(void);
106
-
107
- static const rb_data_type_t function_data_type = {
108
- .wrap_struct_name = "FFI::Function",
109
- .function = {
110
- .dmark = function_mark,
111
- .dfree = function_free,
112
- .dsize = function_memsize,
113
- ffi_compact_callback( function_compact )
114
- },
115
- .parent = &rbffi_pointer_data_type,
116
- // IMPORTANT: WB_PROTECTED objects must only use the RB_OBJ_WRITE()
117
- // macro to update VALUE references, as to trigger write barriers.
118
- .flags = RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | FFI_RUBY_TYPED_FROZEN_SHAREABLE
119
- };
120
-
121
- VALUE rbffi_FunctionClass = Qnil;
122
-
123
- static ID id_call = 0, id_to_native = 0, id_from_native = 0, id_cbtable = 0, id_cb_ref = 0;
124
-
125
- struct gvl_callback {
126
- Closure* closure;
127
- void* retval;
128
- void** parameters;
129
- bool done;
130
- rbffi_frame_t *frame;
131
- #if defined(DEFER_ASYNC_CALLBACK)
132
- struct async_cb_dispatcher *dispatcher;
133
- struct gvl_callback* next;
134
-
135
- /* Signal when the callback has finished and retval is set */
136
- # ifndef _WIN32
137
- pthread_cond_t async_cond;
138
- pthread_mutex_t async_mutex;
139
- # else
140
- HANDLE async_event;
141
- # endif
142
- #endif
143
- };
144
-
145
-
146
- #if defined(DEFER_ASYNC_CALLBACK)
147
- struct async_cb_dispatcher {
148
- /* the Ractor-local dispatcher thread */
149
- VALUE thread;
150
-
151
- /* single linked list of pending callbacks */
152
- struct gvl_callback* async_cb_list;
153
-
154
- /* Signal new entries in async_cb_list */
155
- # ifndef _WIN32
156
- pthread_mutex_t async_cb_mutex;
157
- pthread_cond_t async_cb_cond;
158
- # else
159
- HANDLE async_cb_cond;
160
- CRITICAL_SECTION async_cb_lock;
161
- # endif
162
- };
163
-
164
- #if HAVE_RB_EXT_RACTOR_SAFE
165
- static void
166
- async_cb_dispatcher_mark(void *ptr)
167
- {
168
- struct async_cb_dispatcher *ctx = (struct async_cb_dispatcher *)ptr;
169
- if (ctx) {
170
- rb_gc_mark(ctx->thread);
171
- }
172
- }
173
-
174
- static void
175
- async_cb_dispatcher_free(void *ptr)
176
- {
177
- struct async_cb_dispatcher *ctx = (struct async_cb_dispatcher *)ptr;
178
- if (ctx) {
179
- xfree(ctx);
180
- }
181
- }
182
-
183
- struct rb_ractor_local_storage_type async_cb_dispatcher_key_type = {
184
- async_cb_dispatcher_mark,
185
- async_cb_dispatcher_free,
186
- };
187
-
188
- static rb_ractor_local_key_t async_cb_dispatcher_key;
189
-
190
- static struct async_cb_dispatcher *
191
- async_cb_dispatcher_get(void)
192
- {
193
- struct async_cb_dispatcher *ctx = (struct async_cb_dispatcher *)rb_ractor_local_storage_ptr(async_cb_dispatcher_key);
194
- return ctx;
195
- }
196
-
197
- static void
198
- async_cb_dispatcher_set(struct async_cb_dispatcher *ctx)
199
- {
200
- rb_ractor_local_storage_ptr_set(async_cb_dispatcher_key, ctx);
201
- }
202
- #else
203
- // for ruby 2.x
204
- static struct async_cb_dispatcher *async_cb_dispatcher = NULL;
205
-
206
- static struct async_cb_dispatcher *
207
- async_cb_dispatcher_get(void)
208
- {
209
- return async_cb_dispatcher;
210
- }
211
-
212
- static void
213
- async_cb_dispatcher_set(struct async_cb_dispatcher *ctx)
214
- {
215
- async_cb_dispatcher = ctx;
216
- }
217
- #endif
218
-
219
- static void
220
- async_cb_dispatcher_initialize(struct async_cb_dispatcher *ctx)
221
- {
222
- ctx->async_cb_list = NULL;
223
-
224
- #if !defined(_WIN32)
225
- /* n.b. we _used_ to try and destroy the mutex/cond before initializing here,
226
- * but it's undefined what happens if you try and destory an unitialized cond.
227
- * glibc in particular seems to wait for any concurrent waiters to finish before
228
- * destroying a condvar, trying to destroy a condvar after fork that someone was
229
- * waiting on pre-fork won't work. Just re-init he memory directly. */
230
- pthread_mutex_init(&ctx->async_cb_mutex, NULL);
231
- pthread_cond_init(&ctx->async_cb_cond, NULL);
232
- #else
233
- InitializeCriticalSection(&ctx->async_cb_lock);
234
- ctx->async_cb_cond = CreateEvent(NULL, FALSE, FALSE, NULL);
235
- #endif
236
- ctx->thread = rb_thread_create(async_cb_event, ctx);
237
-
238
- /* Name thread, for better debugging */
239
- rb_funcall(ctx->thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Dispatcher"));
240
- }
241
-
242
- static struct async_cb_dispatcher *
243
- async_cb_dispatcher_ensure_created(void)
244
- {
245
- struct async_cb_dispatcher *ctx = async_cb_dispatcher_get();
246
- if (ctx == NULL) {
247
- ctx = (struct async_cb_dispatcher*)ALLOC(struct async_cb_dispatcher);
248
- async_cb_dispatcher_initialize(ctx);
249
- async_cb_dispatcher_set(ctx);
250
- }
251
- return ctx;
252
- }
253
-
254
-
255
- static VALUE
256
- async_cb_dispatcher_atfork_child(VALUE self)
257
- {
258
- struct async_cb_dispatcher *ctx = async_cb_dispatcher_get();
259
- if (ctx) {
260
- async_cb_dispatcher_initialize(ctx);
261
- }
262
- return Qnil;
263
- }
264
- #endif
265
-
266
- static VALUE
267
- function_allocate(VALUE klass)
268
- {
269
- Function *fn;
270
- VALUE obj;
271
-
272
- obj = TypedData_Make_Struct(klass, Function, &function_data_type, fn);
273
-
274
- fn->base.memory.flags = MEM_RD;
275
- RB_OBJ_WRITE(obj, &fn->base.rbParent, Qnil);
276
- RB_OBJ_WRITE(obj, &fn->rbProc, Qnil);
277
- RB_OBJ_WRITE(obj, &fn->rbFunctionInfo, Qnil);
278
- fn->autorelease = true;
279
-
280
- return obj;
281
- }
282
-
283
- static void
284
- function_mark(void *data)
285
- {
286
- Function *fn = (Function *)data;
287
- rb_gc_mark_movable(fn->base.rbParent);
288
- rb_gc_mark_movable(fn->rbProc);
289
- rb_gc_mark_movable(fn->rbFunctionInfo);
290
- }
291
-
292
- static void
293
- function_compact(void *data)
294
- {
295
- Function *fn = (Function *)data;
296
- ffi_gc_location(fn->base.rbParent);
297
- ffi_gc_location(fn->rbProc);
298
- ffi_gc_location(fn->rbFunctionInfo);
299
- }
300
-
301
- static void
302
- function_free(void *data)
303
- {
304
- Function *fn = (Function *)data;
305
- if (fn->methodHandle != NULL) {
306
- rbffi_MethodHandle_Free(fn->methodHandle);
307
- }
308
-
309
- if (fn->closure != NULL && fn->autorelease) {
310
- rbffi_Closure_Free(fn->closure);
311
- }
312
-
313
- xfree(fn);
314
- }
315
-
316
- static size_t
317
- function_memsize(const void *data)
318
- {
319
- const Function *fn = (const Function *)data;
320
- size_t memsize = sizeof(Function);
321
-
322
- // Would be nice to better account for MethodHandle and Closure too.
323
- if (fn->closure) {
324
- memsize += sizeof(Closure);
325
- }
326
-
327
- return memsize;
328
- }
329
-
330
- /*
331
- * @param [Type, Symbol] return_type return type for the function
332
- * @param [Array<Type, Symbol>] param_types array of parameters types
333
- * @param [Hash] options see {FFI::FunctionType} for available options
334
- * @return [self]
335
- * A new Function instance.
336
- *
337
- * Define a function from a Proc or a block.
338
- *
339
- * @overload initialize(return_type, param_types, options = {}) { |i| ... }
340
- * @yieldparam i parameters for the function
341
- * @overload initialize(return_type, param_types, proc, options = {})
342
- * @param [Proc] proc
343
- */
344
- static VALUE
345
- function_initialize(int argc, VALUE* argv, VALUE self)
346
- {
347
-
348
- VALUE rbReturnType = Qnil, rbParamTypes = Qnil, rbProc = Qnil, rbOptions = Qnil;
349
- VALUE rbFunctionInfo = Qnil;
350
- VALUE infoArgv[3];
351
- int nargs;
352
-
353
- nargs = rb_scan_args(argc, argv, "22", &rbReturnType, &rbParamTypes, &rbProc, &rbOptions);
354
-
355
- /*
356
- * Callback with block,
357
- * e.g. Function.new(:int, [ :int ]) { |i| blah }
358
- * or Function.new(:int, [ :int ], { :convention => :stdcall }) { |i| blah }
359
- */
360
- if (rb_block_given_p()) {
361
- if (nargs > 3) {
362
- rb_raise(rb_eArgError, "cannot create function with both proc/address and block");
363
- }
364
- rbOptions = rbProc;
365
- rbProc = rb_block_proc();
366
- } else {
367
- /* Callback with proc, or Function with address
368
- * e.g. Function.new(:int, [ :int ], Proc.new { |i| })
369
- * Function.new(:int, [ :int ], Proc.new { |i| }, { :convention => :stdcall })
370
- * Function.new(:int, [ :int ], addr)
371
- * Function.new(:int, [ :int ], addr, { :convention => :stdcall })
372
- */
373
- }
374
-
375
- infoArgv[0] = rbReturnType;
376
- infoArgv[1] = rbParamTypes;
377
- infoArgv[2] = rbOptions;
378
- rbFunctionInfo = rb_class_new_instance(rbOptions != Qnil ? 3 : 2, infoArgv, rbffi_FunctionTypeClass);
379
-
380
- function_init(self, rbFunctionInfo, rbProc);
381
-
382
- return self;
383
- }
384
-
385
- /*
386
- * call-seq: initialize_copy(other)
387
- * @return [nil]
388
- * DO NOT CALL THIS METHOD
389
- */
390
- static VALUE
391
- function_initialize_copy(VALUE self, VALUE other)
392
- {
393
- rb_raise(rb_eRuntimeError, "cannot duplicate function instances");
394
- return Qnil;
395
- }
396
-
397
- VALUE
398
- rbffi_Function_NewInstance(VALUE rbFunctionInfo, VALUE rbProc)
399
- {
400
- return function_init(function_allocate(rbffi_FunctionClass), rbFunctionInfo, rbProc);
401
- }
402
-
403
- VALUE
404
- rbffi_Function_ForProc(VALUE rbFunctionInfo, VALUE proc)
405
- {
406
- VALUE callback, cbref, cbTable;
407
-
408
- cbref = RTEST(rb_ivar_defined(proc, id_cb_ref)) ? rb_ivar_get(proc, id_cb_ref) : Qnil;
409
- /* If the first callback reference has the same function function signature, use it */
410
- if (cbref != Qnil && CLASS_OF(cbref) == rbffi_FunctionClass) {
411
- Function* fp;
412
- TypedData_Get_Struct(cbref, Function, &function_data_type, fp);
413
- if (fp->rbFunctionInfo == rbFunctionInfo) {
414
- return cbref;
415
- }
416
- }
417
-
418
- cbTable = RTEST(rb_ivar_defined(proc, id_cbtable)) ? rb_ivar_get(proc, id_cbtable) : Qnil;
419
- if (cbTable != Qnil && (callback = rb_hash_aref(cbTable, rbFunctionInfo)) != Qnil) {
420
- return callback;
421
- }
422
-
423
- /* No existing function for the proc with that signature, create a new one and cache it */
424
- callback = rbffi_Function_NewInstance(rbFunctionInfo, proc);
425
- if (cbref == Qnil) {
426
- /* If there is no other cb already cached for this proc, we can use the ivar slot */
427
- rb_ivar_set(proc, id_cb_ref, callback);
428
- } else {
429
- /* The proc instance has been used as more than one type of callback, store extras in a hash */
430
- if(cbTable == Qnil) {
431
- cbTable = rb_hash_new();
432
- rb_ivar_set(proc, id_cbtable, cbTable);
433
- }
434
- rb_hash_aset(cbTable, rbFunctionInfo, callback);
435
- }
436
-
437
- return callback;
438
- }
439
-
440
- static VALUE
441
- function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc)
442
- {
443
- Function* fn = NULL;
444
-
445
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
446
-
447
- RB_OBJ_WRITE(self, &fn->rbFunctionInfo, rbFunctionInfo);
448
-
449
- TypedData_Get_Struct(fn->rbFunctionInfo, FunctionType, &rbffi_fntype_data_type, fn->info);
450
-
451
- if (rb_obj_is_kind_of(rbProc, rbffi_PointerClass)) {
452
- Pointer* orig;
453
- TypedData_Get_Struct(rbProc, Pointer, &rbffi_pointer_data_type, orig);
454
- fn->base.memory = orig->memory;
455
- RB_OBJ_WRITE(self, &fn->base.rbParent, rbProc);
456
-
457
- } else if (rb_obj_is_kind_of(rbProc, rb_cProc) || rb_respond_to(rbProc, id_call)) {
458
- if (fn->info->closurePool == NULL) {
459
- fn->info->closurePool = rbffi_ClosurePool_New(sizeof(ffi_closure), callback_prep, fn->info);
460
- if (fn->info->closurePool == NULL) {
461
- rb_raise(rb_eNoMemError, "failed to create closure pool");
462
- }
463
- }
464
-
465
- #if defined(DEFER_ASYNC_CALLBACK)
466
- fn->dispatcher = async_cb_dispatcher_ensure_created();
467
- #endif
468
-
469
- fn->closure = rbffi_Closure_Alloc(fn->info->closurePool);
470
- fn->closure->info = fn;
471
- fn->base.memory.address = fn->closure->code;
472
- fn->base.memory.size = sizeof(*fn->closure);
473
- fn->autorelease = true;
474
-
475
- } else {
476
- rb_raise(rb_eTypeError, "wrong argument type %s, expected pointer or proc",
477
- rb_obj_classname(rbProc));
478
- }
479
-
480
- RB_OBJ_WRITE(self, &fn->rbProc, rbProc);
481
-
482
- return self;
483
- }
484
-
485
- /*
486
- * call-seq: call(*args)
487
- * @param [Array] args function arguments
488
- * @return [FFI::Type]
489
- * Call the function
490
- */
491
- static VALUE
492
- function_call(int argc, VALUE* argv, VALUE self)
493
- {
494
- Function* fn;
495
-
496
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
497
-
498
- return (*fn->info->invoke)(argc, argv, fn->base.memory.address, fn->info);
499
- }
500
-
501
- /*
502
- * call-seq: attach(m, name)
503
- * @param [Module] m
504
- * @param [String] name
505
- * @return [self]
506
- * Attach a Function to the Module +m+ as +name+.
507
- */
508
- static VALUE
509
- function_attach(VALUE self, VALUE module, VALUE name)
510
- {
511
- Function* fn;
512
-
513
- StringValue(name);
514
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
515
-
516
- if (fn->info->parameterCount == -1) {
517
- rb_raise(rb_eRuntimeError, "cannot attach variadic functions");
518
- return Qnil;
519
- }
520
-
521
- if (!rb_obj_is_kind_of(module, rb_cModule)) {
522
- rb_raise(rb_eRuntimeError, "trying to attach function to non-module");
523
- return Qnil;
524
- }
525
-
526
- if (fn->methodHandle == NULL) {
527
- fn->methodHandle = rbffi_MethodHandle_Alloc(fn->info, fn->base.memory.address);
528
- }
529
-
530
- rb_define_singleton_method(module, StringValueCStr(name),
531
- rbffi_MethodHandle_CodeAddress(fn->methodHandle), -1);
532
-
533
-
534
- rb_define_method(module, StringValueCStr(name),
535
- rbffi_MethodHandle_CodeAddress(fn->methodHandle), -1);
536
-
537
- return self;
538
- }
539
-
540
- /*
541
- * call-seq: autorelease = autorelease
542
- * @param [Boolean] autorelease
543
- * @return [self]
544
- * Set +autorelease+ attribute (See {Pointer}).
545
- */
546
- static VALUE
547
- function_set_autorelease(VALUE self, VALUE autorelease)
548
- {
549
- Function* fn;
550
-
551
- rb_check_frozen(self);
552
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
553
-
554
- fn->autorelease = RTEST(autorelease);
555
-
556
- return self;
557
- }
558
-
559
- static VALUE
560
- function_autorelease_p(VALUE self)
561
- {
562
- Function* fn;
563
-
564
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
565
-
566
- return fn->autorelease ? Qtrue : Qfalse;
567
- }
568
-
569
- static VALUE
570
- function_type(VALUE self)
571
- {
572
- Function* fn;
573
-
574
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
575
-
576
- return fn->rbFunctionInfo;
577
- }
578
-
579
- /*
580
- * call-seq: free
581
- * @return [self]
582
- * Free memory allocated by Function.
583
- */
584
- static VALUE
585
- function_release(VALUE self)
586
- {
587
- Function* fn;
588
-
589
- TypedData_Get_Struct(self, Function, &function_data_type, fn);
590
-
591
- if (fn->closure == NULL) {
592
- rb_raise(rb_eRuntimeError, "cannot free function which was not allocated");
593
- }
594
-
595
- rbffi_Closure_Free(fn->closure);
596
- fn->closure = NULL;
597
-
598
- return self;
599
- }
600
-
601
- static void
602
- callback_invoke(ffi_cif* cif, void* retval, void** parameters, void* user_data)
603
- {
604
- Function* fn;
605
- struct gvl_callback cb = { 0 };
606
-
607
- cb.closure = (Closure *) user_data;
608
- cb.retval = retval;
609
- cb.parameters = parameters;
610
- cb.done = false;
611
- cb.frame = rbffi_frame_current();
612
- fn = (Function *) cb.closure->info;
613
-
614
- if (cb.frame != NULL) cb.frame->exc = Qnil;
615
-
616
- if (ruby_native_thread_p()) {
617
- if(ruby_thread_has_gvl_p()) {
618
- callback_with_gvl(&cb);
619
- } else {
620
- rb_thread_call_with_gvl(callback_with_gvl, &cb);
621
- }
622
- #if defined(DEFER_ASYNC_CALLBACK) && !defined(_WIN32)
623
- } else {
624
- bool empty = false;
625
- struct async_cb_dispatcher *ctx = fn->dispatcher;
626
-
627
- pthread_mutex_init(&cb.async_mutex, NULL);
628
- pthread_cond_init(&cb.async_cond, NULL);
629
-
630
- /* Now signal the async callback dispatcher thread */
631
- pthread_mutex_lock(&ctx->async_cb_mutex);
632
- empty = ctx->async_cb_list == NULL;
633
- cb.next = ctx->async_cb_list;
634
- ctx->async_cb_list = &cb;
635
-
636
- pthread_cond_signal(&ctx->async_cb_cond);
637
- pthread_mutex_unlock(&ctx->async_cb_mutex);
638
-
639
- /* Wait for the thread executing the ruby callback to signal it is done */
640
- pthread_mutex_lock(&cb.async_mutex);
641
- while (!cb.done) {
642
- pthread_cond_wait(&cb.async_cond, &cb.async_mutex);
643
- }
644
- pthread_mutex_unlock(&cb.async_mutex);
645
- pthread_cond_destroy(&cb.async_cond);
646
- pthread_mutex_destroy(&cb.async_mutex);
647
-
648
- #elif defined(DEFER_ASYNC_CALLBACK) && defined(_WIN32)
649
- } else {
650
- bool empty = false;
651
- struct async_cb_dispatcher *ctx = fn->dispatcher;
652
-
653
- cb.async_event = CreateEvent(NULL, FALSE, FALSE, NULL);
654
-
655
- /* Now signal the async callback dispatcher thread */
656
- EnterCriticalSection(&ctx->async_cb_lock);
657
- empty = ctx->async_cb_list == NULL;
658
- cb.next = ctx->async_cb_list;
659
- ctx->async_cb_list = &cb;
660
- LeaveCriticalSection(&ctx->async_cb_lock);
661
-
662
- SetEvent(ctx->async_cb_cond);
663
-
664
- /* Wait for the thread executing the ruby callback to signal it is done */
665
- WaitForSingleObject(cb.async_event, INFINITE);
666
- CloseHandle(cb.async_event);
667
- #endif
668
- }
669
- }
670
-
671
- #if defined(DEFER_ASYNC_CALLBACK)
672
- struct async_wait {
673
- struct async_cb_dispatcher *dispatcher;
674
- void* cb;
675
- bool stop;
676
- };
677
-
678
- static void * async_cb_wait(void *);
679
- static void async_cb_stop(void *);
680
-
681
- static VALUE
682
- async_cb_event(void* ptr)
683
- {
684
- struct async_cb_dispatcher *ctx = (struct async_cb_dispatcher *)ptr;
685
- struct async_wait w = { ctx };
686
-
687
- w.stop = false;
688
- while (!w.stop) {
689
- rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
690
- if (w.cb != NULL) {
691
- /* Start up a new ruby thread to run the ruby callback */
692
- VALUE new_thread = rb_thread_create(async_cb_call, w.cb);
693
- /* Name thread, for better debugging */
694
- rb_funcall(new_thread, rb_intern("name="), 1, rb_str_new2("FFI Callback Runner"));
695
- }
696
- }
697
-
698
- return Qnil;
699
- }
700
-
701
- #ifdef _WIN32
702
- static void *
703
- async_cb_wait(void *data)
704
- {
705
- struct async_wait* w = (struct async_wait *) data;
706
- struct async_cb_dispatcher *ctx = w->dispatcher;
707
-
708
- w->cb = NULL;
709
-
710
- EnterCriticalSection(&ctx->async_cb_lock);
711
-
712
- while (!w->stop && ctx->async_cb_list == NULL) {
713
- LeaveCriticalSection(&ctx->async_cb_lock);
714
- WaitForSingleObject(ctx->async_cb_cond, INFINITE);
715
- EnterCriticalSection(&ctx->async_cb_lock);
716
- }
717
-
718
- if (ctx->async_cb_list != NULL) {
719
- w->cb = ctx->async_cb_list;
720
- ctx->async_cb_list = ctx->async_cb_list->next;
721
- }
722
-
723
- LeaveCriticalSection(&ctx->async_cb_lock);
724
-
725
- return NULL;
726
- }
727
-
728
- static void
729
- async_cb_stop(void *data)
730
- {
731
- struct async_wait* w = (struct async_wait *) data;
732
- struct async_cb_dispatcher *ctx = w->dispatcher;
733
-
734
- EnterCriticalSection(&ctx->async_cb_lock);
735
- w->stop = true;
736
- LeaveCriticalSection(&ctx->async_cb_lock);
737
- SetEvent(ctx->async_cb_cond);
738
- }
739
-
740
- #else
741
- static void *
742
- async_cb_wait(void *data)
743
- {
744
- struct async_wait* w = (struct async_wait *) data;
745
- struct async_cb_dispatcher *ctx = w->dispatcher;
746
-
747
- w->cb = NULL;
748
-
749
- pthread_mutex_lock(&ctx->async_cb_mutex);
750
-
751
- while (!w->stop && ctx->async_cb_list == NULL) {
752
- pthread_cond_wait(&ctx->async_cb_cond, &ctx->async_cb_mutex);
753
- }
754
-
755
- if (ctx->async_cb_list != NULL) {
756
- w->cb = ctx->async_cb_list;
757
- ctx->async_cb_list = ctx->async_cb_list->next;
758
- }
759
-
760
- pthread_mutex_unlock(&ctx->async_cb_mutex);
761
-
762
- return NULL;
763
- }
764
-
765
- static void
766
- async_cb_stop(void *data)
767
- {
768
- struct async_wait* w = (struct async_wait *) data;
769
- struct async_cb_dispatcher *ctx = w->dispatcher;
770
-
771
- pthread_mutex_lock(&ctx->async_cb_mutex);
772
- w->stop = true;
773
- pthread_cond_signal(&ctx->async_cb_cond);
774
- pthread_mutex_unlock(&ctx->async_cb_mutex);
775
- }
776
- #endif
777
-
778
- static VALUE
779
- async_cb_call(void *data)
780
- {
781
- struct gvl_callback* cb = (struct gvl_callback *) data;
782
-
783
- callback_with_gvl(data);
784
-
785
- /* Signal the original native thread that the ruby code has completed */
786
- #ifdef _WIN32
787
- SetEvent(cb->async_event);
788
- #else
789
- pthread_mutex_lock(&cb->async_mutex);
790
- cb->done = true;
791
- pthread_cond_signal(&cb->async_cond);
792
- pthread_mutex_unlock(&cb->async_mutex);
793
- #endif
794
-
795
- return Qnil;
796
- }
797
-
798
- #endif
799
-
800
- static void *
801
- callback_with_gvl(void* data)
802
- {
803
- rb_rescue2(invoke_callback, (VALUE) data, save_callback_exception, (VALUE) data, rb_eException, (VALUE) 0);
804
- return NULL;
805
- }
806
-
807
- static VALUE
808
- invoke_callback(VALUE data)
809
- {
810
- struct gvl_callback* cb = (struct gvl_callback *) data;
811
-
812
- Function* fn = (Function *) cb->closure->info;
813
- FunctionType *cbInfo = fn->info;
814
- Type* returnType = cbInfo->returnType;
815
- void* retval = cb->retval;
816
- void** parameters = cb->parameters;
817
- VALUE* rbParams;
818
- VALUE rbReturnType = cbInfo->rbReturnType;
819
- VALUE rbReturnValue;
820
- int i;
821
-
822
- rbParams = ALLOCA_N(VALUE, cbInfo->parameterCount);
823
- for (i = 0; i < cbInfo->parameterCount; ++i) {
824
- VALUE param;
825
- Type* paramType = cbInfo->parameterTypes[i];
826
- VALUE rbParamType = rb_ary_entry(cbInfo->rbParameterTypes, i);
827
-
828
- if (unlikely(paramType->nativeType == NATIVE_MAPPED)) {
829
- rbParamType = ((MappedType *) paramType)->rbType;
830
- paramType = ((MappedType *) paramType)->type;
831
- }
832
-
833
- switch (paramType->nativeType) {
834
- case NATIVE_INT8:
835
- param = INT2NUM(*(int8_t *) parameters[i]);
836
- break;
837
- case NATIVE_UINT8:
838
- param = UINT2NUM(*(uint8_t *) parameters[i]);
839
- break;
840
- case NATIVE_INT16:
841
- param = INT2NUM(*(int16_t *) parameters[i]);
842
- break;
843
- case NATIVE_UINT16:
844
- param = UINT2NUM(*(uint16_t *) parameters[i]);
845
- break;
846
- case NATIVE_INT32:
847
- param = INT2NUM(*(int32_t *) parameters[i]);
848
- break;
849
- case NATIVE_UINT32:
850
- param = UINT2NUM(*(uint32_t *) parameters[i]);
851
- break;
852
- case NATIVE_INT64:
853
- param = LL2NUM(*(int64_t *) parameters[i]);
854
- break;
855
- case NATIVE_UINT64:
856
- param = ULL2NUM(*(uint64_t *) parameters[i]);
857
- break;
858
- case NATIVE_LONG:
859
- param = LONG2NUM(*(long *) parameters[i]);
860
- break;
861
- case NATIVE_ULONG:
862
- param = ULONG2NUM(*(unsigned long *) parameters[i]);
863
- break;
864
- case NATIVE_FLOAT32:
865
- param = rb_float_new(*(float *) parameters[i]);
866
- break;
867
- case NATIVE_FLOAT64:
868
- param = rb_float_new(*(double *) parameters[i]);
869
- break;
870
- case NATIVE_LONGDOUBLE:
871
- param = rbffi_longdouble_new(*(long double *) parameters[i]);
872
- break;
873
- case NATIVE_STRING:
874
- param = (*(void **) parameters[i] != NULL) ? rb_str_new2(*(char **) parameters[i]) : Qnil;
875
- break;
876
- case NATIVE_POINTER:
877
- param = rbffi_Pointer_NewInstance(*(void **) parameters[i]);
878
- break;
879
- case NATIVE_BOOL:
880
- param = (*(uint8_t *) parameters[i]) ? Qtrue : Qfalse;
881
- break;
882
-
883
- case NATIVE_FUNCTION:
884
- case NATIVE_STRUCT:
885
- param = rbffi_NativeValue_ToRuby(paramType, rbParamType, parameters[i]);
886
- break;
887
-
888
- default:
889
- param = Qnil;
890
- break;
891
- }
892
-
893
- /* Convert the native value into a custom ruby value */
894
- if (unlikely(cbInfo->parameterTypes[i]->nativeType == NATIVE_MAPPED)) {
895
- VALUE values[] = { param, Qnil };
896
- param = rb_funcall2(((MappedType *) cbInfo->parameterTypes[i])->rbConverter, id_from_native, 2, values);
897
- }
898
-
899
- rbParams[i] = param;
900
- }
901
-
902
- rbReturnValue = rb_funcall2(fn->rbProc, id_call, cbInfo->parameterCount, rbParams);
903
-
904
- if (unlikely(returnType->nativeType == NATIVE_MAPPED)) {
905
- VALUE values[] = { rbReturnValue, Qnil };
906
- rbReturnValue = rb_funcall2(((MappedType *) returnType)->rbConverter, id_to_native, 2, values);
907
- rbReturnType = ((MappedType *) returnType)->rbType;
908
- returnType = ((MappedType* ) returnType)->type;
909
- }
910
-
911
- if (rbReturnValue == Qnil || TYPE(rbReturnValue) == T_NIL) {
912
- memset(retval, 0, returnType->ffiType->size);
913
- } else switch (returnType->nativeType) {
914
- case NATIVE_INT8:
915
- case NATIVE_INT16:
916
- case NATIVE_INT32:
917
- *((ffi_sarg *) retval) = NUM2INT(rbReturnValue);
918
- break;
919
- case NATIVE_UINT8:
920
- case NATIVE_UINT16:
921
- case NATIVE_UINT32:
922
- *((ffi_arg *) retval) = NUM2UINT(rbReturnValue);
923
- break;
924
- case NATIVE_INT64:
925
- *((int64_t *) retval) = NUM2LL(rbReturnValue);
926
- break;
927
- case NATIVE_UINT64:
928
- *((uint64_t *) retval) = NUM2ULL(rbReturnValue);
929
- break;
930
- case NATIVE_LONG:
931
- *((ffi_sarg *) retval) = NUM2LONG(rbReturnValue);
932
- break;
933
- case NATIVE_ULONG:
934
- *((ffi_arg *) retval) = NUM2ULONG(rbReturnValue);
935
- break;
936
- case NATIVE_FLOAT32:
937
- *((float *) retval) = (float) NUM2DBL(rbReturnValue);
938
- break;
939
- case NATIVE_FLOAT64:
940
- *((double *) retval) = NUM2DBL(rbReturnValue);
941
- break;
942
- case NATIVE_LONGDOUBLE:
943
- *((long double *) retval) = rbffi_num2longdouble(rbReturnValue);
944
- break;
945
- case NATIVE_POINTER:
946
- if (TYPE(rbReturnValue) == T_DATA && rb_obj_is_kind_of(rbReturnValue, rbffi_PointerClass)) {
947
- AbstractMemory* memory;
948
- TypedData_Get_Struct(rbReturnValue, AbstractMemory, &rbffi_abstract_memory_data_type, memory);
949
- *((void **) retval) = memory->address;
950
- } else {
951
- /* Default to returning NULL if not a value pointer object. handles nil case as well */
952
- *((void **) retval) = NULL;
953
- }
954
- break;
955
-
956
- case NATIVE_BOOL:
957
- *((ffi_arg *) retval) = rbReturnValue == Qtrue;
958
- break;
959
-
960
- case NATIVE_FUNCTION:
961
- if (TYPE(rbReturnValue) == T_DATA && rb_obj_is_kind_of(rbReturnValue, rbffi_PointerClass)) {
962
- AbstractMemory* memory;
963
- TypedData_Get_Struct(rbReturnValue, AbstractMemory, &rbffi_abstract_memory_data_type, memory);
964
-
965
- *((void **) retval) = memory->address;
966
-
967
- } else if (rb_obj_is_kind_of(rbReturnValue, rb_cProc) || rb_respond_to(rbReturnValue, id_call)) {
968
- VALUE function;
969
- AbstractMemory* memory;
970
-
971
- function = rbffi_Function_ForProc(rbReturnType, rbReturnValue);
972
-
973
- TypedData_Get_Struct(function, AbstractMemory, &rbffi_abstract_memory_data_type, memory);
974
-
975
- *((void **) retval) = memory->address;
976
- } else {
977
- *((void **) retval) = NULL;
978
- }
979
- break;
980
-
981
- case NATIVE_STRUCT:
982
- if (TYPE(rbReturnValue) == T_DATA && rb_obj_is_kind_of(rbReturnValue, rbffi_StructClass)) {
983
- Struct* s;
984
- AbstractMemory* memory;
985
-
986
- TypedData_Get_Struct(rbReturnValue, Struct, &rbffi_struct_data_type, s);
987
- memory = s->pointer;
988
-
989
- if (memory->address != NULL) {
990
- memcpy(retval, memory->address, returnType->ffiType->size);
991
-
992
- } else {
993
- memset(retval, 0, returnType->ffiType->size);
994
- }
995
-
996
- } else {
997
- memset(retval, 0, returnType->ffiType->size);
998
- }
999
- break;
1000
-
1001
- default:
1002
- *((ffi_arg *) retval) = 0;
1003
- break;
1004
- }
1005
-
1006
- return Qnil;
1007
- }
1008
-
1009
- static VALUE
1010
- save_callback_exception(VALUE data, VALUE exc)
1011
- {
1012
- struct gvl_callback* cb = (struct gvl_callback *) data;
1013
-
1014
- memset(cb->retval, 0, ((Function *) cb->closure->info)->info->returnType->ffiType->size);
1015
- if (cb->frame != NULL) cb->frame->exc = exc;
1016
-
1017
- return Qnil;
1018
- }
1019
-
1020
- static bool
1021
- callback_prep(void* ctx, void* code, Closure* closure, char* errmsg, size_t errmsgsize)
1022
- {
1023
- FunctionType* fnInfo = (FunctionType *) ctx;
1024
- ffi_status ffiStatus;
1025
-
1026
- ffiStatus = ffi_prep_closure_loc(closure->pcl, &fnInfo->ffi_cif, callback_invoke, closure, code);
1027
- if (ffiStatus != FFI_OK) {
1028
- snprintf(errmsg, errmsgsize, "ffi_prep_closure_loc failed. status=%#x", ffiStatus);
1029
- return false;
1030
- }
1031
-
1032
- return true;
1033
- }
1034
-
1035
- void
1036
- rbffi_Function_Init(VALUE moduleFFI)
1037
- {
1038
- rbffi_FunctionInfo_Init(moduleFFI);
1039
- /*
1040
- * Document-class: FFI::Function < FFI::Pointer
1041
- */
1042
- rbffi_FunctionClass = rb_define_class_under(moduleFFI, "Function", rbffi_PointerClass);
1043
-
1044
- rb_global_variable(&rbffi_FunctionClass);
1045
- rb_define_alloc_func(rbffi_FunctionClass, function_allocate);
1046
-
1047
- rb_define_method(rbffi_FunctionClass, "initialize", function_initialize, -1);
1048
- rb_define_method(rbffi_FunctionClass, "initialize_copy", function_initialize_copy, 1);
1049
- rb_define_method(rbffi_FunctionClass, "call", function_call, -1);
1050
- rb_define_method(rbffi_FunctionClass, "attach", function_attach, 2);
1051
- rb_define_method(rbffi_FunctionClass, "free", function_release, 0);
1052
- rb_define_method(rbffi_FunctionClass, "autorelease=", function_set_autorelease, 1);
1053
- rb_define_private_method(rbffi_FunctionClass, "type", function_type, 0);
1054
- /*
1055
- * call-seq: autorelease
1056
- * @return [Boolean]
1057
- * Get +autorelease+ attribute.
1058
- * Synonymous for {#autorelease?}.
1059
- */
1060
- rb_define_method(rbffi_FunctionClass, "autorelease", function_autorelease_p, 0);
1061
- /*
1062
- * call-seq: autorelease?
1063
- * @return [Boolean] +autorelease+ attribute
1064
- * Get +autorelease+ attribute.
1065
- */
1066
- rb_define_method(rbffi_FunctionClass, "autorelease?", function_autorelease_p, 0);
1067
-
1068
- id_call = rb_intern("call");
1069
- id_cbtable = rb_intern("@__ffi_callback_table__");
1070
- id_cb_ref = rb_intern("@__ffi_callback__");
1071
- id_to_native = rb_intern("to_native");
1072
- id_from_native = rb_intern("from_native");
1073
- #if defined(DEFER_ASYNC_CALLBACK) && defined(HAVE_RB_EXT_RACTOR_SAFE)
1074
- async_cb_dispatcher_key = rb_ractor_local_storage_ptr_newkey(&async_cb_dispatcher_key_type);
1075
- #endif
1076
- #ifdef DEFER_ASYNC_CALLBACK
1077
- /* Ruby code will call this method in a Process._fork patch */
1078
- rb_define_singleton_method(moduleFFI, "_async_cb_dispatcher_atfork_child",
1079
- async_cb_dispatcher_atfork_child, 0);
1080
- #endif
1081
- }