Skip to content

Releases: IrisShaders/glsl-transformer

v3.0.0-pre3 - Support for optionNV Pragma and Mesh Shader Extensions Support

03 Jun 19:32
4cceb57
Compare
Choose a tag to compare

What's Changed

  • pragma optionNV support by @drouarb in #21
  • taskNV storage qualifier & enableMeshShaders flag by @drouarb in #22
  • Fix resource paths as noted here (but using my own implementation): #20
  • Add tests to make sure lexer options behave correctly (there was no bug, just lacking coverage)

New Contributors

Note that at the time of writing this package can't be published to maven central due to changes in tooling. I'll look into this as time permits.

Full Changelog: v3.0.0-pre2...v3.0.0-pre3

v3.0.0-pre2 - Improve Parse Cache Configuration Options and Fix Tests on Windows

19 Apr 13:29
88e3534
Compare
Choose a tag to compare
  • Improve the ability for API users to configure the caching behavior of the ASTParser (and by extension the *ASTTransformers)
  • added two new parser classes: one that uses a different (smaller) cache for translation units and one that doesn't cache translation units at all
  • added the ability to change which parser and AST build cache is used by an ASTParser
  • Removed previous cache size configuration methods that are now pointless
  • Fixed reading of test resource files on windows by not passing resource paths through the OS-specific Path as resources don't use OS paths

Full Changelog: v3.0.0-pre1...v3.0.0-pre2

v3.0.0-pre1 - Library Updates and Full Line Annotation Remapping Support

11 Apr 20:51
14259ce
Compare
Choose a tag to compare
  • Updated the snapshot test library to version 4+
  • Updated Java version to 21
  • Added parsing and annotating with string-based line directives (i.e. a string instead of just a number as the source)
  • Added full support and corresponding tests for remapping with line directives. With the appropriate print type, line directives are now printed such that the code in the output ends up getting assigned the same line number as it had or was assigned in the input.
  • Fixed source locations not getting cloned in the root node of a cloning operation

This release has been marked pre1 since there might be more breaking changes we want to make before releasing version 3 proper.

Full Changelog: v2.0.2...v3.0.0-pre1

v2.0.2 - String Literals and Type Parsing/Printing Fix

16 Jan 00:08
f051d3c
Compare
Choose a tag to compare
  • Added string literals as an optional feature which can be used by transformation API users
  • Fixed bug with parsing and printing of 8, 16, and 32 bit vector types
  • Updated Gradle and JUnit
  • Minor cleanup of the buildscript

Full Changelog: v2.0.1...v2.0.2

v2.0.1 - Update of ANTLR to 4.13.1

01 May 01:58
25851e0
Compare
Choose a tag to compare

Updates ANTLR to 4.13.1 which should reduce the size of the jar because ANTLR fixed a bug where its jar size was unnecessarily big.

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

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

16 Apr 01:21
0ea0e35
Compare
Choose a tag to compare

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

v2.0.0-pre13 - Java 17, isNullEmpty Method and Exposure of ChildNodeList by AST Nodes

08 Apr 16:35
78198ea
Compare
Choose a tag to compare
  • Update to Java 17 because it's the LTS release
  • Update gradle wrapper to 8.0.2
  • Remove old compatibility code
  • Added two tests that demonstrate a method that adds a declaration if it doesn't exist (using the ED index) and a transform that moves unsized array specifiers around
  • Expose the ChildNodeList as a return type on ASTNode subclasses that contain lists of children
  • Added isNullEmpty to ChildNodeList that is like isEmpty but also return true if there are only null items in the list

Full Changelog: v2.0.0-pre12...v2.0.0-pre13

v2.0.0-pre12 - Move to Java 16 and Removal of Jabel

22 Mar 16:37
94e702b
Compare
Choose a tag to compare

glsl-transformer is now using Java 16 and no longer supports Java 8. At the moment, Jabel was removed and the source compatibility is now 16. Future updates will remove compatibility code that is no longer necessary. A mysterious bug was worked around by changing one of the performance tests as it was causing stack overflow exceptions in very specific circumstances.

Full Changelog: v2.0.0-pre11.1...v2.0.0-pre12

v2.0.0-pre11.1 - Fix RootSupplier's Pre-Made Instances

21 Mar 02:43
0b784aa
Compare
Choose a tag to compare
  • Fixes the pre-made instances of RootSupplier to include the correct index suppliers and wrote a test that confirms this

Full Changelog: v2.0.0-pre11...v2.0.0-pre11.1

v2.0.0-pre11 - Refactoring of Root Methods and Additional RootSupplier Variant

20 Mar 01:13
f0c81fe
Compare
Choose a tag to compare

This is a small release changing some things I found while upgrading Iris to the latest glsl-transformer version.

  • Added PREFIX_UNORDERED_ED_EXACT instance of RootSupplier alongside the other pre-made root supplier variants
  • Refactored static methods of Root into instance methods since all of them were simply receiving an instance of the class' type
  • Updated junit to 5.9.2
  • Fix performance tests by giving them a little more time

Meta:

  • Update and fix GH Actions build script by making it also use Java 16 as the gradle script specifies

Full Changelog: v2.0.0-pre10...v2.0.0-pre11