rbs 3.7.0 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +3 -3
  3. data/.github/workflows/ruby.yml +7 -7
  4. data/CHANGELOG.md +68 -0
  5. data/core/array.rbs +1756 -1591
  6. data/core/basic_object.rbs +38 -35
  7. data/core/comparable.rbs +1 -1
  8. data/core/complex.rbs +166 -94
  9. data/core/data.rbs +1 -1
  10. data/core/dir.rbs +1 -17
  11. data/core/encoding.rbs +12 -32
  12. data/core/enumerable.rbs +270 -266
  13. data/core/enumerator.rbs +0 -2
  14. data/core/env.rbs +1 -1
  15. data/core/errno.rbs +33 -16
  16. data/core/errors.rbs +6 -2
  17. data/core/exception.rbs +235 -169
  18. data/core/fiber.rbs +3 -2
  19. data/core/file.rbs +26 -75
  20. data/core/float.rbs +125 -72
  21. data/core/gc.rbs +156 -40
  22. data/core/hash.rbs +122 -143
  23. data/core/integer.rbs +79 -50
  24. data/core/io/buffer.rbs +49 -43
  25. data/core/io.rbs +99 -146
  26. data/core/kernel.rbs +292 -202
  27. data/core/match_data.rbs +76 -2
  28. data/core/math.rbs +0 -36
  29. data/core/module.rbs +28 -23
  30. data/core/nil_class.rbs +2 -2
  31. data/core/numeric.rbs +101 -104
  32. data/core/object.rbs +0 -4
  33. data/core/object_space/weak_key_map.rbs +3 -4
  34. data/core/object_space.rbs +3 -3
  35. data/core/proc.rbs +80 -12
  36. data/core/process.rbs +109 -57
  37. data/core/ractor.rbs +54 -4
  38. data/core/range.rbs +114 -87
  39. data/core/rational.rbs +0 -2
  40. data/core/rbs/unnamed/argf.rbs +234 -33
  41. data/core/rbs/unnamed/env_class.rbs +35 -53
  42. data/core/rbs/unnamed/random.rbs +1 -2
  43. data/core/regexp.rbs +6 -54
  44. data/core/ruby_vm.rbs +88 -9
  45. data/core/rubygems/config_file.rbs +3 -0
  46. data/core/rubygems/errors.rbs +3 -6
  47. data/core/rubygems/platform.rbs +0 -9
  48. data/core/rubygems/rubygems.rbs +3 -6
  49. data/core/rubygems/version.rbs +6 -6
  50. data/core/set.rbs +3 -15
  51. data/core/string.rbs +256 -260
  52. data/core/struct.rbs +6 -18
  53. data/core/symbol.rbs +14 -21
  54. data/core/thread.rbs +32 -35
  55. data/core/time.rbs +131 -50
  56. data/core/trace_point.rbs +124 -113
  57. data/core/true_class.rbs +0 -1
  58. data/core/warning.rbs +9 -2
  59. data/docs/architecture.md +1 -1
  60. data/docs/syntax.md +1 -1
  61. data/ext/rbs_extension/location.c +29 -19
  62. data/ext/rbs_extension/parser.c +268 -293
  63. data/ext/rbs_extension/parserstate.c +56 -22
  64. data/lib/rbs/annotate/annotations.rb +3 -3
  65. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  66. data/lib/rbs/cli/diff.rb +3 -3
  67. data/lib/rbs/cli/validate.rb +1 -1
  68. data/lib/rbs/cli.rb +13 -13
  69. data/lib/rbs/collection/config.rb +3 -1
  70. data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
  71. data/lib/rbs/environment_loader.rb +1 -1
  72. data/lib/rbs/namespace.rb +1 -0
  73. data/lib/rbs/parser_aux.rb +2 -2
  74. data/lib/rbs/prototype/rb.rb +11 -8
  75. data/lib/rbs/prototype/rbi.rb +9 -5
  76. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  77. data/lib/rbs/prototype/runtime.rb +4 -5
  78. data/lib/rbs/type_name.rb +14 -9
  79. data/lib/rbs/types.rb +2 -1
  80. data/lib/rbs/unit_test/type_assertions.rb +2 -2
  81. data/lib/rbs/validator.rb +3 -1
  82. data/lib/rbs/version.rb +1 -1
  83. data/lib/rdoc_plugin/parser.rb +2 -2
  84. data/rbs.gemspec +4 -0
  85. data/sig/ancestor_graph.rbs +4 -4
  86. data/sig/namespace.rbs +2 -3
  87. data/sig/resolver/constant_resolver.rbs +2 -2
  88. data/sig/resolver/context.rbs +1 -1
  89. data/sig/type_alias_regularity.rbs +5 -5
  90. data/sig/typename.rbs +8 -5
  91. data/sig/use_map.rbs +1 -1
  92. data/sig/validator.rbs +2 -2
  93. data/stdlib/base64/0/base64.rbs +0 -9
  94. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  95. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  96. data/stdlib/cgi/0/core.rbs +47 -0
  97. data/stdlib/coverage/0/coverage.rbs +0 -3
  98. data/stdlib/csv/0/csv.rbs +18 -58
  99. data/stdlib/date/0/date.rbs +27 -42
  100. data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
  101. data/stdlib/digest/0/digest.rbs +25 -2
  102. data/stdlib/erb/0/erb.rbs +0 -1
  103. data/stdlib/etc/0/etc.rbs +51 -34
  104. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  105. data/stdlib/io-console/0/io-console.rbs +69 -15
  106. data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
  107. data/stdlib/json/0/json.rbs +56 -71
  108. data/stdlib/logger/0/log_device.rbs +1 -1
  109. data/stdlib/logger/0/logger.rbs +3 -18
  110. data/stdlib/net-http/0/net-http.rbs +39 -106
  111. data/stdlib/nkf/0/nkf.rbs +30 -0
  112. data/stdlib/objspace/0/objspace.rbs +1 -2
  113. data/stdlib/observable/0/observable.rbs +1 -1
  114. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  115. data/stdlib/open3/0/open3.rbs +0 -8
  116. data/stdlib/openssl/0/openssl.rbs +136 -69
  117. data/stdlib/optparse/0/optparse.rbs +58 -18
  118. data/stdlib/pathname/0/pathname.rbs +2 -8
  119. data/stdlib/pp/0/pp.rbs +3 -1
  120. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  121. data/stdlib/pstore/0/pstore.rbs +0 -6
  122. data/stdlib/psych/0/psych.rbs +15 -4
  123. data/stdlib/pty/0/pty.rbs +46 -4
  124. data/stdlib/rdoc/0/code_object.rbs +0 -4
  125. data/stdlib/rdoc/0/markup.rbs +10 -12
  126. data/stdlib/rdoc/0/rdoc.rbs +13 -8
  127. data/stdlib/resolv/0/resolv.rbs +13 -4
  128. data/stdlib/ripper/0/ripper.rbs +0 -2
  129. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  130. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  131. data/stdlib/singleton/0/singleton.rbs +0 -1
  132. data/stdlib/socket/0/addrinfo.rbs +0 -1
  133. data/stdlib/socket/0/basic_socket.rbs +0 -5
  134. data/stdlib/socket/0/socket.rbs +32 -27
  135. data/stdlib/socket/0/tcp_server.rbs +0 -3
  136. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  137. data/stdlib/socket/0/udp_socket.rbs +0 -1
  138. data/stdlib/socket/0/unix_server.rbs +0 -3
  139. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  140. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  141. data/stdlib/time/0/time.rbs +48 -35
  142. data/stdlib/timeout/0/timeout.rbs +11 -8
  143. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  144. data/stdlib/tsort/0/tsort.rbs +0 -4
  145. data/stdlib/uri/0/common.rbs +11 -30
  146. data/stdlib/uri/0/ftp.rbs +1 -1
  147. data/stdlib/uri/0/generic.rbs +22 -18
  148. data/stdlib/uri/0/http.rbs +2 -2
  149. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  150. data/stdlib/zlib/0/buf_error.rbs +1 -70
  151. data/stdlib/zlib/0/data_error.rbs +1 -70
  152. data/stdlib/zlib/0/deflate.rbs +8 -72
  153. data/stdlib/zlib/0/error.rbs +1 -70
  154. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  155. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  156. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  157. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  158. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  159. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  160. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  161. data/stdlib/zlib/0/inflate.rbs +4 -71
  162. data/stdlib/zlib/0/mem_error.rbs +1 -70
  163. data/stdlib/zlib/0/need_dict.rbs +1 -70
  164. data/stdlib/zlib/0/stream_end.rbs +1 -70
  165. data/stdlib/zlib/0/stream_error.rbs +1 -70
  166. data/stdlib/zlib/0/version_error.rbs +1 -70
  167. data/stdlib/zlib/0/zlib.rbs +0 -2
  168. data/stdlib/zlib/0/zstream.rbs +4 -72
  169. metadata +3 -6
data/core/gc.rbs CHANGED
@@ -1,5 +1,5 @@
1
1
  # <!-- rdoc-file=gc.rb -->
2
- # The GC module provides an interface to Ruby's mark and sweep garbage
2
+ # The GC module provides an interface to Ruby's mark-and-sweep garbage
3
3
  # collection mechanism.
4
4
  #
5
5
  # Some of the underlying methods are also available via the ObjectSpace module.
@@ -81,14 +81,19 @@ module GC
81
81
  #
82
82
  # `:GC_TIME`
83
83
  # : Time elapsed in seconds for this GC run
84
+ #
84
85
  # `:GC_INVOKE_TIME`
85
86
  # : Time elapsed in seconds from startup to when the GC was invoked
87
+ #
86
88
  # `:HEAP_USE_SIZE`
87
89
  # : Total bytes of heap used
90
+ #
88
91
  # `:HEAP_TOTAL_SIZE`
89
92
  # : Total size of heap in bytes
93
+ #
90
94
  # `:HEAP_TOTAL_OBJECTS`
91
95
  # : Total number of objects
96
+ #
92
97
  # `:GC_IS_MARKED`
93
98
  # : Returns `true` if the GC is in mark phase
94
99
  #
@@ -154,17 +159,88 @@ module GC
154
159
 
155
160
  # <!--
156
161
  # rdoc-file=gc.rb
157
- # - GC.count -> Integer
162
+ # - GC.config -> hash
163
+ # - GC.config(hash) -> hash
158
164
  # -->
159
- # The number of times GC occurred.
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
+ #
160
202
  #
161
- # It returns the number of times GC occurred since the process started.
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.
162
238
  #
163
239
  def self.count: () -> Integer
164
240
 
165
241
  # <!--
166
242
  # rdoc-file=gc.rb
167
- # - GC.disable -> true or false
243
+ # - GC.disable -> true or false
168
244
  # -->
169
245
  # Disables garbage collection, returning `true` if garbage collection was
170
246
  # already disabled.
@@ -176,7 +252,7 @@ module GC
176
252
 
177
253
  # <!--
178
254
  # rdoc-file=gc.rb
179
- # - GC.enable -> true or false
255
+ # - GC.enable -> true or false
180
256
  # -->
181
257
  # Enables garbage collection, returning `true` if garbage collection was
182
258
  # previously disabled.
@@ -195,24 +271,24 @@ module GC
195
271
  #
196
272
  # The `full_mark` keyword argument determines whether or not to perform a major
197
273
  # garbage collection cycle. When set to `true`, a major garbage collection cycle
198
- # is ran, meaning all objects are marked. When set to `false`, a minor garbage
199
- # collection cycle is ran, meaning only young objects are marked.
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.
200
276
  #
201
277
  # The `immediate_mark` keyword argument determines whether or not to perform
202
278
  # incremental marking. When set to `true`, marking is completed during the call
203
- # to this method. When set to `false`, marking is performed in steps that is
279
+ # to this method. When set to `false`, marking is performed in steps that are
204
280
  # interleaved with future Ruby code execution, so marking might not be completed
205
- # during this method call. Note that if `full_mark` is `false` then marking will
206
- # always be immediate, regardless of the value of `immediate_mark`.
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`.
207
283
  #
208
- # The `immedate_sweep` keyword argument determines whether or not to defer
209
- # sweeping (using lazy sweep). When set to `true`, sweeping is performed in
210
- # steps that is interleaved with future Ruby code execution, so sweeping might
211
- # not be completed during this method call. When set to `false`, sweeping is
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
212
288
  # completed during the call to this method.
213
289
  #
214
- # Note: These keyword arguments are implementation and version dependent. They
215
- # are not guaranteed to be future-compatible, and may be ignored if the
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
216
292
  # underlying implementation does not support them.
217
293
  #
218
294
  def self.start: (?immediate_sweep: boolish, ?immediate_mark: boolish, ?full_mark: boolish) -> nil
@@ -225,79 +301,106 @@ module GC
225
301
  # -->
226
302
  # Returns a Hash containing information about the GC.
227
303
  #
228
- # The contents of the hash are implementation specific and may change in the
304
+ # The contents of the hash are implementation-specific and may change in the
229
305
  # future without notice.
230
306
  #
231
- # The hash includes information about internal statistics about GC such as:
307
+ # The hash includes internal statistics about GC such as:
232
308
  #
233
309
  # count
234
- # : The total number of garbage collections ran since application start (count
310
+ # : The total number of garbage collections run since application start (count
235
311
  # includes both minor and major garbage collections)
312
+ #
236
313
  # time
237
314
  # : The total time spent in garbage collections (in milliseconds)
315
+ #
238
316
  # heap_allocated_pages
239
317
  # : The total number of `:heap_eden_pages` + `:heap_tomb_pages`
318
+ #
240
319
  # heap_sorted_length
241
320
  # : The number of pages that can fit into the buffer that holds references to
242
321
  # all pages
322
+ #
243
323
  # heap_allocatable_pages
244
324
  # : The total number of pages the application could allocate without
245
325
  # additional GC
326
+ #
246
327
  # heap_available_slots
247
328
  # : The total number of slots in all `:heap_allocated_pages`
329
+ #
248
330
  # heap_live_slots
249
331
  # : The total number of slots which contain live objects
332
+ #
250
333
  # heap_free_slots
251
334
  # : The total number of slots which do not contain live objects
335
+ #
252
336
  # heap_final_slots
253
337
  # : The total number of slots with pending finalizers to be run
338
+ #
254
339
  # heap_marked_slots
255
340
  # : The total number of objects marked in the last GC
341
+ #
256
342
  # heap_eden_pages
257
343
  # : The total number of pages which contain at least one live slot
344
+ #
258
345
  # heap_tomb_pages
259
346
  # : The total number of pages which do not contain any live slots
347
+ #
260
348
  # total_allocated_pages
261
349
  # : The cumulative number of pages allocated since application start
350
+ #
262
351
  # total_freed_pages
263
352
  # : The cumulative number of pages freed since application start
353
+ #
264
354
  # total_allocated_objects
265
355
  # : The cumulative number of objects allocated since application start
356
+ #
266
357
  # total_freed_objects
267
358
  # : The cumulative number of objects freed since application start
359
+ #
268
360
  # malloc_increase_bytes
269
361
  # : Amount of memory allocated on the heap for objects. Decreased by any GC
362
+ #
270
363
  # malloc_increase_bytes_limit
271
364
  # : When `:malloc_increase_bytes` crosses this limit, GC is triggered
365
+ #
272
366
  # minor_gc_count
273
367
  # : The total number of minor garbage collections run since process start
368
+ #
274
369
  # major_gc_count
275
370
  # : The total number of major garbage collections run since process start
371
+ #
276
372
  # compact_count
277
373
  # : The total number of compactions run since process start
374
+ #
278
375
  # read_barrier_faults
279
376
  # : The total number of times the read barrier was triggered during compaction
377
+ #
280
378
  # total_moved_objects
281
379
  # : The total number of objects compaction has moved
380
+ #
282
381
  # remembered_wb_unprotected_objects
283
382
  # : The total number of objects without write barriers
383
+ #
284
384
  # remembered_wb_unprotected_objects_limit
285
385
  # : When `:remembered_wb_unprotected_objects` crosses this limit, major GC is
286
386
  # triggered
387
+ #
287
388
  # old_objects
288
389
  # : Number of live, old objects which have survived at least 3 garbage
289
390
  # collections
391
+ #
290
392
  # old_objects_limit
291
393
  # : When `:old_objects` crosses this limit, major GC is triggered
394
+ #
292
395
  # oldmalloc_increase_bytes
293
396
  # : Amount of memory allocated on the heap for objects. Decreased by major GC
397
+ #
294
398
  # oldmalloc_increase_bytes_limit
295
- # : When `:old_malloc_increase_bytes` crosses this limit, major GC is
296
- # triggered
399
+ # : When `:oldmalloc_increase_bytes` crosses this limit, major GC is triggered
297
400
  #
298
401
  #
299
402
  # If the optional argument, hash, is given, it is overwritten and returned. This
300
- # is intended to avoid probe effect.
403
+ # is intended to avoid the probe effect.
301
404
  #
302
405
  # This method is only expected to work on CRuby.
303
406
  #
@@ -308,7 +411,7 @@ module GC
308
411
  # rdoc-file=gc.rb
309
412
  # - GC.measure_total_time = true/false
310
413
  # -->
311
- # Enable to measure GC time. You can get the result with `GC.stat(:time)`. Note
414
+ # Enables measuring GC time. You can get the result with `GC.stat(:time)`. Note
312
415
  # that GC time measurement can cause some performance overhead.
313
416
  #
314
417
  def self.measure_total_time=: [T] (T enable) -> T
@@ -317,8 +420,8 @@ module GC
317
420
  # rdoc-file=gc.rb
318
421
  # - GC.measure_total_time -> true/false
319
422
  # -->
320
- # Return measure_total_time flag (default: `true`). Note that measurement can
321
- # affect the application performance.
423
+ # Returns the measure_total_time flag (default: `true`). Note that measurement
424
+ # can affect the application's performance.
322
425
  #
323
426
  def self.measure_total_time: () -> bool
324
427
 
@@ -357,16 +460,16 @@ module GC
357
460
  # it will return a `Hash` with heap names as keys and a `Hash` containing
358
461
  # information about the heap as values.
359
462
  #
360
- # If the second optional argument, `hash_or_key`, is given as `Hash`, it will be
361
- # overwritten and returned. This is intended to avoid the probe effect.
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.
362
465
  #
363
466
  # If both optional arguments are passed in and the second optional argument is a
364
- # symbol, it will return a `Numeric` of the value for the particular heap.
467
+ # symbol, it will return a `Numeric` value for the particular heap.
365
468
  #
366
469
  # On CRuby, `heap_name` is of the type `Integer` but may be of type `String` on
367
470
  # other implementations.
368
471
  #
369
- # The contents of the hash are implementation specific and may change in the
472
+ # The contents of the hash are implementation-specific and may change in the
370
473
  # future without notice.
371
474
  #
372
475
  # If the optional argument, hash, is given, it is overwritten and returned.
@@ -377,26 +480,35 @@ module GC
377
480
  #
378
481
  # slot_size
379
482
  # : The slot size of the heap in bytes.
483
+ #
380
484
  # heap_allocatable_pages
381
485
  # : The number of pages that can be allocated without triggering a new garbage
382
486
  # collection cycle.
487
+ #
383
488
  # heap_eden_pages
384
489
  # : The number of pages in the eden heap.
490
+ #
385
491
  # heap_eden_slots
386
492
  # : The total number of slots in all of the pages in the eden heap.
493
+ #
387
494
  # heap_tomb_pages
388
495
  # : The number of pages in the tomb heap. The tomb heap only contains pages
389
496
  # that do not have any live objects.
497
+ #
390
498
  # heap_tomb_slots
391
499
  # : The total number of slots in all of the pages in the tomb heap.
500
+ #
392
501
  # total_allocated_pages
393
502
  # : The total number of pages that have been allocated in the heap.
503
+ #
394
504
  # total_freed_pages
395
505
  # : The total number of pages that have been freed and released back to the
396
506
  # system in the heap.
507
+ #
397
508
  # force_major_gc_count
398
- # : The number of times major garbage collection cycles this heap has forced
509
+ # : The number of times this heap has forced major garbage collection cycles
399
510
  # to start due to running out of free slots.
511
+ #
400
512
  # force_incremental_marking_finish_count
401
513
  # : The number of times this heap has forced incremental marking to complete
402
514
  # due to running out of pooled slots.
@@ -420,24 +532,25 @@ module GC
420
532
 
421
533
  # <!--
422
534
  # rdoc-file=gc.rb
423
- # - GC.stress -> integer, true or false
535
+ # - GC.stress -> integer, true, or false
424
536
  # -->
425
- # Returns current status of GC stress mode.
537
+ # Returns the current status of GC stress mode.
426
538
  #
427
539
  def self.stress: () -> (Integer | bool)
428
540
 
429
541
  # <!--
430
542
  # rdoc-file=gc.rb
431
- # - GC.stress = flag -> flag
543
+ # - GC.stress = flag -> flag
432
544
  # -->
433
545
  # Updates the GC stress mode.
434
546
  #
435
547
  # When stress mode is enabled, the GC is invoked at every GC opportunity: all
436
548
  # memory and object allocations.
437
549
  #
438
- # Enabling stress mode will degrade performance, it is only for debugging.
550
+ # Enabling stress mode will degrade performance; it is only for debugging.
439
551
  #
440
- # flag can be true, false, or an integer bit-ORed following flags.
552
+ # The flag can be true, false, or an integer bitwise-ORed with the following
553
+ # flags:
441
554
  # 0x01:: no major GC
442
555
  # 0x02:: no immediate sweep
443
556
  # 0x04:: full mark after malloc/calloc/realloc
@@ -449,7 +562,7 @@ module GC
449
562
  # rdoc-file=gc.rb
450
563
  # - GC.total_time -> int
451
564
  # -->
452
- # Return measured GC total time in nano seconds.
565
+ # Returns the measured GC total time in nanoseconds.
453
566
  #
454
567
  def self.total_time: () -> Integer
455
568
 
@@ -508,12 +621,15 @@ module GC
508
621
  # rdoc-file=gc.rb
509
622
  # - GC.latest_gc_info -> hash
510
623
  # - GC.latest_gc_info(hash) -> hash
511
- # - GC.latest_gc_info(:major_by) -> :malloc
624
+ # - GC.latest_gc_info(key) -> value
512
625
  # -->
513
626
  # Returns information about the most recent garbage collection.
514
627
  #
515
- # If the optional argument, hash, is given, it is overwritten and returned. This
516
- # is intended to avoid probe effect.
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]`.
517
633
  #
518
634
  def self.latest_gc_info: (?Hash[Symbol, untyped]? hash) -> Hash[Symbol, untyped]
519
635
  | (Symbol key) -> untyped