CPaskal v0.1.0 #2
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.
CPaskal -- Pascal Elegance. C Interop. Native Binaries.
CPaskal is a systems programming language that combines Pascal's clarity with complete C ABI interoperability. It compiles
.cpassource files to C++23, then builds native x86_64 binaries via a bundled Zig/Clang toolchain. No external compiler, no build-system glue, no configuration -- point CPaskal at a.cpasfile and it produces an executable.This is the first public release.
Highlights
begin..endblocks,:=assignment, strong static typing, and a module system. Keywords are case-insensitive; identifiers are case-sensitive.externalclause withnamealiasing. Produce C-compatible DLLs and static libraries that Python, Rust, Go, C#, and any other language can call.module exe(executable),module dll(shared library),module lib(static library),module unit(importable source module). All supportinitialize/finalizelifecycle hooks.int8..int64,uint8..uint64,float32,float64,boolean,char,wchar,string,wstring,pointer), records with single inheritance, overlays (unions), packed/aligned records, bit fields, choices (enums), sets with algebra, dynamic arrays, routine types.guard/except/finallycatches both software exceptions (throw/throwcode) and hardware faults (divide-by-zero, access violations).cppstart/cppendblocks inject raw C++ into generated output.cpp()inline expressions for seamless interop. The boundary between CPaskal and C++ is paper-thin.@ifdef/@ifndef/@else/@elseif/@endifwith predefined platform symbols (CPASKAL,TARGET_WIN64,TARGET_LINUX64,DEBUG,RELEASE,BUILD_EXE,BUILD_DLL,BUILD_LIB)..cpasbinding modules from C header files via.cisscripts. Production bindings for raylib, SDL3, SDL3_mixer, and SDL3_image ship with the release.testblocks with assertion intrinsics (asserteq,asserttrue,assertfalse,asserteqf,assertnil,assertnotnil,assertfail).println("value = {}", x)with C++23std::formatsyntax.Tooling
cpas.exe-- the command-line compiler.-rbuild-and-run,-ddebug,-ttarget,-optoptimization level,-hhelp.cpas myapp -d.@breakpointdirective -- mark debugger breakpoint locations in source with zero runtime overhead.Quick start
Compiles
hello.cpasto a native executable via the bundled toolchain and runs it.Release contents (
CPaskal-0.1.0-x86_64-windows.zip)bin/cpas.exebin/res/runtime/bin/res/libs/std/bin/res/libs/vendor/bin/res/tests/.cpassources)bin/res/zig/docs/CPaskal.mddocs/CPaskal.pdfmedia/README.mdLICENSEDocumentation: See
docs/CPaskal.md(ordocs/CPaskal.pdf) for the complete language reference. Online at cpaskal.org.Requirements: Windows 10/11 x64. Linux targets build via WSL2 + Ubuntu. Building the compiler from source requires Delphi 12 Athens.
File Integrity
Release files are signed with minisign to verify their authenticity and integrity.
Public key:
RWSLGfwSOWByrazkUwTzwlJ3rozKvaSnr3KT2aS/hSPDSLzUTPgj/m2XTo verify a downloaded file:
A successful verification confirms that the file was signed by the project and has not been modified since it was signed.
This discussion was created from the release CPaskal v0.1.0.
All reactions