PBXA64 V10 RELEASE
PBXA64 V10 erzeugt native Win64-/x64-Programme (PE32+) aus PowerBASIC, typisiertem C und Assembler. Die x32-/Win32-Zielspur wurde entfernt; 32-Bit-Zielangaben werden kontrolliert abgewiesen.
V10 Highlights
V10 entfernt den x32-/Win32-Zielpfad: nicht unterstützte 32-Bit-Targets werden mit DRV0205 abgewiesen. Korrigierte x64-Encodings umfassen SSE-Shifts, ALU-Immediates, REX-Reihenfolge, x87-Formen und Bereichsprüfungen. Assemblergrenzen, COFF-Namen und Relokationszahlen wurden gehärtet. X-Code verbessert Masken, Konversionsbreiten, Makros und DIVMOD-Aliasing; die Assembleroptimierung wurde beschleunigt.
PBX-Compiler V8: 349.086.784 Bytes (332,9 MiB / 349,1 MB). Enthält PBXA32 V24, PBXA64 V10, PBXB64 V23, PBXC64 RC50, ScharffBasic und den PBX-Editor samt Hilfen, Includes und Beispielen.
Distribution V8; EXE gültig signiert, Compilerzertifikat V.1-UNQUALIFIED
Historische V10-ReleaseNotes: 840/840 CTest berichtet; hier nicht erneut ausgeführt. Formale Identität bleibt V.1-UNQUALIFIED.
Ein klarer 64-Bit-Zielpfad
PowerBASIC, typisiertes C und Assembler teilen den nativen x64-Ausgabepfad. Die V10-ReleaseNotes dokumentieren die Entfernung der 32-Bit-Spur; win32/i686 wird mit DRV0205 abgewiesen.
PBXA64.exe --target=x86_64-pc-windows-msvc program.bas -o program64.exe
Warum PBXA64?
Echter nativer x64-Code
Keine Abhängigkeit von GCC, LLVM oder einer C-Runtime. Der Compiler erzeugt direkt x64-Maschinencodes – vom PowerBASIC-Quelltext zur ausführbaren PE-Datei in einem Durchlauf. Das bedeutet maximale Kontrolle, minimale Binary-Größe und keine Überraschungen durch Drittanbieter-Toolchains.
Release-Eingänge und historische eingebettete Dialekte
Schreibe Code in PowerBASIC, C (inline via #CCODE), PILOT (#PCODE; historische Referenz, keine gesonderte aktuelle Paketqualifikation) oder Inline-Assembler (#ASM) – alles im selben Projekt. Der Compiler mischt die Sprachen auf IR-Ebene und erzeugt ein gemeinsames PE. Perfekt für bildungsorientierte Anwendungen und Mixed-Language-Projekte.
20+ Optimierungs-Durchläufe
Constant Folding, Dead Code Elimination, Mem2Reg, Copy Propagation, CFG Cleanup, Strength Reduction, Instruction Combining, Branch Simplification, SCCP, GVN, DSE, ADCE, Reassociation, Load Forwarding, SROA, Inlining (CGSCC), LICM, FMA Contraction, Auto-Vectorization, PGO – alle Durchläufe arbeiten auf einer eigens entwickelten MGC-Zwischendarstellung (IR).
Eigener PE32/PE32+-Linker
Kein externer Linker nötig. Der integrierte Linker verarbeitet COFF-Objekte, extrahiert Archive (.lib), löst Symbole auf, generiert Import-Tabellen, TLS-, Exception- (.pdata/.xdata), Load-Config- und Reloc-Sektionen. Inklusive Post-Link-Optimierung (DCE, ICF, Strip) und LTO.
Sprach-Frontends im Detail
PowerBASIC (.pb, .bas, .pbi)
Vollständiger PowerBASIC-Dialekt: #DIM ALL, DECLARE/LIB/ALIAS, FUNCTION PBMAIN, SUB/FUNCTION, LOCAL/GLOBAL/SHARED/STATIC, TYPE/UNION/ENUM, Makro-Präprozessor, bedingte Übersetzung, #ASM/#CCODE/#PCODE-Direktiven, #OVERRIDE zum Ersetzen eingebauter Funktionen, MODULE-System (Delphi-Stil) mit INTERFACE/IMPLEMENTATION.
Weitere Frontends
C (#CCODE): C-Lexer/Parser, struct/union/typedef/enum/pointer/array, externe Funktionsdeklarationen, Initialisierer, Übersetzung in MGC-IR.
PILOT (#PCODE), historische Referenz: Bildungsorientierte PILOT-Sprache: T:/A:/M:/Y:/N:/J:/U:/E:-Befehle, bedingte Suffixe, Pattern Matching.
Inline-ASM (#ASM): Intel-Syntax-x64-Blöcke mit CLOBBER/UNSAFE/ALLOW_PRIVILEGED, Variablenbindung (%var, {var}), ASMDATA-Direktiven.
Datentypen
| Typ | Größe | Beschreibung |
|---|---|---|
| BYTE | 1 | Vorzeichenloser 8-Bit-Wert |
| WORD / INTEGER | 2 | Vorzeichenloser/Signed 16-Bit |
| DWORD / LONG | 4 | Vorzeichenloser/Signed 32-Bit |
| QUAD | 8 | Signed 64-Bit |
| SINGLE | 4 | IEEE 754 32-Bit-Gleitkomma |
| DOUBLE | 8 | IEEE 754 64-Bit-Gleitkomma |
| STRING | 16 | Dynamischer Deskriptor (ptr + len) |
| WSTRING | 16 | UTF-16-Deskriptor |
| VARIANT | 16 | COM VARIANT |
| ASCIIZ PTR / Zeigertypen | 8 | BYTE PTR, WORD PTR, DWORD PTR, LONG PTR, QUAD PTR |
Alle Befehle & Builtins
REGEXPR 1.25 direkt integriert
PBXA64 V10 enthält eine erweiterte NFA-Engine für reguläre Ausdrücke. Sie bietet bis zu 64 Capture-Gruppen, benannte Gruppen, UTF-8/UCP, Lookaround, Rückverweise sowie gierige, faule und possessive Quantifizierer.
PowerBASIC-Code verwendet die Statements REGEXPR/REGREPL oder die kompakten Funktionen REGEX$/REGEXREPLACE$. Die C-Schnittstelle unterstützt zusätzlich Match, Search, Replace, Split und Find-All.
Makro-Präprozessor & #OVERRIDE
Präprozessor-Direktiven
Der Präprozessor unterstützt Objekt-ähnliche Makros, einzeilige Makros, MACRO/MACROFUNCTION mit MACROTEMP, Äritätsprüfung, Rekursionsschutz und Duplikaterkennung.
#OVERRIDE – Builtins ersetzen
Mit #OVERRIDE kann jede eingebaute Funktion (LEN, ASC, TRIM$, UCASE$, LCASE$, REPEAT$, MID$, LEFT$, RIGHT$, SPACE$, CHR$, STR$, VAL, BIN$, OCT$, HEX$, FORMAT$, INSTR, TALLY, VERIFY, SCAN$, REPLACE$, STRDELETE$, STRINSERT$, STRREVERSE$, LTRIM$, RTRIM$, JOIN$, SPLIT, CLIP$, RETAIN$, SHRINK$, NUL$, DEC$, BUILD$, MKI$…MKD$, CVI…CVD, PEEK$) durch eigenen PowerBASIC- oder #ASM-Code ersetzt werden – mit Dispatch nach exaktem Parametertyp.
Compiler-Pipeline & Optimierung
Optimierungs-Durchläufe (20+)
Optimierungs-Stufen
| Stufe | Beschreibung |
|---|---|
-O0 | Keine Optimierung (Standard) |
-O1 | Safe Scalar Pipeline |
-O2 | SSA Optimizer Pipeline |
-O3 | O2 + Late Scalar Cleanup |
Zusätzlich: --pgo-generate, --pgo-use, --flto=full|thin, --verify-each-pass, --time-passes
Integrierter Assembler (408+ Mnemonics)
| ISA-Familie | Mnemonics | Abgedeckt |
|---|---|---|
| Core GPR | ~400 | Datentransfer, Arithmetik, Logik, Shift/Rotate, Bit-Operationen, Sprünge, Stack/Flags |
| SSE/SSE2/SSE3/SSSE3/SSE4 | ~300 | Skalare/vektorielle FP-Operationen, Ganzzahl-SIMD |
| AVX/AVX2/AVX-512/FMA | ~500 | Erweiterte Vektoroperationen, FMA-Verschmelzung |
| BMI1/BMI2 | ~16 | Bit-Manipulation |
| AES-NI / SHA / Crypto | ~25 | Hardware-beschleunigte Kryptographie |
| Systembefehle | ~50 | CPUID, RDTSC, SGDT, SWAPGS, etc. |
| SGX / VMX / CET | ~40 | Enclave-/Virtualisierungs-/Shadow-Stack-Befehle |
| MMX | ~60 | Ganzzahl-SIMD (x86-Kompatibilität) |
| x87 FPU | ~80 | Legacy-Fließkomma |
| Cache / Prefetch | ~20 | PREFETCH, CLFLUSH, MFENCE, etc. |
Unterstützte Operanden: x64 GPRs (8/16/32/64-Bit), XMM-Register, 6 Adressierungsmodi, 21 Operand-Varianten, Segment-Überschreibungen (fs:, gs:), relative Calls/Jumps, ASMDATA-Direktiven (db, dw, dd, dq, ascii, asciz).
PE32/PE32+-Linker — Features
DLL-Output
Unterstützt EXPORT, EXPORT ALIAS "Name", EXPORT ORDINAL n. Der Compiler erzeugt aus einem Quelltext mehrere Ausgabedateien.
Kommandozeilen-Optionen
| Option | Beschreibung |
|---|---|
-o <file> | Ausgabedatei festlegen |
-c | Nur compilieren (Objektdatei) |
-S | Nur Assembler-Ausgabe |
/exe / /dll | EXE oder DLL erzeugen |
-O0 … -O3 | Optimierungsstufe |
--flto=full|thin | Link-Time Optimization |
--pgo-generate / --pgo-use | Profilgesteuerte Optimierung |
-g / /debug | Debug-Informationen |
--dump-tokens/--dump-ast/--dump-ir | IR-Dumps für Debugging |
--diagnostic-format=text|json|sarif | Diagnostikformat wählen |
-Wall / -Wextra / -Werror | Warnungssteuerung |
--subsystem=console|windows | Subsystem wählen |
--entry=<symbol> | Einsprungspunkt festlegen |
--nodefaultlibs | Standard-WinAPI-Imports deaktivieren |
Beispiele
Hallo Welt (Konsolen-EXE)
Threading mit XLAUNCH (Multi-Parameter + Strings)
XLAUNCH unterstützt beliebig viele Parameter, auch STRING, WSTRING, LONG, QUAD, DOUBLE und benutzerdefinierte Typen. Das Handle wird mit TO an eine LONG-Variable gebunden.
DLL mit EXPORT
WinAPI + Inline-ASM
PBXA64 jetzt im PBX-Compiler herunterladen
Das All-in-One-Paket der Distribution V8 enthält PBXA32, PBXA64, PBXB64, PBXC64 und ScharffBasic samt PBX-Editor und aktueller CHM-Hilfe (DE+EN) — PBXA64 V10 mit Target-Headern, Laufzeit, WinAPI-Includes und Beispielen.
Downloads pro Tag
Tägliche Download-Statistik für alle Produkte der letzten 28 Tage (rollierend). Release-Markierungen kennzeichnen neue Produktversionen.
Aktueller Download und Releasegrenzen
PBX-Compiler V8: 349.086.784 Bytes (332,9 MiB / 349,1 MB). Enthält PBXA32 V24, PBXA64 V10, PBXB64 V23, PBXC64 RC50, ScharffBasic und den PBX-Editor samt Hilfen, Includes und Beispielen.
Paketlabel V10; EXE-Ressource 0.74.0-V74. Die Signatur der ausgelieferten EXE ist gültig. Der Compiler meldet weiterhin V.1-UNQUALIFIED: Authenticode ist kein Nachweis vollständiger Compilerqualifikation. Die Testzahlen in den ReleaseNotes beschreiben historische Läufe und wurden hier nicht neu ausgeführt.
CHM DeutschCHM EnglishV8-Paketprüfsumme