Skip to content

Changelog

0.13.2

  • Improved dev server build times.

0.13.1

  • Improved dev server build times.

0.13.0

  • Compile time exception stack traces now show function names.
  • Improved dev server rebuild times.

0.12.10

  • More functions are now shown in the dev server's debug stack traces.
  • Improved compiler performance slightly.
  • Removed erroneous pytest dependency.

0.12.9

  • Added support for typing.Final annotations in Record classes.

0.12.8

  • Fix optimizer bug with the min/max functions.

0.12.7

0.12.6

  • Added make_comparable_float for generating floats that adhere strictly to layers when calculating z-indexes.

0.12.5

  • Improved some error messages, particularly around type annotations.

0.12.4

  • Added a -v/--verbose flag to the cli that prints out full tracebacks on errors.
  • Streams are now initialized lazily to allow circular imports as long as they're resolved before the stream is used.

0.12.3

  • assert False is no longer stripped in release (non-dev) builds to allow asserting to the compiler that code is unreachable.
  • Fixed the return value of type() on archetype instances being incorrect.

0.12.2

  • Incorrectly declared resources such as Buckets missing an @buckets decorator now result in a helpful error message.
  • Record classes can now subclass ABC or Protocol from the Python standard library.
  • Archetypes can now subclass ABC or Protocol from the Python standard library.

0.12.1

  • Added support for the getattr(), setattr(), hasattr(), and sum() built-in functions.

0.12.0

  • Improved support for mixin classes in archetypes, including support for callbacks and memory fields within mixins.
  • Accessing archetypes at indexes such as with EntityRef now checks that the entity at the index is of the correct archetype in dev builds by default.

0.11.1

  • Memory usage no longer increases indefinitely when rebuilding with changes in the dev server.
  • EntityRef now throws an error when converted to a boolean.

0.11.0

  • Added basic support for set literals of numbers, with support for membership checks (in, not in) and iteration.
  • Added support for membership checks (in, not in) of tuples.
  • Fixed some instances where error messages for archetype declarations were not shown correctly.
  • Reduced memory usage slightly.

0.10.9

  • Added Vec2.normalize_or_zero().
  • Added --gc/--no-gc to cli commands and made no-gc the default behavior to improve performance.

0.10.8

  • Fixed issue when parameterizing the type built-in as a generic type.

0.10.7

0.10.6

  • Fixed the dev server becoming unresponsive after invalid command arguments.

0.10.5

  • Fixed the dev server becoming unresponsive after a blank command.

0.10.4

  • Fixed the dev server becoming unresponsive after a command syntax error.

0.10.3

  • Added --runtime-checks {none,terminate,notify} to the dev and build commands to override runtime check (e.g. assertion) behavior.

0.10.2

0.10.1

  • Assertions are now stripped in release (non-dev) builds.
  • Added more assertion checks including bounds checks for arrays.
  • Added require() for assertions not stripped in release builds.

0.10.0

  • Added [d]ecode command to dev server for decoding debug message codes.
  • Added [h]elp command to dev server.
  • Added notify() for logging debug messages.

0.9.3

  • Added support for string use item values in levels.

0.9.2

  • Fixed dev server sometimes not exiting without further input upon a keyboard interrupt.

0.9.1

  • Added project urls.

0.9.0

  • New dev server cli with faster rebuild times.
  • Performance improvements.

0.8.0

  • Changelog introduced.
  • Fixed some errors when iterating over iterators that are statically determined to be empty.
  • Added Rect.from_margin().
  • Added SpriteGroup, EffectGroup, and ParticleGroup for array-like access to sprites, effects, and particles.
  • Added mid-edge properties like Quad.mt and Rect.mb.
  • Added a warning when an invalid item.json is found when loading resources.