rubydex 0.1.0.beta11 → 0.1.0.beta13
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.
- checksums.yaml +4 -4
- data/LICENSE.txt +23 -23
- data/README.md +125 -125
- data/THIRD_PARTY_LICENSES.html +2018 -945
- data/exe/rdx +47 -47
- data/ext/rubydex/declaration.c +453 -388
- data/ext/rubydex/declaration.h +23 -23
- data/ext/rubydex/definition.c +284 -197
- data/ext/rubydex/definition.h +28 -28
- data/ext/rubydex/diagnostic.c +6 -6
- data/ext/rubydex/diagnostic.h +11 -11
- data/ext/rubydex/document.c +97 -98
- data/ext/rubydex/document.h +10 -10
- data/ext/rubydex/extconf.rb +146 -127
- data/ext/rubydex/graph.c +701 -512
- data/ext/rubydex/graph.h +10 -10
- data/ext/rubydex/handle.h +44 -44
- data/ext/rubydex/location.c +22 -22
- data/ext/rubydex/location.h +15 -15
- data/ext/rubydex/reference.c +123 -104
- data/ext/rubydex/reference.h +15 -16
- data/ext/rubydex/rubydex.c +22 -22
- data/ext/rubydex/utils.c +108 -86
- data/ext/rubydex/utils.h +34 -28
- data/lib/rubydex/comment.rb +17 -17
- data/lib/rubydex/declaration.rb +11 -0
- data/lib/rubydex/diagnostic.rb +21 -21
- data/lib/rubydex/failures.rb +15 -15
- data/lib/rubydex/graph.rb +98 -92
- data/lib/rubydex/keyword.rb +17 -0
- data/lib/rubydex/keyword_parameter.rb +13 -0
- data/lib/rubydex/location.rb +90 -90
- data/lib/rubydex/mixin.rb +22 -0
- data/lib/rubydex/version.rb +5 -5
- data/lib/rubydex.rb +24 -20
- data/rbi/rubydex.rbi +425 -310
- data/rust/Cargo.lock +1851 -1851
- data/rust/Cargo.toml +29 -29
- data/rust/about.toml +10 -10
- data/rust/{about.hbs → about_templates/about.hbs} +81 -78
- data/rust/about_templates/mingw_licenses.hbs +1071 -0
- data/rust/rubydex/Cargo.toml +42 -42
- data/rust/rubydex/src/compile_assertions.rs +13 -13
- data/rust/rubydex/src/diagnostic.rs +110 -109
- data/rust/rubydex/src/errors.rs +28 -28
- data/rust/rubydex/src/indexing/local_graph.rs +224 -224
- data/rust/rubydex/src/indexing/rbs_indexer.rs +1551 -1554
- data/rust/rubydex/src/indexing/ruby_indexer.rs +2329 -6753
- data/rust/rubydex/src/indexing/ruby_indexer_tests.rs +4962 -0
- data/rust/rubydex/src/indexing.rs +210 -210
- data/rust/rubydex/src/integrity.rs +279 -278
- data/rust/rubydex/src/job_queue.rs +199 -205
- data/rust/rubydex/src/lib.rs +17 -17
- data/rust/rubydex/src/listing.rs +371 -272
- data/rust/rubydex/src/main.rs +160 -160
- data/rust/rubydex/src/model/built_in.rs +83 -0
- data/rust/rubydex/src/model/comment.rs +24 -24
- data/rust/rubydex/src/model/declaration.rs +679 -588
- data/rust/rubydex/src/model/definitions.rs +1682 -1602
- data/rust/rubydex/src/model/document.rs +222 -252
- data/rust/rubydex/src/model/encoding.rs +22 -22
- data/rust/rubydex/src/model/graph.rs +3782 -3556
- data/rust/rubydex/src/model/id.rs +110 -110
- data/rust/rubydex/src/model/identity_maps.rs +58 -58
- data/rust/rubydex/src/model/ids.rs +60 -38
- data/rust/rubydex/src/model/keywords.rs +256 -256
- data/rust/rubydex/src/model/name.rs +298 -298
- data/rust/rubydex/src/model/references.rs +111 -111
- data/rust/rubydex/src/model/string_ref.rs +50 -50
- data/rust/rubydex/src/model/visibility.rs +41 -41
- data/rust/rubydex/src/model.rs +15 -14
- data/rust/rubydex/src/offset.rs +147 -147
- data/rust/rubydex/src/position.rs +6 -6
- data/rust/rubydex/src/query.rs +1841 -1700
- data/rust/rubydex/src/resolution.rs +1852 -5895
- data/rust/rubydex/src/resolution_tests.rs +4701 -0
- data/rust/rubydex/src/stats/memory.rs +71 -71
- data/rust/rubydex/src/stats/orphan_report.rs +264 -263
- data/rust/rubydex/src/stats/timer.rs +127 -127
- data/rust/rubydex/src/stats.rs +11 -11
- data/rust/rubydex/src/test_utils/context.rs +226 -226
- data/rust/rubydex/src/test_utils/graph_test.rs +730 -679
- data/rust/rubydex/src/test_utils/local_graph_test.rs +602 -602
- data/rust/rubydex/src/test_utils.rs +52 -52
- data/rust/rubydex/src/visualization/dot.rs +192 -176
- data/rust/rubydex/src/visualization.rs +6 -6
- data/rust/rubydex/tests/cli.rs +185 -167
- data/rust/rubydex-mcp/Cargo.toml +28 -28
- data/rust/rubydex-mcp/src/main.rs +48 -48
- data/rust/rubydex-mcp/src/server.rs +1145 -1145
- data/rust/rubydex-mcp/src/tools.rs +49 -49
- data/rust/rubydex-mcp/tests/mcp.rs +302 -302
- data/rust/rubydex-sys/Cargo.toml +20 -20
- data/rust/rubydex-sys/build.rs +14 -14
- data/rust/rubydex-sys/cbindgen.toml +12 -12
- data/rust/rubydex-sys/src/declaration_api.rs +485 -469
- data/rust/rubydex-sys/src/definition_api.rs +443 -352
- data/rust/rubydex-sys/src/diagnostic_api.rs +99 -99
- data/rust/rubydex-sys/src/document_api.rs +85 -54
- data/rust/rubydex-sys/src/graph_api.rs +1017 -700
- data/rust/rubydex-sys/src/lib.rs +79 -9
- data/rust/rubydex-sys/src/location_api.rs +79 -79
- data/rust/rubydex-sys/src/name_api.rs +187 -135
- data/rust/rubydex-sys/src/reference_api.rs +267 -195
- data/rust/rubydex-sys/src/utils.rs +70 -70
- data/rust/rustfmt.toml +2 -2
- metadata +16 -9
- data/lib/rubydex/librubydex_sys.so +0 -0
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
use std::io;
|
|
2
|
-
|
|
3
|
-
#[cfg(unix)]
|
|
4
|
-
use libc::{RUSAGE_SELF, getrusage, rusage};
|
|
5
|
-
|
|
6
|
-
/// Memory statistics for the current process
|
|
7
|
-
#[derive(Debug, Clone, Copy)]
|
|
8
|
-
pub struct MemoryStats {
|
|
9
|
-
/// Maximum resident set size in bytes
|
|
10
|
-
pub max_rss_bytes: i64,
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
impl MemoryStats {
|
|
14
|
-
/// Get current memory statistics using getrusage
|
|
15
|
-
///
|
|
16
|
-
/// # Errors
|
|
17
|
-
///
|
|
18
|
-
/// Returns an error if the `getrusage` system call fails.
|
|
19
|
-
#[cfg(unix)]
|
|
20
|
-
pub fn current() -> Result<Self, io::Error> {
|
|
21
|
-
unsafe {
|
|
22
|
-
let mut usage = std::mem::MaybeUninit::<rusage>::uninit();
|
|
23
|
-
let result = getrusage(RUSAGE_SELF, usage.as_mut_ptr());
|
|
24
|
-
|
|
25
|
-
if result == 0 {
|
|
26
|
-
let usage = usage.assume_init();
|
|
27
|
-
// On macOS and BSD, ru_maxrss is in bytes
|
|
28
|
-
// On Linux, ru_maxrss is in kilobytes
|
|
29
|
-
let max_rss_bytes = if cfg!(target_os = "linux") {
|
|
30
|
-
usage.ru_maxrss * 1024
|
|
31
|
-
} else {
|
|
32
|
-
usage.ru_maxrss
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
Ok(Self { max_rss_bytes })
|
|
36
|
-
} else {
|
|
37
|
-
Err(io::Error::last_os_error())
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/// Get current memory statistics (not supported on non-Unix platforms)
|
|
43
|
-
///
|
|
44
|
-
/// # Errors
|
|
45
|
-
///
|
|
46
|
-
/// Returns an error on non-Unix platforms where memory statistics are not supported.
|
|
47
|
-
#[cfg(not(unix))]
|
|
48
|
-
pub fn current() -> Result<Self, io::Error> {
|
|
49
|
-
Err(io::Error::new(
|
|
50
|
-
io::ErrorKind::Unsupported,
|
|
51
|
-
"Memory statistics not supported on this platform",
|
|
52
|
-
))
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/// Print memory statistics in a human-readable format
|
|
56
|
-
#[allow(clippy::cast_precision_loss)]
|
|
57
|
-
pub fn print(&self) {
|
|
58
|
-
let mrss_mb = self.max_rss_bytes as f64 / 1024.0 / 1024.0;
|
|
59
|
-
|
|
60
|
-
println!("Maximum RSS: {} bytes ({:.2} MB)", self.max_rss_bytes, mrss_mb);
|
|
61
|
-
println!();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/// Retrieve and print memory usage statistics
|
|
65
|
-
pub fn print_memory_usage() {
|
|
66
|
-
match Self::current() {
|
|
67
|
-
Ok(stats) => stats.print(),
|
|
68
|
-
Err(e) => eprintln!("Warning: Could not retrieve memory statistics: {e}"),
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
1
|
+
use std::io;
|
|
2
|
+
|
|
3
|
+
#[cfg(unix)]
|
|
4
|
+
use libc::{RUSAGE_SELF, getrusage, rusage};
|
|
5
|
+
|
|
6
|
+
/// Memory statistics for the current process
|
|
7
|
+
#[derive(Debug, Clone, Copy)]
|
|
8
|
+
pub struct MemoryStats {
|
|
9
|
+
/// Maximum resident set size in bytes
|
|
10
|
+
pub max_rss_bytes: i64,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
impl MemoryStats {
|
|
14
|
+
/// Get current memory statistics using getrusage
|
|
15
|
+
///
|
|
16
|
+
/// # Errors
|
|
17
|
+
///
|
|
18
|
+
/// Returns an error if the `getrusage` system call fails.
|
|
19
|
+
#[cfg(unix)]
|
|
20
|
+
pub fn current() -> Result<Self, io::Error> {
|
|
21
|
+
unsafe {
|
|
22
|
+
let mut usage = std::mem::MaybeUninit::<rusage>::uninit();
|
|
23
|
+
let result = getrusage(RUSAGE_SELF, usage.as_mut_ptr());
|
|
24
|
+
|
|
25
|
+
if result == 0 {
|
|
26
|
+
let usage = usage.assume_init();
|
|
27
|
+
// On macOS and BSD, ru_maxrss is in bytes
|
|
28
|
+
// On Linux, ru_maxrss is in kilobytes
|
|
29
|
+
let max_rss_bytes = if cfg!(target_os = "linux") {
|
|
30
|
+
usage.ru_maxrss * 1024
|
|
31
|
+
} else {
|
|
32
|
+
usage.ru_maxrss
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
Ok(Self { max_rss_bytes })
|
|
36
|
+
} else {
|
|
37
|
+
Err(io::Error::last_os_error())
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// Get current memory statistics (not supported on non-Unix platforms)
|
|
43
|
+
///
|
|
44
|
+
/// # Errors
|
|
45
|
+
///
|
|
46
|
+
/// Returns an error on non-Unix platforms where memory statistics are not supported.
|
|
47
|
+
#[cfg(not(unix))]
|
|
48
|
+
pub fn current() -> Result<Self, io::Error> {
|
|
49
|
+
Err(io::Error::new(
|
|
50
|
+
io::ErrorKind::Unsupported,
|
|
51
|
+
"Memory statistics not supported on this platform",
|
|
52
|
+
))
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/// Print memory statistics in a human-readable format
|
|
56
|
+
#[allow(clippy::cast_precision_loss)]
|
|
57
|
+
pub fn print(&self) {
|
|
58
|
+
let mrss_mb = self.max_rss_bytes as f64 / 1024.0 / 1024.0;
|
|
59
|
+
|
|
60
|
+
println!("Maximum RSS: {} bytes ({:.2} MB)", self.max_rss_bytes, mrss_mb);
|
|
61
|
+
println!();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/// Retrieve and print memory usage statistics
|
|
65
|
+
pub fn print_memory_usage() {
|
|
66
|
+
match Self::current() {
|
|
67
|
+
Ok(stats) => stats.print(),
|
|
68
|
+
Err(e) => eprintln!("Warning: Could not retrieve memory statistics: {e}"),
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|