Skip to content

Commit dab53b1

Browse files
aphillipseemeli
andauthored
Address "implementation-defined" literal and type values (#944)
* Address "implementation-defined" literal and type values In [this thread](#911 (comment)) on #911, @macchiati and I discussed the handling of implementation-defined literal values and implementation-defined types. This change splits the "MAY _accept_" for these two cases, permitting both and saving us having to say "... or an implementation-defined value..." in lots of places. * Address comments, remove "literal" * and => or for clarity * Update spec/registry.md Co-authored-by: Eemeli Aro <[email protected]> * Address comment via a rewrite of the example --------- Co-authored-by: Eemeli Aro <[email protected]>
1 parent 8a608a9 commit dab53b1

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

spec/registry.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,27 @@ by any version of this specification
3838
for **standard** and **optional** functions.
3939
Such _options_ MUST use an implementation-specific _namespace_.
4040

41-
Implementations MAY _accept_ additional _option_ values for _options_ defined here.
41+
Implementations MAY _accept_, for _options_ defined in this specification,
42+
_option_ values which are not defined in this specification.
4243
However, such values might become defined with a different meaning in the future,
4344
including with a different, incompatible name
4445
or using an incompatible value space.
4546
Supporting implementation-specific _option_ values for **standard** or **optional** functions is NOT RECOMMENDED.
4647

48+
Implementations MAY _accept_, for _operands_ or _options_ defined in this specification,
49+
values with implementation-defined types.
50+
Such values can be useful to users in cases where local usage and support exists
51+
(including cases in which details vary from those defined by Unicode and CLDR).
52+
53+
> For example:
54+
> - Implementations are encouraged to _accept_ some native representation
55+
> for currency amounts as the _operand_ in the _function_ `:currency`.
56+
> - A Java implementation might _accept_ a `java.time.chrono.Chronology` object
57+
> as a value for the _date/time override option_ `calendar`
58+
> - ICU4J's implementation might _accept_ a `com.ibm.icu.text.NumberingSystem` object
59+
> instead of using a [Unicode Numbering System Identifier](https://cldr-smoke.unicode.org/spec/main/ldml/tr35.html#UnicodeNumberSystemIdentifier)
60+
> for the option `numberingSystem` in _functions_ such as `:number` or `:integer`.
61+
4762
Future versions of this specification MAY define additional _options_ and _option_ values,
4863
subject to the rules in the [Stability Policy](#stability-policy),
4964
for _functions_ found in this specification.

0 commit comments

Comments
 (0)