Welcome to PackLang.
An independent C++ language designed around Packs, typed state, native bytecode, and VELLUM Canvas. PackLang applications never execute as JavaScript.
Original compiler
C++ lexer/parser, structural analysis, PLBC binary encoder, independent bytecode verifier, native PVM.
VELLUM
Canvas components: surfaces, scenes, buttons, text, rows, columns, layers, shapes, display fields and limited inputs.
PackLock
Network, OS file APIs and arbitrary native execution are absent. The worker enforces operation, size and time limits.
Structure before syntax tricks.
Everything begins with Pack Main NAME.. Each declaration ends in a period, and every visual block ends explicitly. Native events update typed in-VM state or navigate between scenes.
- Supported states: Number, Text, Boolean.
- Native actions: Increase, Decrease, Set, Toggle, Navigate.
- Reusable procedures:
Function Bonus:,Call Bonus.,End Function., with recursion rejection and bounded expansion. - VELLUM layouts: Surface, Row, Column, Layer, ScrollView; Title, Text, Display, Button, Input, Canvas, Rectangle, Circle, Progress.
- Appearance declarations, layout, spacing, colors, backgrounds and other visual properties.
- Signed LocalPack dependencies are pinned by the execution contract.
Pack Main Sam's Project.
IMP LIB VELLUM.UI.
IMP LIB LocalPack.State.
State Counter as Number = 0.
Scene Home:
Surface MainPanel:
Background Midnight.
Title "Hello, PackLang".
Display Counter.
Button Increase:
Text "Add one".
On Press:
Increase Counter by 1.
End Press.
End Button.
End Surface.
End Scene.
End Pack.Contract SamProject. Language PackLang. LanguageVersion 1. Entry main.PL. Runtime PVM. Interface VELLUM.UI. Library LocalPack.State Version 1. Network Denied. OperatingSystemFiles Denied. ExternalExecution Denied. ExecutionMode Sandboxed. MemoryLimit 64MB. End Contract.
Capabilities stay locked.
The .PLCX contract identifies the entry point and required libraries. Authors cannot grant themselves networking, filesystem access or external program execution. Editing those fields to allow access is rejected.
Studio issues a short-lived build ticket only after the native compiler validates the same source and contract. The publishing server re-compiles and hashes the bytecode, stores immutable releases and adds PCKS signatures.
The PackLang files
.PL
Human-authored PackLang source, with Pack Module / End Module syntax for additional pinned files.
.PLCX
Composition and execution contract. Pin additional files using Module helpers.PL.
.PLBC
Binary instructions for native PVM.
.PLUI
Verified VELLUM UI resource metadata.
.PLPK
Signed release bundle containing verified source and bytecode.
LocalPack
Trusted libraries distributed by the self-hosted registry.
What this version deliberately doesn't execute
Arbitrary JavaScript, HTML, CSS, Python, TS, WASM, raw native binaries, shell commands and network requests are not PackLang programs. PackCDN stores ordinary uploads as archive-only releases, limited to 200,000 bytes including the total uncompressed content of ZIP archives.
Advanced planned features such as user-defined generics, concurrency, rich audio, image resources and full native graphics effects are not yet language-version-1 operations. They will require native implementation and security testing; reserved library names do not imply those operations exist.