Skip to content

v2.0.0 - New Parser Features, CST Removal, Root Refactoring and External Declaration Index

Compare
Choose a tag to compare
@douira douira released this 16 Apr 01:21
· 6 commits to main since this release
0ea0e35

This changelog is a summary of the changelogs of the 2.0.0-pre series of prereleases. See the individual releases for details.

With this release glsl-transformer fully moves to AST transformation that is built upon the parsed CST and not bound by the parser's limitations. It also updates how roots, the mechanism for index building and query answering, are built.

Core

  • Removed CST transformation and refactored many classes into different packages
  • Fixed a number of parsing bugs that resulted in wrong transformation or parsing errors
  • Improved parsing of long sequence expressions by refactoring the grammar
  • Added optional #custom and #include directives
  • Added support for parsing special syntax constructs related to ray tracing extensions
  • Added line annotation handling, tracks source locations on AST nodes
  • Added easier way to control parsing methods with ParseShape
  • Added RootSupplier that is a kind of root factory that can be set on the AST transformer and is used to generate Root instances easier than having the instantiation hidden in private methods
  • Made node index and identifier indexes nullable to support using roots that have fewer indexes if they aren't required as this improves overall performance
  • Added optional external declaration indexing, including with prefix index structures
  • Refactored the APIs of many important classes
  • Exposed ChildNodeList on AST nodes
  • Removed old compatibility code with the move to Java 17

Tests

  • AST Snapshot tests
  • Added more prototypes of transformations that serve as complex tests
  • Refactored test resource manager
  • Added tests specifically for a number of fixed bugs

Meta

  • Refactoring of the documentation with explanation and examples
  • The license now AGPLv3
  • Gradle upgraded to version 8
  • Upgraded to Java 17

Full Changelog: v1.0.1...v2.0.0