2026-06-17
This release brings back profiling with --profiling, and adds a new exit() API for closing the application.
In Swamp it adds erase for removing items from mutable collection loops. Fixes bugs regarding Block<T> copy handling, resource ID naming, and none coalesce (??) lowering.
Lily Runtime 0.4.1
Added
- Render: Comparison functions
NeverandGreaterEqualwere added inwgpu::CompareFunction - Profiling support was added. Use
--profilingas a command line argument. - API: Added the
appmodule withcan_exit()andexit(return_code: Int)functions.
Changed
- Render: Simplified vertex attributes in
wgpu.
Swamp 0.5.7
Added
- Language: Added the
erasekeyword for mutable collectionforloops, making it easy to remove the current item in the loop. - Analyzer: Member calls for structs with embedded fields, now fallbacks to find that function for any of its embedded fields.
- Lowering: Introduced the new MIR lowering pipeline.
- Type system: Added distinct types using the
typekeyword. - Sprout: Added support for
local_dependencies, making local packages easier to depend on during development. - LSP: Added
showDebug,buildOnSave.
Changed
- Analyzer: Unused mutable parameters and variables are now reported.
Fixed
- Lowering:
??now correctly materialized aggregate values into the destination place. - Lowering:
Block<T>copies now works for block-to-block,VectoBlock, andWraptoBlockconversions. - DepLoader: Resolved the currently compiled package correctly when importing local modules with
mod. - Analyzer: Resource IDs no longer clash between packages.
Marsh VM
Changed
- VM: Removed the
blopcode - unconditional branching now usesbonly.