codeconsole commented on PR #16130: URL: https://github.com/apache/grails-core/pull/16130#issuecomment-6345493657
@jdaugherty Thanks for the probes. Every ask is in, one commit each on top of your merge, and I replied in each thread with the commit: - 1e79f8f3fd reverts the absent-past-scalar commit, as a revert so the reviewed history stays intact. The `indexOf` walk keeps the old answer when a segment lands on a non-Map. The 9.0.x pull request will carry that change together with flat-first, the List and closure cases, `navigateMap`/`CodeGenConfig` and an upgrade note. - dc3e5d19e8 makes `PropertySourcesConfig.refresh()` read the environment again before it merges, through a `protected refreshSystemEnvironment()` and a `volatile` index field, with a feature that installs a variable after construction and sees it after `refresh()`. - c58e746a18 is the allocation-free pre-filter: the canonical hash is computed over the key's characters and looked up in the sorted hashes of the variables' canonical names, with the exact check only on a hit and the `toUpperCase(Locale.ROOT)` path for a character above ASCII. Collections sized up front. Here it takes a lookup from 141 to 104 ns on the description's harness. - 9677aec218 pins the null key, the `tr-TR` locale and a per-row value in the precedence table; 5eb46c740d applies @sbglasius's two `expect:` suggestions from August. - 3c61a8142f, 66e9bb2abe and 85a942591f close gaps a read-only audit of the above found: a feature for the `ß` fallback, a pin of the restored walk past a scalar, and the locale set last and restored first. - 777c0ca9e9 and e9fc57f940 add section 4 to `upgrading81x.adoc` (environment read once, `grailsApplication.config.refresh()` for tests that install variables later, `Locale.ROOT`, `getProperty(null)`) and a short what's new entry; the guide also says `refresh()` is a dynamic call that merges the sources again and must be repeated once the variables are removed. Flat-first stays out of 8.1.x: it changes the answer for the same flat-key states you asked to move to 9.0.x, and one of them (`merge` of a higher-precedence scalar over a lower-precedence nested block) is produced by property-source layering at startup, so it is not confined to raw sub-map writes; details in that thread. The description says which representation `getProperty` prefers as it ships, and now links #14072. The `improvement` label is on. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
