Releases: IrisShaders/glsl-transformer
v3.0.0-pre3 - Support for optionNV Pragma and Mesh Shader Extensions Support
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
- 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
- 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
- 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
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
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 generateRoot
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
- 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 onASTNode
subclasses that contain lists of children - Added
isNullEmpty
toChildNodeList
that is likeisEmpty
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
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
- 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
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 ofRootSupplier
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