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

FIRST HOUR

START SMALL. SERIOUSLY.

You need a text editor and PowerShell. You do not need to understand ELF before lunch. Run one tiny file first; the scary machine stuff can wait until it answers a real question.

00 prove the tool

  1. Download the 13.0 Windows x64 ZIP.
  2. Verify its SHA-256 against the install page.
  3. Extract to a directory you control.
  4. Run dbyte.exe --version by explicit path once before changing PATH.

10 make the smallest program

fn main() -> i32:
    return 42 as i32

Save as hello.dby. The explicit i32 is boring on purpose. Boring is good when you are trying to find out whether the compiler even works.

20 run before compiling native

PS> dbyte run .\hello.dby

If this fails, record the exact command and output. Do not jump to assembly inspection yet. First decide whether the problem is package, path, parse, type, or runtime.

30 build native output

PS> dbytec build .\hello.dby --target x86_64-dbyte-windows --emit exe --opt-level 1

Native output is a different execution path, not a different language. The semantic owner stays shared; target legalization, ABI, instruction selection and object/executable writing happen below it.

40 learn the language in useful order

  1. Language tour: declarations, functions and control flow.
  2. Types: fixed-width integers, bool and the older language foundation.
  3. Runtime ownership: allocator, owned values and Drop.
  4. Collections: owned containers after the ownership model makes sense.
  5. Native MIR: only after you care what code generation actually emits.

50 beginner debugging ladder

SymptomFirst evidence
Command not foundExplicit executable path and --version.
Parse/type errorSmallest source that still fails plus full diagnostic.
Hosted works, native failsSame source, exact target, exact opt level.
O0 works, O1 failsOptimization boundary; inspect Native MIR before/after.
One target differsCheck whether behavior is target-neutral or target ABI/hardware owned.

60 after the first hour

Read the developer map when you want to understand why DBYTE keeps semantic analysis, Native MIR, target lowering and file writers separate. Read strict portability only if you are following unreleased 13.1 source work.

GOOD HABIT. One file. One command. One observed result. Add complexity only when the previous layer is understood.

70 a useful first practice session

Create three tiny files instead of one large experiment. First return a constant. Second add a function call and one branch. Third use one owned runtime value after reading the runtime foundation. Run each hosted before compiling native. Keep the commands in a text file so a later failure can be reproduced exactly.

When a diagnostic appears, read the first error before changing code. Preserve the smallest failing file. If native output differs from hosted execution, do not rewrite the program until you know whether the difference is language semantics, target ABI, optimization, or machine execution. This habit scales from a five-line example to compiler development.