diff options
| author | Jussi Pakkanen <jpakkane@gmail.com> | 2025-01-26 20:02:34 +0200 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2025-01-26 20:02:34 +0200 |
| commit | b1a5ae6635115cefcf12aca432929c95bce40a4a (patch) | |
| tree | b01f4399cfd73be99d746cddd0f5df4194f7a7c9 /docs | |
| parent | a5d48cc0deeb90be976fc7044337ce9f5f33340e (diff) | |
| download | meson-b1a5ae6635115cefcf12aca432929c95bce40a4a.tar.gz | |
Created release notes for 1.7.0.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/markdown/Release-notes-for-1.7.0.md | 155 | ||||
| -rw-r--r-- | docs/markdown/snippets/atomic-dependency.md | 9 | ||||
| -rw-r--r-- | docs/markdown/snippets/cargo_cap_lints.md | 8 | ||||
| -rw-r--r-- | docs/markdown/snippets/cargo_features.md | 14 | ||||
| -rw-r--r-- | docs/markdown/snippets/clippy.md | 8 | ||||
| -rw-r--r-- | docs/markdown/snippets/external_project_devenv.md | 7 | ||||
| -rw-r--r-- | docs/markdown/snippets/fixed_sizeof_and_find_library_for_fortran.md | 8 | ||||
| -rw-r--r-- | docs/markdown/snippets/format_from_stdin.md | 4 | ||||
| -rw-r--r-- | docs/markdown/snippets/introspect_machine.md | 5 | ||||
| -rw-r--r-- | docs/markdown/snippets/linearasm_features.md | 3 | ||||
| -rw-r--r-- | docs/markdown/snippets/num-processes.md | 8 | ||||
| -rw-r--r-- | docs/markdown/snippets/optioncaution.md | 16 | ||||
| -rw-r--r-- | docs/markdown/snippets/rust-2024.md | 5 | ||||
| -rw-r--r-- | docs/markdown/snippets/tasking_compiler.md | 3 | ||||
| -rw-r--r-- | docs/markdown/snippets/test_dependencies.md | 29 | ||||
| -rw-r--r-- | docs/markdown/snippets/vcs_tag.md | 4 | ||||
| -rw-r--r-- | docs/sitemap.txt | 1 |
17 files changed, 156 insertions, 131 deletions
diff --git a/docs/markdown/Release-notes-for-1.7.0.md b/docs/markdown/Release-notes-for-1.7.0.md new file mode 100644 index 000000000..5024b32c2 --- /dev/null +++ b/docs/markdown/Release-notes-for-1.7.0.md @@ -0,0 +1,155 @@ +--- +title: Release 1.7.0 +short-description: Release notes for 1.7.0 +... + +# New features + +Meson 1.7.0 was released on 26 January 2025 + +## Call for testing for next release + +At the beginning of next cycle we aim to merge the [option refactor +branch](https://github.com/mesonbuild/meson/pull/13441). This is a +_huge_ change that will touch pretty much all code. + +The main change it brings is that you can override any builtin option +value for any subproject (even the top one) entirely from the command +line. This means that you can, for example, enable optimizations on +all subprojects but not on the top level project. + +We have done extensive testing and all our tests currently +pass. However it is expected that this will break some workflows. So +please test the branch when it lands and report issues. We want to fix +all regressions as soon as possible, preferably far before the next rc +release. + +## New custom dependency for atomic + +``` +dependency('atomic') +``` + +checks for the availability of the atomic operation library. First, it looks +for the atomic library. If that is not found, then it will try to use what is +provided by the libc. + +## `--cap-lints allow` used for Cargo subprojects + +Similar to Cargo itself, all downloaded Cargo subprojects automatically +add the `--cap-lints allow` compiler argument, thus hiding any warnings +from the compiler. + +Related to this, `warning_level=0` now translates into `--cap-lints allow` +for Rust targets instead of `-A warnings`. + +## Cargo features are resolved globally + +When configuring a Cargo dependency, Meson will now resolve its complete +dependency tree and feature set before generating the subproject AST. +This solves many cases of Cargo subprojects being configured with missing +features that the main project had to enable by hand using e.g. +`default_options: ['foo-rs:feature-default=true']`. + +Note that there could still be issues in the case there are multiple Cargo +entry points. That happens if the main Meson project makes multiple `dependency()` +calls for different Cargo crates that have common dependencies. + +Breaks: This change removes per feature Meson options that were previously +possible to set as shown above or from command line `-Dfoo-rs:feature-foo=true`. + +## Meson can run "clippy" on Rust projects + +Meson now defines a `clippy` target if the project uses the Rust programming +language. The target runs clippy on all Rust sources, using the `clippy-driver` +program from the same Rust toolchain as the `rustc` compiler. + +Using `clippy-driver` as the Rust compiler will now emit a warning, as it +is not meant to be a general-purpose compiler front-end. + +## Devenv support in external project module + +The [external project module](External-Project-module.md) now setups `PATH` and +`LD_LIBRARY_PATH` to be able to run programs. + +`@BINDIR@` is now substitued in arguments and `'--bindir=@PREFIX@/@BINDIR@'` +default argument have been added. + +## Fixed `sizeof` and `find_library` methods for Fortran compilers + +The implementation of the `.sizeof()` method has been fixed for Fortran +compilers (it was previously broken since it would try to compile a C code +snippet). Note that this functionality requires Fortran 2008 support. + +Incidentally this also fixes the `.find_library()` method for Fortran compilers +when the `prefer_static` built-in option is set to true. + +## format command now accept stdin argument + +You can now use `-` argument for `meson format` to read input from stdin +instead of reading it from a file. + +## "machine" entry in target introspection data + +The JSON data returned by `meson introspect --targets` now has a `machine` +entry in each `target_sources` block. The new entry can be one of `build` +or `host` for compiler-built targets, or absent for `custom_target` targets. + +## Add new language Linear Asm + +TI C6000 compiler supports a dialect of TI asm, so we add a new language for it. + +## Control the number of child processes with an environment variable + +Previously, `meson test` checked the `MESON_TESTTHREADS` variable to control +the amount of parallel jobs to run; this was useful when `meson test` is +invoked through `ninja test` for example. With this version, a new variable +`MESON_NUM_PROCESSES` is supported with a broader scope: in addition to +`meson test`, it is also used by the `external_project` module and by +Ninja targets that invoke `clang-tidy`, `clang-format` and `clippy`. + +## Support for Rust 2024 + +Meson can now request the compiler to use the 2024 edition of Rust. Use +`rust_std=2024` to activate it. Rust 2024 requires the 1.85.0 version +(or newer) of the compiler. + +## Support TASKING VX-Toolset + +Meson now supports the TASKING VX-Toolset compiler family for the Tricore cpu family. + +## Test targets no longer built by default + +`meson test` and the `ninja all` rule have been reworked to no longer force +unnecessary rebuilds. + +`meson test` was invoking `ninja all` due to a bug if the chosen set of tests +had no build dependencies. The behavior is now the same as when tests do have +build dependencies, i.e. to only build the actual set of targets that are used +by the test. This change could cause failures when upgrading to Meson 1.7.0, if +the dependencies are not specified correctly in meson.build. Using `ninja test` +has always been guaranteed to "do the right thing" and rebuild `all` as well; +this continues to work. + +`ninja all` does not rebuild all tests anymore; it should be noted that this +change means test programs are no longer guaranteed to have been built, +depending on whether those test programs were *also* defined to build by +default / marked as installable. This avoids building test-only binaries as +part of installing the project (`ninja && ninja install`), which is unnecessary +and has no use case. + +Some users might have been relying on the "all" target building test +dependencies in combination with `meson test --no-rebuild` in order to skip +calling out to ninja when running tests. This might break with this change +because, when given `--no-rebuild`, Meson provides no guarantee that test +dependencies are present and up to date. The recommended workflow is to use +either `ninja test` or `ninja && meson test` but, if you wish to build test +programs and dependencies in a separate stage, you can use for example `ninja +all meson-test-prereq meson-benchmark-prereq` before `meson test --no-rebuild`. +These prereq targets have been available since meson 0.63.0. + +## Install vcs_tag() output + +[[vcs_tag]] now has `install`, `install_dir`, `install_tag` and `install_mode` +keyword arguments to install the generated file. + diff --git a/docs/markdown/snippets/atomic-dependency.md b/docs/markdown/snippets/atomic-dependency.md deleted file mode 100644 index 2eef5e0b1..000000000 --- a/docs/markdown/snippets/atomic-dependency.md +++ /dev/null @@ -1,9 +0,0 @@ -## New custom dependency for atomic - -``` -dependency('atomic') -``` - -checks for the availability of the atomic operation library. First, it looks -for the atomic library. If that is not found, then it will try to use what is -provided by the libc. diff --git a/docs/markdown/snippets/cargo_cap_lints.md b/docs/markdown/snippets/cargo_cap_lints.md deleted file mode 100644 index 9623ae157..000000000 --- a/docs/markdown/snippets/cargo_cap_lints.md +++ /dev/null @@ -1,8 +0,0 @@ -## `--cap-lints allow` used for Cargo subprojects - -Similar to Cargo itself, all downloaded Cargo subprojects automatically -add the `--cap-lints allow` compiler argument, thus hiding any warnings -from the compiler. - -Related to this, `warning_level=0` now translates into `--cap-lints allow` -for Rust targets instead of `-A warnings`. diff --git a/docs/markdown/snippets/cargo_features.md b/docs/markdown/snippets/cargo_features.md deleted file mode 100644 index 26f1bff95..000000000 --- a/docs/markdown/snippets/cargo_features.md +++ /dev/null @@ -1,14 +0,0 @@ -## Cargo features are resolved globally - -When configuring a Cargo dependency, Meson will now resolve its complete -dependency tree and feature set before generating the subproject AST. -This solves many cases of Cargo subprojects being configured with missing -features that the main project had to enable by hand using e.g. -`default_options: ['foo-rs:feature-default=true']`. - -Note that there could still be issues in the case there are multiple Cargo -entry points. That happens if the main Meson project makes multiple `dependency()` -calls for different Cargo crates that have common dependencies. - -Breaks: This change removes per feature Meson options that were previously -possible to set as shown above or from command line `-Dfoo-rs:feature-foo=true`. diff --git a/docs/markdown/snippets/clippy.md b/docs/markdown/snippets/clippy.md deleted file mode 100644 index 47d02083a..000000000 --- a/docs/markdown/snippets/clippy.md +++ /dev/null @@ -1,8 +0,0 @@ -## Meson can run "clippy" on Rust projects - -Meson now defines a `clippy` target if the project uses the Rust programming -language. The target runs clippy on all Rust sources, using the `clippy-driver` -program from the same Rust toolchain as the `rustc` compiler. - -Using `clippy-driver` as the Rust compiler will now emit a warning, as it -is not meant to be a general-purpose compiler front-end. diff --git a/docs/markdown/snippets/external_project_devenv.md b/docs/markdown/snippets/external_project_devenv.md deleted file mode 100644 index 1927bd32f..000000000 --- a/docs/markdown/snippets/external_project_devenv.md +++ /dev/null @@ -1,7 +0,0 @@ -## Devenv support in external project module - -The [external project module](External-Project-module.md) now setups `PATH` and -`LD_LIBRARY_PATH` to be able to run programs. - -`@BINDIR@` is now substitued in arguments and `'--bindir=@PREFIX@/@BINDIR@'` -default argument have been added. diff --git a/docs/markdown/snippets/fixed_sizeof_and_find_library_for_fortran.md b/docs/markdown/snippets/fixed_sizeof_and_find_library_for_fortran.md deleted file mode 100644 index 6893429e8..000000000 --- a/docs/markdown/snippets/fixed_sizeof_and_find_library_for_fortran.md +++ /dev/null @@ -1,8 +0,0 @@ -## Fixed `sizeof` and `find_library` methods for Fortran compilers - -The implementation of the `.sizeof()` method has been fixed for Fortran -compilers (it was previously broken since it would try to compile a C code -snippet). Note that this functionality requires Fortran 2008 support. - -Incidentally this also fixes the `.find_library()` method for Fortran compilers -when the `prefer_static` built-in option is set to true. diff --git a/docs/markdown/snippets/format_from_stdin.md b/docs/markdown/snippets/format_from_stdin.md deleted file mode 100644 index cebe976c4..000000000 --- a/docs/markdown/snippets/format_from_stdin.md +++ /dev/null @@ -1,4 +0,0 @@ -## format command now accept stdin argument - -You can now use `-` argument for `meson format` to read input from stdin -instead of reading it from a file. diff --git a/docs/markdown/snippets/introspect_machine.md b/docs/markdown/snippets/introspect_machine.md deleted file mode 100644 index 9b19bd6a2..000000000 --- a/docs/markdown/snippets/introspect_machine.md +++ /dev/null @@ -1,5 +0,0 @@ -## "machine" entry in target introspection data - -The JSON data returned by `meson introspect --targets` now has a `machine` -entry in each `target_sources` block. The new entry can be one of `build` -or `host` for compiler-built targets, or absent for `custom_target` targets. diff --git a/docs/markdown/snippets/linearasm_features.md b/docs/markdown/snippets/linearasm_features.md deleted file mode 100644 index 571408685..000000000 --- a/docs/markdown/snippets/linearasm_features.md +++ /dev/null @@ -1,3 +0,0 @@ -## Add new language Linear Asm - -TI C6000 compiler supports a dialect of TI asm, so we add a new language for it. diff --git a/docs/markdown/snippets/num-processes.md b/docs/markdown/snippets/num-processes.md deleted file mode 100644 index 533637790..000000000 --- a/docs/markdown/snippets/num-processes.md +++ /dev/null @@ -1,8 +0,0 @@ -## Control the number of child processes with an environment variable - -Previously, `meson test` checked the `MESON_TESTTHREADS` variable to control -the amount of parallel jobs to run; this was useful when `meson test` is -invoked through `ninja test` for example. With this version, a new variable -`MESON_NUM_PROCESSES` is supported with a broader scope: in addition to -`meson test`, it is also used by the `external_project` module and by -Ninja targets that invoke `clang-tidy`, `clang-format` and `clippy`. diff --git a/docs/markdown/snippets/optioncaution.md b/docs/markdown/snippets/optioncaution.md deleted file mode 100644 index c2d9a8776..000000000 --- a/docs/markdown/snippets/optioncaution.md +++ /dev/null @@ -1,16 +0,0 @@ -## Call for testing for next release - -At the beginning of next cycle we aim to merge the [option refactor -branch](https://github.com/mesonbuild/meson/pull/13441). This is a -_huge_ change that will touch pretty much all code. - -The main change it brings is that you can override any builtin option -value for any subproject (even the top one) entirely from the command -line. This means that you can, for example, enable optimizations on -all subprojects but not on the top level project. - -We have done extensive testing and all our tests currently -pass. However it is expected that this will break some workflows. So -please test the branch when it lands and report issues. We want to fix -all regressions as soon as possible, preferably far before the next rc -release. diff --git a/docs/markdown/snippets/rust-2024.md b/docs/markdown/snippets/rust-2024.md deleted file mode 100644 index b1334d326..000000000 --- a/docs/markdown/snippets/rust-2024.md +++ /dev/null @@ -1,5 +0,0 @@ -## Support for Rust 2024 - -Meson can now request the compiler to use the 2024 edition of Rust. Use -`rust_std=2024` to activate it. Rust 2024 requires the 1.85.0 version -(or newer) of the compiler. diff --git a/docs/markdown/snippets/tasking_compiler.md b/docs/markdown/snippets/tasking_compiler.md deleted file mode 100644 index bbe29cc4b..000000000 --- a/docs/markdown/snippets/tasking_compiler.md +++ /dev/null @@ -1,3 +0,0 @@ -## Support TASKING VX-Toolset - -Meson now supports the TASKING VX-Toolset compiler family for the Tricore cpu family.
\ No newline at end of file diff --git a/docs/markdown/snippets/test_dependencies.md b/docs/markdown/snippets/test_dependencies.md deleted file mode 100644 index f69efa5ce..000000000 --- a/docs/markdown/snippets/test_dependencies.md +++ /dev/null @@ -1,29 +0,0 @@ -## Test targets no longer built by default - -`meson test` and the `ninja all` rule have been reworked to no longer force -unnecessary rebuilds. - -`meson test` was invoking `ninja all` due to a bug if the chosen set of tests -had no build dependencies. The behavior is now the same as when tests do have -build dependencies, i.e. to only build the actual set of targets that are used -by the test. This change could cause failures when upgrading to Meson 1.7.0, if -the dependencies are not specified correctly in meson.build. Using `ninja test` -has always been guaranteed to "do the right thing" and rebuild `all` as well; -this continues to work. - -`ninja all` does not rebuild all tests anymore; it should be noted that this -change means test programs are no longer guaranteed to have been built, -depending on whether those test programs were *also* defined to build by -default / marked as installable. This avoids building test-only binaries as -part of installing the project (`ninja && ninja install`), which is unnecessary -and has no use case. - -Some users might have been relying on the "all" target building test -dependencies in combination with `meson test --no-rebuild` in order to skip -calling out to ninja when running tests. This might break with this change -because, when given `--no-rebuild`, Meson provides no guarantee that test -dependencies are present and up to date. The recommended workflow is to use -either `ninja test` or `ninja && meson test` but, if you wish to build test -programs and dependencies in a separate stage, you can use for example `ninja -all meson-test-prereq meson-benchmark-prereq` before `meson test --no-rebuild`. -These prereq targets have been available since meson 0.63.0. diff --git a/docs/markdown/snippets/vcs_tag.md b/docs/markdown/snippets/vcs_tag.md deleted file mode 100644 index c60996a2e..000000000 --- a/docs/markdown/snippets/vcs_tag.md +++ /dev/null @@ -1,4 +0,0 @@ -## Install vcs_tag() output - -[[vcs_tag]] now has `install`, `install_dir`, `install_tag` and `install_mode` -keyword arguments to install the generated file. diff --git a/docs/sitemap.txt b/docs/sitemap.txt index 8d7d157e1..b5e0f8157 100644 --- a/docs/sitemap.txt +++ b/docs/sitemap.txt @@ -88,6 +88,7 @@ index.md Wrap-best-practices-and-tips.md Shipping-prebuilt-binaries-as-wraps.md Release-notes.md + Release-notes-for-1.7.0.md Release-notes-for-1.6.0.md Release-notes-for-1.5.0.md Release-notes-for-1.4.0.md |
