sUTL

How claims are labelled

Normative

Backed by explicit documentation plus implementation evidence, or independent agreement without contradiction.

Provisional

A practical working choice where historical evidence is incomplete or split.

Disputed

An observed behavior kept for study, not canonized as a language requirement.

Archived

Material retrieved from an archive. Preservation alone does not establish conformance.

Appendix: historical dialects and implementations

This guide describes the recovered deployed dialect, not one repository at one moment.

Timeline

  • The handwritten JavaScript implementation is the earliest surviving executable implementation.
  • The old v0.3 specification documents #/## paths and * multiplication.
  • The deployed language changed to ^/& paths and x multiplication.
  • Studio used JavaScript generated from the Haxe implementation.
  • The Python 2 implementation continued through 2018 and saw substantial production use.

Why Python is not the sole specification

Python contains later production fixes, deterministic key ordering, conversion builtins, and the strongest surviving test suite. It also contains observable host-language leaks:

  • integer division under Python 2
  • operand-returning and and or
  • no !! form
  • a broken builtin-override name
  • incomplete compilelib test filtering

The recovered dialect therefore weighs production Python heavily but checks it against explicit documentation, Studio examples, HaxeJS, and handwritten JavaScript.

Confirmed implementation defects

  • Both JavaScript implementations allow host coercion in numeric comparisons.
  • Studio/HaxeJS merges the wrong value into scope for !!.
  • Studio/HaxeJS returns null for an unparseable number where documentation and Python specify zero.
  • Handwritten JavaScript predates conversion builtins and deterministic key ordering.
  • Python returns logical operands where documentation and both JavaScript implementations specify booleans.

Deliberately unresolved

Uneven zip behavior differs between the old prose, Python builtin, and core library. The guide only promises behavior for equal-length lists.

General map order is not semantic. keys and values are explicitly sorted in the recovered dialect.

See ../dialect.md for the complete evidence policy and ../conformance.json for executable decisions.