Skip to content

[Feat] Add Windows platform support#19

Open
X-starRelight wants to merge 9 commits into
vixlang:stage0from
X-starRelight:stage0
Open

[Feat] Add Windows platform support#19
X-starRelight wants to merge 9 commits into
vixlang:stage0from
X-starRelight:stage0

Conversation

@X-starRelight

Copy link
Copy Markdown
  • Add Windows compatibility layer (vix_wincompat.h)
  • Update Makefile to support LLVM_HOME env var for Windows
  • Add Windows build script (build_win.bat)
  • Fix setTargetTriple API usage for LLVM 21
  • Replace setenv with _putenv on Windows
  • Add realpath implementation for Windows
  • Ignore *.o and *.exe in .gitignore

- Add Windows compatibility layer (vix_wincompat.h)
- Update Makefile to support LLVM_HOME env var for Windows
- Add Windows build script (build_win.bat)
- Fix setTargetTriple API usage for LLVM 21
- Replace setenv with _putenv on Windows
- Add realpath implementation for Windows
- Ignore *.o and *.exe in .gitignore
- Build vixc compiler on Ubuntu (make) and Windows (MSYS2 + mingw32-make)
- Download and verify built compiler before testing
- Run test suite using test/run.py with Python
- Support artifact upload for both platforms
- Add release job for version tags (v*)
- Update .gitignore to ignore *.o and *.exe files
…Windows

- Linux: Use src/install.sh to install dependencies (clang, llvm, flex, bison)
- Windows: Use MSYS2 with MINGW64 environment for building
- Set LLVM_HOME=/mingw64 in MSYS2 environment
- Use mingw32-make for Windows build
- Keep artifact upload and test workflow
- Fix YAML indentation error (line 163)
- Windows: Use MSYS2 with manual flex/bison installation
- Keep Linux apt-get install for dependencies
- Remove auto-release job
- Keep artifact upload and test workflow
- Fix setTargetTriple: use .str() to convert Triple to StringRef
- Fix createTargetMachine: pass string instead of Triple object
- Force -fexceptions flag after llvm-config flags in Makefile
- Fix CodeGen.cpp, Llc.cpp, Passes.cpp for LLVM API changes
- Fix: getTargetTriple() returns std::string, not Triple
- Remove .str() call that doesn't exist on std::string
- Fix MSYS2: use 'flex' and 'bison' instead of wrong package names
- Keep -fexceptions flag for C++ exception support
- Download and install LLVM 18.1.8 from GitHub releases
- Remove MSYS2 dependency (was installing LLVM 16)
- Keep Win flex-bison from Chocolatey for parser generation
- Source code already uses LLVM 18 API (.str(), Triple objects)
- Windows build now matches Linux LLVM 18 API requirements
@0xA672

0xA672 commented May 28, 2026

Copy link
Copy Markdown
Member

Hello?This branch maybe has conflicts that must be resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants