M Language Specification in Review: 2023

, , ,

During 2023, the Power Query M Language Specification received four non-trivial revisions (beyond typo fixes, formatting tweaks, and the such). One change documented a newish language feature; the remaining each brought clarification to ambiguous points or corrected cases where the specification did not align with actual mashup engine behavior.

Interestingly, the structured error messages feature added to the language in 2022 has yet to make it into the language spec.

Related: M Language Specification in Review: 2022

Specification Revisions

Relational Operators: Reflect Types text & binary, Address Cross-Type Comparisons (2023-03-02)

The description of relational operators (<, >, >=, <=) was missing details about how these operators behave when applied to certain types, as well as when they are applied to types of different values.

try‘s New catch Feature (2023-03-02)

Documented try‘s new catch feature. (This feature was added to M in 2022 but not included in the specification at that time.)

Expounding on Streaming (2023-08-09)

Provided an expanded explanation of streaming, including clarifying why streaming can result in streamed values being non-deterministic.

Function Type Parameter Assertion Support “Complex” Types

When defining type assertions in function parameter lists, the language grammar was more restrictive than what the mashup engine actually allows. Corrected.

Leave a Reply

Your email address will not be published. Required fields are marked *