Turn off pool bundles while filtering
Because pool.res are shared across locales, if we want to build data package divided by locales, we need a way to control the filter not to us pool.res except for only one of the main one. Otherwise, the pool.res in different data package will be different and conflict and won't be able to build different package that can work together.
currently there are no way to do so except locally modify
to change the 7th arg of generate_tree from True to False, we need a way to control this externally, preferably in the filter file. (but command line flag is also acceptable)
This is needed for any data package usage that create package divided by locale(s).
If there is a single most common default set of locales and paths, you can build a pool bundle for that and use it for all slices. Should make the default set smaller, and also save space for other locales by sharing key strings.
True. I think both of those new options you proposed would result in an increased data size for the "main" slice (the default set of locales + pool.res), even if the overall data size for all slices together is smaller. In the V8 use case, I think the priority has to be on minimizing the size of the "main" slice, even if it comes at the cost of increasing the size for the "supplementary" slices.
Note: There is an alternative. We could build a pool bundle from the complete data, or from a commonly used subset, and use it to build each slice. It would add some overhead when only one or two locales are used, but reduce the size of each locale bundle.
As an option on that, we could build a pool bundle with only shared key strings but not shared value strings. (As in the original pool bundle format.) I don’t think genrb has an option for that, but it would be easy. We would still save on keys (still overhead if your data slice uses only a small set of data paths) but with much less overhead because there would be no value strings.