-
Notifications
You must be signed in to change notification settings - Fork 2
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: DataDog/datadog-ruby_core_source
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.5.2
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: DataDog/datadog-ruby_core_source
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.5.3
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 5 commits
- 109 files changed
- 2 contributors
Commits on Mar 16, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 8dcc718 - Browse repository at this point
Copy the full SHA 8dcc718View commit details -
Merge pull request #27 from DataDog/pin-github-actions-1773667250
[Security] Pin GitHub Actions to a full-length commit SHA
Configuration menu - View commit details
-
Copy full SHA for 683d0de - Browse repository at this point
Copy the full SHA 683d0deView commit details
Commits on Jul 15, 2026
-
These are almost the same as the 4.0.0 headers, yet the change to add `is_ready` in `rb_thread_sched_item` shifted the in-memory layouts of things inside `rb_thread_struct` which broke the profiler. ```diff $ diff -uw ruby-4.0.0-p0/ ruby-4.0.6-p0/ Common subdirectories: ruby-4.0.0-p0/ccan and ruby-4.0.6-p0/ccan diff -uw ruby-4.0.0-p0/id_table.h ruby-4.0.6-p0/id_table.h --- ruby-4.0.0-p0/id_table.h 2026-01-07 15:43:22.492338852 +0000 +++ ruby-4.0.6-p0/id_table.h 2026-07-15 09:07:09.200855897 +0100 @@ -47,6 +47,16 @@ extern const rb_data_type_t rb_managed_id_table_type; +VALUE rb_marked_id_table_new(size_t capa); +int rb_marked_id_table_insert(VALUE table, ID id, VALUE val); +VALUE rb_marked_id_table_dup(VALUE table); + +// alisases +#define rb_marked_id_table_size rb_managed_id_table_size +#define rb_marked_id_table_lookup rb_managed_id_table_lookup +#define rb_marked_id_table_foreach rb_managed_id_table_foreach +#define rb_marked_id_table_foreach_values rb_managed_id_table_foreach_values + RUBY_SYMBOL_EXPORT_BEGIN size_t rb_id_table_size(const struct rb_id_table *tbl); RUBY_SYMBOL_EXPORT_END Common subdirectories: ruby-4.0.0-p0/internal and ruby-4.0.6-p0/internal Common subdirectories: ruby-4.0.0-p0/prism and ruby-4.0.6-p0/prism diff -uw ruby-4.0.0-p0/thread_pthread.h ruby-4.0.6-p0/thread_pthread.h --- ruby-4.0.0-p0/thread_pthread.h 2026-01-07 15:43:22.497873080 +0000 +++ ruby-4.0.6-p0/thread_pthread.h 2026-07-15 09:07:09.202007892 +0100 @@ -56,6 +56,9 @@ // connected to ractor->threads.sched.reqdyq // locked by ractor->threads.sched.lock struct ccan_list_node readyq; + // Indicates whether thread is on the readyq. + // There is no clear relationship between this and th->status. + bool is_ready; // connected to vm->ractor.sched.timeslice_threads // locked by vm->ractor.sched.lock @@ -127,6 +130,11 @@ struct rb_thread_struct *lock_owner; #endif struct rb_thread_struct *running; // running thread or NULL + // Most recently running thread or NULL. If this thread wakes up before the newly running + // thread completes the transfer of control, it can interrupt and resume running. + // The new thread clears this field when it takes control. + struct rb_thread_struct *runnable_hot_th; + int runnable_hot_th_waiting; bool is_running; bool is_running_timeslice; bool enable_mn_threads; diff -uw ruby-4.0.0-p0/vm_core.h ruby-4.0.6-p0/vm_core.h --- ruby-4.0.0-p0/vm_core.h 2026-01-07 15:43:22.497873080 +0000 +++ ruby-4.0.6-p0/vm_core.h 2026-07-15 09:07:09.202386196 +0100 @@ -763,6 +763,7 @@ const VALUE special_exceptions[ruby_special_error_count]; /* Ruby Box */ + rb_box_t *master_box; rb_box_t *root_box; rb_box_t *main_box; @@ -2233,6 +2234,7 @@ int rb_signal_exec(rb_thread_t *th, int sig); void rb_threadptr_check_signal(rb_thread_t *mth); void rb_threadptr_signal_raise(rb_thread_t *th, int sig); +void rb_threadptr_interrupt_raise(rb_thread_t *th); void rb_threadptr_signal_exit(rb_thread_t *th); int rb_threadptr_execute_interrupts(rb_thread_t *, int); void rb_threadptr_interrupt(rb_thread_t *th); ```Configuration menu - View commit details
-
Copy full SHA for e989782 - Browse repository at this point
Copy the full SHA e989782View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30a5438 - Browse repository at this point
Copy the full SHA 30a5438View commit details -
Merge pull request #28 from DataDog/ivoanjo/prof-15412-ruby-4_0_6-sup…
…port [PROF-15412] Import Ruby 4.0.6 headers and bump gem version to 3.5.3
Configuration menu - View commit details
-
Copy full SHA for b327ccb - Browse repository at this point
Copy the full SHA b327ccbView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v3.5.2...v3.5.3