Wasm module metadata space separator

Is there a specific reason for using a space as a separator in the icp:public|private metadata?

Is this specified in any particular standard or specification?

Only figured out a space was needed by having a look at ic-wasm source code.

1 Like

It’s in the interface spec: The Internet Computer Interface Specification | Internet Computer

2 Likes

Cool thanks for the link :+1:.

Do you know why a space as separator? That’s a common standard for those type of metadata?

I guess for consistency. The canister endpoints are also using space as separator, e.g., canister_update/query .

1 Like

I see, makes sense. Thanks for the explanation.

1 Like

IIRC, our rationale for the latter was that the space convention is among the least likely to lead to accidental confusion with identifier syntax produced by some languages (as almost every printable ASCII character is legal in identifiers in some language…).

Actually, the space led me to be confused, so indeed the language wasn’t but a human was :wink:.

I would have been less surprised if the delimiter had been a dash, underscore, or point, for example. That’s probably because a long time ago, using space in file names was not supported.

Thanks for the explanation!