LEGACY DOCS · 12.0Stable is 13.2. This page stays because it still owns historical or unchanged contracts.CURRENT 13.2 →
RELEASE LINE13.2 STABLE13.1 PREDECESSOR13.0 PREVIOUS12.4 NATIVE MIRARCHIVE

V12.0 BASE CONTRACT

Language at a glance

A code-first tour of the v12 generics, Result, match, closures, defer, pointers and C ABI fixtures.

The examples below are copied from the supplied v12.0.0 release bundle under examples/native_v12_hir/. They are machine-proof fixtures, not invented tutorial syntax.

01 generic function + Result§

pub fn id[T](value: T) -> T:
    return value

fn add_two(input: Result[u32, u32]) -> Result[u32, u32]:
    let cleanup_token: u32 = 1 as u32
    defer [borrow cleanup_token]:
        DEFER_MARK = cleanup_token
    let value = input?
    return Result[u32, u32].Ok(id[u32](value) + (2 as u32))

02 slice + StringView + closure§

let bytes: array[u8, 2] = [40 as u8, 2 as u8]
let view: slice[u8] = borrow bytes
let text: StringView = "V12"
let factor: u32 = bytes[1] as u32
let callback = fn [borrow factor](value: u32) -> u32:
    return value + factor

03 struct + match§

let candidate: u32 = callback(first(view) as u32)
let pair = Pair[u32, u8](first = candidate, second = text[0])
let failed = add_two(Result[u32, u32].Err(7 as u32))
match failed:
    case Result.Ok(value):
        return value as int
    case Result.Err(error):
        if error != (7 as u32):
            return 1

04 C ABI callback§

pub extern "C" fn dbyte_c_callback(value: i32) -> i32:
    return value + (1 as i32)

let c_value: i32 = c_roundtrip(dbyte_c_callback, 36 as i32)
if c_value != (42 as i32):
    return 1

05 user-profile generic/closure/syscall§

fn id[T](value: T) -> T:
    return value

pub fn user_main() -> int:
    let bytes: array[u8, 2] = [40 as u8, 2 as u8]
    let view: slice[u8] = borrow bytes
    let factor: u32 = view[1] as u32
    let add = fn [borrow factor](value: u32) -> u32:
        return value + factor
    let written: int = user.syscall3(1 as u32, 1 as u32, "HELLO FROM DBYTE USER\r\n", 23 as usize)

Full package fixtures: examples/native_v12_hir/kernel.dby, user.dby, c_archive.dby, serial.dby, arch_x86.dby.

SOURCE POLICY: release/tag documents define contracts; examples are copied from the supplied v12.0.0 package or explicitly marked as explanatory. Unsupported claims are not upgraded by prose.