unicode-org / message-format-wg

Developing a standard for localizable message strings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Create a PR for renaming `FunctionExpression`

aphillips opened this issue · comments

This is an action item from the 2023-12-04 teleconference.


Discussion thread:

See this comment thread for context.

EAO: We currently represent all annotations as “func”, including those that are private-use and reserved. A supported private-use annotation should show up in data model extension, but a reserved annotation or unsupported private-use annotation by definition could not. The names are not especially visible, but they do appear.

APP: We have two kinds of reserved things—statements and annotations. We’re talking here about annotations, which appear in expressions with sigils other than :. EAO is proposing renaming interfaces in the data model to correspond with the ABNF.

EAO: Clarification, this is RGN’s suggestions.

APP: I suggested later adding private-use annotations separately.

STA: What is reserved again?

APP: Anything we’ve reserved. As opposed to private-use, which is open for implementation innovation.

STA: An implementation that advertises support for private-use would need to expose such information in the data model, but error out for unsupported private-use or reserved annotations.

APP: Back on topic, do we want to rename FunctionExpression to AnnotationExpression?

STA: This may be related to markup, but I don’t object to the change now.

EAO: How do change advocates imagine an implementation supporting private-use to represent instances thereof? What we currently expect is extension of the data model, but if you don’t like that then what shape would you imagine?

APP: If we renamed as suggested, that resolves some of the challenge. That is less true with the FunctionExpression name, because a private-use annotation may not be function-like.

STA: To answer EAO, it should be possible to use a discriminated union type. I like renaming to AnnotationExpression. Is there a reason why that would not be a good idea?

EAO: I think the question is whether supported private use goes in what is now called FunctionExpression, or whether it belongs one level up.

STA: I have strong feelings in favor of a discriminated union, one way or the other.

APP: RGN, want to PR this?

RGN: Sure, I can do a PR.

EAO: What you’re describing might already be there, but please take a look.

STA: Is there a specific use case to help me understand?

EAO: An inline comment.

STA: Do we have a design doc on reservations and private use?

APP: We’re sure spending a lot of time on things no one can use. 🙂