diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f28b17e5d..30f284e3522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,35 @@ All notable changes to this project will be documented in this file. +## [1.0.0](https://github.com/PLC-lang/rusty/releases/tag/v1.0.0) - 2026-06-03 + +### Added + +- Add hwmap sidecar (#1731) +- **codegen**: Embed compiler version in compiled artifacts via llvm.ident (#1733) + +### Fixed + +- **resolver**: Enum names should resolve correctly when they collide with pou names (#1761) +- Only error out on non existing files (not globs) (#1762) +- **validation**: Reject THIS. without dereference (#1729) +- **parser**: Recover from unexpected tokens in expression position (#1709) +- **codegen**: Emit signext/zeroext on sub-32-bit integer parameters (#1708) +- **validation**: Flag wrong assignment direction at call sites (#1710) +- **project**: Validate file/include paths and reject empty input sets (#1713) +- **preprocessor**: Bind POU-scoped AT addresses to backing __PI_* global (#1737) +- **validation**: Reject FB-level VAR_TEMP referenced from a METHOD (#1746) +- **typesystem**: Wrong downcast warning when assigning numeric literal to SINT (#1753) +- **parser**: Focused diagnostic for reserved keywords in name slots (#1735) +- Properties now support the REFERENCE TO type (#1701) +- **linker**: Wrap spawn errors with diagnostic context and route long invocations through a response file (#1722) +- **codegen**: Drop ptr→aggregate bitcast on by-ref argument pass (#1742) +- **codegen**: Ptrtoint pointer operands in int binary arithmetic (#1751) +- **lowering**: Disambiguate per-unit ctor symbols by path hash (#1724) + +### Documentation + +- Update AGENTS.md (#1754) ## [0.5.0](https://github.com/PLC-lang/rusty/releases/tag/v0.5.0) - 2026-05-06 ### Added diff --git a/Cargo.lock b/Cargo.lock index 01c60ee957e..b8993811d23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -809,7 +809,7 @@ dependencies = [ [[package]] name = "errorcode_book_generator" -version = "0.5.0" +version = "1.0.0" dependencies = [ "clap 4.6.1", "mdbook-preprocessor", @@ -1423,7 +1423,7 @@ dependencies = [ [[package]] name = "iec61131std" -version = "0.5.0" +version = "1.0.0" dependencies = [ "cc", "chrono", @@ -2232,7 +2232,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "plc-compiler" -version = "0.5.0" +version = "1.0.0" dependencies = [ "anyhow", "chrono", @@ -2276,7 +2276,7 @@ dependencies = [ [[package]] name = "plc_ast" -version = "0.5.0" +version = "1.0.0" dependencies = [ "chrono", "derive_more", @@ -2289,7 +2289,7 @@ dependencies = [ [[package]] name = "plc_derive" -version = "0.5.0" +version = "1.0.0" dependencies = [ "quote", "syn 2.0.117", @@ -2297,7 +2297,7 @@ dependencies = [ [[package]] name = "plc_diagnostics" -version = "0.5.0" +version = "1.0.0" dependencies = [ "anyhow", "codespan-reporting", @@ -2313,7 +2313,7 @@ dependencies = [ [[package]] name = "plc_driver" -version = "0.5.0" +version = "1.0.0" dependencies = [ "anstream", "anstyle", @@ -2346,7 +2346,7 @@ dependencies = [ [[package]] name = "plc_header_generator" -version = "0.5.0" +version = "1.0.0" dependencies = [ "clap 3.2.25", "insta", @@ -2364,7 +2364,7 @@ dependencies = [ [[package]] name = "plc_index" -version = "0.5.0" +version = "1.0.0" dependencies = [ "annotate-snippets", "encoding_rs", @@ -2379,7 +2379,7 @@ dependencies = [ [[package]] name = "plc_llvm" -version = "0.5.0" +version = "1.0.0" dependencies = [ "cc", "inkwell", @@ -2388,7 +2388,7 @@ dependencies = [ [[package]] name = "plc_lowering" -version = "0.5.0" +version = "1.0.0" dependencies = [ "insta", "itertools", @@ -2402,7 +2402,7 @@ dependencies = [ [[package]] name = "plc_project" -version = "0.5.0" +version = "1.0.0" dependencies = [ "anyhow", "encoding_rs", @@ -2421,7 +2421,7 @@ dependencies = [ [[package]] name = "plc_source" -version = "0.5.0" +version = "1.0.0" dependencies = [ "encoding_rs", "encoding_rs_io", @@ -2432,11 +2432,11 @@ dependencies = [ [[package]] name = "plc_util" -version = "0.5.0" +version = "1.0.0" [[package]] name = "plc_xml" -version = "0.5.0" +version = "1.0.0" dependencies = [ "html-escape", "indexmap 2.14.0", @@ -2857,7 +2857,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "section_mangler" -version = "0.5.0" +version = "1.0.0" dependencies = [ "nom", ] @@ -3440,7 +3440,7 @@ dependencies = [ [[package]] name = "test_utils" -version = "0.5.0" +version = "1.0.0" dependencies = [ "plc-compiler", "plc_ast", @@ -4293,7 +4293,7 @@ checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547" [[package]] name = "xtask" -version = "0.5.0" +version = "1.0.0" dependencies = [ "anyhow", "async-std", diff --git a/Cargo.toml b/Cargo.toml index 0a1c16d50a0..fb738e0c412 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc-compiler" -version = "0.5.0" +version = "1.0.0" authors = [ "Ghaith Hachem ", "Mathias Rieder ", @@ -18,19 +18,19 @@ default = [] verify = [] [dependencies] -plc_source = { path = "./compiler/plc_source", version = "0.5.0" } -plc_ast = { path = "./compiler/plc_ast", version = "0.5.0" } -plc_util = { path = "./compiler/plc_util", version = "0.5.0" } -plc_diagnostics = { path = "./compiler/plc_diagnostics", version = "0.5.0" } -plc_index = { path = "./compiler/plc_index", version = "0.5.0" } -section_mangler = { path = "./compiler/section_mangler", version = "0.5.0" } -plc_llvm = { path = "./compiler/plc_llvm", version = "0.5.0" } +plc_source = { path = "./compiler/plc_source", version = "1.0.0" } +plc_ast = { path = "./compiler/plc_ast", version = "1.0.0" } +plc_util = { path = "./compiler/plc_util", version = "1.0.0" } +plc_diagnostics = { path = "./compiler/plc_diagnostics", version = "1.0.0" } +plc_index = { path = "./compiler/plc_index", version = "1.0.0" } +section_mangler = { path = "./compiler/section_mangler", version = "1.0.0" } +plc_llvm = { path = "./compiler/plc_llvm", version = "1.0.0" } logos.workspace = true clap = { version = "3.0", features = ["derive"] } indexmap = { workspace = true, features = ["serde"] } generational-arena = { version = "0.2.8", features = ["serde"] } shell-words = "1.1.0" -plc_derive = { path = "./compiler/plc_derive", version = "0.5.0" } +plc_derive = { path = "./compiler/plc_derive", version = "1.0.0" } which.workspace = true siphasher = "1" log.workspace = true @@ -49,13 +49,13 @@ tempfile.workspace = true num = "0.4" insta.workspace = true pretty_assertions = "1.3.0" -driver = { path = "./compiler/plc_driver/", package = "plc_driver", version = "0.5.0" } -project = { path = "./compiler/plc_project/", package = "plc_project", version = "0.5.0", features = [ +driver = { path = "./compiler/plc_driver/", package = "plc_driver", version = "1.0.0" } +project = { path = "./compiler/plc_project/", package = "plc_project", version = "1.0.0", features = [ "integration", ] } -plc_xml = { path = "./compiler/plc_xml", version = "0.5.0" } +plc_xml = { path = "./compiler/plc_xml", version = "1.0.0" } test_utils = { path = "./tests/test_utils" } -plc_lowering = { path = "./compiler/plc_lowering", version = "0.5.0" } +plc_lowering = { path = "./compiler/plc_lowering", version = "1.0.0" } serial_test = "*" tempfile.workspace = true encoding_rs.workspace = true diff --git a/compiler/plc_ast/Cargo.toml b/compiler/plc_ast/Cargo.toml index 07f3549a9ca..dbc85b6c547 100644 --- a/compiler/plc_ast/Cargo.toml +++ b/compiler/plc_ast/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "plc_ast" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "AST types for the PLC Structured Text compiler" [dependencies] -plc_util = { path = "../plc_util", version = "0.5.0" } -plc_source = { path = "../plc_source", version = "0.5.0" } +plc_util = { path = "../plc_util", version = "1.0.0" } +plc_source = { path = "../plc_source", version = "1.0.0" } chrono.workspace = true # Enabled the RC feature (for Arc) see: https://serde.rs/feature-flags.html#-features-rc serde = { workspace = true, features = ["rc"] } diff --git a/compiler/plc_derive/Cargo.toml b/compiler/plc_derive/Cargo.toml index e4fc5b2bf5d..6a782bb757a 100644 --- a/compiler/plc_derive/Cargo.toml +++ b/compiler/plc_derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_derive" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Derive macros for the PLC Structured Text compiler" diff --git a/compiler/plc_diagnostics/Cargo.toml b/compiler/plc_diagnostics/Cargo.toml index f7bb27e4464..39beceee63c 100644 --- a/compiler/plc_diagnostics/Cargo.toml +++ b/compiler/plc_diagnostics/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "plc_diagnostics" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Diagnostics and error reporting for the PLC Structured Text compiler" [dependencies] codespan-reporting = "0.12" -plc_ast = { path = "../plc_ast", version = "0.5.0" } -plc_source = { path = "../plc_source", version = "0.5.0" } +plc_ast = { path = "../plc_ast", version = "1.0.0" } +plc_source = { path = "../plc_source", version = "1.0.0" } serde_json.workspace = true serde.workspace = true toml.workspace = true diff --git a/compiler/plc_driver/Cargo.toml b/compiler/plc_driver/Cargo.toml index 2a18fe889e1..018a0032a05 100644 --- a/compiler/plc_driver/Cargo.toml +++ b/compiler/plc_driver/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_driver" -version = "0.5.0" +version = "1.0.0" edition = "2021" build = "build.rs" license = "LGPL-3.0" @@ -9,15 +9,15 @@ description = "IEC 61131-3 Structured Text compiler" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -plc = { path = "../..", package = "plc-compiler", version = "0.5.0" } -ast = { path = "../plc_ast/", package = "plc_ast", version = "0.5.0" } -project = { path = "../plc_project/", package = "plc_project", version = "0.5.0" } -source_code = { path = "../plc_source/", package = "plc_source", version = "0.5.0" } -cfc = { path = "../plc_xml/", package = "plc_xml", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics/", version = "0.5.0" } -plc_index = { path = "../plc_index", version = "0.5.0" } -plc_lowering = { path = "../plc_lowering", version = "0.5.0" } -plc_header_generator = { path = "../plc_header_generator", version = "0.5.0" } +plc = { path = "../..", package = "plc-compiler", version = "1.0.0" } +ast = { path = "../plc_ast/", package = "plc_ast", version = "1.0.0" } +project = { path = "../plc_project/", package = "plc_project", version = "1.0.0" } +source_code = { path = "../plc_source/", package = "plc_source", version = "1.0.0" } +cfc = { path = "../plc_xml/", package = "plc_xml", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics/", version = "1.0.0" } +plc_index = { path = "../plc_index", version = "1.0.0" } +plc_lowering = { path = "../plc_lowering", version = "1.0.0" } +plc_header_generator = { path = "../plc_header_generator", version = "1.0.0" } serde.workspace = true serde_json.workspace = true @@ -34,7 +34,7 @@ encoding_rs.workspace = true encoding_rs_io.workspace = true anyhow.workspace = true itertools.workspace = true -plc_util = { path = "../plc_util", version = "0.5.0" } +plc_util = { path = "../plc_util", version = "1.0.0" } [dev-dependencies] pretty_assertions = "1.3.0" diff --git a/compiler/plc_header_generator/Cargo.toml b/compiler/plc_header_generator/Cargo.toml index 82f6671f234..39624b2a60d 100644 --- a/compiler/plc_header_generator/Cargo.toml +++ b/compiler/plc_header_generator/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "plc_header_generator" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "C header file generator for the PLC Structured Text compiler" [dependencies] -plc = { path = "../..", package = "plc-compiler", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics/", version = "0.5.0" } -plc_ast = { path = "../plc_ast/", version = "0.5.0" } -plc_source = { path = "../plc_source/", version = "0.5.0" } +plc = { path = "../..", package = "plc-compiler", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics/", version = "1.0.0" } +plc_ast = { path = "../plc_ast/", version = "1.0.0" } +plc_source = { path = "../plc_source/", version = "1.0.0" } tera = "1" clap = { version = "3.0", features = ["derive"] } regex.workspace = true diff --git a/compiler/plc_index/Cargo.toml b/compiler/plc_index/Cargo.toml index 832af7a3f5b..6b63337e030 100644 --- a/compiler/plc_index/Cargo.toml +++ b/compiler/plc_index/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "plc_index" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Symbol index and type system for the PLC Structured Text compiler" [dependencies] -plc_ast = { path = "../plc_ast", version = "0.5.0" } -plc_source = { path = "../plc_source", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics", version = "0.5.0" } +plc_ast = { path = "../plc_ast", version = "1.0.0" } +plc_source = { path = "../plc_source", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics", version = "1.0.0" } #plc_project = { path = "../plc_project" } # TODO: This will create a circular dependency rustc-hash.workspace = true encoding_rs.workspace = true diff --git a/compiler/plc_llvm/Cargo.toml b/compiler/plc_llvm/Cargo.toml index f854e213ef1..ff9aadd2bfc 100644 --- a/compiler/plc_llvm/Cargo.toml +++ b/compiler/plc_llvm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_llvm" -version = "0.5.0" +version = "1.0.0" edition = "2024" license = "LGPL-3.0" description = "LLVM Wrapper for C++ functions not exposed by inkwell or in the C API" diff --git a/compiler/plc_lowering/Cargo.toml b/compiler/plc_lowering/Cargo.toml index 2d31046163e..059d5116a0f 100644 --- a/compiler/plc_lowering/Cargo.toml +++ b/compiler/plc_lowering/Cargo.toml @@ -1,18 +1,18 @@ [package] name = "plc_lowering" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "AST lowering passes for the PLC Structured Text compiler" [dependencies] -plc = { path = "../..", package = "plc-compiler", version = "0.5.0" } -plc_ast = { path = "../plc_ast", version = "0.5.0" } -plc_source = { path = "../plc_source", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics", version = "0.5.0" } +plc = { path = "../..", package = "plc-compiler", version = "1.0.0" } +plc_ast = { path = "../plc_ast", version = "1.0.0" } +plc_source = { path = "../plc_source", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics", version = "1.0.0" } log.workspace = true itertools.workspace = true [dev-dependencies] -plc_driver = { path = "../plc_driver", version = "0.5.0" } +plc_driver = { path = "../plc_driver", version = "1.0.0" } insta.workspace = true diff --git a/compiler/plc_project/Cargo.toml b/compiler/plc_project/Cargo.toml index a850cd0368f..5aa4e5ce075 100644 --- a/compiler/plc_project/Cargo.toml +++ b/compiler/plc_project/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "plc_project" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Project configuration and file resolution for the PLC Structured Text compiler" [dependencies] -plc = { path = "../..", package = "plc-compiler", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics/", version = "0.5.0" } -source_code = { path = "../plc_source/", package = "plc_source", version = "0.5.0" } +plc = { path = "../..", package = "plc-compiler", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics/", version = "1.0.0" } +source_code = { path = "../plc_source/", package = "plc_source", version = "1.0.0" } serde.workspace = true serde_json.workspace = true regex.workspace = true diff --git a/compiler/plc_source/Cargo.toml b/compiler/plc_source/Cargo.toml index fec649c0c32..0acff8b2b5b 100644 --- a/compiler/plc_source/Cargo.toml +++ b/compiler/plc_source/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_source" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Source file handling for the PLC Structured Text compiler" diff --git a/compiler/plc_util/Cargo.toml b/compiler/plc_util/Cargo.toml index 3ba07c968cb..52c9f2c05ec 100644 --- a/compiler/plc_util/Cargo.toml +++ b/compiler/plc_util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_util" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "Shared utilities for the PLC Structured Text compiler" diff --git a/compiler/plc_xml/Cargo.toml b/compiler/plc_xml/Cargo.toml index 034546a0f60..543daffb290 100644 --- a/compiler/plc_xml/Cargo.toml +++ b/compiler/plc_xml/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "plc_xml" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "CFC/FBD XML format support for the PLC Structured Text compiler" @@ -11,10 +11,10 @@ quick-xml = { version = "0.30", features = ["serialize"] } insta.workspace = true indexmap.workspace = true html-escape = "0.2" -plc = { path = "../..", package = "plc-compiler", version = "0.5.0" } -ast = { path = "../plc_ast/", package = "plc_ast", version = "0.5.0" } -plc_diagnostics = { path = "../plc_diagnostics", version = "0.5.0" } -plc_source = { path = "../plc_source", version = "0.5.0" } +plc = { path = "../..", package = "plc-compiler", version = "1.0.0" } +ast = { path = "../plc_ast/", package = "plc_ast", version = "1.0.0" } +plc_diagnostics = { path = "../plc_diagnostics", version = "1.0.0" } +plc_source = { path = "../plc_source", version = "1.0.0" } itertools.workspace = true rustc-hash.workspace = true diff --git a/compiler/section_mangler/Cargo.toml b/compiler/section_mangler/Cargo.toml index b04158ed53e..e8138d9005c 100644 --- a/compiler/section_mangler/Cargo.toml +++ b/compiler/section_mangler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "section_mangler" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "ELF section name mangling for the PLC Structured Text compiler" diff --git a/errorcode_book_generator/Cargo.toml b/errorcode_book_generator/Cargo.toml index d6f37a8cf4b..686215940a8 100644 --- a/errorcode_book_generator/Cargo.toml +++ b/errorcode_book_generator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "errorcode_book_generator" -version = "0.5.0" +version = "1.0.0" edition = "2021" publish = false diff --git a/git-cliff/CHANGELOG.md b/git-cliff/CHANGELOG.md deleted file mode 100644 index b043aa648f5..00000000000 --- a/git-cliff/CHANGELOG.md +++ /dev/null @@ -1 +0,0 @@ -v0.5.0 diff --git a/libs/stdlib/Cargo.toml b/libs/stdlib/Cargo.toml index a20c6cd4e1b..3b1ab089ec9 100644 --- a/libs/stdlib/Cargo.toml +++ b/libs/stdlib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iec61131std" -version = "0.5.0" +version = "1.0.0" edition = "2021" license = "LGPL-3.0" description = "IEC 61131-3 standard library implementation" @@ -10,21 +10,21 @@ glob.workspace = true [build-dependencies.plc_driver] path = "../../compiler/plc_driver" -version = "0.5.0" +version = "1.0.0" [dev-dependencies.plc_driver] path = "../../compiler/plc_driver" -version = "0.5.0" +version = "1.0.0" [dev-dependencies.plc_source] path = "../../compiler/plc_source" -version = "0.5.0" +version = "1.0.0" [dev-dependencies.plc] package = "plc-compiler" path = "../.." -version = "0.5.0" +version = "1.0.0" [dependencies] diff --git a/tests/test_utils/Cargo.toml b/tests/test_utils/Cargo.toml index 56e803c3719..4fd61af9521 100644 --- a/tests/test_utils/Cargo.toml +++ b/tests/test_utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_utils" -version = "0.5.0" +version = "1.0.0" edition = "2021" publish = false diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 549e13f3a2f..55dccdaa260 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xtask" -version = "0.5.0" +version = "1.0.0" edition = "2021" publish = false