Skip to content

Commit 5ddc8ff

Browse files
committed
fix(build): progress towards building the native extension
1 parent 4e8eb48 commit 5ddc8ff

File tree

7 files changed

+20
-8
lines changed

7 files changed

+20
-8
lines changed

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require 'rb_sys/extensiontask'
22

3-
RbSys::ExtensionTask.new('codetracer_ruby_native_recorder') do |ext|
3+
RbSys::ExtensionTask.new('codetracer_ruby_recorder') do |ext|
44
ext.ext_dir = 'ext/native_tracer'
55
ext.lib_dir = 'src'
66
ext.gem_spec = Gem::Specification.load('codetracer-ruby-recorder.gemspec')

ext/native_tracer/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
target/

ext/native_tracer/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "codetracer_ruby_native_recorder"
2+
name = "codetracer_ruby_recorder"
33
version = "0.1.0"
44
edition = "2021" # latest stable Rust edition
55
description = "Native Ruby tracer using rb_add_event_hook2"
@@ -9,4 +9,4 @@ crate-type = ["cdylib"]
99

1010
[dependencies]
1111
rb-sys = "0.9"
12-
runtime_tracing = "0.1"
12+
runtime_tracing = "0.10.0"

ext/native_tracer/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# codetracer_ruby_native_recorder
1+
# codetracer_ruby_recorder
22

33
This crate provides a minimal Ruby tracer implemented in Rust.
44
It registers a Ruby VM event hook using `rb_add_event_hook2` and
@@ -17,7 +17,7 @@ If you have `just` installed, run `just build-extension` from the project root.
1717
The produced shared library can be required from Ruby:
1818

1919
```ruby
20-
require_relative 'target/release/libcodetracer_ruby_native_recorder'
20+
require_relative 'target/release/libcodetracer_ruby_recorder'
2121
```
2222

2323
Once loaded, the tracer starts writing a trace to `trace.json` or the

ext/native_tracer/extconf.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
require 'mkmf'
22
require 'rb_sys/mkmf'
33

4-
create_rust_makefile('codetracer_ruby_native_recorder')
4+
create_rust_makefile('codetracer_ruby_recorder')

ext/native_tracer/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern "C" fn event_hook(ev: rb_event_flag_t, _data: VALUE, _self: VALUE, _mid:
2323
}
2424

2525
#[no_mangle]
26-
pub extern "C" fn Init_codetracer_ruby_native_recorder() {
26+
pub extern "C" fn Init_codetracer_ruby_recorder() {
2727
unsafe {
2828
let out = std::env::var("CODETRACER_DB_TRACE_PATH").unwrap_or_else(|_| "trace.json".to_string());
2929
let file = std::fs::File::create(out).expect("failed to create trace output");

flake.nix

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,18 @@
1212
let pkgs = import nixpkgs { inherit system; };
1313
in {
1414
default = pkgs.mkShell {
15-
packages = with pkgs; [ ruby rustc cargo just git-lfs ];
15+
packages = with pkgs; [
16+
ruby
17+
18+
# The native extension is implemented in Rust
19+
rustc
20+
cargo
21+
libiconv # required as a dependency when building the rb-sys Rust crate
22+
23+
# For build automation
24+
just
25+
git-lfs
26+
];
1627
};
1728
});
1829
};

0 commit comments

Comments
 (0)