Skip to content

Releases: xtjoeytx/gs2-parser

1.8.0

22 Feb 17:25
4fa0a26

Choose a tag to compare

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

05 Jan 00:17
f9f729f

Choose a tag to compare

Merge pull request #23 from xtjoeytx/feature/parser-fixes

* Fix for single character comparison (ex: keycode == 'a')

v1.3.0

04 Jan 23:04
afafeca

Choose a tag to compare

Merge pull request #21 from xtjoeytx/dev

Dev

1.0.1

30 Jun 17:21
b0f9904

Choose a tag to compare

NuGet package creating and Jenkins CI/CD

1.0.0

30 Jun 16:58
56b70db

Choose a tag to compare

Merge pull request #11 from iCataclysmus/main

Implemented array.index(object) and string.charat(pos)