Drafting the Relax language specification

For those of you interested in the development of Relax, a draft language specification has been posted on the Relax repo for public comment. I encourage any readers, including those who have not been involved in Relax’s development, to leave comments about the language design.

Since Relax itself is still the subject of RFC discussions, this post is not quite a pre-RFC but more of a pre-pre-RFC. However, if Relax is accepted into TVM, then it will be necessary to determine the language’s behavior in further detail, thus necessitating the specification. The eventual plan (assuming the Relax RFC is accepted) is to RFC the specification as well, in order to guide future Relax development, so this PR and this thread are only the start of discussion on it. Nevertheless, early feedback is likely to be of great service, hence the draft has accordingly been released early.

The document as it exists now is still a draft and is entirely subject to change, so its content should not be taken to be authoritative on the proposal for Relax.

The PR gives details on aspects of the specification that may require further review or revision, so I will not restate that here, but I emphasize that the goal of the language specification is to be an unambiguous description of the language’s intended behavior in human-readable terms so as to be able to determine when the implementation is behaving incorrectly. It is therefore a rather dense document, but hopefully one that will be of service as a reference to both language developers and users.

4 Likes