Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Flag registry #3938
tldr: this is a registry for all flags we use against Ruby objects in JRuby. The goal is to maximize utilization of the flags and ensure we do not overlap.
See the first commit and the doco for FlagRegistry.
My intent with this is to begin exploring more specialized subclasses of key Ruby core classes. For example, we might want to have a RubyArrayOne that only holds one value initially in a field rather than an array. If it grows, we would set a "failed" flag that would indicate we need to fall back to using the values array rather than the one field. Rather than putting this as a boolean on the class, increasing object size, we can use flags. But I wanted a better mechanism to ensure I'm not overlapping other flags higher in the hierarchy, as our use of them broadens.
FWIW, despite having flag values in RubyBasicObject up to the tenth bit, we only end up using the following values: