rbs-relaxed 3.9.0.1

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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/core/gc.rbs ADDED
@@ -0,0 +1,644 @@
1
+ # <!-- rdoc-file=gc.rb -->
2
+ # The GC module provides an interface to Ruby's mark-and-sweep garbage
3
+ # collection mechanism.
4
+ #
5
+ # Some of the underlying methods are also available via the ObjectSpace module.
6
+ #
7
+ # You may obtain information about the operation of the GC through GC::Profiler.
8
+ #
9
+ module GC
10
+ # <!-- rdoc-file=gc.c -->
11
+ # The GC profiler provides access to information on GC runs including time,
12
+ # length and object space size.
13
+ #
14
+ # Example:
15
+ #
16
+ # GC::Profiler.enable
17
+ #
18
+ # require 'rdoc/rdoc'
19
+ #
20
+ # GC::Profiler.report
21
+ #
22
+ # GC::Profiler.disable
23
+ #
24
+ # See also GC.count, GC.malloc_allocated_size and GC.malloc_allocations
25
+ #
26
+ module Profiler
27
+ # <!--
28
+ # rdoc-file=gc.c
29
+ # - GC::Profiler.clear -> nil
30
+ # -->
31
+ # Clears the GC profiler data.
32
+ #
33
+ def self.clear: () -> nil
34
+
35
+ # <!--
36
+ # rdoc-file=gc.c
37
+ # - GC::Profiler.disable -> nil
38
+ # -->
39
+ # Stops the GC profiler.
40
+ #
41
+ def self.disable: () -> nil
42
+
43
+ # <!--
44
+ # rdoc-file=gc.c
45
+ # - GC::Profiler.enable -> nil
46
+ # -->
47
+ # Starts the GC profiler.
48
+ #
49
+ def self.enable: () -> nil
50
+
51
+ # <!--
52
+ # rdoc-file=gc.c
53
+ # - GC::Profiler.enabled? -> true or false
54
+ # -->
55
+ # The current status of GC profile mode.
56
+ #
57
+ def self.enabled?: () -> bool
58
+
59
+ # <!--
60
+ # rdoc-file=gc.c
61
+ # - GC::Profiler.raw_data -> [Hash, ...]
62
+ # -->
63
+ # Returns an Array of individual raw profile data Hashes ordered from earliest
64
+ # to latest by `:GC_INVOKE_TIME`.
65
+ #
66
+ # For example:
67
+ #
68
+ # [
69
+ # {
70
+ # :GC_TIME=>1.3000000000000858e-05,
71
+ # :GC_INVOKE_TIME=>0.010634999999999999,
72
+ # :HEAP_USE_SIZE=>289640,
73
+ # :HEAP_TOTAL_SIZE=>588960,
74
+ # :HEAP_TOTAL_OBJECTS=>14724,
75
+ # :GC_IS_MARKED=>false
76
+ # },
77
+ # # ...
78
+ # ]
79
+ #
80
+ # The keys mean:
81
+ #
82
+ # `:GC_TIME`
83
+ # : Time elapsed in seconds for this GC run
84
+ #
85
+ # `:GC_INVOKE_TIME`
86
+ # : Time elapsed in seconds from startup to when the GC was invoked
87
+ #
88
+ # `:HEAP_USE_SIZE`
89
+ # : Total bytes of heap used
90
+ #
91
+ # `:HEAP_TOTAL_SIZE`
92
+ # : Total size of heap in bytes
93
+ #
94
+ # `:HEAP_TOTAL_OBJECTS`
95
+ # : Total number of objects
96
+ #
97
+ # `:GC_IS_MARKED`
98
+ # : Returns `true` if the GC is in mark phase
99
+ #
100
+ #
101
+ # If ruby was built with `GC_PROFILE_MORE_DETAIL`, you will also have access to
102
+ # the following hash keys:
103
+ #
104
+ # `:GC_MARK_TIME`
105
+ # `:GC_SWEEP_TIME`
106
+ # `:ALLOCATE_INCREASE`
107
+ # `:ALLOCATE_LIMIT`
108
+ # `:HEAP_USE_PAGES`
109
+ # `:HEAP_LIVE_OBJECTS`
110
+ # `:HEAP_FREE_OBJECTS`
111
+ # `:HAVE_FINALIZE`
112
+ # :
113
+ #
114
+ def self.raw_data: () -> Array[Hash[Symbol, untyped]]?
115
+
116
+ # <!--
117
+ # rdoc-file=gc.c
118
+ # - GC::Profiler.report
119
+ # - GC::Profiler.report(io)
120
+ # -->
121
+ # Writes the GC::Profiler.result to `$stdout` or the given IO object.
122
+ #
123
+ def self.report: (?_Reporter io) -> nil
124
+
125
+ interface _Reporter
126
+ def write: (String msg) -> void
127
+ end
128
+
129
+ # <!--
130
+ # rdoc-file=gc.c
131
+ # - GC::Profiler.result -> String
132
+ # -->
133
+ # Returns a profile data report such as:
134
+ #
135
+ # GC 1 invokes.
136
+ # Index Invoke Time(sec) Use Size(byte) Total Size(byte) Total Object GC time(ms)
137
+ # 1 0.012 159240 212940 10647 0.00000000000001530000
138
+ #
139
+ def self.result: () -> String
140
+
141
+ # <!--
142
+ # rdoc-file=gc.c
143
+ # - GC::Profiler.total_time -> float
144
+ # -->
145
+ # The total time used for garbage collection in seconds
146
+ #
147
+ def self.total_time: () -> Float
148
+ end
149
+
150
+ # <!-- rdoc-file=gc.c -->
151
+ # Internal constants in the garbage collector.
152
+ #
153
+ INTERNAL_CONSTANTS: Hash[Symbol, untyped]
154
+
155
+ # <!-- rdoc-file=gc.c -->
156
+ # GC build options
157
+ #
158
+ OPTS: Array[String]
159
+
160
+ # <!--
161
+ # rdoc-file=gc.rb
162
+ # - GC.config -> hash
163
+ # - GC.config(hash) -> hash
164
+ # -->
165
+ # Sets or gets information about the current GC config.
166
+ #
167
+ # Configuration parameters are GC implementation-specific and may change without
168
+ # notice.
169
+ #
170
+ # This method can be called without parameters to retrieve the current config as
171
+ # a `Hash` with `Symbol` keys.
172
+ #
173
+ # This method can also be called with a `Hash` argument to assign values to
174
+ # valid config keys. Config keys missing from the passed `Hash` will be left
175
+ # unmodified.
176
+ #
177
+ # If a key/value pair is passed to this function that does not correspond to a
178
+ # valid config key for the GC implementation being used, no config will be
179
+ # updated, the key will be present in the returned Hash, and its value will be
180
+ # `nil`. This is to facilitate easy migration between GC implementations.
181
+ #
182
+ # In both call-seqs, the return value of `GC.config` will be a `Hash` containing
183
+ # the most recent full configuration, i.e., all keys and values defined by the
184
+ # specific GC implementation being used. In the case of a config update, the
185
+ # return value will include the new values being updated.
186
+ #
187
+ # This method is only expected to work on CRuby.
188
+ #
189
+ # ### GC Implementation independent values
190
+ #
191
+ # The `GC.config` hash can also contain keys that are global and read-only.
192
+ # These keys are not specific to any one GC library implementation and
193
+ # attempting to write to them will raise `ArgumentError`.
194
+ #
195
+ # There is currently only one global, read-only key:
196
+ #
197
+ # implementation
198
+ # : Returns a `String` containing the name of the currently loaded GC library,
199
+ # if one has been loaded using `RUBY_GC_LIBRARY`, and "default" in all other
200
+ # cases
201
+ #
202
+ #
203
+ # ### GC Implementation specific values
204
+ #
205
+ # GC libraries are expected to document their own configuration. Valid keys for
206
+ # Ruby's default GC implementation are:
207
+ #
208
+ # rgengc_allow_full_mark
209
+ # : Controls whether the GC is allowed to run a full mark (young & old
210
+ # objects).
211
+ #
212
+ # When `true`, GC interleaves major and minor collections. This is the
213
+ # default. GC will function as intended.
214
+ #
215
+ # When `false`, the GC will never trigger a full marking cycle unless
216
+ # explicitly requested by user code. Instead, only a minor mark will
217
+ # run—only young objects will be marked. When the heap space is exhausted,
218
+ # new pages will be allocated immediately instead of running a full mark.
219
+ #
220
+ # A flag will be set to notify that a full mark has been requested. This
221
+ # flag is accessible using `GC.latest_gc_info(:needs_major_by)`
222
+ #
223
+ # The user can trigger a major collection at any time using
224
+ # `GC.start(full_mark: true)`
225
+ #
226
+ # When `false`, Young to Old object promotion is disabled. For performance
227
+ # reasons, it is recommended to warm up an application using
228
+ # `Process.warmup` before setting this parameter to `false`.
229
+ #
230
+ def self.config: () -> Hash[Symbol, untyped]
231
+ | (Hash[Symbol, untyped]) -> Hash[Symbol, untyped]
232
+
233
+ # <!--
234
+ # rdoc-file=gc.rb
235
+ # - GC.count -> Integer
236
+ # -->
237
+ # Returns the number of times GC has occurred since the process started.
238
+ #
239
+ def self.count: () -> Integer
240
+
241
+ # <!--
242
+ # rdoc-file=gc.rb
243
+ # - GC.disable -> true or false
244
+ # -->
245
+ # Disables garbage collection, returning `true` if garbage collection was
246
+ # already disabled.
247
+ #
248
+ # GC.disable #=> false
249
+ # GC.disable #=> true
250
+ #
251
+ def self.disable: () -> bool
252
+
253
+ # <!--
254
+ # rdoc-file=gc.rb
255
+ # - GC.enable -> true or false
256
+ # -->
257
+ # Enables garbage collection, returning `true` if garbage collection was
258
+ # previously disabled.
259
+ #
260
+ # GC.disable #=> false
261
+ # GC.enable #=> true
262
+ # GC.enable #=> false
263
+ #
264
+ def self.enable: () -> bool
265
+
266
+ # <!--
267
+ # rdoc-file=gc.rb
268
+ # - start(full_mark: true, immediate_mark: true, immediate_sweep: true)
269
+ # -->
270
+ # Initiates garbage collection, even if manually disabled.
271
+ #
272
+ # The `full_mark` keyword argument determines whether or not to perform a major
273
+ # garbage collection cycle. When set to `true`, a major garbage collection cycle
274
+ # is run, meaning all objects are marked. When set to `false`, a minor garbage
275
+ # collection cycle is run, meaning only young objects are marked.
276
+ #
277
+ # The `immediate_mark` keyword argument determines whether or not to perform
278
+ # incremental marking. When set to `true`, marking is completed during the call
279
+ # to this method. When set to `false`, marking is performed in steps that are
280
+ # interleaved with future Ruby code execution, so marking might not be completed
281
+ # during this method call. Note that if `full_mark` is `false`, then marking
282
+ # will always be immediate, regardless of the value of `immediate_mark`.
283
+ #
284
+ # The `immediate_sweep` keyword argument determines whether or not to defer
285
+ # sweeping (using lazy sweep). When set to `false`, sweeping is performed in
286
+ # steps that are interleaved with future Ruby code execution, so sweeping might
287
+ # not be completed during this method call. When set to `true`, sweeping is
288
+ # completed during the call to this method.
289
+ #
290
+ # Note: These keyword arguments are implementation and version-dependent. They
291
+ # are not guaranteed to be future-compatible and may be ignored if the
292
+ # underlying implementation does not support them.
293
+ #
294
+ def self.start: (?immediate_sweep: boolish, ?immediate_mark: boolish, ?full_mark: boolish) -> nil
295
+
296
+ # <!--
297
+ # rdoc-file=gc.rb
298
+ # - GC.stat -> Hash
299
+ # - GC.stat(hash) -> Hash
300
+ # - GC.stat(:key) -> Numeric
301
+ # -->
302
+ # Returns a Hash containing information about the GC.
303
+ #
304
+ # The contents of the hash are implementation-specific and may change in the
305
+ # future without notice.
306
+ #
307
+ # The hash includes internal statistics about GC such as:
308
+ #
309
+ # count
310
+ # : The total number of garbage collections run since application start (count
311
+ # includes both minor and major garbage collections)
312
+ #
313
+ # time
314
+ # : The total time spent in garbage collections (in milliseconds)
315
+ #
316
+ # heap_allocated_pages
317
+ # : The total number of `:heap_eden_pages` + `:heap_tomb_pages`
318
+ #
319
+ # heap_sorted_length
320
+ # : The number of pages that can fit into the buffer that holds references to
321
+ # all pages
322
+ #
323
+ # heap_allocatable_pages
324
+ # : The total number of pages the application could allocate without
325
+ # additional GC
326
+ #
327
+ # heap_available_slots
328
+ # : The total number of slots in all `:heap_allocated_pages`
329
+ #
330
+ # heap_live_slots
331
+ # : The total number of slots which contain live objects
332
+ #
333
+ # heap_free_slots
334
+ # : The total number of slots which do not contain live objects
335
+ #
336
+ # heap_final_slots
337
+ # : The total number of slots with pending finalizers to be run
338
+ #
339
+ # heap_marked_slots
340
+ # : The total number of objects marked in the last GC
341
+ #
342
+ # heap_eden_pages
343
+ # : The total number of pages which contain at least one live slot
344
+ #
345
+ # heap_tomb_pages
346
+ # : The total number of pages which do not contain any live slots
347
+ #
348
+ # total_allocated_pages
349
+ # : The cumulative number of pages allocated since application start
350
+ #
351
+ # total_freed_pages
352
+ # : The cumulative number of pages freed since application start
353
+ #
354
+ # total_allocated_objects
355
+ # : The cumulative number of objects allocated since application start
356
+ #
357
+ # total_freed_objects
358
+ # : The cumulative number of objects freed since application start
359
+ #
360
+ # malloc_increase_bytes
361
+ # : Amount of memory allocated on the heap for objects. Decreased by any GC
362
+ #
363
+ # malloc_increase_bytes_limit
364
+ # : When `:malloc_increase_bytes` crosses this limit, GC is triggered
365
+ #
366
+ # minor_gc_count
367
+ # : The total number of minor garbage collections run since process start
368
+ #
369
+ # major_gc_count
370
+ # : The total number of major garbage collections run since process start
371
+ #
372
+ # compact_count
373
+ # : The total number of compactions run since process start
374
+ #
375
+ # read_barrier_faults
376
+ # : The total number of times the read barrier was triggered during compaction
377
+ #
378
+ # total_moved_objects
379
+ # : The total number of objects compaction has moved
380
+ #
381
+ # remembered_wb_unprotected_objects
382
+ # : The total number of objects without write barriers
383
+ #
384
+ # remembered_wb_unprotected_objects_limit
385
+ # : When `:remembered_wb_unprotected_objects` crosses this limit, major GC is
386
+ # triggered
387
+ #
388
+ # old_objects
389
+ # : Number of live, old objects which have survived at least 3 garbage
390
+ # collections
391
+ #
392
+ # old_objects_limit
393
+ # : When `:old_objects` crosses this limit, major GC is triggered
394
+ #
395
+ # oldmalloc_increase_bytes
396
+ # : Amount of memory allocated on the heap for objects. Decreased by major GC
397
+ #
398
+ # oldmalloc_increase_bytes_limit
399
+ # : When `:oldmalloc_increase_bytes` crosses this limit, major GC is triggered
400
+ #
401
+ #
402
+ # If the optional argument, hash, is given, it is overwritten and returned. This
403
+ # is intended to avoid the probe effect.
404
+ #
405
+ # This method is only expected to work on CRuby.
406
+ #
407
+ def self.stat: (?Hash[Symbol, untyped]? hash) -> Hash[Symbol, untyped]
408
+ | (Symbol key) -> Integer
409
+
410
+ # <!--
411
+ # rdoc-file=gc.rb
412
+ # - GC.measure_total_time = true/false
413
+ # -->
414
+ # Enables measuring GC time. You can get the result with `GC.stat(:time)`. Note
415
+ # that GC time measurement can cause some performance overhead.
416
+ #
417
+ def self.measure_total_time=: [T] (T enable) -> T
418
+
419
+ # <!--
420
+ # rdoc-file=gc.rb
421
+ # - GC.measure_total_time -> true/false
422
+ # -->
423
+ # Returns the measure_total_time flag (default: `true`). Note that measurement
424
+ # can affect the application's performance.
425
+ #
426
+ def self.measure_total_time: () -> bool
427
+
428
+ # <!--
429
+ # rdoc-file=gc.c
430
+ # - GC.auto_compact = flag
431
+ # -->
432
+ # Updates automatic compaction mode.
433
+ #
434
+ # When enabled, the compactor will execute on every major collection.
435
+ #
436
+ # Enabling compaction will degrade performance on major collections.
437
+ #
438
+ def self.auto_compact=: [T] (T enable) -> T
439
+
440
+ # <!--
441
+ # rdoc-file=gc.c
442
+ # - GC.auto_compact -> true or false
443
+ # -->
444
+ # Returns whether or not automatic compaction has been enabled.
445
+ #
446
+ def self.auto_compact: () -> bool
447
+
448
+ # <!--
449
+ # rdoc-file=gc.rb
450
+ # - GC.stat_heap -> Hash
451
+ # - GC.stat_heap(nil, hash) -> Hash
452
+ # - GC.stat_heap(heap_name) -> Hash
453
+ # - GC.stat_heap(heap_name, hash) -> Hash
454
+ # - GC.stat_heap(heap_name, :key) -> Numeric
455
+ # -->
456
+ # Returns information for heaps in the GC.
457
+ #
458
+ # If the first optional argument, `heap_name`, is passed in and not `nil`, it
459
+ # returns a `Hash` containing information about the particular heap. Otherwise,
460
+ # it will return a `Hash` with heap names as keys and a `Hash` containing
461
+ # information about the heap as values.
462
+ #
463
+ # If the second optional argument, `hash_or_key`, is given as a `Hash`, it will
464
+ # be overwritten and returned. This is intended to avoid the probe effect.
465
+ #
466
+ # If both optional arguments are passed in and the second optional argument is a
467
+ # symbol, it will return a `Numeric` value for the particular heap.
468
+ #
469
+ # On CRuby, `heap_name` is of the type `Integer` but may be of type `String` on
470
+ # other implementations.
471
+ #
472
+ # The contents of the hash are implementation-specific and may change in the
473
+ # future without notice.
474
+ #
475
+ # If the optional argument, hash, is given, it is overwritten and returned.
476
+ #
477
+ # This method is only expected to work on CRuby.
478
+ #
479
+ # The hash includes the following keys about the internal information in the GC:
480
+ #
481
+ # slot_size
482
+ # : The slot size of the heap in bytes.
483
+ #
484
+ # heap_allocatable_pages
485
+ # : The number of pages that can be allocated without triggering a new garbage
486
+ # collection cycle.
487
+ #
488
+ # heap_eden_pages
489
+ # : The number of pages in the eden heap.
490
+ #
491
+ # heap_eden_slots
492
+ # : The total number of slots in all of the pages in the eden heap.
493
+ #
494
+ # heap_tomb_pages
495
+ # : The number of pages in the tomb heap. The tomb heap only contains pages
496
+ # that do not have any live objects.
497
+ #
498
+ # heap_tomb_slots
499
+ # : The total number of slots in all of the pages in the tomb heap.
500
+ #
501
+ # total_allocated_pages
502
+ # : The total number of pages that have been allocated in the heap.
503
+ #
504
+ # total_freed_pages
505
+ # : The total number of pages that have been freed and released back to the
506
+ # system in the heap.
507
+ #
508
+ # force_major_gc_count
509
+ # : The number of times this heap has forced major garbage collection cycles
510
+ # to start due to running out of free slots.
511
+ #
512
+ # force_incremental_marking_finish_count
513
+ # : The number of times this heap has forced incremental marking to complete
514
+ # due to running out of pooled slots.
515
+ #
516
+ def self.stat_heap: (?Integer? heap_name, ?Hash[Symbol, untyped]? hash) -> Hash[Symbol, untyped]
517
+ | (Integer heap_name, Symbol key) -> Integer
518
+
519
+ # <!--
520
+ # rdoc-file=gc.c
521
+ # - GC.latest_compact_info -> hash
522
+ # -->
523
+ # Returns information about object moved in the most recent GC compaction.
524
+ #
525
+ # The returned hash has two keys :considered and :moved. The hash for
526
+ # :considered lists the number of objects that were considered for movement by
527
+ # the compactor, and the :moved hash lists the number of objects that were
528
+ # actually moved. Some objects can't be moved (maybe they were pinned) so these
529
+ # numbers can be used to calculate compaction efficiency.
530
+ #
531
+ def self.latest_compact_info: () -> compact_info
532
+
533
+ # <!--
534
+ # rdoc-file=gc.rb
535
+ # - GC.stress -> integer, true, or false
536
+ # -->
537
+ # Returns the current status of GC stress mode.
538
+ #
539
+ def self.stress: () -> (Integer | bool)
540
+
541
+ # <!--
542
+ # rdoc-file=gc.rb
543
+ # - GC.stress = flag -> flag
544
+ # -->
545
+ # Updates the GC stress mode.
546
+ #
547
+ # When stress mode is enabled, the GC is invoked at every GC opportunity: all
548
+ # memory and object allocations.
549
+ #
550
+ # Enabling stress mode will degrade performance; it is only for debugging.
551
+ #
552
+ # The flag can be true, false, or an integer bitwise-ORed with the following
553
+ # flags:
554
+ # 0x01:: no major GC
555
+ # 0x02:: no immediate sweep
556
+ # 0x04:: full mark after malloc/calloc/realloc
557
+ #
558
+ def self.stress=: (Integer flag) -> Integer
559
+ | (bool flag) -> bool
560
+
561
+ # <!--
562
+ # rdoc-file=gc.rb
563
+ # - GC.total_time -> int
564
+ # -->
565
+ # Returns the measured GC total time in nanoseconds.
566
+ #
567
+ def self.total_time: () -> Integer
568
+
569
+ # <!--
570
+ # rdoc-file=gc.c
571
+ # - GC.compact
572
+ # -->
573
+ # This function compacts objects together in Ruby's heap. It eliminates unused
574
+ # space (or fragmentation) in the heap by moving objects in to that unused
575
+ # space. This function returns a hash which contains statistics about which
576
+ # objects were moved. See `GC.latest_gc_info` for details about compaction
577
+ # statistics.
578
+ #
579
+ # This method is implementation specific and not expected to be implemented in
580
+ # any implementation besides MRI.
581
+ #
582
+ # To test whether GC compaction is supported, use the idiom:
583
+ #
584
+ # GC.respond_to?(:compact)
585
+ #
586
+ def self.compact: () -> compact_info
587
+
588
+ # The type that `GC.compact` and related functions can return.
589
+ #
590
+ type compact_info = Hash[:considered | :moved | :moved_up | :moved_down, Hash[Symbol, Integer]]
591
+
592
+ # <!--
593
+ # rdoc-file=gc.rb
594
+ # - GC.verify_compaction_references(toward: nil, double_heap: false) -> hash
595
+ # -->
596
+ # Verify compaction reference consistency.
597
+ #
598
+ # This method is implementation specific. During compaction, objects that were
599
+ # moved are replaced with T_MOVED objects. No object should have a reference to
600
+ # a T_MOVED object after compaction.
601
+ #
602
+ # This function expands the heap to ensure room to move all objects, compacts
603
+ # the heap to make sure everything moves, updates all references, then performs
604
+ # a full GC. If any object contains a reference to a T_MOVED object, that
605
+ # object should be pushed on the mark stack, and will make a SEGV.
606
+ #
607
+ def self.verify_compaction_references: (?toward: :empty | untyped, ?double_heap: boolish, ?expand_heap: boolish) -> compact_info
608
+
609
+ # <!--
610
+ # rdoc-file=gc.c
611
+ # - GC.verify_internal_consistency -> nil
612
+ # -->
613
+ # Verify internal consistency.
614
+ #
615
+ # This method is implementation specific. Now this method checks generational
616
+ # consistency if RGenGC is supported.
617
+ #
618
+ def self.verify_internal_consistency: () -> nil
619
+
620
+ # <!--
621
+ # rdoc-file=gc.rb
622
+ # - GC.latest_gc_info -> hash
623
+ # - GC.latest_gc_info(hash) -> hash
624
+ # - GC.latest_gc_info(key) -> value
625
+ # -->
626
+ # Returns information about the most recent garbage collection.
627
+ #
628
+ # If the argument `hash` is given and is a Hash object, it is overwritten and
629
+ # returned. This is intended to avoid the probe effect.
630
+ #
631
+ # If the argument `key` is given and is a Symbol object, it returns the value
632
+ # associated with the key. This is equivalent to `GC.latest_gc_info[key]`.
633
+ #
634
+ def self.latest_gc_info: (?Hash[Symbol, untyped]? hash) -> Hash[Symbol, untyped]
635
+ | (Symbol key) -> untyped
636
+
637
+ # <!--
638
+ # rdoc-file=gc.rb
639
+ # - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
640
+ # -->
641
+ # Alias of GC.start
642
+ #
643
+ def garbage_collect: (?immediate_sweep: boolish immediate_sweep, ?immediate_mark: boolish immediate_mark, ?full_mark: boolish full_mark) -> nil
644
+ end