Changelog¶
All notable changes to Desi will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
unreachable()builtin — panics if reached; documents impossible code paths (mirrors Rust'sunreachable!())todo()builtin — panics with "not implemented"; placeholder for incremental developmentchr(n)/ord(s)— Unicode codepoint ↔ string conversionhex(n)/oct(n)/bin(n)— integer formatting with0x/0o/0bprefixabs(n)— absolute value forintandfloatround(n, digits)— float rounding to decimal placespow(base, exp)— integer exponentiationhash(value)/id(value)— FNV-1a hash and pointer identity- Default object representation: classes and structs print as
<TypeName at 0xADDR>when no__repr__is defined - Windows build support:
build.ps1script for full clean build on Windows (runtime + all compiler tools) - The database module — ORM, query builder, migrations, connection pool, and the PostgreSQL/MySQL/Redis drivers — now builds and runs on Windows, so
import dbworks on all three platforms - VS Code extension (
editors/vscode) with native.desisyntax highlighting and LSP integration
Fixed¶
elifchains now compile correctly — all arms were previously silently dropped, leaving only theifand finalelse- String return values no longer carry a spurious
\n—return "positive"was producing"positive\n", breaking string comparisons
[0.1.0] - 2026-08-04¶
Added¶
Core Language
- Variables with
let, andlet mutwhere the binding may be reassigned - Type inference with optional annotations
- Functions with
def, lambdas, closures - Classes with inheritance, static/class methods, operator overloading
- Structs and enums with pattern matching (
match) - Generics with trait bounds and turbofish syntax
- Pipeline operator (
|>) - Membership operator (
in) - Raw strings (
r"...") - Global constants
- Safe FFI with
externdecorator assertstatement
Type System
- Basic types:
int,float,str,bool - Sized integers:
i32,i64,u32,u64 - Collections:
list<T>,dict<K,V>,set<T> - Generic classes and functions
Option<T>andResult<T,E>types- Tuples, slicing, iterators
Builtins
- I/O:
print() - Collections:
len(),range(),enumerate() - Aggregation:
sum(),min(),max() - Boolean:
any(),all() - Transformation:
map(),filter(),reduce() - Ordering:
sorted(),reversed() - Combining:
zip()
Memory Management
- Reference counting
- Arena allocators
- RAII with
using - Guard pattern lifetime checker
Standard Library
- Core:
strings,os,io,fs,path,sys,args,env - Data:
json,toml,csv,fmt,template,encoding,base64,compress - Math:
math,random - Time:
time,datetime - Network:
http(client),http_server(server with routing, CORS, rate limiting, static files),net - WebSocket: Full RFC 6455 support with rooms, broadcast, permessage-deflate, WSS
- Crypto:
crypto,hash,uuid - Database:
db(ORM),sqlite3,postgres,mysql,redis,migrations - Concurrency:
sync(Mutex, RwLock, Channel, TaskGroup, Supervisor, Semaphore, Atomic, Select) - Utilities:
log,re,color,validate
Tooling
desic— Compiler withrun,build,test,check,fmt,doc,emit-ir,init,watchcommandsdesifmt— Code formatter (idempotent, golden-tested)desirepl— Interactive REPL with parse + type-check feedbackdesilsp— Full Language Server Protocol implementation (hover, completion, definitions, references, rename, semantic tokens, inlay hints, call hierarchy, workspace symbols)
Self-Contained Runtime
- Bundled miniz 3.0.2 — no system zlib (
-lz) dependency - Embedded SHA-1/SHA-256/SHA-512/MD5/HMAC — no OpenSSL for hashing
- Embedded SQLite3 — zero external database dependencies
- Embedded libmpdec — arbitrary precision decimals
- Only external dependency: OpenSSL (for TLS/HTTPS only)
Documentation
- Complete "Desi Book" with MkDocs Material:
- Getting Started (install, first program, IDE setup)
- 6 tutorials (variables, functions, collections, classes, generics)
- 20+ language guide pages
- 30+ stdlib reference pages
- Concurrency guide (12 pages)
- Examples index
Fixed¶
- All 461 examples pass (0 failures)
- Makefile: Fixed archive merge that lost libmpdec symbols
- Guard pattern checker prevents guard/arena escapes
Version History¶
| Version | Release Date | Highlights |
|---|---|---|
| 0.1.0 | 2026-05-06 | Initial release — batteries-included systems language |
Upgrade Guides¶
Upgrading to 0.2.0 (Future)¶
Coming Soon
Upgrade guide will be added when 0.2.0 is released.
When upgrading between major versions, check this section for breaking changes and migration steps.