From: eregontp@... Date: 2021-07-27T17:08:53+00:00 Subject: [ruby-core:104707] [Ruby master Feature#18047] TracePoint: Add event type for constant access Issue #18047 has been updated by Eregon (Benoit Daloze). Is it only on constant reads or also on constant writes/assignments? Access is a pretty generic term and I would think it means both, but then is there a way to differentiate? Adding docs to the TracePoint class about this event would be helpful to understand that better. I think it would be relevant to measure the performance impact of this change: * When the new TracePoint is not enabled vs before the PR * When the new TracePoint is enabled but does nothing * When the new TracePoint is enabled and does check like the example Constant reads are very frequent so there might be quite some overhead to this. ---------------------------------------- Feature #18047: TracePoint: Add event type for constant access https://bugs.ruby-lang.org/issues/18047#change-93031 * Author: suusan2go (Kenta Suzuki) * Status: Open * Priority: Normal ---------------------------------------- Hi there We've made a PR to add new :constant_access TracePoint event. https://github.com/ruby/ruby/pull/4683 Burke Libbey made some first steps on this idea a few years ago #13133 and we improved his patch based on the comment by ko1. As mentioned in the issue above, this patch allows us to enable boundaries between packages/components. Burke's [proof-of-concept gem](https://github.com/burke/packages) might help you understand more concrete usage of this patch. The proof-of-concept gem works like the below and this will help us manage large codebases with lots of dependencies. ```ruby package 'product' class Book < ApplicationRecord belongs_to :user end package 'user' class User < ApplicationRecord has_many :books end user = User.first user.books # => VisibilityError (can't access Book from User) ``` -- https://bugs.ruby-lang.org/ Unsubscribe: