Skip to content

1.8.0

Latest

Choose a tag to compare

@xx-shitai-xx xx-shitai-xx released this 22 Feb 17:25
4fa0a26
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>