🚀 JetPascal v0.2.0: Breaking Down the Wall #12
jarroddavis68
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🚀 JetPascal v0.2.0: Breaking Down the Wall
TL;DR
JetPascal v0.2.0 is the Pascal-to-C++ transpiler that breaks down the traditional barrier between Pascal and the C++ ecosystem. Mix Pascal and C++ freely, include headers directly, link libraries with a single directive, and access 40+ years of C++ libraries without writing wrapper code. Complete Pascal language support, built-in unit testing, cross-platform compilation, and a revolutionary smart token architecture.
🎯 The Game-Changing Feature
Zero-Friction C++ Ecosystem Access
For decades, Pascal developers faced a critical barrier: accessing C++ libraries required DLL wrappers, FFI bindings, and constant maintenance overhead. JetPascal eliminates this completely.
✅ Unknown tokens = C++ - Don't recognize it? Emit it as C++
✅ Direct header inclusion -
#include_header '<vector>'brings C++ into scope✅ Unrestricted C++ blocks -
#startcpp/#endcppfor ANY C++ code✅ Static library linking -
#link 'raylib'- done✅ Seamless token mixing - Pascal and C++ in the same expression
✅ No wrappers needed - Zero FFI overhead, zero binding maintenance
🔥 What's New in v0.2.0
The "Living in C++" Philosophy
JetPascal operates at the C++ boundary at all times:
Example - Mixing Pascal and C++:
This just works. No wrappers. No bindings. Pascal calls C++, C++ calls Pascal - seamlessly.
Unrestricted C++ Blocks - Complete Freedom
Need to write complex C++ code? Use
#startcpp/#endcpp:C++ lambdas. STL algorithms. Range-based loops. Templates. All available.
Static Library Linking - Single Executable Deployment
The raylib example that changes everything:
This is a complete, working game window that compiles to a single .exe with raylib statically linked!
Complete Pascal Language Support
All the Pascal features you expect:
Basic Types
Pointers and Memory
Arrays
Records
Records map directly to C++ structs - no overhead, no translation.
Control Flow
Exception Handling
C++ exceptions under the hood - proper cleanup, proper unwinding.
Functions and Procedures
Units - Modular Programming
UnitMath.pas:
Program.pas:
Built-in Unit Testing Framework
Professional testing built into the language:
Features:
#unittestmode ondirectivetest 'description'blocksAssertEqual(expected, actual)Assert(condition)Compiler Directives - Total Build Control
Everything configured in your Pascal source - no external build files:
Supported Targets:
native- Current platformx86_64-windows- Windows 64-bitx86_64-linux- Linux 64-bitaarch64-macos- macOS ARM64 (Apple Silicon)aarch64-linux- Linux ARM64wasm32-wasi- WebAssembly (experimental)Optimization Levels:
debug- Fast compile, full debug inforeleasesafe- Optimized with safety checksreleasefast- Maximum speedreleasesmall- Minimum sizeC++ Operators
System Functions
Built-in functions for common operations:
Full Conditional Compilation
Complete C++ preprocessor support:
🏗️ Revolutionary Architecture
Smart Token System
JetPascal's architecture is fundamentally different from traditional compilers:
Traditional Compilers:
JetPascal's Smart Tokens:
Adding a new feature:
JetPascal.Setup.pasExample - Adding the
Incfunction required ONE line:RegisterSmartToken('inc', TIncToken);The
TIncTokenclass handles everything:Inc(Variable)syntax++Variable"Just Works" Principle
New features integrate automatically with existing infrastructure:
Example: Adding records required ZERO changes to:
Why? Because Pascal record syntax maps directly to C++ struct syntax, and JetPascal "lives in C++".
100+ Smart Tokens
Current smart token categories:
System:
Memory:
Types:
Control Flow:
Exceptions:
I/O:
Directives:
Unit Testing:
🎁 Zig Build System Integration
Everything self-contained - no external dependencies:
Cross-compilation is trivial:
That's it. JetPascal + Zig handle everything else.
🚀 Getting Started
Installation
Requirements:
Steps:
C:\Dev\JetPascal)binto PATHjet versionYour First Program
jet init HelloWorld cd HelloWorld jet build jet runReal-World Example - raylib Game
jet init MyGame cd MyGameEdit
src/MyGame.pas:You just created a game window with raylib. Zero wrapper code. Zero bindings.
📚 CLI Reference
Project templates:
program(default) - Executablelibrary- Shared library (.dll/.so)unit- Static library (.lib/.a)💡 Why JetPascal Changes Everything
The Old Way (Traditional Pascal)
Want to use a C++ library?
Result: Weeks of work, ongoing maintenance burden
The JetPascal Way
Want to use a C++ library?
#include_header '"library.h"'#link 'library'Result: Done. No wrappers. No bindings. No friction.
Real-World Impact
Before JetPascal:
With JetPascal:
#include_header+#link- doneThe entire C++ ecosystem is now accessible to Pascal developers.
🎯 The Bottom Line
JetPascal v0.2.0 breaks down the wall between Pascal and C++.
✅ Write Pascal syntax
✅ Include C++ headers
✅ Link C++ libraries
✅ Mix freely in same source
✅ No wrappers needed
✅ No FFI overhead
✅ No binding maintenance
✅ Complete Pascal language
✅ Built-in unit testing
✅ Cross-platform compilation
✅ Smart token architecture
✅ Everything self-contained
Build games. Build utilities. Build applications. Access the entire C++ universe.
📖 Documentation
Comprehensive docs available:
🌐 Community
🤝 Contributing
JetPascal is open source (BSD 3-Clause License). Contributions welcome!
🔮 What's Next?
JetPascal has the foundation for Pascal/C++ interop. What libraries do YOU want to use? Let us know!
Write Pascal. Access C++. Ship everywhere. 🚀
File Integrity
Files are signed with minisign using this public key:
RWTqBYfsUOCQscb6ZeknLC0On3cvWCVzMzlHamtgXNaDOO4bNs3WCSkVCopyright © 2025-present tinyBigGAMES™ LLC. All Rights Reserved.
This discussion was created from the release 🚀 JetPascal v0.2.0: Breaking Down the Wall.
Beta Was this translation helpful? Give feedback.
All reactions