Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 94 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,103 @@

All notable changes to this project will be documented in this file.

## [1.0.1](https://github.com/PLC-lang/rusty/releases/tag/v1.0.1) - 2026-06-09
## [2.0.0](https://github.com/PLC-lang/rusty/releases/tag/v2.0.0) - 2026-10-06

### Added

- **builtins**: Add AND, OR, XOR, MOD and NOT as builtin functions (#1949)
- **stdlib**: Remove the ADD and MUL overloads (#1966)
- **driver**: Report version information with shadow-rs (#1951)
- Move arithmetic from the standard library into the builtins (#1937)
- **codegen**: LLVM key instructions (#1932)
- **stdlib**: Add integer, bit and real conversions to TIME and LTIME (#1938)
- **stdlib**: Added numeric/bit type conversions missing in the stdlib (#1930)
- **cfc**: Emit diagram locations in debug info (#1910)
- **cfc**: Report diagram locations in diagnostics (#1909)
- **parser**: Accept CONSTANT on VAR_INPUT as a no-op (#1885)
- **cfc**: Storage mode (REF= assignment) (#1891)
- **cfc**: Execution control (EN/ENO) (#1880)
- **cfc**: Storage mode (set/reset) (#1851)
- **cfc**: Negations (#1848)
- Reject undefined symbols when producing a shared object (#1823)
- Changed time to unsigned 32-bit preserving ltime as 64-bit (#1801)
- **cfc**: Jumps (#1814)
- **cfc**: Functions (#1812)
- **cfc**: Stateful blocks (#1811)
- **cfc**: Connectors and continuations (#1810)
- **cfc**: Returns (#1809)
- **cfc**: Variable source/sinks (#1808)
- **stdlib**: Added LTIME to extra functions (#1781)

### Fixed

- Hwmap no longer infinitely recurses when an enum is in the project (#1769)
- **cfc**: Map diagram debug lines to the execution order (#1963)
- **resolver**: Resolve call and date/time operands once (#1960)
- **cfc**: Accept unary minus in data sources (#1952)
- **driver**: Flatten build artifact paths (#1894)
- **llvm**: Serialize LLVM command-line option parsing (#1946)
- **index**: Carry the unit linkage into enum variant entries (#1954)
- Carry out date and time operators through the standard library (#1943)
- **validation**: Type-check variable initializers (#1924)
- **codegen**: Stop tail merging from stripping branch-body lines (#1901)
- **builtins**: NE now passes validation with explicitly named parameters (#1929)
- **resolver**: Resolve parent constants accessed via SUPER^ (#1931)
- Ensuring that TO_STRING conversion functions do not panic (#1903)
- **codegen**: Store struct literal members with assignment semantics (#1912)
- **codegen**: Anchor debug locations to their own statement (#1900)
- **stdlib**: Parse STRING_TO_* input with the compiler's literal grammar (#1907)
- **codegen**: Null-terminate untyped variadic argument lists (#1887)
- **cfc**: Adapt to new return pin format (#1906)
- **validation**: Remove VAR_INPUT {ref} warning (E042) (#1892)
- **lowering**: Resolve array ctor bounds through the index (#1897)
- Consolidated parsing logic for STRING_TO - DINT and LINT (#1899)
- Added missing STRING_TO functions to the standard library (#1884)
- **stdlib**: Stop strict UTF-8/UTF-16 decoding in string functions (#1874)
- **stdlib**: Clamp out-of-range string function parameters (#1873)
- **stdlib**: Saturate LDT date conversion, add defensive defaults (#1872)
- **stdlib**: Truncate oversized *_TO_STRING output (#1871)
- **stdlib**: Default to epoch for invalid date constructor inputs (#1870)
- **stdlib**: Remove overflow panics from TIME mul/div (#1867)
- **stdlib**: Use wrapping arithmetic in date/time functions (#1866)
- Keep struct-initializer parens when folding array elements (#1878)
- Run the backend at -Oless for unoptimized builds (#1869)
- Counter will no longer count after removing LD or R (#1877)
- Ensuring unary not validates that it requires a bit or integer (#1854)
- Program retain variables with inline type definitions (#1863)
- Escape response-file backslashes for driver linkers (#1853)
- Pass plain variable arguments to REFERENCE TO inputs by address (#1846)
- Link the driver probe to a real path and plumb the sysroot onto the target (#1852)
- Implement ABS as a builtin (#1849)
- **cfc**: Generic variable type resolution (#1840)
- Move generics into a lowerer instead of resolver phase (#1820)
- Added warning for long time variant overflows (#1828)
- Removed round function (#1841)
- **stdlib**: String writers terminate their own output (#1817)
- Construct array elements in generated array type constructors (#1831)
- Emit lifetime markers for lowered call temporaries (#1803)
- Const-fold array initializers before lowering into constructors (#1826)
- **header-generator**: Evaluate STRING/ARRAY sizes referencing constants (#1815)
- Resolve generic TO_STRING/TO_WSTRING to the correct monomorphization (#1805)
- Ensuring no segfault when c library function returns oversized string (#1794)
- Reject VAR_IN_OUT access from outside the declaring POU (#1806)
- Validate the generic natures before lowering (#1793)
- **stdlib**: CONCAT/INSERT/REPLACE no longer overflow the result buffer (#1791)
- Invalid numeric literal strings no longer crash the application … (#1787)
- Annotate allocas inside actions correctly (#1784)
- Stdlib now accepts the correct data type for LDT_TO_** functions (#1780)
- Resolve project paths containing glob metacharacters as literals (#1777)
- Hwmap no longer infinitely recurses when an enum is in the project (#1769) (#1776)

### Refactored

- **cfc**: Simplify resolver and transpiler internals (#1881)
- **cfc**: Adopt the bmx text declaration format (#1827)
- **cfc**: Rewrite the transpiler around a post-index stage (#1824)
- **cfc**: Delete plc_xml crate (#1807)

### Documentation

- Windows C++ Build Tools (#1792)
## [1.0.0](https://github.com/PLC-lang/rusty/releases/tag/v1.0.0) - 2026-06-03

### Added
Expand Down
Loading
Loading