Releases: xtjoeytx/gs2-parser
Releases · xtjoeytx/gs2-parser
1.8.0
Fix C-bindings and add dotnet bindings unit tests (#35)
* Refactor file structure, cmake changes & memory improvements (#25)
### Summary
This PR modernizes and restructures the project layout, refactors build and interface code, and adds a faster arena-based allocation system for parser AST nodes. Legacy scripts and outdated test files were removed.
### Key Changes
**Project & Build Updates**
* Renamed the project from **gs2test** → **gs2parser** and improved build hygiene by using `${CMAKE_BINARY_DIR}` for outputs.
* Reorganized source code into clear module subdirectories (`ast/`, `parser/`, `compiler/`, `memory/`, etc.).
* Added automatic export header generation for proper shared library support.
* Moved JS and C bindings into `bindings/js/` and `bindings/c/` with updated includes.
**CI & Script Cleanup**
* Updated `Jenkinsfile` and `package.json` to match new naming/output conventions.
* Removed obsolete legacy/test scripts.
**Parser & Memory Improvements**
* Introduced a high-performance **ArenaAllocator** for AST node allocation.
* Refactored `ParserContext` and parser code to allocate nodes through the arena, enabling fast bulk cleanup and better cache locality.
* Simplified allocation/lifetime handling and added cleaner debug stats.
**Codebase Refactoring**
* Consolidated compiler logic under `src/compiler/`.
* Updated visitor structure (`astvisitor.h` → `NodeVisitor.h`).
* Renamed and reorganized Rust bindings and codegen/compiler files for consistency.
* Removed fmtlib dependency from submodules
### Impact
The repo is now cleaner and more modular, supporting multi-target builds (native, shared/static, JS, C, Rust). Parser performance and memory behavior are significantly improved, and CI/build outputs are more reliable.
* Feature/cmake fetchcontent (#29)
* arena allocator for ast node allocations & change directory structure
* cmake changes
* fix gs2test location
* Attempt to fix windows build
* ^
* ^
* ^
* package fix attempt
* Fix rust build
* Remove fmtlib dependency
* cmake changes
* fix osx?
* ^
* ^
* ^
* ^
* Remove submodule winflexbison
* fix merge (#31)
* Fix C-interface and add UnitTests for dotnet bindings to catch these errors in the future
* Add test step for dotnet bindings
* Fix c interface and bindings (#34)
* Fix C-interface and add UnitTests for dotnet bindings to catch these errors in the future
* Add test step for dotnet bindings
* Disable codecov for now
---------
Co-authored-by: joey <1166538+xtjoeytx@users.noreply.github.com>
v1.5.0
Merge pull request #23 from xtjoeytx/feature/parser-fixes * Fix for single character comparison (ex: keycode == 'a')
v1.3.0
Merge pull request #21 from xtjoeytx/dev Dev
1.0.1
NuGet package creating and Jenkins CI/CD
1.0.0
Merge pull request #11 from iCataclysmus/main Implemented array.index(object) and string.charat(pos)