Hi Arthur! On 2025-03-22T15:48:18+0100, Arthur Cohen <arthur.co...@embecosm.com> wrote: > Thanks for testing that commit. I think a partial revert is not > necessary, as I'm currently > working on our milestone to make all Rust code compile with a Rust > 1.49 toolchain. > > I think pushing a partial revert upstream would just create some > confusion when the > correct version of the code which will fully compile with Rust 1.49 > will be on our dev repo > in a few days or weeks. I'm hoping to upstream it on Monday or next > Monday if I cannot > finish it in time. > > I feel like holding on on this for a few days would make the process > easier? What do you > think?
Works for me; I'll keep this local until then. Grüße Thomas > On Sat, 22 Mar 2025 at 15:43, Thomas Schwinge <tschwi...@baylibre.com> wrote: >> >> Hi! >> >> On 2025-03-17T16:33:34+0100, arthur.co...@embecosm.com wrote: >> > From: Kushal Pal <kushalpal...@gmail.com> >> > >> > libgrust/ChangeLog: >> > >> > * libformat_parser/Cargo.toml: >> > Used crate-type instead of depricated crate_type. >> > * libformat_parser/generic_format_parser/src/lib.rs: >> > Remove dead code. >> > * libformat_parser/src/lib.rs: Likewise. >> > >> > Signed-off-by: Kushal Pal <kushalpal...@gmail.com> >> >> This isn't "dead code" on a Debian "bookworm" system where I'm testing >> with: >> >> $ rustc --version >> rustc 1.63.0 >> >> With this commit in place, I get: >> >> [...] >> Making all in libformat_parser >> make[3]: Entering directory '[...]/build-gcc/libgrust/libformat_parser' >> cargo \ >> --config [...]/source-gcc/libgrust/libformat_parser/.cargo/config \ >> build \ >> --offline \ >> --target-dir . \ >> --manifest-path >> [...]/source-gcc/libgrust/libformat_parser/Cargo.toml \ >> # FIXME: Not always '--release', right? >> Compiling generic_format_parser v0.1.0 >> ([...]/source-gcc/libgrust/libformat_parser/generic_format_parser) >> error[E0658]: use of unstable library feature 'is_some_with' >> --> generic_format_parser/src/lib.rs:615:34 >> | >> 615 | ... .is_some_and(is_id_start) >> | ^^^^^^^^^^^ >> | >> = note: see issue #93050 >> <https://github.com/rust-lang/rust/issues/93050> for more information >> >> error[E0631]: type mismatch in function arguments >> --> generic_format_parser/src/lib.rs:615:46 >> | >> 17 | fn is_id_start(c: char) -> bool { >> | ------------------------------- found signature of `fn(char) -> _` >> ... >> 615 | .is_some_and(is_id_start) >> | ----------- ^^^^^^^^^^^ expected >> signature of `for<'r> fn(&'r char) -> _` >> | | >> | required by a bound introduced by >> this call >> | >> note: required by a bound in `Option::<T>::is_some_and` >> >> Some errors have detailed explanations: E0631, E0658. >> For more information about an error, try `rustc --explain E0631`. >> error: could not compile `generic_format_parser` due to 2 previous errors >> make[3]: *** [Makefile:431: debug/liblibformat_parser.a] Error 101 >> make[3]: Target 'all' not remade because of errors. >> make[3]: Leaving directory '[...]/build-gcc/libgrust/libformat_parser' >> [...] >> >> With this commit reverted, the build again succeeds, with good test >> results. May I, therefore, push a (partial, I suppose?) 'git revert' of >> this commit? >> >> >> Grüße >> Thomas >> >> >> > --- >> > libgrust/libformat_parser/Cargo.toml | 2 +- >> > .../generic_format_parser/src/lib.rs | 16 ---------------- >> > libgrust/libformat_parser/src/lib.rs | 14 -------------- >> > 3 files changed, 1 insertion(+), 31 deletions(-) >> > >> > diff --git a/libgrust/libformat_parser/Cargo.toml >> > b/libgrust/libformat_parser/Cargo.toml >> > index 3c214915d31..39c017d249b 100644 >> > --- a/libgrust/libformat_parser/Cargo.toml >> > +++ b/libgrust/libformat_parser/Cargo.toml >> > @@ -14,7 +14,7 @@ libc = "0.2" >> > generic_format_parser = { path = "generic_format_parser" } >> > >> > [lib] >> > -crate_type = ["staticlib", "rlib"] >> > +crate-type = ["staticlib", "rlib"] >> > >> > [[bin]] >> > name = "format_parser_test" >> > diff --git a/libgrust/libformat_parser/generic_format_parser/src/lib.rs >> > b/libgrust/libformat_parser/generic_format_parser/src/lib.rs >> > index e255bf16908..25f6b0ead17 100644 >> > --- a/libgrust/libformat_parser/generic_format_parser/src/lib.rs >> > +++ b/libgrust/libformat_parser/generic_format_parser/src/lib.rs >> > @@ -22,22 +22,6 @@ fn is_id_continue(c: char) -> bool { >> > unicode_xid::UnicodeXID::is_xid_continue(c) >> > } >> > >> > -// Workaround for Ubuntu 18.04. The default Rust package is 1.65 (and >> > unlikely to change I assume?), but the >> > -// generic format parser library uses `is_some_and` which was introduced >> > in 1.70. So this is a reimplementation, >> > -// directly taken from the standard library sources >> > -trait IsSomeAnd<T> { >> > - fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool; >> > -} >> > - >> > -impl<T> IsSomeAnd<T> for Option<T> { >> > - fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool { >> > - match self { >> > - None => false, >> > - Some(x) => f(x), >> > - } >> > - } >> > -} >> > - >> > // use rustc_lexer::unescape; >> > pub use Alignment::*; >> > pub use Count::*; >> > diff --git a/libgrust/libformat_parser/src/lib.rs >> > b/libgrust/libformat_parser/src/lib.rs >> > index 0769577740f..f4670bf9b1f 100644 >> > --- a/libgrust/libformat_parser/src/lib.rs >> > +++ b/libgrust/libformat_parser/src/lib.rs >> > @@ -5,16 +5,6 @@ >> > >> > use std::ffi::CStr; >> > >> > -trait StringLeakExt { >> > - fn leak<'a>(self) -> &'a mut str; >> > -} >> > - >> > -impl StringLeakExt for String { >> > - fn leak<'a>(self) -> &'a mut str { >> > - Box::leak(self.into_boxed_str()) >> > - } >> > -} >> > - >> > trait IntoFFI<T> { >> > fn into_ffi(self) -> T; >> > } >> > @@ -98,10 +88,6 @@ mod ffi { >> > // InlineAsm, >> > // } >> > >> > - #[derive(Copy, Clone)] >> > - #[repr(C)] >> > - struct InnerOffset(usize); >> > - >> > /// A piece is a portion of the format string which represents the >> > next part >> > /// to emit. These are emitted as a stream by the `Parser` class. >> > #[derive(Debug, Clone, PartialEq)] >> > -- >> > 2.45.2 > > > > -- > > Arthur Cohen <arthur.co...@embecosm.com> > > Toolchain Engineer > > > Embecosm GmbH > > Geschäftsführer: Jeremy Bennett > > Niederlassung: Nürnberg > > Handelsregister: HR-B 36368 > > www.embecosm.de > > > Fürther Str. 27 > > 90429 Nürnberg > > > Tel.: 091 - 128 707 040 > > Fax: 091 - 128 707 077