# PBXB64 V15 Feature Summary

## Native Windows output

PBXB64 compiles and links PE32+ executables for Windows x64. The compiler,
assembler, linker, runtime support, and frontend selection are contained in
`PBXB64.exe`.

## PB/BASIC

The PB/BASIC frontend supports a broad PowerBASIC-compatible language surface,
including:

- Procedures, functions, parameters, local and global data
- Integer, floating-point, string, pointer, structure, union, enum, GUID,
  object, and variant declarations
- Conditional statements, loops, `SELECT CASE`, `GOTO`, `GOSUB`, and error
  handling
- Fixed and dynamic arrays, including `REDIM PRESERVE`
- String, numeric, date/time, file, console, memory, and process operations
- Preprocessor directives, macros, includes, and conditional compilation
- DLL declarations, aliases, exports, and Windows API use
- Inline assembly with `#ASM` / `#ENDASM` and `!`-prefixed assembly lines
- Embedded SPR blocks using `!!`-prefixed lines
- H-Lib container types with automatic initialization and cleanup
- Graphics commands and BASIC access to Logo turtle operations

PBXB64 aims at practical source compatibility, but V15 does not claim complete
PowerBASIC 11 parity. Consult the English or German help for the documented
surface.

## H-Lib containers

V15 supplies native dynamic arrays, stacks, queues, lists, mutable strings,
two-dimensional arrays, hash tables, trees, deep trees, tries, heaps, deques,
sets, graphs, multisets, union-find sets, LRU caches, ring buffers, skip lists,
B+ trees, quadtrees, Bloom filters, and synchronized containers.

PB/BASIC include files are in `Includes\`. C programs can use the public H-Lib
interface in `c17_headers\pbxb64\hlib.h`.

## Other frontends

| Frontend | V15 scope |
| --- | --- |
| x64 ASM | Native assembler input and PB/BASIC inline assembly |
| B64 | Stable documented compatibility frontend |
| C | Practical C subset with preprocessing, common C89-C17 syntax, runtime headers, and H-Lib access |
| COBOL | Documented subset covering data, arithmetic, control flow, strings, I/O, linkage, search, and PB/BASIC bridging |
| FORTH | Documented stack, arithmetic, control, definition, and data-word subset |
| Logo | Documented procedures, lists, control flow, arithmetic, and turtle graphics subset |
| PILOT | Stable documented compatibility frontend |
| Rust | Documented subset covering functions, expressions, arrays, closures, and methods |
| SPR | Documented MiniRobot command subset, control flow, variables, host-variable import, and selected Windows operations |

The `Examples\` directory contains curated programs for every frontend.

## Command-line tools

V15 provides syntax checking, preprocessing, optimization levels, intermediate
output options, object-only compilation, map output, custom entry points, and
diagnostic controls. Run `PBXB64 --help` for the current option list.

## Documentation

`PBXB64_Help_EN.chm` and `PBXB64_Help_DE.chm` contain equivalent English and
German reference material. Commands retained only for V14 compatibility are
identified as such in the help.
