rbs 3.7.0.pre.1 → 3.8.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +3 -3
- data/.github/workflows/ruby.yml +7 -7
- data/CHANGELOG.md +58 -0
- data/core/array.rbs +1743 -1580
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +165 -93
- data/core/data.rbs +1 -1
- data/core/dir.rbs +1 -17
- data/core/encoding.rbs +12 -6
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +0 -2
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +2 -2
- data/core/exception.rbs +236 -170
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +32 -74
- data/core/float.rbs +125 -72
- data/core/gc.rbs +138 -40
- data/core/hash.rbs +120 -141
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +97 -144
- data/core/kernel.rbs +290 -200
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/module.rbs +28 -23
- data/core/nil_class.rbs +0 -3
- data/core/numeric.rbs +100 -103
- data/core/object.rbs +0 -4
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +0 -2
- data/core/process.rbs +109 -57
- data/core/ractor.rbs +37 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +234 -33
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +4 -52
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +0 -5
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +0 -5
- data/core/rubygems/version.rbs +6 -6
- data/core/set.rbs +3 -15
- data/core/string.rbs +130 -136
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +127 -50
- data/core/trace_point.rbs +16 -0
- data/core/true_class.rbs +0 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +1 -1
- data/ext/rbs_extension/location.c +29 -19
- data/ext/rbs_extension/parser.c +267 -292
- data/ext/rbs_extension/parserstate.c +56 -22
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +1 -1
- data/lib/rbs/cli.rb +13 -13
- data/lib/rbs/collection/config.rb +3 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
- data/lib/rbs/environment_loader.rb +1 -1
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +2 -2
- data/lib/rbs/prototype/rb.rb +11 -8
- data/lib/rbs/prototype/rbi.rb +9 -5
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +4 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/unit_test/type_assertions.rb +2 -2
- data/lib/rbs/validator.rb +3 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +4 -0
- data/sig/ancestor_graph.rbs +4 -4
- data/sig/namespace.rbs +2 -3
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/type_alias_regularity.rbs +5 -5
- data/sig/typename.rbs +8 -5
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +2 -2
- data/stdlib/base64/0/base64.rbs +0 -9
- data/stdlib/benchmark/0/benchmark.rbs +11 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
- data/stdlib/cgi/0/core.rbs +47 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/date/0/date.rbs +4 -19
- data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
- data/stdlib/digest/0/digest.rbs +25 -2
- data/stdlib/erb/0/erb.rbs +0 -1
- data/stdlib/etc/0/etc.rbs +51 -34
- data/stdlib/fileutils/0/fileutils.rbs +3 -44
- data/stdlib/io-console/0/io-console.rbs +69 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
- data/stdlib/json/0/json.rbs +56 -71
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/net-http/0/net-http.rbs +19 -77
- data/stdlib/nkf/0/nkf.rbs +30 -0
- data/stdlib/objspace/0/objspace.rbs +1 -2
- data/stdlib/observable/0/observable.rbs +1 -1
- data/stdlib/open-uri/0/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/openssl.rbs +136 -69
- data/stdlib/optparse/0/optparse.rbs +58 -18
- data/stdlib/pathname/0/pathname.rbs +2 -8
- data/stdlib/pp/0/pp.rbs +3 -1
- data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
- data/stdlib/pstore/0/pstore.rbs +0 -6
- data/stdlib/psych/0/psych.rbs +15 -4
- data/stdlib/pty/0/pty.rbs +46 -4
- data/stdlib/rdoc/0/code_object.rbs +0 -4
- data/stdlib/rdoc/0/markup.rbs +10 -12
- data/stdlib/rdoc/0/rdoc.rbs +1 -2
- data/stdlib/resolv/0/resolv.rbs +8 -3
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +0 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +0 -1
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +49 -25
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +58 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- data/stdlib/strscan/0/string_scanner.rbs +1265 -422
- data/stdlib/tempfile/0/tempfile.rbs +135 -28
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +11 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +8 -1
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +11 -30
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +22 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/zlib/0/buf_error.rbs +1 -70
- data/stdlib/zlib/0/data_error.rbs +1 -70
- data/stdlib/zlib/0/deflate.rbs +8 -72
- data/stdlib/zlib/0/error.rbs +1 -70
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
- data/stdlib/zlib/0/gzip_file.rbs +1 -71
- data/stdlib/zlib/0/gzip_reader.rbs +3 -74
- data/stdlib/zlib/0/gzip_writer.rbs +1 -70
- data/stdlib/zlib/0/inflate.rbs +4 -71
- data/stdlib/zlib/0/mem_error.rbs +1 -70
- data/stdlib/zlib/0/need_dict.rbs +1 -70
- data/stdlib/zlib/0/stream_end.rbs +1 -70
- data/stdlib/zlib/0/stream_error.rbs +1 -70
- data/stdlib/zlib/0/version_error.rbs +1 -70
- data/stdlib/zlib/0/zlib.rbs +0 -2
- data/stdlib/zlib/0/zstream.rbs +4 -72
- metadata +4 -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
|
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,70 @@ module GC
|
|
154
159
|
|
155
160
|
# <!--
|
156
161
|
# rdoc-file=gc.rb
|
157
|
-
# - GC.
|
162
|
+
# - GC.config -> hash
|
163
|
+
# - GC.config(hash) -> hash
|
158
164
|
# -->
|
159
|
-
#
|
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.
|
171
|
+
#
|
172
|
+
# This method can also be called with a `Hash` argument to assign values to
|
173
|
+
# valid config keys. Config keys missing from the passed `Hash` will be left
|
174
|
+
# unmodified.
|
175
|
+
#
|
176
|
+
# If a key/value pair is passed to this function that does not correspond to a
|
177
|
+
# valid config key for the GC implementation being used, no config will be
|
178
|
+
# updated, the key will be present in the returned Hash, and its value will be
|
179
|
+
# `nil`. This is to facilitate easy migration between GC implementations.
|
180
|
+
#
|
181
|
+
# In both call-seqs, the return value of `GC.config` will be a `Hash` containing
|
182
|
+
# the most recent full configuration, i.e., all keys and values defined by the
|
183
|
+
# specific GC implementation being used. In the case of a config update, the
|
184
|
+
# return value will include the new values being updated.
|
185
|
+
#
|
186
|
+
# This method is only expected to work on CRuby.
|
187
|
+
#
|
188
|
+
# Valid config keys for Ruby's default GC implementation are:
|
189
|
+
#
|
190
|
+
# rgengc_allow_full_mark
|
191
|
+
# : Controls whether the GC is allowed to run a full mark (young & old
|
192
|
+
# objects).
|
193
|
+
#
|
194
|
+
# When `true`, GC interleaves major and minor collections. This is the
|
195
|
+
# default. GC will function as intended.
|
196
|
+
#
|
197
|
+
# When `false`, the GC will never trigger a full marking cycle unless
|
198
|
+
# explicitly requested by user code. Instead, only a minor mark will
|
199
|
+
# run—only young objects will be marked. When the heap space is exhausted,
|
200
|
+
# new pages will be allocated immediately instead of running a full mark.
|
160
201
|
#
|
161
|
-
#
|
202
|
+
# A flag will be set to notify that a full mark has been requested. This
|
203
|
+
# flag is accessible using `GC.latest_gc_info(:needs_major_by)`
|
204
|
+
#
|
205
|
+
# The user can trigger a major collection at any time using
|
206
|
+
# `GC.start(full_mark: true)`
|
207
|
+
#
|
208
|
+
# When `false`, Young to Old object promotion is disabled. For performance
|
209
|
+
# reasons, it is recommended to warm up an application using
|
210
|
+
# `Process.warmup` before setting this parameter to `false`.
|
211
|
+
#
|
212
|
+
def self.config: () -> Hash[Symbol, untyped]
|
213
|
+
| (Hash[Symbol, untyped]) -> Hash[Symbol, untyped]
|
214
|
+
|
215
|
+
# <!--
|
216
|
+
# rdoc-file=gc.rb
|
217
|
+
# - GC.count -> Integer
|
218
|
+
# -->
|
219
|
+
# Returns the number of times GC has occurred since the process started.
|
162
220
|
#
|
163
221
|
def self.count: () -> Integer
|
164
222
|
|
165
223
|
# <!--
|
166
224
|
# rdoc-file=gc.rb
|
167
|
-
# - GC.disable
|
225
|
+
# - GC.disable -> true or false
|
168
226
|
# -->
|
169
227
|
# Disables garbage collection, returning `true` if garbage collection was
|
170
228
|
# already disabled.
|
@@ -176,7 +234,7 @@ module GC
|
|
176
234
|
|
177
235
|
# <!--
|
178
236
|
# rdoc-file=gc.rb
|
179
|
-
# - GC.enable
|
237
|
+
# - GC.enable -> true or false
|
180
238
|
# -->
|
181
239
|
# Enables garbage collection, returning `true` if garbage collection was
|
182
240
|
# previously disabled.
|
@@ -195,24 +253,24 @@ module GC
|
|
195
253
|
#
|
196
254
|
# The `full_mark` keyword argument determines whether or not to perform a major
|
197
255
|
# garbage collection cycle. When set to `true`, a major garbage collection cycle
|
198
|
-
# is
|
199
|
-
# collection cycle is
|
256
|
+
# is run, meaning all objects are marked. When set to `false`, a minor garbage
|
257
|
+
# collection cycle is run, meaning only young objects are marked.
|
200
258
|
#
|
201
259
|
# The `immediate_mark` keyword argument determines whether or not to perform
|
202
260
|
# 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
|
261
|
+
# to this method. When set to `false`, marking is performed in steps that are
|
204
262
|
# interleaved with future Ruby code execution, so marking might not be completed
|
205
|
-
# during this method call. Note that if `full_mark` is `false
|
206
|
-
# always be immediate, regardless of the value of `immediate_mark`.
|
263
|
+
# during this method call. Note that if `full_mark` is `false`, then marking
|
264
|
+
# will always be immediate, regardless of the value of `immediate_mark`.
|
207
265
|
#
|
208
|
-
# The `
|
209
|
-
# sweeping (using lazy sweep). When set to `
|
210
|
-
# steps that
|
211
|
-
# not be completed during this method call. When set to `
|
266
|
+
# The `immediate_sweep` keyword argument determines whether or not to defer
|
267
|
+
# sweeping (using lazy sweep). When set to `false`, sweeping is performed in
|
268
|
+
# steps that are interleaved with future Ruby code execution, so sweeping might
|
269
|
+
# not be completed during this method call. When set to `true`, sweeping is
|
212
270
|
# completed during the call to this method.
|
213
271
|
#
|
214
|
-
# Note: These keyword arguments are implementation and version
|
215
|
-
# are not guaranteed to be future-compatible
|
272
|
+
# Note: These keyword arguments are implementation and version-dependent. They
|
273
|
+
# are not guaranteed to be future-compatible and may be ignored if the
|
216
274
|
# underlying implementation does not support them.
|
217
275
|
#
|
218
276
|
def self.start: (?immediate_sweep: boolish, ?immediate_mark: boolish, ?full_mark: boolish) -> nil
|
@@ -225,79 +283,106 @@ module GC
|
|
225
283
|
# -->
|
226
284
|
# Returns a Hash containing information about the GC.
|
227
285
|
#
|
228
|
-
# The contents of the hash are implementation
|
286
|
+
# The contents of the hash are implementation-specific and may change in the
|
229
287
|
# future without notice.
|
230
288
|
#
|
231
|
-
# The hash includes
|
289
|
+
# The hash includes internal statistics about GC such as:
|
232
290
|
#
|
233
291
|
# count
|
234
|
-
# : The total number of garbage collections
|
292
|
+
# : The total number of garbage collections run since application start (count
|
235
293
|
# includes both minor and major garbage collections)
|
294
|
+
#
|
236
295
|
# time
|
237
296
|
# : The total time spent in garbage collections (in milliseconds)
|
297
|
+
#
|
238
298
|
# heap_allocated_pages
|
239
299
|
# : The total number of `:heap_eden_pages` + `:heap_tomb_pages`
|
300
|
+
#
|
240
301
|
# heap_sorted_length
|
241
302
|
# : The number of pages that can fit into the buffer that holds references to
|
242
303
|
# all pages
|
304
|
+
#
|
243
305
|
# heap_allocatable_pages
|
244
306
|
# : The total number of pages the application could allocate without
|
245
307
|
# additional GC
|
308
|
+
#
|
246
309
|
# heap_available_slots
|
247
310
|
# : The total number of slots in all `:heap_allocated_pages`
|
311
|
+
#
|
248
312
|
# heap_live_slots
|
249
313
|
# : The total number of slots which contain live objects
|
314
|
+
#
|
250
315
|
# heap_free_slots
|
251
316
|
# : The total number of slots which do not contain live objects
|
317
|
+
#
|
252
318
|
# heap_final_slots
|
253
319
|
# : The total number of slots with pending finalizers to be run
|
320
|
+
#
|
254
321
|
# heap_marked_slots
|
255
322
|
# : The total number of objects marked in the last GC
|
323
|
+
#
|
256
324
|
# heap_eden_pages
|
257
325
|
# : The total number of pages which contain at least one live slot
|
326
|
+
#
|
258
327
|
# heap_tomb_pages
|
259
328
|
# : The total number of pages which do not contain any live slots
|
329
|
+
#
|
260
330
|
# total_allocated_pages
|
261
331
|
# : The cumulative number of pages allocated since application start
|
332
|
+
#
|
262
333
|
# total_freed_pages
|
263
334
|
# : The cumulative number of pages freed since application start
|
335
|
+
#
|
264
336
|
# total_allocated_objects
|
265
337
|
# : The cumulative number of objects allocated since application start
|
338
|
+
#
|
266
339
|
# total_freed_objects
|
267
340
|
# : The cumulative number of objects freed since application start
|
341
|
+
#
|
268
342
|
# malloc_increase_bytes
|
269
343
|
# : Amount of memory allocated on the heap for objects. Decreased by any GC
|
344
|
+
#
|
270
345
|
# malloc_increase_bytes_limit
|
271
346
|
# : When `:malloc_increase_bytes` crosses this limit, GC is triggered
|
347
|
+
#
|
272
348
|
# minor_gc_count
|
273
349
|
# : The total number of minor garbage collections run since process start
|
350
|
+
#
|
274
351
|
# major_gc_count
|
275
352
|
# : The total number of major garbage collections run since process start
|
353
|
+
#
|
276
354
|
# compact_count
|
277
355
|
# : The total number of compactions run since process start
|
356
|
+
#
|
278
357
|
# read_barrier_faults
|
279
358
|
# : The total number of times the read barrier was triggered during compaction
|
359
|
+
#
|
280
360
|
# total_moved_objects
|
281
361
|
# : The total number of objects compaction has moved
|
362
|
+
#
|
282
363
|
# remembered_wb_unprotected_objects
|
283
364
|
# : The total number of objects without write barriers
|
365
|
+
#
|
284
366
|
# remembered_wb_unprotected_objects_limit
|
285
367
|
# : When `:remembered_wb_unprotected_objects` crosses this limit, major GC is
|
286
368
|
# triggered
|
369
|
+
#
|
287
370
|
# old_objects
|
288
371
|
# : Number of live, old objects which have survived at least 3 garbage
|
289
372
|
# collections
|
373
|
+
#
|
290
374
|
# old_objects_limit
|
291
375
|
# : When `:old_objects` crosses this limit, major GC is triggered
|
376
|
+
#
|
292
377
|
# oldmalloc_increase_bytes
|
293
378
|
# : Amount of memory allocated on the heap for objects. Decreased by major GC
|
379
|
+
#
|
294
380
|
# oldmalloc_increase_bytes_limit
|
295
|
-
# : When `:
|
296
|
-
# triggered
|
381
|
+
# : When `:oldmalloc_increase_bytes` crosses this limit, major GC is triggered
|
297
382
|
#
|
298
383
|
#
|
299
384
|
# If the optional argument, hash, is given, it is overwritten and returned. This
|
300
|
-
# is intended to avoid probe effect.
|
385
|
+
# is intended to avoid the probe effect.
|
301
386
|
#
|
302
387
|
# This method is only expected to work on CRuby.
|
303
388
|
#
|
@@ -308,7 +393,7 @@ module GC
|
|
308
393
|
# rdoc-file=gc.rb
|
309
394
|
# - GC.measure_total_time = true/false
|
310
395
|
# -->
|
311
|
-
#
|
396
|
+
# Enables measuring GC time. You can get the result with `GC.stat(:time)`. Note
|
312
397
|
# that GC time measurement can cause some performance overhead.
|
313
398
|
#
|
314
399
|
def self.measure_total_time=: [T] (T enable) -> T
|
@@ -317,8 +402,8 @@ module GC
|
|
317
402
|
# rdoc-file=gc.rb
|
318
403
|
# - GC.measure_total_time -> true/false
|
319
404
|
# -->
|
320
|
-
#
|
321
|
-
# affect the application performance.
|
405
|
+
# Returns the measure_total_time flag (default: `true`). Note that measurement
|
406
|
+
# can affect the application's performance.
|
322
407
|
#
|
323
408
|
def self.measure_total_time: () -> bool
|
324
409
|
|
@@ -357,16 +442,16 @@ module GC
|
|
357
442
|
# it will return a `Hash` with heap names as keys and a `Hash` containing
|
358
443
|
# information about the heap as values.
|
359
444
|
#
|
360
|
-
# If the second optional argument, `hash_or_key`, is given as `Hash`, it will
|
361
|
-
# overwritten and returned. This is intended to avoid the probe effect.
|
445
|
+
# If the second optional argument, `hash_or_key`, is given as a `Hash`, it will
|
446
|
+
# be overwritten and returned. This is intended to avoid the probe effect.
|
362
447
|
#
|
363
448
|
# If both optional arguments are passed in and the second optional argument is a
|
364
|
-
# symbol, it will return a `Numeric`
|
449
|
+
# symbol, it will return a `Numeric` value for the particular heap.
|
365
450
|
#
|
366
451
|
# On CRuby, `heap_name` is of the type `Integer` but may be of type `String` on
|
367
452
|
# other implementations.
|
368
453
|
#
|
369
|
-
# The contents of the hash are implementation
|
454
|
+
# The contents of the hash are implementation-specific and may change in the
|
370
455
|
# future without notice.
|
371
456
|
#
|
372
457
|
# If the optional argument, hash, is given, it is overwritten and returned.
|
@@ -377,26 +462,35 @@ module GC
|
|
377
462
|
#
|
378
463
|
# slot_size
|
379
464
|
# : The slot size of the heap in bytes.
|
465
|
+
#
|
380
466
|
# heap_allocatable_pages
|
381
467
|
# : The number of pages that can be allocated without triggering a new garbage
|
382
468
|
# collection cycle.
|
469
|
+
#
|
383
470
|
# heap_eden_pages
|
384
471
|
# : The number of pages in the eden heap.
|
472
|
+
#
|
385
473
|
# heap_eden_slots
|
386
474
|
# : The total number of slots in all of the pages in the eden heap.
|
475
|
+
#
|
387
476
|
# heap_tomb_pages
|
388
477
|
# : The number of pages in the tomb heap. The tomb heap only contains pages
|
389
478
|
# that do not have any live objects.
|
479
|
+
#
|
390
480
|
# heap_tomb_slots
|
391
481
|
# : The total number of slots in all of the pages in the tomb heap.
|
482
|
+
#
|
392
483
|
# total_allocated_pages
|
393
484
|
# : The total number of pages that have been allocated in the heap.
|
485
|
+
#
|
394
486
|
# total_freed_pages
|
395
487
|
# : The total number of pages that have been freed and released back to the
|
396
488
|
# system in the heap.
|
489
|
+
#
|
397
490
|
# force_major_gc_count
|
398
|
-
# : The number of times major garbage collection cycles
|
491
|
+
# : The number of times this heap has forced major garbage collection cycles
|
399
492
|
# to start due to running out of free slots.
|
493
|
+
#
|
400
494
|
# force_incremental_marking_finish_count
|
401
495
|
# : The number of times this heap has forced incremental marking to complete
|
402
496
|
# due to running out of pooled slots.
|
@@ -420,24 +514,25 @@ module GC
|
|
420
514
|
|
421
515
|
# <!--
|
422
516
|
# rdoc-file=gc.rb
|
423
|
-
# - GC.stress
|
517
|
+
# - GC.stress -> integer, true, or false
|
424
518
|
# -->
|
425
|
-
# Returns current status of GC stress mode.
|
519
|
+
# Returns the current status of GC stress mode.
|
426
520
|
#
|
427
521
|
def self.stress: () -> (Integer | bool)
|
428
522
|
|
429
523
|
# <!--
|
430
524
|
# rdoc-file=gc.rb
|
431
|
-
# - GC.stress = flag
|
525
|
+
# - GC.stress = flag -> flag
|
432
526
|
# -->
|
433
527
|
# Updates the GC stress mode.
|
434
528
|
#
|
435
529
|
# When stress mode is enabled, the GC is invoked at every GC opportunity: all
|
436
530
|
# memory and object allocations.
|
437
531
|
#
|
438
|
-
# Enabling stress mode will degrade performance
|
532
|
+
# Enabling stress mode will degrade performance; it is only for debugging.
|
439
533
|
#
|
440
|
-
# flag can be true, false, or an integer
|
534
|
+
# The flag can be true, false, or an integer bitwise-ORed with the following
|
535
|
+
# flags:
|
441
536
|
# 0x01:: no major GC
|
442
537
|
# 0x02:: no immediate sweep
|
443
538
|
# 0x04:: full mark after malloc/calloc/realloc
|
@@ -449,7 +544,7 @@ module GC
|
|
449
544
|
# rdoc-file=gc.rb
|
450
545
|
# - GC.total_time -> int
|
451
546
|
# -->
|
452
|
-
#
|
547
|
+
# Returns the measured GC total time in nanoseconds.
|
453
548
|
#
|
454
549
|
def self.total_time: () -> Integer
|
455
550
|
|
@@ -508,12 +603,15 @@ module GC
|
|
508
603
|
# rdoc-file=gc.rb
|
509
604
|
# - GC.latest_gc_info -> hash
|
510
605
|
# - GC.latest_gc_info(hash) -> hash
|
511
|
-
# - GC.latest_gc_info(
|
606
|
+
# - GC.latest_gc_info(key) -> value
|
512
607
|
# -->
|
513
608
|
# Returns information about the most recent garbage collection.
|
514
609
|
#
|
515
|
-
# If the
|
516
|
-
# is intended to avoid probe effect.
|
610
|
+
# If the argument `hash` is given and is a Hash object, it is overwritten and
|
611
|
+
# returned. This is intended to avoid the probe effect.
|
612
|
+
#
|
613
|
+
# If the argument `key` is given and is a Symbol object, it returns the value
|
614
|
+
# associated with the key. This is equivalent to `GC.latest_gc_info[key]`.
|
517
615
|
#
|
518
616
|
def self.latest_gc_info: (?Hash[Symbol, untyped]? hash) -> Hash[Symbol, untyped]
|
519
617
|
| (Symbol key) -> untyped
|