Skip to content

0.5.0-pre3

Pre-release
Pre-release
Compare
Choose a tag to compare
@ExpHP ExpHP released this 13 Feb 22:56
· 95 commits to main since this release

This prerelease contains a highly experimental and extremely early version of truecl with support for TH06-TH095. (N.B. Th095 is missing signatures)

Instructions on how to run truecl can be found here: https://github.com/ExpHP/truth/releases/tag/0.5.0-pre1

Changes from 0.5.0-pre2:

  • The old _S and _f functions have been split into two types of operations: int(expr) and float(expr) for type-casts, and $(expr) and %(expr) to read a temporary as some type. (the two are the same in most languages, except EoSD ECL which does not auto-cast)
    • A patch can define intrinsics for these casts in EoSD ECL as UnOp(int,float) (cast to int) and UnOp(float,int) (cast to float). Suggested signatures are Sf and SS in line with other EoSD ops, but fS should also work for float(...).
  • People strongly disliked the .Name syntax for unqualified enum consts so it is now simply Name.
  • This unifies the concepts of automatic consts and enums, finally destroying the concept of automatic consts once and for all. The previously existing automatic const kinds are now builtin enums; e.g. N in a signature can now be equivalently written as S(enum="AnmScript"). (this means you can now express e.g. a word-sized sprite)
    • The builtin enums are: AnmScript, AnmSprite, MsgScript, EclSub, BitmapColorFormat
  • An unqualified enum is now able to be used in a place without an enum type (e.g. int x = Name) provided that only one enum defines a const with that name. (this was necessary to continue supporting existing color format syntax in anm files, and just generally somehow felt appropriate given the change from .Name to Name)