You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2026-02-26-road-to-openvox-9.md
+66-1Lines changed: 66 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,71 @@ Although we still have many outstanding changes, we tackled some milestones. We
21
21
* Removed curl from the agent package
22
22
* Removed multi_json gem
23
23
24
-
Besides that, the agent is identical to openvox-agent 8.25.0 right now.
24
+
The Ruby build has support for [YJIT](https://docs.ruby-lang.org/en/4.0/jit/yjit_md.html) and [ZJIT](https://docs.ruby-lang.org/en/4.0/jit/zjit_md.html), on some platforms.
25
+
The different just in time compilers might provide a performance benefit.
26
+
Some of their features are still experimental.
27
+
To compile Ruby with it, a modern Rust 1.85.0 is required. We can not build ZJIT on the following platforms:
28
+
29
+
* debian-11-aarch64
30
+
* debian-11-amd64
31
+
* debian-12-aarch64
32
+
* debian-12-amd64
33
+
* debian-13-armhf
34
+
* macos-all-arm64
35
+
* macos-all-x86_64
36
+
* sles-15-x86_64
37
+
* sles-16-aarch64
38
+
* sles-16-x86_64
39
+
* ubuntu-22.04-aarch64
40
+
* ubuntu-22.04-amd64
41
+
* ubuntu-24.04-aarch64
42
+
* ubuntu-24.04-amd64
43
+
* ubuntu-24.04-armhf
44
+
* ubuntu-25.04-aarch64
45
+
* ubuntu-25.04-amd64
46
+
* ubuntu-25.04-armhf
47
+
* ubuntu-26.04-armhf
48
+
* windows-all-x64
49
+
50
+
For YJIT Rust is still required, but 1.58.0 is sufficient.
51
+
We could build YJIT on some platforms where ZJIT doesn't work, but that's not configured right now.
52
+
YJIT is available in Ruby 3.2 as well, so we could enable it for openvox 8.
53
+
54
+
To test ZJIT / YJIT, you can add the commandline option to Ruby:
55
+
56
+
```diff
57
+
--- a/opt/puppetlabs/puppet/bin/puppet
58
+
+++ a/opt/puppetlabs/puppet/bin/puppet
59
+
@@ -1,4 +1,4 @@
60
+
-#!/opt/puppetlabs/puppet/bin/ruby
61
+
+#!/opt/puppetlabs/puppet/bin/ruby --zjit
62
+
# frozen_string_literal: true
63
+
64
+
begin
65
+
```
66
+
67
+
or:
68
+
69
+
```diff
70
+
--- a/opt/puppetlabs/puppet/bin/puppet
71
+
+++ a/opt/puppetlabs/puppet/bin/puppet
72
+
@@ -1,4 +1,4 @@
73
+
-#!/opt/puppetlabs/puppet/bin/ruby
74
+
+#!/opt/puppetlabs/puppet/bin/ruby --zjit
75
+
# frozen_string_literal: true
76
+
77
+
begin
78
+
```
79
+
80
+
There are a few options, which you can check in `/opt/puppetlabs/puppet/bin/ruby --help` or the documentation for [YJIT](https://docs.ruby-lang.org/en/4.0/jit/yjit_md.html) and [ZJIT](https://docs.ruby-lang.org/en/4.0/jit/zjit_md.html).
81
+
A helpful option is also `--zjit-stats` which will print some profiling data to stdout.
82
+
83
+
**It's not guaranteed that we will ship either JIT implementations in the stable builds.**
84
+
85
+
We first need to prove that they don't introduce any performance regressions.
86
+
87
+
---
88
+
89
+
Beside those changes, the agent is identical to openvox-agent 8.25.0 right now.
25
90
Please download the packages from [artifacts.voxpupuli.org](https://artifacts.voxpupuli.org/openvox-agent/8.25.0.9.g086d1fd67/) and give us feedback.
26
91
(If you are interested in setting up an actual nightlies/staging rpm/deb repo, that's also highly appreciated).
0 commit comments