steep 0.14.0 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/exe/rbs +1 -1
- data/lib/steep/annotation_parser.rb +4 -4
- data/lib/steep/ast/buffer.rb +11 -7
- data/lib/steep/ast/builtin.rb +8 -0
- data/lib/steep/ast/types/factory.rb +55 -55
- data/lib/steep/drivers/check.rb +20 -4
- data/lib/steep/drivers/langserver.rb +6 -1
- data/lib/steep/drivers/vendor.rb +2 -2
- data/lib/steep/project/completion_provider.rb +5 -11
- data/lib/steep/project/dsl.rb +14 -0
- data/lib/steep/project/file.rb +42 -46
- data/lib/steep/project/hover_content.rb +11 -5
- data/lib/steep/project/options.rb +25 -3
- data/lib/steep/project/target.rb +10 -4
- data/lib/steep/signature/errors.rb +1 -1
- data/lib/steep/signature/validator.rb +8 -8
- data/lib/steep/source.rb +1 -1
- data/lib/steep/type_construction.rb +987 -711
- data/lib/steep/type_inference/constant_env.rb +1 -1
- data/lib/steep/type_inference/context.rb +7 -3
- data/lib/steep/type_inference/context_array.rb +111 -0
- data/lib/steep/type_inference/local_variable_type_env.rb +226 -0
- data/lib/steep/type_inference/logic.rb +130 -0
- data/lib/steep/type_inference/type_env.rb +5 -69
- data/lib/steep/typing.rb +79 -22
- data/lib/steep/version.rb +1 -1
- data/lib/steep.rb +6 -1
- data/smoke/alias/Steepfile +1 -0
- data/smoke/and/Steepfile +1 -0
- data/smoke/array/Steepfile +1 -0
- data/smoke/array/b.rb +0 -2
- data/smoke/block/Steepfile +1 -0
- data/smoke/case/Steepfile +1 -0
- data/smoke/class/Steepfile +1 -0
- data/smoke/const/Steepfile +1 -0
- data/smoke/dstr/Steepfile +1 -0
- data/smoke/ensure/Steepfile +1 -0
- data/smoke/enumerator/Steepfile +1 -0
- data/smoke/extension/Steepfile +1 -0
- data/smoke/extension/c.rb +1 -0
- data/smoke/hash/Steepfile +1 -0
- data/smoke/hello/Steepfile +1 -0
- data/smoke/if/Steepfile +1 -0
- data/smoke/if/a.rb +1 -1
- data/smoke/implements/Steepfile +1 -0
- data/smoke/initialize/Steepfile +1 -0
- data/smoke/integer/Steepfile +1 -0
- data/smoke/interface/Steepfile +1 -0
- data/smoke/kwbegin/Steepfile +1 -0
- data/smoke/lambda/Steepfile +1 -0
- data/smoke/literal/Steepfile +1 -0
- data/smoke/map/Steepfile +1 -0
- data/smoke/method/Steepfile +1 -0
- data/smoke/module/Steepfile +1 -0
- data/smoke/regexp/Steepfile +1 -0
- data/smoke/regression/Steepfile +1 -0
- data/smoke/rescue/Steepfile +1 -0
- data/smoke/rescue/a.rb +1 -1
- data/smoke/self/Steepfile +1 -0
- data/smoke/skip/Steepfile +1 -0
- data/smoke/stdout/Steepfile +1 -0
- data/smoke/super/Steepfile +1 -0
- data/smoke/type_case/Steepfile +1 -0
- data/smoke/yield/Steepfile +1 -0
- data/steep.gemspec +1 -1
- data/vendor/ruby-signature/.gitignore +2 -2
- data/vendor/ruby-signature/README.md +2 -2
- data/vendor/ruby-signature/Rakefile +2 -2
- data/vendor/ruby-signature/bin/annotate-with-rdoc +14 -13
- data/vendor/ruby-signature/bin/console +1 -1
- data/vendor/ruby-signature/bin/sort +7 -6
- data/vendor/ruby-signature/bin/test_runner.rb +0 -1
- data/vendor/ruby-signature/docs/CONTRIBUTING.md +1 -1
- data/vendor/ruby-signature/docs/sigs.md +3 -3
- data/vendor/ruby-signature/docs/stdlib.md +1 -1
- data/vendor/ruby-signature/docs/syntax.md +9 -9
- data/vendor/ruby-signature/exe/rbs +5 -1
- data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +27 -0
- data/vendor/ruby-signature/lib/rbs/ast/comment.rb +27 -0
- data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +395 -0
- data/vendor/ruby-signature/lib/rbs/ast/members.rb +362 -0
- data/vendor/ruby-signature/lib/rbs/buffer.rb +50 -0
- data/vendor/ruby-signature/lib/rbs/builtin_names.rb +55 -0
- data/vendor/ruby-signature/lib/rbs/cli.rb +558 -0
- data/vendor/ruby-signature/lib/rbs/constant.rb +26 -0
- data/vendor/ruby-signature/lib/rbs/constant_table.rb +150 -0
- data/vendor/ruby-signature/lib/rbs/definition.rb +170 -0
- data/vendor/ruby-signature/lib/rbs/definition_builder.rb +919 -0
- data/vendor/ruby-signature/lib/rbs/environment.rb +281 -0
- data/vendor/ruby-signature/lib/rbs/environment_loader.rb +136 -0
- data/vendor/ruby-signature/lib/rbs/environment_walker.rb +124 -0
- data/vendor/ruby-signature/lib/rbs/errors.rb +187 -0
- data/vendor/ruby-signature/lib/rbs/location.rb +102 -0
- data/vendor/ruby-signature/lib/rbs/method_type.rb +123 -0
- data/vendor/ruby-signature/lib/rbs/namespace.rb +91 -0
- data/vendor/ruby-signature/lib/{ruby/signature → rbs}/parser.rb +21 -23
- data/vendor/ruby-signature/lib/{ruby/signature → rbs}/parser.y +18 -18
- data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +553 -0
- data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +587 -0
- data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +381 -0
- data/vendor/ruby-signature/lib/rbs/substitution.rb +46 -0
- data/vendor/ruby-signature/lib/rbs/test/errors.rb +61 -0
- data/vendor/ruby-signature/lib/rbs/test/hook.rb +294 -0
- data/vendor/ruby-signature/lib/{ruby/signature → rbs}/test/setup.rb +7 -7
- data/vendor/ruby-signature/lib/rbs/test/spy.rb +325 -0
- data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +183 -0
- data/vendor/ruby-signature/lib/rbs/test/type_check.rb +254 -0
- data/vendor/ruby-signature/lib/rbs/test.rb +26 -0
- data/vendor/ruby-signature/lib/rbs/type_name.rb +70 -0
- data/vendor/ruby-signature/lib/rbs/types.rb +936 -0
- data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +138 -0
- data/vendor/ruby-signature/lib/rbs/vendorer.rb +47 -0
- data/vendor/ruby-signature/lib/rbs/version.rb +3 -0
- data/vendor/ruby-signature/lib/rbs/writer.rb +269 -0
- data/vendor/ruby-signature/lib/rbs.rb +64 -0
- data/vendor/ruby-signature/lib/ruby/signature.rb +4 -61
- data/vendor/ruby-signature/{ruby-signature.gemspec → rbs.gemspec} +4 -4
- data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +58 -1
- data/vendor/ruby-signature/stdlib/base64/base64.rbs +69 -13
- data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +372 -0
- data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +9 -0
- data/vendor/ruby-signature/stdlib/builtin/dir.rbs +1 -7
- data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +2 -1
- data/vendor/ruby-signature/stdlib/builtin/exception.rbs +3 -2
- data/vendor/ruby-signature/stdlib/builtin/file.rbs +902 -302
- data/vendor/ruby-signature/stdlib/builtin/gc.rbs +190 -68
- data/vendor/ruby-signature/stdlib/builtin/integer.rbs +3 -6
- data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +6 -4
- data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +146 -120
- data/vendor/ruby-signature/stdlib/builtin/math.rbs +310 -7
- data/vendor/ruby-signature/stdlib/builtin/method.rbs +11 -8
- data/vendor/ruby-signature/stdlib/builtin/module.rbs +959 -103
- data/vendor/ruby-signature/stdlib/builtin/proc.rbs +3 -0
- data/vendor/ruby-signature/stdlib/builtin/process.rbs +981 -108
- data/vendor/ruby-signature/stdlib/builtin/random.rbs +215 -41
- data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +47 -0
- data/vendor/ruby-signature/stdlib/builtin/string.rbs +9 -2
- data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +282 -11
- data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +11 -13
- data/vendor/ruby-signature/stdlib/builtin/thread.rbs +25 -29
- data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +1 -1
- data/vendor/ruby-signature/stdlib/builtin/time.rbs +875 -567
- data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +243 -44
- data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +103 -109
- data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +62 -0
- data/vendor/ruby-signature/stdlib/csv/csv.rbs +773 -0
- data/vendor/ruby-signature/stdlib/erb/erb.rbs +375 -1
- data/vendor/ruby-signature/stdlib/find/find.rbs +0 -4
- data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +247 -0
- data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +1088 -16
- data/vendor/ruby-signature/stdlib/set/set.rbs +251 -27
- metadata +49 -44
- data/exe/ruby-signature +0 -3
- data/vendor/ruby-signature/exe/ruby-signature +0 -7
- data/vendor/ruby-signature/lib/ruby/signature/ast/annotation.rb +0 -29
- data/vendor/ruby-signature/lib/ruby/signature/ast/comment.rb +0 -29
- data/vendor/ruby-signature/lib/ruby/signature/ast/declarations.rb +0 -391
- data/vendor/ruby-signature/lib/ruby/signature/ast/members.rb +0 -364
- data/vendor/ruby-signature/lib/ruby/signature/buffer.rb +0 -52
- data/vendor/ruby-signature/lib/ruby/signature/builtin_names.rb +0 -54
- data/vendor/ruby-signature/lib/ruby/signature/cli.rb +0 -555
- data/vendor/ruby-signature/lib/ruby/signature/constant.rb +0 -28
- data/vendor/ruby-signature/lib/ruby/signature/constant_table.rb +0 -152
- data/vendor/ruby-signature/lib/ruby/signature/definition.rb +0 -172
- data/vendor/ruby-signature/lib/ruby/signature/definition_builder.rb +0 -921
- data/vendor/ruby-signature/lib/ruby/signature/environment.rb +0 -283
- data/vendor/ruby-signature/lib/ruby/signature/environment_loader.rb +0 -138
- data/vendor/ruby-signature/lib/ruby/signature/environment_walker.rb +0 -126
- data/vendor/ruby-signature/lib/ruby/signature/errors.rb +0 -189
- data/vendor/ruby-signature/lib/ruby/signature/location.rb +0 -104
- data/vendor/ruby-signature/lib/ruby/signature/method_type.rb +0 -125
- data/vendor/ruby-signature/lib/ruby/signature/namespace.rb +0 -93
- data/vendor/ruby-signature/lib/ruby/signature/prototype/rb.rb +0 -444
- data/vendor/ruby-signature/lib/ruby/signature/prototype/rbi.rb +0 -579
- data/vendor/ruby-signature/lib/ruby/signature/prototype/runtime.rb +0 -383
- data/vendor/ruby-signature/lib/ruby/signature/substitution.rb +0 -48
- data/vendor/ruby-signature/lib/ruby/signature/test/errors.rb +0 -63
- data/vendor/ruby-signature/lib/ruby/signature/test/hook.rb +0 -290
- data/vendor/ruby-signature/lib/ruby/signature/test/spy.rb +0 -327
- data/vendor/ruby-signature/lib/ruby/signature/test/test_helper.rb +0 -185
- data/vendor/ruby-signature/lib/ruby/signature/test/type_check.rb +0 -256
- data/vendor/ruby-signature/lib/ruby/signature/test.rb +0 -28
- data/vendor/ruby-signature/lib/ruby/signature/type_name.rb +0 -72
- data/vendor/ruby-signature/lib/ruby/signature/types.rb +0 -932
- data/vendor/ruby-signature/lib/ruby/signature/variance_calculator.rb +0 -140
- data/vendor/ruby-signature/lib/ruby/signature/vendorer.rb +0 -49
- data/vendor/ruby-signature/lib/ruby/signature/version.rb +0 -5
- data/vendor/ruby-signature/lib/ruby/signature/writer.rb +0 -271
@@ -1,121 +1,243 @@
|
|
1
|
-
# The
|
2
|
-
#
|
3
|
-
#
|
4
|
-
# Some of the underlying methods are also available via the
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
# [GC](GC) through
|
9
|
-
# [GC::Profiler](https://ruby-doc.org/core-2.6.3/GC/Profiler.html).
|
1
|
+
# The GC module provides an interface to Ruby's mark and sweep garbage
|
2
|
+
# collection mechanism.
|
3
|
+
#
|
4
|
+
# Some of the underlying methods are also available via the ObjectSpace module.
|
5
|
+
#
|
6
|
+
# You may obtain information about the operation of the GC through GC::Profiler.
|
7
|
+
#
|
10
8
|
module GC
|
11
|
-
# The number of times
|
12
|
-
#
|
13
|
-
# It returns the number of times
|
14
|
-
#
|
9
|
+
# The number of times GC occurred.
|
10
|
+
#
|
11
|
+
# It returns the number of times GC occurred since the process started.
|
12
|
+
#
|
15
13
|
def self.count: () -> Integer
|
16
14
|
|
17
15
|
# Disables garbage collection, returning `true` if garbage collection was
|
18
16
|
# already disabled.
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
# ```
|
17
|
+
#
|
18
|
+
# GC.disable #=> false
|
19
|
+
# GC.disable #=> true
|
20
|
+
#
|
24
21
|
def self.disable: () -> bool
|
25
22
|
|
26
23
|
# Enables garbage collection, returning `true` if garbage collection was
|
27
24
|
# previously disabled.
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
# ```
|
25
|
+
#
|
26
|
+
# GC.disable #=> false
|
27
|
+
# GC.enable #=> true
|
28
|
+
# GC.enable #=> false
|
29
|
+
#
|
34
30
|
def self.enable: () -> bool
|
35
31
|
|
36
|
-
|
37
|
-
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
32
|
+
# Initiates garbage collection, even if manually disabled.
|
33
|
+
#
|
34
|
+
# This method is defined with keyword arguments that default to true:
|
35
|
+
#
|
36
|
+
# def GC.start(full_mark: true, immediate_sweep: true); end
|
37
|
+
#
|
38
|
+
# Use full_mark: false to perform a minor GC. Use immediate_sweep: false to
|
39
|
+
# defer sweeping (use lazy sweep).
|
40
|
+
#
|
41
|
+
# Note: These keyword arguments are implementation and version dependent. They
|
42
|
+
# are not guaranteed to be future-compatible, and may be ignored if the
|
43
|
+
# underlying implementation does not support them.
|
44
|
+
#
|
45
|
+
def self.start: (?immediate_sweep: bool immediate_sweep, ?immediate_mark: bool immediate_mark, ?full_mark: bool full_mark) -> nil
|
46
|
+
|
47
|
+
# Returns a Hash containing information about the GC.
|
48
|
+
#
|
49
|
+
# The hash includes information about internal statistics about GC such as:
|
50
|
+
#
|
51
|
+
# {
|
52
|
+
# :count=>0,
|
53
|
+
# :heap_allocated_pages=>24,
|
54
|
+
# :heap_sorted_length=>24,
|
55
|
+
# :heap_allocatable_pages=>0,
|
56
|
+
# :heap_available_slots=>9783,
|
57
|
+
# :heap_live_slots=>7713,
|
58
|
+
# :heap_free_slots=>2070,
|
59
|
+
# :heap_final_slots=>0,
|
60
|
+
# :heap_marked_slots=>0,
|
61
|
+
# :heap_eden_pages=>24,
|
62
|
+
# :heap_tomb_pages=>0,
|
63
|
+
# :total_allocated_pages=>24,
|
64
|
+
# :total_freed_pages=>0,
|
65
|
+
# :total_allocated_objects=>7796,
|
66
|
+
# :total_freed_objects=>83,
|
67
|
+
# :malloc_increase_bytes=>2389312,
|
68
|
+
# :malloc_increase_bytes_limit=>16777216,
|
69
|
+
# :minor_gc_count=>0,
|
70
|
+
# :major_gc_count=>0,
|
71
|
+
# :remembered_wb_unprotected_objects=>0,
|
72
|
+
# :remembered_wb_unprotected_objects_limit=>0,
|
73
|
+
# :old_objects=>0,
|
74
|
+
# :old_objects_limit=>0,
|
75
|
+
# :oldmalloc_increase_bytes=>2389760,
|
76
|
+
# :oldmalloc_increase_bytes_limit=>16777216
|
77
|
+
# }
|
78
|
+
#
|
79
|
+
# The contents of the hash are implementation specific and may be changed in the
|
80
|
+
# future.
|
81
|
+
#
|
77
82
|
# This method is only expected to work on C Ruby.
|
83
|
+
#
|
78
84
|
def self.stat: (?::Hash[Symbol, Integer] arg0) -> ::Hash[Symbol, Integer]
|
79
85
|
| (?Symbol arg0) -> Integer
|
80
86
|
|
81
|
-
# Returns current status of
|
87
|
+
# Returns current status of GC stress mode.
|
88
|
+
#
|
82
89
|
def self.stress: () -> (Integer | TrueClass | FalseClass)
|
83
90
|
|
84
|
-
|
91
|
+
# Updates the GC stress mode.
|
92
|
+
#
|
93
|
+
# When stress mode is enabled, the GC is invoked at every GC opportunity: all
|
94
|
+
# memory and object allocations.
|
95
|
+
#
|
96
|
+
# Enabling stress mode will degrade performance, it is only for debugging.
|
97
|
+
#
|
98
|
+
# flag can be true, false, or an integer bit-ORed following flags.
|
99
|
+
# 0x01:: no major GC
|
100
|
+
# 0x02:: no immediate sweep
|
101
|
+
# 0x04:: full mark after malloc/calloc/realloc
|
102
|
+
#
|
103
|
+
def self.stress=: (Integer | TrueClass | FalseClass flag) -> (Integer | TrueClass | FalseClass)
|
85
104
|
|
86
105
|
def self.compact: () -> ::Hash[:considered | :moved, Hash[Symbol | Integer, Integer]]
|
87
106
|
|
107
|
+
# Verify compaction reference consistency.
|
108
|
+
#
|
109
|
+
# This method is implementation specific. During compaction, objects that were
|
110
|
+
# moved are replaced with T_MOVED objects. No object should have a reference to
|
111
|
+
# a T_MOVED object after compaction.
|
112
|
+
#
|
113
|
+
# This function doubles the heap to ensure room to move all objects, compacts
|
114
|
+
# the heap to make sure everything moves, updates all references, then performs
|
115
|
+
# a full GC. If any object contains a reference to a T_MOVED object, that
|
116
|
+
# object should be pushed on the mark stack, and will make a SEGV.
|
117
|
+
#
|
88
118
|
def self.verify_compaction_references: () -> ::Hash[:considered | :moved, Hash[Symbol | Integer, Integer]]
|
89
119
|
|
120
|
+
# Verify internal consistency.
|
121
|
+
#
|
122
|
+
# This method is implementation specific. Now this method checks generational
|
123
|
+
# consistency if RGenGC is supported.
|
124
|
+
#
|
90
125
|
def self.verify_internal_consistency: () -> nil
|
91
126
|
|
92
127
|
def self.verify_transient_heap_internal_consistency: () -> nil
|
93
128
|
|
129
|
+
# Returns information about the most recent garbage collection.
|
130
|
+
#
|
94
131
|
def self.latest_gc_info: () -> ::Hash[::Symbol, untyped]
|
95
132
|
| [K] (?Hash[K, untyped] hash) -> ::Hash[::Symbol | K, untyped]
|
96
133
|
| (Symbol key) -> untyped
|
97
134
|
|
98
|
-
def garbage_collect: (?
|
135
|
+
def garbage_collect: (?immediate_sweep: bool immediate_sweep, ?immediate_mark: bool immediate_mark, ?full_mark: bool full_mark) -> nil
|
99
136
|
end
|
100
137
|
|
138
|
+
# internal constants
|
139
|
+
#
|
140
|
+
#
|
101
141
|
GC::INTERNAL_CONSTANTS: Hash[Symbol, Integer]
|
102
142
|
|
143
|
+
# GC build options
|
144
|
+
#
|
145
|
+
#
|
103
146
|
GC::OPTS: Array[String]
|
104
147
|
|
148
|
+
# The GC profiler provides access to information on GC runs including time,
|
149
|
+
# length and object space size.
|
150
|
+
#
|
151
|
+
# Example:
|
152
|
+
#
|
153
|
+
# GC::Profiler.enable
|
154
|
+
#
|
155
|
+
# require 'rdoc/rdoc'
|
156
|
+
#
|
157
|
+
# GC::Profiler.report
|
158
|
+
#
|
159
|
+
# GC::Profiler.disable
|
160
|
+
#
|
161
|
+
# See also GC.count, GC.malloc_allocated_size and GC.malloc_allocations
|
162
|
+
#
|
105
163
|
module GC::Profiler
|
164
|
+
# Clears the GC profiler data.
|
165
|
+
#
|
106
166
|
def self.clear: () -> void
|
107
167
|
|
168
|
+
# Stops the GC profiler.
|
169
|
+
#
|
108
170
|
def self.disable: () -> void
|
109
171
|
|
172
|
+
# Starts the GC profiler.
|
173
|
+
#
|
110
174
|
def self.enable: () -> void
|
111
175
|
|
176
|
+
# The current status of GC profile mode.
|
177
|
+
#
|
112
178
|
def self.enabled?: () -> bool
|
113
179
|
|
180
|
+
# Returns an Array of individual raw profile data Hashes ordered from earliest
|
181
|
+
# to latest by `:GC_INVOKE_TIME`.
|
182
|
+
#
|
183
|
+
# For example:
|
184
|
+
#
|
185
|
+
# [
|
186
|
+
# {
|
187
|
+
# :GC_TIME=>1.3000000000000858e-05,
|
188
|
+
# :GC_INVOKE_TIME=>0.010634999999999999,
|
189
|
+
# :HEAP_USE_SIZE=>289640,
|
190
|
+
# :HEAP_TOTAL_SIZE=>588960,
|
191
|
+
# :HEAP_TOTAL_OBJECTS=>14724,
|
192
|
+
# :GC_IS_MARKED=>false
|
193
|
+
# },
|
194
|
+
# # ...
|
195
|
+
# ]
|
196
|
+
#
|
197
|
+
# The keys mean:
|
198
|
+
#
|
199
|
+
# `:GC_TIME`
|
200
|
+
# : Time elapsed in seconds for this GC run
|
201
|
+
# `:GC_INVOKE_TIME`
|
202
|
+
# : Time elapsed in seconds from startup to when the GC was invoked
|
203
|
+
# `:HEAP_USE_SIZE`
|
204
|
+
# : Total bytes of heap used
|
205
|
+
# `:HEAP_TOTAL_SIZE`
|
206
|
+
# : Total size of heap in bytes
|
207
|
+
# `:HEAP_TOTAL_OBJECTS`
|
208
|
+
# : Total number of objects
|
209
|
+
# `:GC_IS_MARKED`
|
210
|
+
# : Returns `true` if the GC is in mark phase
|
211
|
+
#
|
212
|
+
#
|
213
|
+
# If ruby was built with `GC_PROFILE_MORE_DETAIL`, you will also have access to
|
214
|
+
# the following hash keys:
|
215
|
+
#
|
216
|
+
# `:GC_MARK_TIME`
|
217
|
+
# `:GC_SWEEP_TIME`
|
218
|
+
# `:ALLOCATE_INCREASE`
|
219
|
+
# `:ALLOCATE_LIMIT`
|
220
|
+
# `:HEAP_USE_PAGES`
|
221
|
+
# `:HEAP_LIVE_OBJECTS`
|
222
|
+
# `:HEAP_FREE_OBJECTS`
|
223
|
+
# `:HAVE_FINALIZE`
|
224
|
+
# :
|
225
|
+
#
|
114
226
|
def self.raw_data: () -> ::Array[::Hash[Symbol, untyped]]
|
115
227
|
|
228
|
+
# Writes the GC::Profiler.result to `$stdout` or the given IO object.
|
229
|
+
#
|
116
230
|
def self.report: (?IO io) -> void
|
117
231
|
|
232
|
+
# Returns a profile data report such as:
|
233
|
+
#
|
234
|
+
# GC 1 invokes.
|
235
|
+
# Index Invoke Time(sec) Use Size(byte) Total Size(byte) Total Object GC time(ms)
|
236
|
+
# 1 0.012 159240 212940 10647 0.00000000000001530000
|
237
|
+
#
|
118
238
|
def self.result: () -> String
|
119
239
|
|
240
|
+
# The total time used for garbage collection in seconds
|
241
|
+
#
|
120
242
|
def self.total_time: () -> Float
|
121
243
|
end
|
@@ -45,7 +45,6 @@ class Integer < Numeric
|
|
45
45
|
| (Rational) -> Rational
|
46
46
|
| (Complex) -> Complex
|
47
47
|
| (Integer) -> Integer
|
48
|
-
| (Numeric) -> Numeric
|
49
48
|
|
50
49
|
# Raises `int` to the power of `numeric`, which may be negative or fractional.
|
51
50
|
# The result may be an Integer, a Float, a Rational, or a complex number.
|
@@ -63,7 +62,6 @@ class Integer < Numeric
|
|
63
62
|
| (Float) -> Numeric
|
64
63
|
| (Rational) -> Numeric
|
65
64
|
| (Complex) -> Complex
|
66
|
-
| (Numeric) -> Numeric
|
67
65
|
|
68
66
|
# Performs addition: the class of the resulting object depends on the class of
|
69
67
|
# `numeric`.
|
@@ -72,7 +70,6 @@ class Integer < Numeric
|
|
72
70
|
| (Float) -> Float
|
73
71
|
| (Rational) -> Rational
|
74
72
|
| (Complex) -> Complex
|
75
|
-
| (Numeric) -> Numeric
|
76
73
|
|
77
74
|
def +@: () -> Integer
|
78
75
|
|
@@ -83,7 +80,6 @@ class Integer < Numeric
|
|
83
80
|
| (Float) -> Float
|
84
81
|
| (Rational) -> Rational
|
85
82
|
| (Complex) -> Complex
|
86
|
-
| (Numeric) -> Numeric
|
87
83
|
|
88
84
|
# Returns `int`, negated.
|
89
85
|
#
|
@@ -96,7 +92,6 @@ class Integer < Numeric
|
|
96
92
|
| (Float) -> Float
|
97
93
|
| (Rational) -> Rational
|
98
94
|
| (Complex) -> Complex
|
99
|
-
| (Numeric) -> Numeric
|
100
95
|
|
101
96
|
# Returns `true` if the value of `int` is less than that of `real`.
|
102
97
|
#
|
@@ -475,7 +470,9 @@ class Integer < Numeric
|
|
475
470
|
# a.pow(b, m) #=> same as (a**b) % m, but avoids huge temporary values
|
476
471
|
#
|
477
472
|
def pow: (Integer other, ?Integer modulo) -> Integer
|
478
|
-
| (
|
473
|
+
| (Float) -> Float
|
474
|
+
| (Rational) -> Rational
|
475
|
+
| (Complex) -> Complex
|
479
476
|
|
480
477
|
# Returns the predecessor of `int`, i.e. the Integer equal to `int-1`.
|
481
478
|
#
|
@@ -302,19 +302,19 @@ module Kernel
|
|
302
302
|
# The optional second parameter sets the message associated with the
|
303
303
|
# exception, and the third parameter is an array of callback information.
|
304
304
|
# Exceptions are caught by the `rescue` clause of `begin...end` blocks.
|
305
|
-
#
|
305
|
+
#
|
306
306
|
# ```ruby
|
307
307
|
# raise "Failed to create socket"
|
308
308
|
# raise ArgumentError, "No parameters", caller
|
309
309
|
# ```
|
310
|
-
#
|
310
|
+
#
|
311
311
|
# The `cause` of the generated exception is automatically set to the
|
312
312
|
# “current” exception ( `$!` ) if any. An alternative value, either an
|
313
313
|
# `Exception` object or `nil`, can be specified via the `:cause`
|
314
314
|
# argument.
|
315
315
|
def fail: () -> bot
|
316
316
|
| (String arg0) -> bot
|
317
|
-
| (
|
317
|
+
| (_Exception arg0, ?untyped arg1, ?::Array[String] arg2) -> bot
|
318
318
|
alias raise fail
|
319
319
|
|
320
320
|
def format: (String format, *untyped args) -> String
|
@@ -384,7 +384,9 @@ module Kernel
|
|
384
384
|
# cat, 1, 2, 3, 99
|
385
385
|
def print: (*Kernel args) -> nil
|
386
386
|
|
387
|
-
def printf: (
|
387
|
+
def printf: (IO arg0, String arg1, *untyped args) -> nil
|
388
|
+
| (String arg1, *untyped args) -> nil
|
389
|
+
| -> nil
|
388
390
|
|
389
391
|
def proc: () { () -> untyped } -> Proc
|
390
392
|
|