pf2 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/.document +3 -0
  3. data/.rdoc_options +6 -0
  4. data/CHANGELOG.md +36 -0
  5. data/README.md +31 -4
  6. data/Rakefile +8 -9
  7. data/doc/development.md +6 -0
  8. data/ext/pf2/debug.h +12 -0
  9. data/ext/pf2/extconf.rb +23 -6
  10. data/ext/pf2/pf2.c +17 -0
  11. data/ext/{pf2c → pf2}/sample.c +7 -3
  12. data/ext/pf2/sample.h +27 -0
  13. data/ext/{pf2c → pf2}/serializer.c +1 -1
  14. data/ext/{pf2c → pf2}/session.c +116 -31
  15. data/ext/{pf2c → pf2}/session.h +7 -2
  16. data/lib/pf2/cli.rb +3 -11
  17. data/lib/pf2/reporter/firefox_profiler_ser2.rb +17 -13
  18. data/lib/pf2/reporter/stack_weaver.rb +9 -1
  19. data/lib/pf2/reporter.rb +0 -1
  20. data/lib/pf2/version.rb +1 -1
  21. data/lib/pf2.rb +1 -2
  22. metadata +41 -129
  23. data/Cargo.lock +0 -630
  24. data/Cargo.toml +0 -3
  25. data/crates/backtrace-sys2/.gitignore +0 -1
  26. data/crates/backtrace-sys2/Cargo.toml +0 -9
  27. data/crates/backtrace-sys2/build.rs +0 -45
  28. data/crates/backtrace-sys2/src/lib.rs +0 -5
  29. data/crates/backtrace-sys2/src/libbacktrace/.gitignore +0 -15
  30. data/crates/backtrace-sys2/src/libbacktrace/Isaac.Newton-Opticks.txt +0 -9286
  31. data/crates/backtrace-sys2/src/libbacktrace/LICENSE +0 -29
  32. data/crates/backtrace-sys2/src/libbacktrace/Makefile.am +0 -708
  33. data/crates/backtrace-sys2/src/libbacktrace/Makefile.in +0 -2820
  34. data/crates/backtrace-sys2/src/libbacktrace/README.md +0 -46
  35. data/crates/backtrace-sys2/src/libbacktrace/aclocal.m4 +0 -864
  36. data/crates/backtrace-sys2/src/libbacktrace/alloc.c +0 -167
  37. data/crates/backtrace-sys2/src/libbacktrace/allocfail.c +0 -136
  38. data/crates/backtrace-sys2/src/libbacktrace/allocfail.sh +0 -104
  39. data/crates/backtrace-sys2/src/libbacktrace/atomic.c +0 -113
  40. data/crates/backtrace-sys2/src/libbacktrace/backtrace-supported.h.in +0 -66
  41. data/crates/backtrace-sys2/src/libbacktrace/backtrace.c +0 -129
  42. data/crates/backtrace-sys2/src/libbacktrace/backtrace.h +0 -189
  43. data/crates/backtrace-sys2/src/libbacktrace/btest.c +0 -517
  44. data/crates/backtrace-sys2/src/libbacktrace/compile +0 -348
  45. data/crates/backtrace-sys2/src/libbacktrace/config/enable.m4 +0 -38
  46. data/crates/backtrace-sys2/src/libbacktrace/config/lead-dot.m4 +0 -31
  47. data/crates/backtrace-sys2/src/libbacktrace/config/libtool.m4 +0 -7545
  48. data/crates/backtrace-sys2/src/libbacktrace/config/ltoptions.m4 +0 -369
  49. data/crates/backtrace-sys2/src/libbacktrace/config/ltsugar.m4 +0 -123
  50. data/crates/backtrace-sys2/src/libbacktrace/config/ltversion.m4 +0 -23
  51. data/crates/backtrace-sys2/src/libbacktrace/config/lt~obsolete.m4 +0 -98
  52. data/crates/backtrace-sys2/src/libbacktrace/config/multi.m4 +0 -68
  53. data/crates/backtrace-sys2/src/libbacktrace/config/override.m4 +0 -117
  54. data/crates/backtrace-sys2/src/libbacktrace/config/unwind_ipinfo.m4 +0 -37
  55. data/crates/backtrace-sys2/src/libbacktrace/config/warnings.m4 +0 -227
  56. data/crates/backtrace-sys2/src/libbacktrace/config.guess +0 -1700
  57. data/crates/backtrace-sys2/src/libbacktrace/config.h.in +0 -185
  58. data/crates/backtrace-sys2/src/libbacktrace/config.sub +0 -1885
  59. data/crates/backtrace-sys2/src/libbacktrace/configure +0 -15929
  60. data/crates/backtrace-sys2/src/libbacktrace/configure.ac +0 -632
  61. data/crates/backtrace-sys2/src/libbacktrace/dwarf.c +0 -4409
  62. data/crates/backtrace-sys2/src/libbacktrace/edtest.c +0 -120
  63. data/crates/backtrace-sys2/src/libbacktrace/edtest2.c +0 -43
  64. data/crates/backtrace-sys2/src/libbacktrace/elf.c +0 -7465
  65. data/crates/backtrace-sys2/src/libbacktrace/fileline.c +0 -407
  66. data/crates/backtrace-sys2/src/libbacktrace/filenames.h +0 -52
  67. data/crates/backtrace-sys2/src/libbacktrace/filetype.awk +0 -13
  68. data/crates/backtrace-sys2/src/libbacktrace/install-debuginfo-for-buildid.sh.in +0 -65
  69. data/crates/backtrace-sys2/src/libbacktrace/install-sh +0 -501
  70. data/crates/backtrace-sys2/src/libbacktrace/instrumented_alloc.c +0 -114
  71. data/crates/backtrace-sys2/src/libbacktrace/internal.h +0 -428
  72. data/crates/backtrace-sys2/src/libbacktrace/ltmain.sh +0 -8636
  73. data/crates/backtrace-sys2/src/libbacktrace/macho.c +0 -1361
  74. data/crates/backtrace-sys2/src/libbacktrace/missing +0 -215
  75. data/crates/backtrace-sys2/src/libbacktrace/mmap.c +0 -331
  76. data/crates/backtrace-sys2/src/libbacktrace/mmapio.c +0 -110
  77. data/crates/backtrace-sys2/src/libbacktrace/move-if-change +0 -83
  78. data/crates/backtrace-sys2/src/libbacktrace/mtest.c +0 -410
  79. data/crates/backtrace-sys2/src/libbacktrace/nounwind.c +0 -66
  80. data/crates/backtrace-sys2/src/libbacktrace/pecoff.c +0 -1123
  81. data/crates/backtrace-sys2/src/libbacktrace/posix.c +0 -104
  82. data/crates/backtrace-sys2/src/libbacktrace/print.c +0 -117
  83. data/crates/backtrace-sys2/src/libbacktrace/read.c +0 -110
  84. data/crates/backtrace-sys2/src/libbacktrace/simple.c +0 -108
  85. data/crates/backtrace-sys2/src/libbacktrace/sort.c +0 -108
  86. data/crates/backtrace-sys2/src/libbacktrace/state.c +0 -72
  87. data/crates/backtrace-sys2/src/libbacktrace/stest.c +0 -137
  88. data/crates/backtrace-sys2/src/libbacktrace/test-driver +0 -148
  89. data/crates/backtrace-sys2/src/libbacktrace/test_format.c +0 -55
  90. data/crates/backtrace-sys2/src/libbacktrace/testlib.c +0 -234
  91. data/crates/backtrace-sys2/src/libbacktrace/testlib.h +0 -110
  92. data/crates/backtrace-sys2/src/libbacktrace/ttest.c +0 -161
  93. data/crates/backtrace-sys2/src/libbacktrace/unittest.c +0 -92
  94. data/crates/backtrace-sys2/src/libbacktrace/unknown.c +0 -65
  95. data/crates/backtrace-sys2/src/libbacktrace/xcoff.c +0 -1617
  96. data/crates/backtrace-sys2/src/libbacktrace/xztest.c +0 -508
  97. data/crates/backtrace-sys2/src/libbacktrace/zstdtest.c +0 -523
  98. data/crates/backtrace-sys2/src/libbacktrace/ztest.c +0 -541
  99. data/ext/pf2/Cargo.toml +0 -25
  100. data/ext/pf2/build.rs +0 -10
  101. data/ext/pf2/src/backtrace.rs +0 -127
  102. data/ext/pf2/src/lib.rs +0 -22
  103. data/ext/pf2/src/profile.rs +0 -69
  104. data/ext/pf2/src/profile_serializer.rs +0 -241
  105. data/ext/pf2/src/ringbuffer.rs +0 -150
  106. data/ext/pf2/src/ruby_c_api_helper.c +0 -6
  107. data/ext/pf2/src/ruby_init.rs +0 -40
  108. data/ext/pf2/src/ruby_internal_apis.rs +0 -77
  109. data/ext/pf2/src/sample.rs +0 -67
  110. data/ext/pf2/src/scheduler.rs +0 -10
  111. data/ext/pf2/src/serialization/profile.rs +0 -48
  112. data/ext/pf2/src/serialization/serializer.rs +0 -329
  113. data/ext/pf2/src/serialization.rs +0 -2
  114. data/ext/pf2/src/session/configuration.rs +0 -114
  115. data/ext/pf2/src/session/new_thread_watcher.rs +0 -80
  116. data/ext/pf2/src/session/ruby_object.rs +0 -90
  117. data/ext/pf2/src/session.rs +0 -248
  118. data/ext/pf2/src/siginfo_t.c +0 -5
  119. data/ext/pf2/src/signal_scheduler.rs +0 -201
  120. data/ext/pf2/src/signal_scheduler_unsupported_platform.rs +0 -39
  121. data/ext/pf2/src/timer_thread_scheduler.rs +0 -179
  122. data/ext/pf2/src/util.rs +0 -31
  123. data/ext/pf2c/extconf.rb +0 -21
  124. data/ext/pf2c/pf2.c +0 -17
  125. data/ext/pf2c/sample.h +0 -22
  126. data/lib/pf2/reporter/firefox_profiler.rb +0 -397
  127. data/lib/pf2/session.rb +0 -9
  128. data/rust-toolchain.toml +0 -2
  129. data/rustfmt.toml +0 -1
  130. /data/ext/{pf2c → pf2}/backtrace_state.c +0 -0
  131. /data/ext/{pf2c → pf2}/backtrace_state.h +0 -0
  132. /data/ext/{pf2c → pf2}/configuration.c +0 -0
  133. /data/ext/{pf2c → pf2}/configuration.h +0 -0
  134. /data/ext/{pf2c → pf2}/pf2.h +0 -0
  135. /data/ext/{pf2c → pf2}/ringbuffer.c +0 -0
  136. /data/ext/{pf2c → pf2}/ringbuffer.h +0 -0
  137. /data/ext/{pf2c → pf2}/serializer.h +0 -0
@@ -2,6 +2,8 @@
2
2
 
3
3
  require 'json'
4
4
 
5
+ require_relative 'stack_weaver'
6
+
5
7
  module Pf2
6
8
  module Reporter
7
9
  # Generates Firefox Profiler's "processed profile format"
@@ -59,7 +61,7 @@ module Pf2
59
61
  counters: [],
60
62
  threads: thread_reports,
61
63
  }
62
- FirefoxProfiler.deep_camelize_keys(report)
64
+ FirefoxProfilerSer2.deep_camelize_keys(report)
63
65
  end
64
66
 
65
67
  class ThreadReport
@@ -72,6 +74,7 @@ module Pf2
72
74
  @stack_tree = { :stack_id => nil }
73
75
  @reverse_stack_tree = []
74
76
  @string_table = { nil => 0 }
77
+ @stack_weaver = StackWeaver.new(@profile)
75
78
  end
76
79
 
77
80
  def inspect
@@ -79,9 +82,6 @@ module Pf2
79
82
  end
80
83
 
81
84
  def emit
82
- # TODO: weave?
83
- # @thread[:stack_tree] = x
84
-
85
85
  # Build func table from profile[:functions]
86
86
  func_table = build_func_table
87
87
  # Build frame table from profile[:locations]
@@ -136,8 +136,10 @@ module Pf2
136
136
  }
137
137
 
138
138
  @samples.each do |sample|
139
- stack = sample[:stack].reverse
140
- stack_id = @stack_tree.dig(*stack, :stack_id)
139
+ # Weave Ruby stack and native stack
140
+ woven_stack = @stack_weaver.weave(sample[:stack], sample[:native_stack] || [])
141
+ woven_stack.reverse! # StackWeaver returns in root->leaf order, we need leaf->root
142
+ stack_id = @stack_tree.dig(*woven_stack, :stack_id)
141
143
 
142
144
  ret[:stack] << stack_id
143
145
  ret[:time] << sample[:elapsed_ns] / 1_000_000 # ns -> ms
@@ -165,9 +167,11 @@ module Pf2
165
167
  }
166
168
 
167
169
  @profile[:locations].each.with_index do |location, i|
170
+ function = @profile[:functions][location[:function_index]]
171
+
168
172
  ret[:address] << location[:address]
169
- ret[:category] << 1
170
- ret[:subcategory] << 1
173
+ ret[:category] << (function[:implementation] == :native ? 3 : 2)
174
+ ret[:subcategory] << nil
171
175
  ret[:func] << location[:function_index]
172
176
  ret[:inner_window_id] << nil
173
177
  ret[:implementation] << nil
@@ -218,15 +222,15 @@ module Pf2
218
222
  }
219
223
 
220
224
  @profile[:samples].each do |sample|
221
- # Stack (Array of location indices) recorded in sample, reversed
222
- # example: [1, 2, 9] (1 is the root)
223
- stack = sample[:stack].reverse
225
+ # Weave Ruby stack and native stack
226
+ woven_stack = @stack_weaver.weave(sample[:stack], sample[:native_stack] || [])
227
+ woven_stack.reverse! # StackWeaver returns in root->leaf order, we need leaf->root
224
228
 
225
229
  # Build the stack_table Array which Firefox Profiler requires.
226
230
  # At the same time, build the stack tree for efficient traversal.
227
231
 
228
232
  current_node = @stack_tree # the stack tree root
229
- stack.each do |location_index|
233
+ woven_stack.each do |location_index|
230
234
  if current_node[location_index].nil?
231
235
  # The tree node is unknown. Create it.
232
236
  new_stack_id = ret[:frame].length # The position of the new stack in the stack_table array
@@ -238,7 +242,7 @@ module Pf2
238
242
 
239
243
  # Register the stack in the stack_table Array
240
244
  ret[:frame] << location_index
241
- ret[:category] << (function[:implementation] == :ruby ? 2 : 1)
245
+ ret[:category] << (function[:implementation] == :native ? 3 : 2)
242
246
  ret[:subcategory] << nil
243
247
  ret[:prefix] << current_node[:stack_id] # the parent's position in the stack_table array
244
248
  end
@@ -2,6 +2,14 @@
2
2
 
3
3
  module Pf2
4
4
  module Reporter
5
+ # "Weaves" the native stack into the Ruby stack.
6
+ #
7
+ # Strategy:
8
+ # - Split the stack into Ruby and Native parts
9
+ # - Start from the root of the Native stack
10
+ # - Dig in to the native stack until we hit a rb_vm_exec(), which marks a call into Ruby code
11
+ # - Switch to Ruby stack. Keep digging until we hit a Cfunc call, then switch back to Native stack
12
+ # - Repeat until we consume the entire stack
5
13
  class StackWeaver
6
14
  def initialize(profile)
7
15
  @profile = profile
@@ -74,7 +82,7 @@ module Pf2
74
82
 
75
83
  # If the next function is a vm_exec_core() (= VM_EXEC in vm_exec.h),
76
84
  # we switch to the Ruby stack.
77
- function[:name] == 'vm_exec_core'
85
+ function[:name]&.match?(/\Avm_exec_core(?:\.lto_priv\.\d+)?\z/)
78
86
  end
79
87
  end
80
88
  end
data/lib/pf2/reporter.rb CHANGED
@@ -2,5 +2,4 @@
2
2
 
3
3
  require_relative './reporter/annotate'
4
4
  require_relative './reporter/stack_weaver'
5
- require_relative './reporter/firefox_profiler'
6
5
  require_relative './reporter/firefox_profiler_ser2'
data/lib/pf2/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pf2
4
- VERSION = '0.9.0'
4
+ VERSION = '0.11.0'
5
5
  end
data/lib/pf2.rb CHANGED
@@ -1,14 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'pf2/pf2'
4
- require_relative 'pf2/session'
5
4
  require_relative 'pf2/version'
6
5
 
7
6
  module Pf2
8
7
  class Error < StandardError; end
9
8
 
10
9
  def self.start(...)
11
- @@session = Pf2::Session.new(...)
10
+ @@session = Session.new(...)
12
11
  @@session.start
13
12
  end
14
13
 
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pf2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daisuke Aritomo
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: rake-compiler
13
+ name: logger
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
@@ -24,7 +24,7 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: mini_portile2
27
+ name: rake-compiler
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
@@ -38,19 +38,19 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: rb_sys
41
+ name: mini_portile2
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - '='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.9.105
46
+ version: '0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 0.9.105
53
+ version: '0'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: webrick
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +93,20 @@ dependencies:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rdoc
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
96
110
  email:
97
111
  - osyoyu@osyoyu.com
98
112
  executables:
@@ -101,142 +115,40 @@ extensions:
101
115
  - ext/pf2/extconf.rb
102
116
  extra_rdoc_files: []
103
117
  files:
118
+ - ".document"
119
+ - ".rdoc_options"
104
120
  - CHANGELOG.md
105
- - Cargo.lock
106
- - Cargo.toml
107
121
  - LICENSE.txt
108
122
  - README.md
109
123
  - Rakefile
110
- - crates/backtrace-sys2/.gitignore
111
- - crates/backtrace-sys2/Cargo.toml
112
- - crates/backtrace-sys2/build.rs
113
- - crates/backtrace-sys2/src/lib.rs
114
- - crates/backtrace-sys2/src/libbacktrace/.gitignore
115
- - crates/backtrace-sys2/src/libbacktrace/Isaac.Newton-Opticks.txt
116
- - crates/backtrace-sys2/src/libbacktrace/LICENSE
117
- - crates/backtrace-sys2/src/libbacktrace/Makefile.am
118
- - crates/backtrace-sys2/src/libbacktrace/Makefile.in
119
- - crates/backtrace-sys2/src/libbacktrace/README.md
120
- - crates/backtrace-sys2/src/libbacktrace/aclocal.m4
121
- - crates/backtrace-sys2/src/libbacktrace/alloc.c
122
- - crates/backtrace-sys2/src/libbacktrace/allocfail.c
123
- - crates/backtrace-sys2/src/libbacktrace/allocfail.sh
124
- - crates/backtrace-sys2/src/libbacktrace/atomic.c
125
- - crates/backtrace-sys2/src/libbacktrace/backtrace-supported.h.in
126
- - crates/backtrace-sys2/src/libbacktrace/backtrace.c
127
- - crates/backtrace-sys2/src/libbacktrace/backtrace.h
128
- - crates/backtrace-sys2/src/libbacktrace/btest.c
129
- - crates/backtrace-sys2/src/libbacktrace/compile
130
- - crates/backtrace-sys2/src/libbacktrace/config.guess
131
- - crates/backtrace-sys2/src/libbacktrace/config.h.in
132
- - crates/backtrace-sys2/src/libbacktrace/config.sub
133
- - crates/backtrace-sys2/src/libbacktrace/config/enable.m4
134
- - crates/backtrace-sys2/src/libbacktrace/config/lead-dot.m4
135
- - crates/backtrace-sys2/src/libbacktrace/config/libtool.m4
136
- - crates/backtrace-sys2/src/libbacktrace/config/ltoptions.m4
137
- - crates/backtrace-sys2/src/libbacktrace/config/ltsugar.m4
138
- - crates/backtrace-sys2/src/libbacktrace/config/ltversion.m4
139
- - crates/backtrace-sys2/src/libbacktrace/config/lt~obsolete.m4
140
- - crates/backtrace-sys2/src/libbacktrace/config/multi.m4
141
- - crates/backtrace-sys2/src/libbacktrace/config/override.m4
142
- - crates/backtrace-sys2/src/libbacktrace/config/unwind_ipinfo.m4
143
- - crates/backtrace-sys2/src/libbacktrace/config/warnings.m4
144
- - crates/backtrace-sys2/src/libbacktrace/configure
145
- - crates/backtrace-sys2/src/libbacktrace/configure.ac
146
- - crates/backtrace-sys2/src/libbacktrace/dwarf.c
147
- - crates/backtrace-sys2/src/libbacktrace/edtest.c
148
- - crates/backtrace-sys2/src/libbacktrace/edtest2.c
149
- - crates/backtrace-sys2/src/libbacktrace/elf.c
150
- - crates/backtrace-sys2/src/libbacktrace/fileline.c
151
- - crates/backtrace-sys2/src/libbacktrace/filenames.h
152
- - crates/backtrace-sys2/src/libbacktrace/filetype.awk
153
- - crates/backtrace-sys2/src/libbacktrace/install-debuginfo-for-buildid.sh.in
154
- - crates/backtrace-sys2/src/libbacktrace/install-sh
155
- - crates/backtrace-sys2/src/libbacktrace/instrumented_alloc.c
156
- - crates/backtrace-sys2/src/libbacktrace/internal.h
157
- - crates/backtrace-sys2/src/libbacktrace/ltmain.sh
158
- - crates/backtrace-sys2/src/libbacktrace/macho.c
159
- - crates/backtrace-sys2/src/libbacktrace/missing
160
- - crates/backtrace-sys2/src/libbacktrace/mmap.c
161
- - crates/backtrace-sys2/src/libbacktrace/mmapio.c
162
- - crates/backtrace-sys2/src/libbacktrace/move-if-change
163
- - crates/backtrace-sys2/src/libbacktrace/mtest.c
164
- - crates/backtrace-sys2/src/libbacktrace/nounwind.c
165
- - crates/backtrace-sys2/src/libbacktrace/pecoff.c
166
- - crates/backtrace-sys2/src/libbacktrace/posix.c
167
- - crates/backtrace-sys2/src/libbacktrace/print.c
168
- - crates/backtrace-sys2/src/libbacktrace/read.c
169
- - crates/backtrace-sys2/src/libbacktrace/simple.c
170
- - crates/backtrace-sys2/src/libbacktrace/sort.c
171
- - crates/backtrace-sys2/src/libbacktrace/state.c
172
- - crates/backtrace-sys2/src/libbacktrace/stest.c
173
- - crates/backtrace-sys2/src/libbacktrace/test-driver
174
- - crates/backtrace-sys2/src/libbacktrace/test_format.c
175
- - crates/backtrace-sys2/src/libbacktrace/testlib.c
176
- - crates/backtrace-sys2/src/libbacktrace/testlib.h
177
- - crates/backtrace-sys2/src/libbacktrace/ttest.c
178
- - crates/backtrace-sys2/src/libbacktrace/unittest.c
179
- - crates/backtrace-sys2/src/libbacktrace/unknown.c
180
- - crates/backtrace-sys2/src/libbacktrace/xcoff.c
181
- - crates/backtrace-sys2/src/libbacktrace/xztest.c
182
- - crates/backtrace-sys2/src/libbacktrace/zstdtest.c
183
- - crates/backtrace-sys2/src/libbacktrace/ztest.c
184
124
  - doc/development.md
185
125
  - examples/mandelbrot.rb
186
126
  - examples/mandelbrot_ractor.rb
187
127
  - exe/pf2
188
- - ext/pf2/Cargo.toml
189
- - ext/pf2/build.rs
128
+ - ext/pf2/backtrace_state.c
129
+ - ext/pf2/backtrace_state.h
130
+ - ext/pf2/configuration.c
131
+ - ext/pf2/configuration.h
132
+ - ext/pf2/debug.h
190
133
  - ext/pf2/extconf.rb
191
- - ext/pf2/src/backtrace.rs
192
- - ext/pf2/src/lib.rs
193
- - ext/pf2/src/profile.rs
194
- - ext/pf2/src/profile_serializer.rs
195
- - ext/pf2/src/ringbuffer.rs
196
- - ext/pf2/src/ruby_c_api_helper.c
197
- - ext/pf2/src/ruby_init.rs
198
- - ext/pf2/src/ruby_internal_apis.rs
199
- - ext/pf2/src/sample.rs
200
- - ext/pf2/src/scheduler.rs
201
- - ext/pf2/src/serialization.rs
202
- - ext/pf2/src/serialization/profile.rs
203
- - ext/pf2/src/serialization/serializer.rs
204
- - ext/pf2/src/session.rs
205
- - ext/pf2/src/session/configuration.rs
206
- - ext/pf2/src/session/new_thread_watcher.rs
207
- - ext/pf2/src/session/ruby_object.rs
208
- - ext/pf2/src/siginfo_t.c
209
- - ext/pf2/src/signal_scheduler.rs
210
- - ext/pf2/src/signal_scheduler_unsupported_platform.rs
211
- - ext/pf2/src/timer_thread_scheduler.rs
212
- - ext/pf2/src/util.rs
213
- - ext/pf2c/backtrace_state.c
214
- - ext/pf2c/backtrace_state.h
215
- - ext/pf2c/configuration.c
216
- - ext/pf2c/configuration.h
217
- - ext/pf2c/extconf.rb
218
- - ext/pf2c/pf2.c
219
- - ext/pf2c/pf2.h
220
- - ext/pf2c/ringbuffer.c
221
- - ext/pf2c/ringbuffer.h
222
- - ext/pf2c/sample.c
223
- - ext/pf2c/sample.h
224
- - ext/pf2c/serializer.c
225
- - ext/pf2c/serializer.h
226
- - ext/pf2c/session.c
227
- - ext/pf2c/session.h
134
+ - ext/pf2/pf2.c
135
+ - ext/pf2/pf2.h
136
+ - ext/pf2/ringbuffer.c
137
+ - ext/pf2/ringbuffer.h
138
+ - ext/pf2/sample.c
139
+ - ext/pf2/sample.h
140
+ - ext/pf2/serializer.c
141
+ - ext/pf2/serializer.h
142
+ - ext/pf2/session.c
143
+ - ext/pf2/session.h
228
144
  - lib/pf2.rb
229
145
  - lib/pf2/cli.rb
230
146
  - lib/pf2/reporter.rb
231
147
  - lib/pf2/reporter/annotate.rb
232
- - lib/pf2/reporter/firefox_profiler.rb
233
148
  - lib/pf2/reporter/firefox_profiler_ser2.rb
234
149
  - lib/pf2/reporter/stack_weaver.rb
235
150
  - lib/pf2/serve.rb
236
- - lib/pf2/session.rb
237
151
  - lib/pf2/version.rb
238
- - rust-toolchain.toml
239
- - rustfmt.toml
240
152
  - vendor/libbacktrace/.gitignore
241
153
  - vendor/libbacktrace/Isaac.Newton-Opticks.txt
242
154
  - vendor/libbacktrace/LICENSE
@@ -329,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
241
  - !ruby/object:Gem::Version
330
242
  version: '0'
331
243
  requirements: []
332
- rubygems_version: 3.7.0.dev
244
+ rubygems_version: 4.0.3
333
245
  specification_version: 4
334
246
  summary: Yet another Ruby profiler
335
247
  test_files: []