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]

Reply via email to