rbs 2.8.4 → 3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +12 -4
  3. data/.github/workflows/comments.yml +11 -11
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +40 -49
  6. data/.github/workflows/typecheck.yml +36 -0
  7. data/.github/workflows/windows.yml +28 -0
  8. data/.gitignore +1 -0
  9. data/.rubocop.yml +42 -2
  10. data/CHANGELOG.md +845 -1
  11. data/README.md +64 -4
  12. data/Rakefile +198 -18
  13. data/Steepfile +11 -11
  14. data/config.yml +311 -0
  15. data/core/array.rbs +2189 -1914
  16. data/core/basic_object.rbs +59 -84
  17. data/core/binding.rbs +7 -69
  18. data/core/builtin.rbs +210 -11
  19. data/core/class.rbs +37 -0
  20. data/core/comparable.rbs +23 -25
  21. data/core/complex.rbs +449 -227
  22. data/core/constants.rbs +29 -21
  23. data/core/data.rbs +415 -0
  24. data/core/dir.rbs +698 -415
  25. data/core/encoding.rbs +468 -843
  26. data/core/enumerable.rbs +495 -455
  27. data/core/enumerator/product.rbs +92 -0
  28. data/core/enumerator.rbs +106 -9
  29. data/core/env.rbs +1 -1
  30. data/core/errno.rbs +506 -605
  31. data/core/errors.rbs +15 -17
  32. data/core/exception.rbs +361 -145
  33. data/core/false_class.rbs +39 -26
  34. data/core/fiber.rbs +121 -14
  35. data/core/file.rbs +1262 -320
  36. data/core/file_test.rbs +62 -45
  37. data/core/float.rbs +187 -208
  38. data/core/gc.rbs +446 -196
  39. data/core/global_variables.rbs +29 -29
  40. data/core/hash.rbs +242 -349
  41. data/core/integer.rbs +246 -308
  42. data/core/io/buffer.rbs +373 -122
  43. data/core/io/wait.rbs +29 -17
  44. data/core/io.rbs +1881 -1518
  45. data/core/kernel.rbs +2116 -1538
  46. data/core/marshal.rbs +24 -14
  47. data/core/match_data.rbs +413 -166
  48. data/core/math.rbs +531 -291
  49. data/core/method.rbs +101 -32
  50. data/core/module.rbs +228 -64
  51. data/core/nil_class.rbs +106 -47
  52. data/core/numeric.rbs +206 -292
  53. data/core/object.rbs +73 -1168
  54. data/core/object_space/weak_key_map.rbs +166 -0
  55. data/core/object_space.rbs +5 -3
  56. data/core/proc.rbs +280 -39
  57. data/core/process.rbs +1318 -658
  58. data/core/ractor.rbs +200 -134
  59. data/core/random.rbs +21 -4
  60. data/core/range.rbs +309 -153
  61. data/core/rational.rbs +4 -12
  62. data/core/rb_config.rbs +64 -43
  63. data/core/rbs/unnamed/argf.rbs +411 -147
  64. data/core/rbs/unnamed/env_class.rbs +137 -253
  65. data/core/rbs/unnamed/random.rbs +49 -26
  66. data/core/refinement.rbs +16 -1
  67. data/core/regexp.rbs +1568 -862
  68. data/core/ruby_vm.rbs +719 -7
  69. data/core/rubygems/config_file.rbs +3 -0
  70. data/core/rubygems/errors.rbs +69 -6
  71. data/core/rubygems/rubygems.rbs +71 -17
  72. data/core/rubygems/version.rbs +11 -7
  73. data/{stdlib/set/0 → core}/set.rbs +80 -91
  74. data/core/signal.rbs +14 -8
  75. data/core/string.rbs +1732 -1607
  76. data/core/struct.rbs +467 -95
  77. data/core/symbol.rbs +215 -245
  78. data/core/thread.rbs +133 -89
  79. data/core/thread_group.rbs +9 -9
  80. data/core/time.rbs +1141 -841
  81. data/core/trace_point.rbs +181 -121
  82. data/core/true_class.rbs +58 -32
  83. data/core/unbound_method.rbs +103 -30
  84. data/core/warning.rbs +50 -5
  85. data/docs/CONTRIBUTING.md +1 -1
  86. data/docs/architecture.md +110 -0
  87. data/docs/collection.md +59 -5
  88. data/docs/data_and_struct.md +86 -0
  89. data/docs/gem.md +57 -0
  90. data/docs/rbs_by_example.md +16 -35
  91. data/docs/repo.md +1 -1
  92. data/docs/sigs.md +7 -7
  93. data/docs/stdlib.md +63 -5
  94. data/docs/syntax.md +255 -61
  95. data/docs/tools.md +1 -0
  96. data/ext/rbs_extension/extconf.rb +10 -0
  97. data/ext/rbs_extension/lexer.c +1741 -1548
  98. data/ext/rbs_extension/lexer.h +11 -1
  99. data/ext/rbs_extension/lexer.re +12 -6
  100. data/ext/rbs_extension/lexstate.c +26 -3
  101. data/ext/rbs_extension/location.c +119 -111
  102. data/ext/rbs_extension/location.h +32 -7
  103. data/ext/rbs_extension/main.c +3 -0
  104. data/ext/rbs_extension/parser.c +883 -481
  105. data/ext/rbs_extension/parserstate.c +65 -25
  106. data/ext/rbs_extension/parserstate.h +13 -3
  107. data/ext/rbs_extension/rbs_extension.h +1 -10
  108. data/ext/rbs_extension/unescape.c +7 -47
  109. data/goodcheck.yml +2 -2
  110. data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
  111. data/include/rbs/ruby_objs.h +72 -0
  112. data/include/rbs.h +7 -0
  113. data/lib/rbs/annotate/annotations.rb +3 -3
  114. data/lib/rbs/annotate/formatter.rb +13 -3
  115. data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
  116. data/lib/rbs/annotate/rdoc_source.rb +12 -3
  117. data/lib/rbs/ast/declarations.rb +85 -2
  118. data/lib/rbs/ast/directives.rb +39 -0
  119. data/lib/rbs/ast/members.rb +49 -15
  120. data/lib/rbs/ast/type_param.rb +104 -15
  121. data/lib/rbs/ast/visitor.rb +137 -0
  122. data/lib/rbs/buffer.rb +5 -0
  123. data/lib/rbs/cli/colored_io.rb +48 -0
  124. data/lib/rbs/cli/diff.rb +83 -0
  125. data/lib/rbs/cli/validate.rb +356 -0
  126. data/lib/rbs/cli.rb +253 -143
  127. data/lib/rbs/collection/cleaner.rb +8 -1
  128. data/lib/rbs/collection/config/lockfile.rb +92 -0
  129. data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
  130. data/lib/rbs/collection/config.rb +19 -46
  131. data/lib/rbs/collection/installer.rb +12 -13
  132. data/lib/rbs/collection/sources/base.rb +2 -2
  133. data/lib/rbs/collection/sources/git.rb +146 -69
  134. data/lib/rbs/collection/sources/local.rb +81 -0
  135. data/lib/rbs/collection/sources/rubygems.rb +10 -12
  136. data/lib/rbs/collection/sources/stdlib.rb +14 -13
  137. data/lib/rbs/collection/sources.rb +15 -2
  138. data/lib/rbs/collection.rb +2 -1
  139. data/lib/rbs/definition.rb +13 -16
  140. data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
  141. data/lib/rbs/definition_builder/method_builder.rb +4 -4
  142. data/lib/rbs/definition_builder.rb +489 -584
  143. data/lib/rbs/diff.rb +125 -0
  144. data/lib/rbs/environment/use_map.rb +77 -0
  145. data/lib/rbs/environment.rb +406 -105
  146. data/lib/rbs/environment_loader.rb +48 -44
  147. data/lib/rbs/environment_walker.rb +1 -1
  148. data/lib/rbs/errors.rb +175 -56
  149. data/lib/rbs/file_finder.rb +28 -0
  150. data/lib/rbs/location_aux.rb +8 -7
  151. data/lib/rbs/locator.rb +37 -15
  152. data/lib/rbs/method_type.rb +23 -0
  153. data/lib/rbs/namespace.rb +1 -0
  154. data/lib/rbs/parser/lex_result.rb +15 -0
  155. data/lib/rbs/parser/token.rb +23 -0
  156. data/lib/rbs/parser_aux.rb +22 -13
  157. data/lib/rbs/prototype/helpers.rb +48 -22
  158. data/lib/rbs/prototype/node_usage.rb +99 -0
  159. data/lib/rbs/prototype/rb.rb +125 -31
  160. data/lib/rbs/prototype/rbi.rb +49 -36
  161. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  162. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  163. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  164. data/lib/rbs/prototype/runtime.rb +273 -159
  165. data/lib/rbs/resolver/constant_resolver.rb +24 -8
  166. data/lib/rbs/resolver/type_name_resolver.rb +41 -7
  167. data/lib/rbs/sorter.rb +153 -123
  168. data/lib/rbs/substitution.rb +19 -0
  169. data/lib/rbs/subtractor.rb +201 -0
  170. data/lib/rbs/test/errors.rb +24 -11
  171. data/lib/rbs/test/guaranteed.rb +30 -0
  172. data/lib/rbs/test/hook.rb +45 -40
  173. data/lib/rbs/test/setup.rb +1 -1
  174. data/lib/rbs/test/tester.rb +1 -1
  175. data/lib/rbs/test/type_check.rb +120 -23
  176. data/lib/rbs/test.rb +6 -3
  177. data/lib/rbs/type_alias_dependency.rb +13 -3
  178. data/lib/rbs/type_alias_regularity.rb +21 -14
  179. data/lib/rbs/type_name.rb +18 -13
  180. data/lib/rbs/types.rb +352 -18
  181. data/lib/rbs/unit_test/convertibles.rb +176 -0
  182. data/lib/rbs/unit_test/spy.rb +136 -0
  183. data/lib/rbs/unit_test/type_assertions.rb +341 -0
  184. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  185. data/lib/rbs/unit_test.rb +6 -0
  186. data/lib/rbs/validator.rb +55 -30
  187. data/lib/rbs/variance_calculator.rb +26 -23
  188. data/lib/rbs/vendorer.rb +3 -3
  189. data/lib/rbs/version.rb +1 -1
  190. data/lib/rbs/writer.rb +69 -22
  191. data/lib/rbs.rb +7 -2
  192. data/lib/rdoc/discover.rb +1 -1
  193. data/lib/rdoc_plugin/parser.rb +5 -5
  194. data/rbs.gemspec +12 -2
  195. data/schema/decls.json +1 -1
  196. data/schema/members.json +15 -10
  197. data/sig/ancestor_builder.rbs +4 -0
  198. data/sig/ancestor_graph.rbs +22 -2
  199. data/sig/annotate/formatter.rbs +2 -2
  200. data/sig/annotate/rdoc_annotater.rbs +1 -1
  201. data/sig/cli/colored_io.rbs +15 -0
  202. data/sig/cli/diff.rbs +21 -0
  203. data/sig/cli/validate.rbs +43 -0
  204. data/sig/cli.rbs +4 -0
  205. data/sig/collection/config/lockfile.rbs +74 -0
  206. data/sig/collection/config/lockfile_generator.rbs +66 -0
  207. data/sig/collection/config.rbs +5 -48
  208. data/sig/collection/installer.rbs +1 -1
  209. data/sig/collection/sources.rbs +105 -33
  210. data/sig/constant.rbs +1 -1
  211. data/sig/declarations.rbs +42 -3
  212. data/sig/definition.rbs +26 -10
  213. data/sig/definition_builder.rbs +103 -81
  214. data/sig/diff.rbs +28 -0
  215. data/sig/directives.rbs +61 -0
  216. data/sig/environment.rbs +175 -29
  217. data/sig/environment_loader.rbs +20 -18
  218. data/sig/errors.rbs +123 -2
  219. data/sig/file_finder.rbs +28 -0
  220. data/sig/location.rbs +0 -3
  221. data/sig/locator.rbs +14 -2
  222. data/sig/manifest.yaml +0 -1
  223. data/sig/members.rbs +32 -9
  224. data/sig/method_types.rbs +10 -4
  225. data/sig/namespace.rbs +2 -3
  226. data/sig/parser.rbs +55 -16
  227. data/sig/prototype/helpers.rbs +4 -0
  228. data/sig/prototype/node_usage.rbs +20 -0
  229. data/sig/prototype/rb.rbs +10 -2
  230. data/sig/prototype/rbi.rbs +2 -0
  231. data/sig/prototype/runtime.rbs +182 -0
  232. data/sig/rbs.rbs +1 -1
  233. data/sig/rdoc/rbs.rbs +4 -0
  234. data/sig/repository.rbs +7 -5
  235. data/sig/resolver/constant_resolver.rbs +3 -4
  236. data/sig/resolver/context.rbs +1 -1
  237. data/sig/resolver/type_name_resolver.rbs +5 -1
  238. data/sig/shims/bundler.rbs +38 -0
  239. data/sig/shims/rubygems.rbs +19 -0
  240. data/sig/sorter.rbs +23 -5
  241. data/sig/substitution.rbs +6 -0
  242. data/sig/subtractor.rbs +37 -0
  243. data/sig/test/errors.rbs +52 -0
  244. data/sig/test/guranteed.rbs +9 -0
  245. data/sig/test/type_check.rbs +19 -0
  246. data/sig/test.rbs +82 -0
  247. data/sig/type_alias_dependency.rbs +31 -0
  248. data/sig/type_alias_regularity.rbs +12 -6
  249. data/sig/type_param.rbs +45 -9
  250. data/sig/typename.rbs +8 -5
  251. data/sig/types.rbs +119 -12
  252. data/sig/unit_test/convertibles.rbs +154 -0
  253. data/sig/unit_test/spy.rbs +28 -0
  254. data/sig/unit_test/type_assertions.rbs +194 -0
  255. data/sig/unit_test/with_aliases.rbs +136 -0
  256. data/sig/use_map.rbs +35 -0
  257. data/sig/validator.rbs +12 -5
  258. data/sig/variance_calculator.rbs +3 -1
  259. data/sig/vendorer.rbs +1 -1
  260. data/sig/visitor.rbs +47 -0
  261. data/sig/writer.rbs +6 -2
  262. data/src/constants.c +153 -0
  263. data/src/ruby_objs.c +793 -0
  264. data/stdlib/base64/0/base64.rbs +298 -45
  265. data/stdlib/benchmark/0/benchmark.rbs +12 -3
  266. data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
  267. data/stdlib/cgi/0/core.rbs +68 -15
  268. data/stdlib/cgi/0/manifest.yaml +1 -0
  269. data/stdlib/coverage/0/coverage.rbs +50 -11
  270. data/stdlib/csv/0/csv.rbs +90 -119
  271. data/stdlib/csv/0/manifest.yaml +1 -0
  272. data/stdlib/date/0/date.rbs +806 -735
  273. data/stdlib/date/0/date_time.rbs +70 -211
  274. data/stdlib/dbm/0/dbm.rbs +0 -2
  275. data/stdlib/delegate/0/delegator.rbs +184 -0
  276. data/stdlib/delegate/0/kernel.rbs +47 -0
  277. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  278. data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
  279. data/stdlib/digest/0/digest.rbs +48 -35
  280. data/stdlib/erb/0/erb.rbs +15 -39
  281. data/stdlib/etc/0/etc.rbs +174 -54
  282. data/stdlib/fileutils/0/fileutils.rbs +1234 -385
  283. data/stdlib/forwardable/0/forwardable.rbs +4 -4
  284. data/stdlib/io-console/0/io-console.rbs +82 -17
  285. data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
  286. data/stdlib/json/0/json.rbs +434 -151
  287. data/stdlib/kconv/0/kconv.rbs +166 -0
  288. data/stdlib/logger/0/formatter.rbs +0 -2
  289. data/stdlib/logger/0/log_device.rbs +1 -3
  290. data/stdlib/logger/0/logger.rbs +465 -328
  291. data/stdlib/minitest/0/kernel.rbs +2 -2
  292. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  293. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  294. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  295. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  296. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  297. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  298. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  299. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  300. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  301. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  302. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  303. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  304. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  305. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  306. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  307. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  308. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  309. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  310. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  311. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  312. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  313. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +7 -7
  314. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  315. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  316. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  317. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  318. data/stdlib/minitest/0/minitest.rbs +41 -892
  319. data/stdlib/monitor/0/monitor.rbs +91 -10
  320. data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
  321. data/stdlib/net-http/0/manifest.yaml +1 -1
  322. data/stdlib/net-http/0/net-http.rbs +3858 -964
  323. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  324. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  325. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  326. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  327. data/stdlib/nkf/0/nkf.rbs +35 -5
  328. data/stdlib/objspace/0/objspace.rbs +40 -18
  329. data/stdlib/observable/0/observable.rbs +217 -0
  330. data/stdlib/open-uri/0/manifest.yaml +4 -0
  331. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  332. data/stdlib/open3/0/open3.rbs +147 -0
  333. data/stdlib/openssl/0/manifest.yaml +1 -0
  334. data/stdlib/openssl/0/openssl.rbs +681 -316
  335. data/stdlib/optparse/0/optparse.rbs +100 -65
  336. data/stdlib/pathname/0/pathname.rbs +24 -15
  337. data/stdlib/pp/0/manifest.yaml +2 -0
  338. data/stdlib/pp/0/pp.rbs +300 -0
  339. data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
  340. data/stdlib/pstore/0/pstore.rbs +370 -156
  341. data/stdlib/psych/0/core_ext.rbs +12 -0
  342. data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
  343. data/stdlib/psych/0/manifest.yaml +3 -0
  344. data/stdlib/psych/0/psych.rbs +402 -0
  345. data/stdlib/{yaml → psych}/0/store.rbs +2 -2
  346. data/stdlib/pty/0/pty.rbs +63 -11
  347. data/stdlib/rdoc/0/code_object.rbs +51 -0
  348. data/stdlib/rdoc/0/comment.rbs +59 -0
  349. data/stdlib/rdoc/0/context.rbs +153 -0
  350. data/stdlib/rdoc/0/markup.rbs +117 -0
  351. data/stdlib/rdoc/0/parser.rbs +56 -0
  352. data/stdlib/rdoc/0/rdoc.rbs +13 -380
  353. data/stdlib/rdoc/0/ri.rbs +17 -0
  354. data/stdlib/rdoc/0/store.rbs +48 -0
  355. data/stdlib/rdoc/0/top_level.rbs +97 -0
  356. data/stdlib/resolv/0/resolv.rbs +16 -79
  357. data/stdlib/ripper/0/ripper.rbs +1648 -0
  358. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  359. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  360. data/stdlib/singleton/0/singleton.rbs +0 -3
  361. data/stdlib/socket/0/addrinfo.rbs +13 -18
  362. data/stdlib/socket/0/basic_socket.rbs +5 -10
  363. data/stdlib/socket/0/ip_socket.rbs +0 -2
  364. data/stdlib/socket/0/socket.rbs +77 -46
  365. data/stdlib/socket/0/tcp_server.rbs +0 -5
  366. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  367. data/stdlib/socket/0/udp_socket.rbs +4 -5
  368. data/stdlib/socket/0/unix_server.rbs +0 -5
  369. data/stdlib/socket/0/unix_socket.rbs +2 -4
  370. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
  371. data/stdlib/strscan/0/string_scanner.rbs +1269 -425
  372. data/stdlib/tempfile/0/tempfile.rbs +224 -61
  373. data/stdlib/time/0/time.rbs +48 -35
  374. data/stdlib/timeout/0/timeout.rbs +17 -8
  375. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  376. data/stdlib/tsort/0/tsort.rbs +0 -4
  377. data/stdlib/uri/0/common.rbs +271 -144
  378. data/stdlib/uri/0/file.rbs +5 -0
  379. data/stdlib/uri/0/ftp.rbs +1 -1
  380. data/stdlib/uri/0/generic.rbs +26 -22
  381. data/stdlib/uri/0/http.rbs +4 -4
  382. data/stdlib/uri/0/ldap.rbs +1 -1
  383. data/stdlib/uri/0/mailto.rbs +84 -0
  384. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  385. data/stdlib/yaml/0/manifest.yaml +1 -2
  386. data/stdlib/yaml/0/yaml.rbs +1 -199
  387. data/stdlib/zlib/0/buf_error.rbs +10 -0
  388. data/stdlib/zlib/0/data_error.rbs +10 -0
  389. data/stdlib/zlib/0/deflate.rbs +210 -0
  390. data/stdlib/zlib/0/error.rbs +20 -0
  391. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  392. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  393. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  394. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  395. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  396. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  397. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  398. data/stdlib/zlib/0/inflate.rbs +180 -0
  399. data/stdlib/zlib/0/mem_error.rbs +10 -0
  400. data/stdlib/zlib/0/need_dict.rbs +13 -0
  401. data/stdlib/zlib/0/stream_end.rbs +11 -0
  402. data/stdlib/zlib/0/stream_error.rbs +11 -0
  403. data/stdlib/zlib/0/version_error.rbs +11 -0
  404. data/stdlib/zlib/0/zlib.rbs +1 -3
  405. data/stdlib/zlib/0/zstream.rbs +200 -0
  406. data/templates/include/rbs/constants.h.erb +20 -0
  407. data/templates/include/rbs/ruby_objs.h.erb +10 -0
  408. data/templates/src/constants.c.erb +36 -0
  409. data/templates/src/ruby_objs.c.erb +27 -0
  410. data/templates/template.rb +122 -0
  411. metadata +136 -36
  412. data/Gemfile +0 -33
  413. data/Gemfile.lock +0 -118
  414. data/core/deprecated.rbs +0 -9
  415. data/ext/rbs_extension/constants.c +0 -135
  416. data/ext/rbs_extension/ruby_objs.c +0 -525
  417. data/ext/rbs_extension/ruby_objs.h +0 -43
  418. data/lib/rbs/constant_table.rb +0 -167
  419. data/lib/rbs/parser_compat/lexer_error.rb +0 -6
  420. data/lib/rbs/parser_compat/located_value.rb +0 -7
  421. data/lib/rbs/parser_compat/semantics_error.rb +0 -6
  422. data/lib/rbs/parser_compat/syntax_error.rb +0 -6
  423. data/lib/rbs/test/spy.rb +0 -6
  424. data/lib/rbs/type_name_resolver.rb +0 -67
  425. data/sig/constant_table.rbs +0 -30
  426. data/sig/shims/abstract_syntax_tree.rbs +0 -25
  427. data/sig/shims/pp.rbs +0 -3
  428. data/sig/shims/ripper.rbs +0 -8
  429. data/sig/shims.rbs +0 -69
  430. data/sig/type_name_resolver.rbs +0 -26
  431. data/stdlib/minitest/0/manifest.yaml +0 -2
  432. data/stdlib/prime/0/integer-extension.rbs +0 -41
  433. data/stdlib/prime/0/manifest.yaml +0 -2
  434. data/stdlib/prime/0/prime.rbs +0 -372
@@ -1,42 +1,206 @@
1
1
  # <!-- rdoc-file=lib/base64.rb -->
2
- # The Base64 module provides for the encoding (#encode64, #strict_encode64,
3
- # #urlsafe_encode64) and decoding (#decode64, #strict_decode64,
4
- # #urlsafe_decode64) of binary data using a Base64 representation.
2
+ # Module Base64 provides methods for:
5
3
  #
6
- # ## Example
4
+ # * Encoding a binary string (containing non-ASCII characters) as a string of
5
+ # printable ASCII characters.
6
+ # * Decoding such an encoded string.
7
7
  #
8
- # A simple encoding and decoding.
8
+ # Base64 is commonly used in contexts where binary data is not allowed or
9
+ # supported:
9
10
  #
10
- # require "base64"
11
+ # * Images in HTML or CSS files, or in URLs.
12
+ # * Email attachments.
11
13
  #
12
- # enc = Base64.encode64('Send reinforcements')
13
- # # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
14
- # plain = Base64.decode64(enc)
15
- # # -> "Send reinforcements"
14
+ # A Base64-encoded string is about one-third larger that its source. See the
15
+ # [Wikipedia article](https://en.wikipedia.org/wiki/Base64) for more
16
+ # information.
16
17
  #
17
- # The purpose of using base64 to encode data is that it translates any binary
18
- # data into purely printable characters.
18
+ # This module provides three pairs of encode/decode methods. Your choices among
19
+ # these methods should depend on:
20
+ #
21
+ # * Which character set is to be used for encoding and decoding.
22
+ # * Whether "padding" is to be used.
23
+ # * Whether encoded strings are to contain newlines.
24
+ #
25
+ # Note: Examples on this page assume that the including program has executed:
26
+ #
27
+ # require 'base64'
28
+ #
29
+ # ## Encoding Character Sets
30
+ #
31
+ # A Base64-encoded string consists only of characters from a 64-character set:
32
+ #
33
+ # * `('A'..'Z')`.
34
+ # * `('a'..'z')`.
35
+ # * `('0'..'9')`.
36
+ # * `=`, the 'padding' character.
37
+ # * Either:
38
+ # * `%w[+ /]`:
39
+ # [RFC-2045-compliant](https://datatracker.ietf.org/doc/html/rfc2045);
40
+ # *not* safe for URLs.
41
+ # * `%w[- _]`:
42
+ # [RFC-4648-compliant](https://datatracker.ietf.org/doc/html/rfc4648);
43
+ # safe for URLs.
44
+ #
45
+ # If you are working with Base64-encoded strings that will come from or be put
46
+ # into URLs, you should choose this encoder-decoder pair of RFC-4648-compliant
47
+ # methods:
48
+ #
49
+ # * Base64.urlsafe_encode64 and Base64.urlsafe_decode64.
50
+ #
51
+ # Otherwise, you may choose any of the pairs in this module, including the pair
52
+ # above, or the RFC-2045-compliant pairs:
53
+ #
54
+ # * Base64.encode64 and Base64.decode64.
55
+ # * Base64.strict_encode64 and Base64.strict_decode64.
56
+ #
57
+ # ## Padding
58
+ #
59
+ # Base64-encoding changes a triplet of input bytes into a quartet of output
60
+ # characters.
61
+ #
62
+ # **Padding in Encode Methods**
63
+ #
64
+ # Padding -- extending an encoded string with zero, one, or two trailing `=`
65
+ # characters -- is performed by methods Base64.encode64, Base64.strict_encode64,
66
+ # and, by default, Base64.urlsafe_encode64:
67
+ #
68
+ # Base64.encode64('s') # => "cw==\n"
69
+ # Base64.strict_encode64('s') # => "cw=="
70
+ # Base64.urlsafe_encode64('s') # => "cw=="
71
+ # Base64.urlsafe_encode64('s', padding: false) # => "cw"
72
+ #
73
+ # When padding is performed, the encoded string is always of length *4n*, where
74
+ # `n` is a non-negative integer:
75
+ #
76
+ # * Input bytes of length *3n* generate unpadded output characters of length
77
+ # *4n*:
78
+ #
79
+ # # n = 1: 3 bytes => 4 characters.
80
+ # Base64.strict_encode64('123') # => "MDEy"
81
+ # # n = 2: 6 bytes => 8 characters.
82
+ # Base64.strict_encode64('123456') # => "MDEyMzQ1"
83
+ #
84
+ # * Input bytes of length *3n+1* generate padded output characters of length
85
+ # *4(n+1)*, with two padding characters at the end:
86
+ #
87
+ # # n = 1: 4 bytes => 8 characters.
88
+ # Base64.strict_encode64('1234') # => "MDEyMw=="
89
+ # # n = 2: 7 bytes => 12 characters.
90
+ # Base64.strict_encode64('1234567') # => "MDEyMzQ1Ng=="
91
+ #
92
+ # * Input bytes of length *3n+2* generate padded output characters of length
93
+ # *4(n+1)*, with one padding character at the end:
94
+ #
95
+ # # n = 1: 5 bytes => 8 characters.
96
+ # Base64.strict_encode64('12345') # => "MDEyMzQ="
97
+ # # n = 2: 8 bytes => 12 characters.
98
+ # Base64.strict_encode64('12345678') # => "MDEyMzQ1Njc="
99
+ #
100
+ # When padding is suppressed, for a positive integer *n*:
101
+ #
102
+ # * Input bytes of length *3n* generate unpadded output characters of length
103
+ # *4n*:
104
+ #
105
+ # # n = 1: 3 bytes => 4 characters.
106
+ # Base64.urlsafe_encode64('123', padding: false) # => "MDEy"
107
+ # # n = 2: 6 bytes => 8 characters.
108
+ # Base64.urlsafe_encode64('123456', padding: false) # => "MDEyMzQ1"
109
+ #
110
+ # * Input bytes of length *3n+1* generate unpadded output characters of length
111
+ # *4n+2*, with two padding characters at the end:
112
+ #
113
+ # # n = 1: 4 bytes => 6 characters.
114
+ # Base64.urlsafe_encode64('1234', padding: false) # => "MDEyMw"
115
+ # # n = 2: 7 bytes => 10 characters.
116
+ # Base64.urlsafe_encode64('1234567', padding: false) # => "MDEyMzQ1Ng"
117
+ #
118
+ # * Input bytes of length *3n+2* generate unpadded output characters of length
119
+ # *4n+3*, with one padding character at the end:
120
+ #
121
+ # # n = 1: 5 bytes => 7 characters.
122
+ # Base64.urlsafe_encode64('12345', padding: false) # => "MDEyMzQ"
123
+ # # m = 2: 8 bytes => 11 characters.
124
+ # Base64.urlsafe_encode64('12345678', padding: false) # => "MDEyMzQ1Njc"
125
+ #
126
+ # **Padding in Decode Methods**
127
+ #
128
+ # All of the Base64 decode methods support (but do not require) padding.
129
+ #
130
+ # Method Base64.decode64 does not check the size of the padding:
131
+ #
132
+ # Base64.decode64("MDEyMzQ1Njc") # => "01234567"
133
+ # Base64.decode64("MDEyMzQ1Njc=") # => "01234567"
134
+ # Base64.decode64("MDEyMzQ1Njc==") # => "01234567"
135
+ #
136
+ # Method Base64.strict_decode64 strictly enforces padding size:
137
+ #
138
+ # Base64.strict_decode64("MDEyMzQ1Njc") # Raises ArgumentError
139
+ # Base64.strict_decode64("MDEyMzQ1Njc=") # => "01234567"
140
+ # Base64.strict_decode64("MDEyMzQ1Njc==") # Raises ArgumentError
141
+ #
142
+ # Method Base64.urlsafe_decode64 allows padding in `str`, which if present, must
143
+ # be correct: see [Padding](Base64.html#module-Base64-label-Padding), above:
144
+ #
145
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc") # => "01234567"
146
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc=") # => "01234567"
147
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc==") # Raises ArgumentError.
148
+ #
149
+ # ## Newlines
150
+ #
151
+ # An encoded string returned by Base64.encode64 or Base64.urlsafe_encode64 has
152
+ # an embedded newline character after each 60-character sequence, and, if
153
+ # non-empty, at the end:
154
+ #
155
+ # # No newline if empty.
156
+ # encoded = Base64.encode64("\x00" * 0)
157
+ # encoded.index("\n") # => nil
158
+ #
159
+ # # Newline at end of short output.
160
+ # encoded = Base64.encode64("\x00" * 1)
161
+ # encoded.size # => 4
162
+ # encoded.index("\n") # => 4
163
+ #
164
+ # # Newline at end of longer output.
165
+ # encoded = Base64.encode64("\x00" * 45)
166
+ # encoded.size # => 60
167
+ # encoded.index("\n") # => 60
168
+ #
169
+ # # Newlines embedded and at end of still longer output.
170
+ # encoded = Base64.encode64("\x00" * 46)
171
+ # encoded.size # => 65
172
+ # encoded.rindex("\n") # => 65
173
+ # encoded.split("\n").map {|s| s.size } # => [60, 4]
174
+ #
175
+ # The string to be encoded may itself contain newlines, which are encoded as
176
+ # Base64:
177
+ #
178
+ # # Base64.encode64("\n\n\n") # => "CgoK\n"
179
+ # s = "This is line 1\nThis is line 2\n"
180
+ # Base64.encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
19
181
  #
20
182
  module Base64
21
183
  # <!--
22
184
  # rdoc-file=lib/base64.rb
23
185
  # - decode64(str)
24
186
  # -->
25
- # Returns the Base64-decoded version of `str`. This method complies with RFC
26
- # 2045. Characters outside the base alphabet are ignored.
187
+ # Returns a string containing the decoding of an RFC-2045-compliant
188
+ # Base64-encoded string `str`:
189
+ #
190
+ # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
191
+ # Base64.decode64(s) # => "This is line 1\nThis is line 2\n"
27
192
  #
28
- # require 'base64'
29
- # str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
30
- # 'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
31
- # 'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
32
- # puts Base64.decode64(str)
193
+ # Non-Base64 characters in `str` are ignored; see [Encoding Character
194
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above: these
195
+ # include newline characters and characters `-` and `/`:
33
196
  #
34
- # *Generates:*
197
+ # Base64.decode64("\x00\n-_") # => ""
35
198
  #
36
- # This is line one
37
- # This is line two
38
- # This is line three
39
- # And so on...
199
+ # Padding in `str` (even if incorrect) is ignored:
200
+ #
201
+ # Base64.decode64("MDEyMzQ1Njc") # => "01234567"
202
+ # Base64.decode64("MDEyMzQ1Njc=") # => "01234567"
203
+ # Base64.decode64("MDEyMzQ1Njc==") # => "01234567"
40
204
  #
41
205
  def self?.decode64: (String str) -> String
42
206
 
@@ -44,16 +208,34 @@ module Base64
44
208
  # rdoc-file=lib/base64.rb
45
209
  # - encode64(bin)
46
210
  # -->
47
- # Returns the Base64-encoded version of `bin`. This method complies with RFC
48
- # 2045. Line feeds are added to every 60 encoded characters.
211
+ # Returns a string containing the RFC-2045-compliant Base64-encoding of `bin`.
212
+ #
213
+ # Per RFC 2045, the returned string may contain the URL-unsafe characters `+` or
214
+ # `/`; see [Encoding Character
215
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above:
49
216
  #
50
- # require 'base64'
51
- # Base64.encode64("Now is the time for all good coders\nto learn Ruby")
217
+ # Base64.encode64("\xFB\xEF\xBE") # => "++++\n"
218
+ # Base64.encode64("\xFF\xFF\xFF") # => "////\n"
52
219
  #
53
- # *Generates:*
220
+ # The returned string may include padding; see
221
+ # [Padding](Base64.html#module-Base64-label-Padding) above.
54
222
  #
55
- # Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
56
- # UnVieQ==
223
+ # Base64.encode64('*') # => "Kg==\n"
224
+ #
225
+ # The returned string ends with a newline character, and if sufficiently long
226
+ # will have one or more embedded newline characters; see
227
+ # [Newlines](Base64.html#module-Base64-label-Newlines) above:
228
+ #
229
+ # Base64.encode64('*') # => "Kg==\n"
230
+ # Base64.encode64('*' * 46)
231
+ # # => "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKg==\n"
232
+ #
233
+ # The string to be encoded may itself contain newlines, which will be encoded as
234
+ # ordinary Base64:
235
+ #
236
+ # Base64.encode64("\n\n\n") # => "CgoK\n"
237
+ # s = "This is line 1\nThis is line 2\n"
238
+ # Base64.encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK\n"
57
239
  #
58
240
  def self?.encode64: (String bin) -> String
59
241
 
@@ -61,9 +243,25 @@ module Base64
61
243
  # rdoc-file=lib/base64.rb
62
244
  # - strict_decode64(str)
63
245
  # -->
64
- # Returns the Base64-decoded version of `str`. This method complies with RFC
65
- # 4648. ArgumentError is raised if `str` is incorrectly padded or contains
66
- # non-alphabet characters. Note that CR or LF are also rejected.
246
+ # Returns a string containing the decoding of an RFC-2045-compliant
247
+ # Base64-encoded string `str`:
248
+ #
249
+ # s = "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
250
+ # Base64.strict_decode64(s) # => "This is line 1\nThis is line 2\n"
251
+ #
252
+ # Non-Base64 characters in `str` not allowed; see [Encoding Character
253
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above: these
254
+ # include newline characters and characters `-` and `/`:
255
+ #
256
+ # Base64.strict_decode64("\n") # Raises ArgumentError
257
+ # Base64.strict_decode64('-') # Raises ArgumentError
258
+ # Base64.strict_decode64('_') # Raises ArgumentError
259
+ #
260
+ # Padding in `str`, if present, must be correct:
261
+ #
262
+ # Base64.strict_decode64("MDEyMzQ1Njc") # Raises ArgumentError
263
+ # Base64.strict_decode64("MDEyMzQ1Njc=") # => "01234567"
264
+ # Base64.strict_decode64("MDEyMzQ1Njc==") # Raises ArgumentError
67
265
  #
68
266
  def self?.strict_decode64: (String str) -> String
69
267
 
@@ -71,8 +269,33 @@ module Base64
71
269
  # rdoc-file=lib/base64.rb
72
270
  # - strict_encode64(bin)
73
271
  # -->
74
- # Returns the Base64-encoded version of `bin`. This method complies with RFC
75
- # 4648. No line feeds are added.
272
+ # Returns a string containing the RFC-2045-compliant Base64-encoding of `bin`.
273
+ #
274
+ # Per RFC 2045, the returned string may contain the URL-unsafe characters `+` or
275
+ # `/`; see [Encoding Character
276
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above:
277
+ #
278
+ # Base64.strict_encode64("\xFB\xEF\xBE") # => "++++\n"
279
+ # Base64.strict_encode64("\xFF\xFF\xFF") # => "////\n"
280
+ #
281
+ # The returned string may include padding; see
282
+ # [Padding](Base64.html#module-Base64-label-Padding) above.
283
+ #
284
+ # Base64.strict_encode64('*') # => "Kg==\n"
285
+ #
286
+ # The returned string will have no newline characters, regardless of its length;
287
+ # see [Newlines](Base64.html#module-Base64-label-Newlines) above:
288
+ #
289
+ # Base64.strict_encode64('*') # => "Kg=="
290
+ # Base64.strict_encode64('*' * 46)
291
+ # # => "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg=="
292
+ #
293
+ # The string to be encoded may itself contain newlines, which will be encoded as
294
+ # ordinary Base64:
295
+ #
296
+ # Base64.strict_encode64("\n\n\n") # => "CgoK"
297
+ # s = "This is line 1\nThis is line 2\n"
298
+ # Base64.strict_encode64(s) # => "VGhpcyBpcyBsaW5lIDEKVGhpcyBpcyBsaW5lIDIK"
76
299
  #
77
300
  def self?.strict_encode64: (String bin) -> String
78
301
 
@@ -80,12 +303,21 @@ module Base64
80
303
  # rdoc-file=lib/base64.rb
81
304
  # - urlsafe_decode64(str)
82
305
  # -->
83
- # Returns the Base64-decoded version of `str`. This method complies with ``Base
84
- # 64 Encoding with URL and Filename Safe Alphabet'' in RFC 4648. The alphabet
85
- # uses '-' instead of '+' and '_' instead of '/'.
306
+ # Returns the decoding of an RFC-4648-compliant Base64-encoded string `str`:
307
+ #
308
+ # `str` may not contain non-Base64 characters; see [Encoding Character
309
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above:
310
+ #
311
+ # Base64.urlsafe_decode64('+') # Raises ArgumentError.
312
+ # Base64.urlsafe_decode64('/') # Raises ArgumentError.
313
+ # Base64.urlsafe_decode64("\n") # Raises ArgumentError.
86
314
  #
87
- # The padding character is optional. This method accepts both correctly-padded
88
- # and unpadded input. Note that it still rejects incorrectly-padded input.
315
+ # Padding in `str`, if present, must be correct: see
316
+ # [Padding](Base64.html#module-Base64-label-Padding), above:
317
+ #
318
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc") # => "01234567"
319
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc=") # => "01234567"
320
+ # Base64.urlsafe_decode64("MDEyMzQ1Njc==") # Raises ArgumentError.
89
321
  #
90
322
  def self?.urlsafe_decode64: (String str) -> String
91
323
 
@@ -93,10 +325,31 @@ module Base64
93
325
  # rdoc-file=lib/base64.rb
94
326
  # - urlsafe_encode64(bin, padding: true)
95
327
  # -->
96
- # Returns the Base64-encoded version of `bin`. This method complies with ``Base
97
- # 64 Encoding with URL and Filename Safe Alphabet'' in RFC 4648. The alphabet
98
- # uses '-' instead of '+' and '_' instead of '/'. Note that the result can still
99
- # contain '='. You can remove the padding by setting `padding` as false.
328
+ # Returns the RFC-4648-compliant Base64-encoding of `bin`.
329
+ #
330
+ # Per RFC 4648, the returned string will not contain the URL-unsafe characters
331
+ # `+` or `/`, but instead may contain the URL-safe characters `-` and `_`; see
332
+ # [Encoding Character
333
+ # Set](Base64.html#module-Base64-label-Encoding+Character+Sets) above:
334
+ #
335
+ # Base64.urlsafe_encode64("\xFB\xEF\xBE") # => "----"
336
+ # Base64.urlsafe_encode64("\xFF\xFF\xFF") # => "____"
337
+ #
338
+ # By default, the returned string may have padding; see
339
+ # [Padding](Base64.html#module-Base64-label-Padding), above:
340
+ #
341
+ # Base64.urlsafe_encode64('*') # => "Kg=="
342
+ #
343
+ # Optionally, you can suppress padding:
344
+ #
345
+ # Base64.urlsafe_encode64('*', padding: false) # => "Kg"
346
+ #
347
+ # The returned string will have no newline characters, regardless of its length;
348
+ # see [Newlines](Base64.html#module-Base64-label-Newlines) above:
349
+ #
350
+ # Base64.urlsafe_encode64('*') # => "Kg=="
351
+ # Base64.urlsafe_encode64('*' * 46)
352
+ # # => "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg=="
100
353
  #
101
354
  def self?.urlsafe_encode64: (String bin, ?padding: boolish) -> String
102
355
  end
@@ -46,7 +46,6 @@
46
46
  # x.report("upto:") { 1.upto(n) do ; a = "1"; end }
47
47
  # end
48
48
  #
49
- #
50
49
  # The result:
51
50
  #
52
51
  # user system total real
@@ -146,7 +145,7 @@ module Benchmark
146
145
  # >total: 2.930000 0.000000 2.930000 ( 2.932889)
147
146
  # >avg: 0.976667 0.000000 0.976667 ( 0.977630)
148
147
  #
149
- def self?.benchmark: (String caption, ?Integer? label_width, ?String? format, *String labels) { (Report report) -> (Array[Tms] | void) } -> Array[Tms]
148
+ def self?.benchmark: (String caption, ?Integer? label_width, ?String? format, *String labels) { (Report report) -> (Array[Tms] | untyped) } -> Array[Tms]
150
149
 
151
150
  # <!--
152
151
  # rdoc-file=lib/benchmark.rb
@@ -241,7 +240,11 @@ module Benchmark
241
240
  # rdoc-file=lib/benchmark.rb
242
241
  # - realtime() { || ... }
243
242
  # -->
244
- # Returns the elapsed real time used to execute the given block.
243
+ # Returns the elapsed real time used to execute the given block. The unit of
244
+ # time is seconds.
245
+ #
246
+ # Benchmark.realtime { "a" * 1_000_000_000 }
247
+ # #=> 0.5098029999935534
245
248
  #
246
249
  def self?.realtime: () { () -> void } -> Float
247
250
 
@@ -366,17 +369,23 @@ module Benchmark
366
369
  #
367
370
  # `%u`
368
371
  # : Replaced by the user CPU time, as reported by Tms#utime.
372
+ #
369
373
  # `%y`
370
374
  # : Replaced by the system CPU time, as reported by #stime (Mnemonic: y of
371
375
  # "s*y*stem")
376
+ #
372
377
  # `%U`
373
378
  # : Replaced by the children's user CPU time, as reported by Tms#cutime
379
+ #
374
380
  # `%Y`
375
381
  # : Replaced by the children's system CPU time, as reported by Tms#cstime
382
+ #
376
383
  # `%t`
377
384
  # : Replaced by the total CPU time, as reported by Tms#total
385
+ #
378
386
  # `%r`
379
387
  # : Replaced by the elapsed real time, as reported by Tms#real
388
+ #
380
389
  # `%n`
381
390
  # : Replaced by the label string, as reported by Tms#label (Mnemonic: n of
382
391
  # "*n*ame")