-
released this
2026-02-07 20:34:26 +00:00 | 4 commits to main since this release🎮 v0.0.9-beta - Large functions update
This update introduces real-time keyboard interaction capabilities, making PCC suitable for simple game development and interactive CLI tools. It includes a new
Inputlibrary and system-level_getchsupport.🚀 New Features
-
Native String Support:
- Added
stringdata type (e.g.,string s = "Hello";). - Implemented automatic string literal registration in
.datasection. - Updated
print()to support text variables and direct string literals.
- Added
-
Stack-Based Arrays:
- Added declaration syntax
int name[size](allocates memory on stack). - Implemented array write access (
arr[0] = 10orarr[i] = val). - Implemented array read access (
int x = arr[i]). - Support for dynamic indexing using variables.
- Added declaration syntax
-
WinAPI Integration (GUI):
- Added
msgbox(title, content)intrinsic function. - Implemented x64 calling convention (shadow space + registers RCX, RDX, R8, R9) to support Windows
MessageBoxA. - Added linkage to
User32.lib.
- Added
🐛 Bug Fixes & Improvements
- Control Flow: Fixed
whileloop condition parsing. Loops now correctly evaluate expressions (e.g.,while(i - 5)) before jumping, preventing infinite loops or bad jumps. - Parser Refactoring: Completely rewrote
processSourceto handle complex expressions, variable declarations, and array operations in a unified and cleaner way. - CodeGen: Corrected
.datasection generation (fixed label/value order for string literals).
📦 How to use:
- Download the latest release from the Assets section below.
- Unzip the archive to
C:/PCC/. - Run
PCC_Setup.exeas Administrator. - Compile your code from anywhere:
PCC.exe file.pcc
Downloads
-
-
released this
2026-02-07 17:43:54 +00:00 | 6 commits to main since this releaseThis massive update turns PCC into a Turing-complete language capable of running complex algorithms and games. It introduces loops (
while), advanced boolean logic (&&,||), and a random number generator.✨ New Features
- Control Flow:
- While Loops: Added
while (condition) { ... }support. - Advanced IFs: Support for complex conditions like
if (a == 1 && b == 2). - Boolean Logic: Added
&&(AND) and||(OR) operators.
- While Loops: Added
- Randomness:
randint(min, max): New function instd/Random.pccto generate random numbers.- System Calls: Added backend support for
rand,srand, andtimefrom C runtime.
- Math:
- Division & Modulo: Added support for
/and%operators.
- Division & Modulo: Added support for
📚 Standard Library Updates
std/Random.pcc: Includesrandomize()(seed generator) andrandint().std/Input.pcc: Now fully stable with improved key handling.
🛠 Technical Improvements
- Parser Upgrade: The parser now recursively analyzes conditions inside
ifstatements, allowing for temporary variable generation and multi-step logic evaluation. - CodeGen Optimization: Improved
JMPhandling for loops and logical short-circuits.
📦 How to use:
- Download the latest release from the Assets section below.
- Unzip the archive to
C:/PCC/. - Run
setup.batas Administrator. - Compile your code from anywhere:
PCC.exe file.pcc
Downloads
- Control Flow:
-
released this
2026-02-07 13:25:40 +00:00 | 9 commits to main since this release🎮 v0.0.6-beta - Interactive Input & Keyboard Control
This update introduces real-time keyboard interaction capabilities, making PCC suitable for simple game development and interactive CLI tools. It includes a new
Inputlibrary and system-level_getchsupport.✨ New Features
- Real-time Input: Added
read_key()system call (wrapping_getch), which captures keystrokes instantly without waiting for ENTER. - Input Standard Library (
std/Input.pcc):- Key codes for Arrows (UP, DOWN, LEFT, RIGHT).
- Key codes for WASD gaming controls.
- Special keys: ESC, ENTER, SPACE, TAB, BACKSPACE.
- Function keys: F1 - F10.
- Helper functions:
WaitForSpecificKey(int key)to block execution until a specific key is pressed.
- Void Return Fix: Fixed parser issues with
return;in void functions (now safely compiles to return 0/empty).
🛠 Improvements
- Expanded CodeGen:
CALLinstruction now supportsread_keyand special system hooks. - Documentation: Updated with a new "Input & Keys" section and interactive examples.
📦 How to use:
- Download the latest release from the Assets section below.
- Unzip the archive to
C:/PCC/. - Run
setup.batas Administrator. - Compile your code from anywhere:
PCC.exe file.pcc
Downloads
- Real-time Input: Added
-
released this
2026-02-07 11:02:18 +00:00 | 10 commits to main since this release⚠️ IMPORTANT
To make it work, you MUST run
setup.batas Administrator! (This adds PCC to your system PATH so the compiler can find the Standard Library).🚀 v0.0.5-beta - Preprocessor, Standard Library & x64 Assembly
This major update transforms PCC from a simple interpreter into a fully modular native compiler ecosystem. It introduces the Preprocessor (for
#include), a Standard Library, and expands mathematical capabilities using real x64 Assembly.✨ New Features
- Preprocessor System: Added support for
#include "file.pcc"(local files) and#include <lib.pcc>(system libraries). - PCC Standard Library (
std/): The compiler now ships with a built-instdfolder. Includedstd/math.pccprovides functions likemath_abs,power,cube, andsquare. - Expanded Math Operations: The compiler now natively generates Assembly for Multiplication (
*) and Subtraction (-), in addition to Addition. - Smart Path Resolution: The compiler automatically locates the
std/folder relative to thePCC.exelocation, allowing you to compile projects from any directory. - Function Arguments & Returns: Complete support for passing parameters (e.g.,
int add(int a, int b)) and returning values via the stack. - Recursion Support: Functions can now call themselves (e.g., the
powerfunction in std lib), thanks to proper stack frame management. - Interactive I/O: Added
input()function (wrapping systemgetchar) to pause execution and accept user input.
🛠 Architecture & Refactoring
- Modular Codebase: Split source code into distinct modules:
parser,codegen,preprocessor, andutils. - Local Scope & Stack Memory: Variables are now allocated on the stack (
[rbp-offset]) enabling true function scope. - Runtime Evaluation: Math expressions are translated to x64 Assembly instructions (
IMUL,SUB,ADD,CMP) executed by the CPU. - x64 Convention: Implemented Windows x64 calling convention elements (using
RCX,RDXfor argument passing).
🐛 Bug Fixes
- NASM Reserved Keywords: Fixed a crash where functions named
absorabsoluteconflicted with Assembly directives (renamed tomath_absin std). - Intermediate Variables: Fixed a critical bug where variables created during math operations (e.g.,
res = x * x) were not assigned stack memory correctly. - Parser Logic: Fixed issues with nested
ifblocks and function closing braces (}) that caused code to merge incorrectly. - Operand Size Mismatch: Fixed NASM errors by implementing
movsxdfor proper 32-bit to 64-bit integer promotion.
📦 How to use:
- Download the latest release from the Assets section below.
- Unzip the archive to
C:/PCC/. - Run
setup.batas Administrator. - Compile your code from anywhere:
PCC.exe game.pcc
Downloads
- Preprocessor System: Added support for
-
released this
2026-02-06 20:26:19 +00:00 | 13 commits to main since this release⚠️ IMPORTANT
To make it work, you MUST run
setup.batas Administrator!🚀 v0.0.3-beta - Modular Architecture & x64 Assembly Overhaul
This major update transforms PCC from a simple calculator/interpreter into a true native compiler that generates optimized x64 assembly code.
✨ New Features
- Function Arguments & Returns: Complete support for passing parameters (e.g.,
int add(int a, int b)) and returning values usingreturn. - Local Scope & Stack Memory: Variables are now allocated on the stack (
[rbp-offset]) instead of global maps, enabling true function scope. - Runtime Evaluation: Math expressions (
+,-,==) are now translated to Assembly instructions (ADD,CMP,SETE) and executed by the CPU, not pre-calculated by the compiler. - Interactive I/O: Added
input()function (wrapping standardgetchar) to pause execution and accept user input. - Improved Boolean Logic:
ifstatements now correctly handle comparisons (==) using jump instructions (JMP,JZ).
🛠 Architecture & Refactoring
- Modular Codebase: Split the monolithic source code into distinct modules:
parser.cpp(Syntax analysis)codegen.cpp(Assembly generation)utils.cpp(String helpers)
- Intermediate Representation (IR): Replaced direct execution with an
Instructionstruct system, decoupling parsing from code generation. - x64 Convention: Implemented Windows x64 calling convention elements (using
RCX,RDXfor argument passing).
🐛 Bug Fixes
- Parser Ambiguity: Fixed issues where variable declarations with assignments (
int a = b) were sometimes mistaken for function definitions. - Operand Size Mismatch: Fixed NASM errors by implementing
movsxdfor proper 32-bit to 64-bit integer promotion. - Label Redefinition: Fixed logic for generating unique jump labels (
L_1,L_2) in control flow statements.
📦 How to use:
- Download the latest release from the Realeases page.
- Unzip the archive to C:/PCC/
- Run
setup.batas Administrator. - Compile your code:
PCC.exe code.pcc.
Downloads
- Function Arguments & Returns: Complete support for passing parameters (e.g.,
-
PCC Compiler v0.0.2-beta - Modular Update Pre-Release
released this
2026-02-06 15:26:07 +00:00 | 18 commits to main since this release⚠️ IMPORTANT
To make it work, you MUST run
setup.batas Administrator!🚀 What's New in v0.0.2-beta
This is a major release introducing a modular architecture for the compiler!
✨ Changelog:
- Code Refactoring: Split source code into
parser,codegen, andutilsfor better readability and maintainability. - Bug Fixes: Resolved issues with struct redefinitions (
IfBlock,Expression). - Optimization: Improved memory management during function parsing.
📦 How to use:
- Download the latest release from the Realeases page.
- Unzip the archive to C:/PCC/
- Run
setup.batas Administrator. - Compile your code:
PCC.exe code.pcc.
Downloads
- Code Refactoring: Split source code into