[COMMITTED 05/25] gccrs: HIR: Add mising getter

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * hir/tree/rust-hir-item.h: Add missing getter Signed-off-by: Jakub Dupak --- gcc/rust/hir/tree/rust-hir-item.h | 5 + 1 file changed, 5 insertions(+) diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h index 7

[COMMITTED 04/25] gccrs: TyTy: Region (lifetime) representation

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty-region.h: New file. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-tyty-region.h | 110 ++ 1 file changed, 110 insertions(+) create mode 100644 gcc/rust/typecheck/rust-tyty-region.h diff --gi

[COMMITTED 09/25] gccrs: Set the default ABI to C for extern blocks and extern functions

2024-02-07 Thread arthur . cohen
From: Nobel Singh Previously, the default ABI was set to Rust, which is not correct for extern blocks and extern functions. This patch changes the default ABI to C for these cases. gcc/rust/ChangeLog: * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers): Change defau

[COMMITTED 18/25] gccrs: fix bug in pattern check for tuples

2024-02-07 Thread arthur . cohen
From: Philip Herron We can point to generic parent types which means we need to do the shallow resolve thing that rustc does. We have destructure which is similar to get what the parameter type points to. Fixes #2775 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-pattern.cc (TypeC

[COMMITTED 20/25] gccrs: Add checks for Trait functions

2024-02-07 Thread arthur . cohen
From: Kushal Pal Since we want to use AST::Function class for trait functions as well, we need to check against specific conditions in ASTValidation phase. gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add checks for Trait functions. Signed-

[COMMITTED 23/25] gccrs: Parse trait functions as `AST::Function`.

2024-02-07 Thread arthur . cohen
From: Kushal Pal To use AST::Function for trait functions, we can parse trait functions using available parse_function(). gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_trait_item): Use parse_function() to parse trait functions. Signed-off-by: Kushal Pal --- gcc

[COMMITTED 24/25] gccrs: Remove obsolete classes and functions.

2024-02-07 Thread arthur . cohen
From: Kushal Pal Trait functions now use AST::Function class, so classes AST::TraitItemFunc, AST::TraitItemMethod, AST::TraitFunctionDecl, AST::TraitMethodDecl and their related functions can be removed. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Re

[COMMITTED 03/25] gccrs: Typecheck: lifetime interning and resolution tool

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-hir-type-check.h (class Lifetime): add interned lifetime class * typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext): add resolution tool (TypeCheckContext::intern_lifetime): add method

[COMMITTED 11/25] gccrs: add test cases to prove type inference is working

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2772 gcc/testsuite/ChangeLog: * rust/compile/issue-2772-1.rs: New test. * rust/compile/issue-2772-2.rs: New test. --- gcc/testsuite/rust/compile/issue-2772-1.rs | 20 gcc/testsuite/rust/compile/issue-2772-2.rs | 20 +++

[COMMITTED 14/25] gccrs: remove similar hack in type paths as we had in path expressions

2024-02-07 Thread arthur . cohen
From: Philip Herron This keeps the resolution code in line with paths. Addresses #2723 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-type.cc: remove hack --- gcc/rust/typecheck/rust-hir-type-check-type.cc | 16 1 file changed, 16 deletions(-) diff --git a/gcc/r

[COMMITTED 17/25] gccrs: Add testcase to show issue is already fixed

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2782 gcc/testsuite/ChangeLog: * rust/compile/issue-2782.rs: New test. Signed-off-by: Philip Herron --- gcc/testsuite/rust/compile/issue-2782.rs | 12 1 file changed, 12 insertions(+) create mode 100644 gcc/testsuite/rust/compile/issue-2782.rs

[COMMITTED 08/25] gccrs: TyTy: Store reference to type before any substitutions

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty.cc (BaseType::BaseType): Store orig ref. (BaseType::get_orig_ref): Add getter. * typecheck/rust-tyty.h: Store orig ref. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-tyty.cc | 10 -- gcc/rust/

[COMMITTED 21/25] gccrs: Add missing visitors for AST::Function.

2024-02-07 Thread arthur . cohen
From: Kushal Pal To use AST::Function instead of AST::TraitItemFunc and AST::TraitItemMethod, we need to provide similar visitors during lowering and resolving phase. gcc/rust/ChangeLog: * hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit): Provide visitor for AST::Functi

[COMMITTED 25/25] gccrs: Fix macro parsing for trait items.

2024-02-07 Thread arthur . cohen
From: Kushal Pal gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_trait_item): Handle macros in trait items similar to how its handled for trait implementation items. Signed-off-by: Kushal Pal --- gcc/rust/parse/rust-parse-impl.h | 37 --

[COMMITTED 12/25] gccrs: Fix ICE accessing empty vector without check

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2747 gcc/rust/ChangeLog: * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): fix gcc/testsuite/ChangeLog: * rust/compile/issue-2747.rs: New test. --- gcc/rust/typecheck/rust-tyty-subst.cc| 3 ++- gcc/testsuite/rus

[COMMITTED 15/25] gccrs: refactor inference variable computation into a seperate method

2024-02-07 Thread arthur . cohen
From: Philip Herron gcc/rust/ChangeLog: * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): refactor * typecheck/rust-hir-type-check.h: new prototype * typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables): x --- gcc/rust/typechec

[COMMITTED 22/25] gccrs: Fix inconsistent formatting.

2024-02-07 Thread arthur . cohen
From: Kushal Pal gcc/testsuite/ChangeLog: * rust/compile/issue-2040.rs: Enclose 'const' in single quotes. Signed-off-by: Kushal Pal --- gcc/testsuite/rust/compile/issue-2040.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/rust/compile/issue

Re: [COMMITTED 07/25] gccrs: TyTy: Store region constraints

2024-02-07 Thread Arthur Cohen
On 2/7/24 16:26, Bernhard Reutner-Fischer wrote: On Wed, 7 Feb 2024 12:43:53 +0100 arthur.co...@embecosm.com wrote: diff --git a/gcc/rust/typecheck/rust-hir-type-check-implitem.h b/gcc/rust/typecheck/rust-hir-type-check-implitem.h index 067465ec77a..4d178440775 100644 --- a/gcc/rust/typecheck

Invitation: gccrs community call January @ Mon 19 Feb 2024 11am - 11:30am (CET) (gcc-rust@gcc.gnu.org)

2024-02-12 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

Re: [PATCH] gccrs: Avoid *.bak suffixed tests - use dg-skip-if instead

2024-02-15 Thread Arthur Cohen
Hi Jakub, On 2/15/24 10:10, Jakub Jelinek wrote: On Fri, Feb 09, 2024 at 11:03:38AM +0100, Jakub Jelinek wrote: On Wed, Feb 07, 2024 at 12:43:59PM +0100, arthur.co...@embecosm.com wrote: From: Philip Herron This patch introduces one regression because generics are getting better understood o

[COMMITTED 2/9] gccrs: Add testcase for matches!() macro

2024-02-21 Thread arthur . cohen
From: Arthur Cohen This adds a testcase for issue #2129. gcc/testsuite/ChangeLog: * rust/execute/torture/matches_macro.rs: New test. --- .../rust/execute/torture/matches_macro.rs | 30 +++ 1 file changed, 30 insertions(+) create mode 100644 gcc/testsuite/rust

[COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance

2024-02-21 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-implitem.h: Fix typo in field (region_costraints -> region_constraints). --- gcc/rust/typecheck/rust-hir-type-check-implitem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/r

[COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable]

2024-02-21 Thread arthur . cohen
From: Arthur Cohen To ensure we don't introduce regressions back to issue #2314 gcc/testsuite/ChangeLog: * rust/compile/rustc_const_stable.rs: New test. --- gcc/testsuite/rust/compile/rustc_const_stable.rs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 gcc/testsuite

[COMMITTED 8/9] gccrs: Add variadic check on function params

2024-02-21 Thread arthur . cohen
From: 0xn4utilus gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add variadic check on all parameters. gcc/testsuite/ChangeLog: * rust/compile/issue-2850.rs: New test. Signed-off-by: 0xn4utilus --- gcc/rust/checks/errors/rust-ast-va

[COMMITTED 9/9] Update copyright years.

2024-02-21 Thread arthur . cohen
From: Sahil Yeole Signed-off-by: Sahil Yeole --- gcc/rust/ast/rust-ast-builder.cc | 2 +- gcc/rust/ast/rust-ast-builder.h | 2 +- gcc/rust/ast/rust-ast-collector.cc| 2 +- gcc/rust/ast/rust-ast-collector.h

[PATCHSET] Update Rust frontend 21/02/2024

2024-02-21 Thread arthur . cohen
Hey everyone, Here is the latest patchset of the Rust frontend, taken directly from our development branch. The patches have been built, tested and bootstrapped on x86-64. [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance [COMMITTED 2/9] gccrs: Add testcase for matches!() macro [COM

[COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types

2024-02-21 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * backend/rust-compile-pattern.cc (CompilePatternLet::visit): Lookup type of sub-pattern, not tuple pattern itself. gcc/testsuite/ChangeLog: * rust/compile/issue-2847-b.rs: New test. Signed-off-by: Owen Avery --- gcc/rust/

[COMMITTED 6/9] gccrs: add powi intrinsics

2024-02-21 Thread arthur . cohen
From: Marc Poulhiès gcc/rust/ChangeLog: * backend/rust-builtins.cc (BuiltinsContext::register_rust_mappings): Add powi and reformat. * backend/rust-builtins.h: Add missing copyright header. gcc/testsuite/ChangeLog: * rust/compile/torture/intrinsics-math.rs: Adju

[COMMITTED 3/9] gccrs: Fix rebinding imports

2024-02-21 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * resolve/rust-ast-resolve-item.cc (flatten_glob): Use Import class. (flatten_rebind): Likewise. (flatten_list): Likewise. (flatten): Likewise. (flatten_use_dec_to_paths): Likewise. (flatten_use_dec_to_i

[COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error

2024-02-21 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix formatting of emitted error. --- gcc/rust/expand/rust-macro-expand.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/rust/expand/rust-macro

Re: ☠ Buildbot (Sourceware): gccrust - failed compile (failure) (master)

2024-03-01 Thread Arthur Cohen
Hi Jakub, On 2/29/24 23:08, Jakub Dupak wrote: Hi, please keep me in the loop for this one. I need cargo for the borrow checker as well (the external Polonius engine). Will do :) Best Jakub On Thu, 29 Feb 2024, at 21:22, Mark Wielaard wrote: Hi, On Thu, Feb 29, 2024 at 09:00:13PM +0100,

Re: ☠ Buildbot (Sourceware): gccrust - failed compile (failure) (master)

2024-03-01 Thread Arthur Cohen
Hi both, On 2/29/24 21:22, Mark Wielaard wrote: Hi, On Thu, Feb 29, 2024 at 09:00:13PM +0100, Thomas Schwinge wrote: Three 'cargo' ('command not found') as well as one 'rustc' ('error[E0658]: `let...else` statements are unstable') errors: Yeah, I noticed those earlier, but oddly the tree bec

Invitation: gccrs weekly @ Mon 18 Mar 2024 11am - 11:15am (GMT+1) (gcc-rust@gcc.gnu.org)

2024-03-05 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

Updated invitation: gccrs weekly @ Mon 18 Mar 2024 11am - 11:30am (GMT+1) (gcc-rust@gcc.gnu.org)

2024-03-05 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

Re: I want to join Rust GCC

2024-04-04 Thread Arthur Cohen
Hi there! On 4/1/24 05:39, ali omer wrote: Hi , My name is ali omar I hope to contribute to Rust GCC , but it is my first time to contribute to open source projects , so maybe I need help and I want to know how to start contributing Thanks in advance Nice, thanks for being interested in ou

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Morning all, On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. Isn't this creating a hen-

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Hi Iain! On 4/9/24 10:55, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 11:40, Arthur Cohen wrote: On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some of

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
On 4/9/24 12:09, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 13:01, Arthur Cohen wrote: On 4/9/24 10:55, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 11:40, Arthur Cohen wrote: On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Hi Andrew, On 4/9/24 16:12, Andrew Pinski wrote: On Mon, Apr 8, 2024 at 9:39 AM wrote: From: Pierre-Emmanuel Patry Hello, The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. NOTE cargo itself is a huge security hole. If a

Re: build: Use of cargo not yet supported here in Canadian cross configurations

2024-04-16 Thread Arthur Cohen
Hi Thomas, On 4/15/24 14:44, Thomas Schwinge wrote: Hi! On 2024-04-15T13:14:42+0200, I wrote: On 2024-04-08T18:33:38+0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some of it's components, In GCC upstream still: 's%requires%is going to require'. ;

Re: [gcc r14-7544] gccrs: libproc_macro: Build statically

2024-04-16 Thread Arthur Cohen
Morning Thomas, On 4/15/24 13:07, Thomas Schwinge wrote: Hi! On 2024-01-16T17:43:10+, Arthur Cohen via Gcc-cvs wrote: https://gcc.gnu.org/g:71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 commit r14-7544-g71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 Author: Pierre-Emmanuel Patry Date: Wed Apr

Re: [PATCH] build: Check for cargo when building rust language

2024-04-17 Thread Arthur Cohen
Hi Rainer! On 4/17/24 10:13, Rainer Orth wrote: Andrew Pinski writes: On Mon, Apr 8, 2024 at 9:39 AM wrote: From: Pierre-Emmanuel Patry Hello, The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. WHY did this go in righ

[PATCH] rust: Do not link with libdl and libpthread unconditionally

2024-04-19 Thread Arthur Cohen
Hi everyone, This patch checks for the presence of dlopen and pthread_create in libc. If that is not the case, we check for the existence of -ldl and -lpthread, as these libraries are required to link the Rust runtime to our Rust frontend. If these libs are not present on the system, then we di

Invitation: gccrs May community call @ Mon 13 May 2024 11am - 12pm (GMT+2) (gcc-rust@gcc.gnu.org)

2024-05-06 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

[PATCH wwwdocs] gcc-14/changes: Add Rust section to New languages

2024-05-14 Thread Arthur Cohen
--- htdocs/gcc-14/changes.html | 13 + 1 file changed, 13 insertions(+) diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html index 924e045a..dd3fea8d 100644 --- a/htdocs/gcc-14/changes.html +++ b/htdocs/gcc-14/changes.html @@ -626,6 +626,19 @@ You may also want to chec

Re: [PATCH] rust: Do not link with libdl and libpthread unconditionally

2024-05-31 Thread Arthur Cohen
Hi Richard, On 4/30/24 09:55, Richard Biener wrote: On Fri, Apr 19, 2024 at 11:49 AM Arthur Cohen wrote: Hi everyone, This patch checks for the presence of dlopen and pthread_create in libc. If that is not the case, we check for the existence of -ldl and -lpthread, as these libraries are

Invitation: gccrs Community Call June @ Mon 17 Jun 2024 11am - 11:30am (GMT+2) (gcc-rust@gcc.gnu.org)

2024-06-10 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:CEST DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU

Re: [PATCH] rust: Do not link with libdl and libpthread unconditionally

2024-06-11 Thread Arthur Cohen
Thanks Richi! Tested again and pushed on trunk. Best, Arthur On 5/31/24 15:02, Richard Biener wrote: On Fri, May 31, 2024 at 12:24 PM Arthur Cohen wrote: Hi Richard, On 4/30/24 09:55, Richard Biener wrote: On Fri, Apr 19, 2024 at 11:49 AM Arthur Cohen wrote: Hi everyone, This patch

[PATCH] gccrs: configure.ac: Fix quoting around ldl/lpthread checks

2024-06-14 Thread Arthur Cohen
ChangeLog: * configure.ac: Add quoting around both variable checks performed, which will fix the noise reported when libc contains both ldl and lpthread. A typo around `pthread_create` being typed `pthread_crate` is also fixed. * configure: Regenerate. --- configur

[PATCH 14.2 1/3] gccrs: Add base documentation for using the Rust frontend.

2024-06-14 Thread Arthur Cohen
gcc/rust/ChangeLog: * Make-lang.in: Add documentation targets. * gccrs.texi: New file. --- gcc/rust/Make-lang.in | 25 +++-- gcc/rust/gccrs.texi | 207 ++ 2 files changed, 225 insertions(+), 7 deletions(-) create mode 100644 gcc/rust/gcc

[PATCHSET 14.2] Add documentation rules for Rust frontend

2024-06-14 Thread Arthur Cohen
Hi everyone, This is a quick and simple patchset to our Makefile in order to have proper documentation rules for the Rust frontend. Let me know if these changes would be accepted into 14.2, or if we should rather integrate them to trunk for 15.1 as part of our upstreaming process. If the changes

[PATCH 14.2 2/3] rust: Add rust.install-dvi and rust.install-html rules

2024-06-14 Thread Arthur Cohen
From: Christophe Lyon rust has the (empty) rust.dvi and rust.html rules, but lacks the (empty) rust.install-dvi and rust.install-html ones. 2024-04-04 Christophe Lyon gcc/rust/ * Make-lang.in (rust.install-dvi, rust.install-html): New rules. --- gcc/rust/Make-lang.in | 2 ++

[PATCH 14.2 3/3] rust: Copy install-html rule from Ada frontend

2024-06-14 Thread Arthur Cohen
gcc/rust/ChangeLog: * Make-lang.in: Add proper rust.install-html rule. --- gcc/rust/Make-lang.in | 19 ++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index 2395541425f..815a8b315c0 100644 --- a/gcc/rust/Make-

Invitation: gccrs Community Call July @ Mon 15 Jul 2024 11am - 11:30am (GMT+2) (gcc-rust@gcc.gnu.org)

2024-07-09 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:GMT+2 DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1S

Invitation: gccrs Community Call August @ Mon 12 Aug 2024 11am - 12pm (GMT+2) (gcc-rust@gcc.gnu.org)

2024-07-31 Thread Arthur Cohen
BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris BEGIN:DAYLIGHT TZOFFSETFROM:+0100 TZOFFSETTO:+0200 TZNAME:GMT+2 DTSTART:19700329T02 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1S

[PATCH 001/125] Rust: Make 'tree'-level 'MAIN_NAME_P' work

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge 'gcc/tree.h': #define main_identifier_nodeglobal_trees[TI_MAIN_IDENTIFIER] #define MAIN_NAME_P(NODE) \ (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node) ..., which is not initialized by default, but has to be set up by every front end ind

[PATCH 002/125] gccrs: Fix false positive for top-level AltPattern

2024-08-01 Thread Arthur Cohen
From: Owen Avery gcc/rust/ChangeLog: * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::visit): Reset is_let_top_level while visiting GroupedPattern. gcc/testsuite/ChangeLog: * rust/compile/let_alt.rs: Check for false positive. Signed-off-by: Owen Avery ---

[PATCH 003/125] gccrs: minor cleanup in langhook.type_for_mode

2024-08-01 Thread Arthur Cohen
From: Marc Poulhiès gcc/rust/ChangeLog: * rust-lang.cc (grs_langhook_type_for_mode): simplify code for xImode. Add missing long_double_type_node. Signed-off-by: Marc Poulhiès --- gcc/rust/rust-lang.cc | 39 +++ 1 file changed, 15 insertions(

[PATCH 008/125] Rust: Don't cache 'libformat_parser.a'

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge gcc/rust/ * Make-lang.in (LIBFORMAT_PARSER): Point to the actual build artifact. ($(LIBFORMAT_PARSER)): Don't cache it. --- gcc/rust/Make-lang.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/M

[PATCH 009/125] Rust: Move 'libformat_parser' build into the GCC build directory

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge Fixes #2883. gcc/rust/ChangeLog: * Make-lang.in (LIBFORMAT_PARSER): Point to the GCC build directory. * ($(LIBFORMAT_PARSER)): Build in the GCC build directory. --- gcc/rust/Make-lang.in | 11 +-- 1 file changed, 9 insertions(+), 2 deletions

[PATCH 010/125] Rust: Move 'libformat_parser' build into libgrust

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge Addresses #2883. contrib/ * gcc_update (files_and_dependencies): Update for 'libformat_parser' in libgrust. gcc/rust/ * Make-lang.in (LIBFORMAT_PARSER): Point to 'libformat_parser' build in libgrust. (%.toml:, $(LIBFOR

[PATCH 020/125] gccrs: Adjust error checks to match name resolution 2.0

2024-08-01 Thread Arthur Cohen
From: Owen Avery gcc/testsuite/ChangeLog: * rust/compile/bad_stmt_enums.rs: Adjust redefinition error. * rust/compile/bad_toplevel_enums.rs: Likewise. * rust/compile/redef_error1.rs: Likewise. * rust/compile/redef_error3.rs: Likewise. * rust/compile/redef_

[PATCH 022/125] gccrs: lang-items: Cleanup parsing and lookups of lang items.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * Make-lang.in: Compile new rust-lang-item.o. * util/rust-lang-item.h: Split into header and source. * util/rust-lang-item.cc: Cleanup parsing of lang items by using a hashmap and returning optional values, cleanup handling of exhaustive lang it

[PATCH 006/125] gccrs: Add 'gcc/rust/Make-lang.in:LIBFORMAT_PARSER'

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge ... to avoid verbatim repetition. gcc/rust/ * Make-lang.in (LIBPROC_MACRO_INTERNAL): New. (RUST_LIBDEPS, crab1$(exeext), rust/libformat_parser.a): Use it. --- gcc/rust/Make-lang.in | 12 1 file changed, 8 insertions(+), 4 deletions(-)

[PATCH 004/125] gccrs: fmt: Start working on format_args!() parser

2024-08-01 Thread Arthur Cohen
This commit adds a base class for parsing the various constructs of a Rust format string, according to the grammar in the reference: https://doc.rust-lang.org/std/fmt/index.html#syntax gcc/rust/ChangeLog: * Make-lang.in: Compile rust-fmt object * ast/rust-fmt.cc: New file.

[PATCH 017/125] gccrs: rust-fmt: Store parsed string in Pieces struct

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-fmt.cc (Pieces::collect): Fix signature to take ownership of the given string. * ast/rust-fmt.h (struct Pieces): Store parsed string in the struct. libgrust/ChangeLog: * libformat_parser/src/lib.rs: Add debug prompt. --- gcc/rust/as

[PATCH 025/125] gccrs: hir: Add ExternalTypeItem node

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * hir/tree/rust-hir-item.h (class ExternalTypeItem): New class. * hir/tree/rust-hir.cc (ExternalTypeItem::as_string): Likewise. * backend/rust-compile-extern.h: Add base for handling HIR::ExternalTypeItem node. * checks/errors/borrowck/r

[PATCH 011/125] gccrs: libformat_parser: Add FFI safe interface

2024-08-01 Thread Arthur Cohen
libgrust/ChangeLog: * libformat_parser/generic_format_parser/src/lib.rs: Add generic library. * libformat_parser/src/lib.rs: Add base for FFI interface. --- .../generic_format_parser/src/lib.rs | 2 +- libgrust/libformat_parser/src/lib.rs | 301

[PATCH 005/125] gccrs: libgrust: Add format_parser library

2024-08-01 Thread Arthur Cohen
Compile libformat_parser and link to it. gcc/rust/ChangeLog: * Make-lang.in: Compile libformat_parser. * ast/rust-fmt.cc: New FFI definitions. * ast/rust-fmt.h: Likewise. * expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Call into libfor

[PATCH 012/125] gccrs: libformat_parser: Start experimenting with cbindgen

2024-08-01 Thread Arthur Cohen
libgrust/ChangeLog: * libformat_parser/cbindgen.toml: New file. * libformat_parser/libformat-parser.h: New file. gcc/rust/ChangeLog: * ast/rust-fmt.h: Add remaining FFI types. --- gcc/rust/ast/rust-fmt.h | 4 +- libgrust/libformat_parser/cbindgen.t

[PATCH 024/125] gccrs: extern-types: Declare external types in name resolver.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * resolve/rust-ast-resolve-implitem.h: Declare external types as new types. --- gcc/rust/resolve/rust-ast-resolve-implitem.h | 19 +++ 1 file changed, 19 insertions(+) diff --git a/gcc/rust/resolve/rust-ast-resolve-implitem.h b/gcc/rust/resolv

[PATCH 014/125] gccrs: libformat_parser: Send boxed values across FFI properly

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-fmt.cc (Pieces::~Pieces): Call libformat_parser's release function in destructor. * ast/rust-fmt.h (struct PieceSlice): Add capacity. (destroy_pieces): New. (struct Pieces): Add destructor. libgrust/ChangeLog: * libfo

[PATCH 027/125] gccrs: Make DefaultResolver visit more of the AST

2024-08-01 Thread Arthur Cohen
From: Owen Avery gcc/rust/ChangeLog: * resolve/rust-default-resolver.cc (DefaultResolver::visit): Visit inner AST nodes of ClosureExprInner, ClosureExprInnerTyped, IfExpr, IfExprConseqElse, MatchExpr, PathInExpression, EnumItemTuple, EnumItemStruct, and En

[PATCH 023/125] gccrs: lang-items: Make lang items enum stronger, rename class, cleanup ns.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * util/rust-lang-item.h (class RustLangItem): Renamed to... (class LangItem): ...this. Rename ItemType enum to Kind * util/rust-lang-item.cc: Rename methods to use new class name. * backend/rust-compile-expr.cc (CompileExpr::visit): Use new lang-

[PATCH 034/125] gccrs: Add error emitting when we can't resolve id expr

2024-08-01 Thread Arthur Cohen
From: jjasmine gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add error emitting --- gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/g

[PATCH 013/125] gccrs: libformat_parser: Update header and remove old interface

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-fmt.cc (Pieces::collect): Use new Pieces API. * ast/rust-fmt.h: Update interface with new FFI bindings. libgrust/ChangeLog: * libformat_parser/src/lib.rs: Add IntoFFI trait. * libformat_parser/libformat-parser.h: Removed. --- gcc/ru

[PATCH 016/125] gccrs: format_args: Parse entire token invocation

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Transform entire invocation token stream into string for the parser. --- gcc/rust/expand/rust-macro-builtins.cc | 40 ++ 1 file changed, 22 insertions(+), 18 deletions(

[PATCH 015/125] gccrs: format_args: Parse format string properly

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Construct string to parser properly. --- gcc/rust/expand/rust-macro-builtins.cc | 19 ++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-mac

[PATCH 019/125] gccrs: format-parser: Add `is_some_and` method for Option

2024-08-01 Thread Arthur Cohen
Workaround for Ubuntu 18.04, since we still use it for the GCC 4.8 CI. 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 simple reimplementation, directly taken from the standard l

[PATCH 043/125] gccrs: Placate clang-format re 'gcc/rust/backend/rust-tree.cc'

2024-08-01 Thread Arthur Cohen
From: Thomas Schwinge Reformat the upstream GCC commit f4a2ae2338962208b8039f154f5912402e94c378 "Change MODE_BITSIZE to MODE_PRECISION for MODE_VECTOR_BOOL" change to 'gcc/rust/backend/rust-tree.cc' to clang-format's liking. gcc/rust/ * backend/rust-tree.cc (c_common_type_for_mod

[PATCH 040/125] gccrs: Unify ASTValidation::visit for ExternalFunctionItem and Function

2024-08-01 Thread Arthur Cohen
From: 0xn4utilus gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add external function validation support. Add ErrorCode::E0130. * parse/rust-parse-impl.h (Parser::parse_function): Parse external functions from `parse_function`.

[PATCH 018/125] gccrs: libformat_parser: Fix Rust warnings.

2024-08-01 Thread Arthur Cohen
libgrust/ChangeLog: * libformat_parser/generic_format_parser/src/lib.rs: Remove unused deprecated attribute and unused import. * libformat_parser/src/lib.rs: Remove unused import. --- libgrust/libformat_parser/generic_format_parser/src/lib.rs | 2 -- libgrust/libformat_par

[PATCH 021/125] gccrs: Fix small FixMe task in rust macro builtins

2024-08-01 Thread Arthur Cohen
From: jjasmine gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc: Change BuiltinMacro in builtin_macro_from_string to tl::optional<> * expand/rust-macro-builtins.h (enum class): Change BuiltinMacro in builtin_macro_from_string to tl::optional<> * resolve

[PATCH 029/125] gccrs: macro-builtins: Add newline generic format_args!() handler

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc (format_args_maker): New function. (try_expand_many_expr): Add comment about reworking function. (MacroBuiltin::format_args_handler): Add newline parameter. * expand/rust-macro-builtins.h: Likewise. --- gcc/rust/e

[PATCH 026/125] gccrs: extern-types: Lower to HIR::ExternalTypeItem properly

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * hir/rust-ast-lower-extern.h: Lower to HIR::ExternalTypeItem nodes. * hir/tree/rust-hir-item.h (class ExternalTypeItem): Create private visibility by default as extern types have no visibility - add a comment about the correctness of this. ---

[PATCH 033/125] gccrs: format-args: Add documentation for future expansion of function

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * expand/rust-macro-builtins.cc (MacroBuiltin::format_args_handler): Add documentation regarding future tasks. --- gcc/rust/expand/rust-macro-builtins.cc | 26 +- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/gcc/rust/ex

[PATCH 032/125] gccrs: lower: Add base for lowering FormatArgs nodes

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * Make-lang.in: Compile the new source file. * ast/rust-ast-collector.cc (TokenCollector::visit): Error out when visiting FormatArgs nodes. * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise. * hir/rust-ast-lower-expr.cc (

[PATCH 031/125] gccrs: format-args: Fix Rust interface and add input parsing.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-ast.cc: Make FormatArgs inherit from AST::Expr * ast/rust-builtin-ast-nodes.h: Improve FormatArg* nodes and helpers. * ast/rust-fmt.cc (Pieces::collect): Fix interface to match FFI function. * ast/rust-fmt.h (collect_pieces): Likewise

[PATCH 035/125] gccrs: Add curly brackets, formatted clang

2024-08-01 Thread Arthur Cohen
From: jjasmine gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add error emitting --- gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/rust/resolve/rust-late-name-resol

[PATCH 038/125] gccrs: Add support for external functions

2024-08-01 Thread Arthur Cohen
From: 0xn4utilus gcc/rust/ChangeLog: * ast/rust-ast.cc (Function::Function): Add `is_external_function` field. (Function::operator=): Likewise. * ast/rust-ast.h: New constructor for ExternalItem. * ast/rust-item.h (class Function): Add `is_external_function`

[PATCH 028/125] gccrs: ast: Add base nodes for FormatArgs

2024-08-01 Thread Arthur Cohen
This commit adds a base for creating AST FormatArgs nodes after expanding invocations of `format_args!()`. These nodes will then be expanded to the proper runtime function calls (to core::fmt::rt) during the AST lowering. gcc/rust/ChangeLog: * ast/rust-builtin-ast-nodes.h: New file.

[PATCH 047/125] gccrs: format-args: Add base for expanding FormatArgs nodes

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * Make-lang.in: Add new object. * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Remove calls to FormatArgsLowering. * expand/rust-expand-format-args.cc: New file. * expand/rust-expand-format-args.h: New file. --- gcc/rust/Make-lan

[PATCH 036/125] gccrs: Ensure TupleStructPattern and TuplePattern have items

2024-08-01 Thread Arthur Cohen
From: Owen Avery Note that instances of both classes which have been moved from will have (items == nullptr). gcc/rust/ChangeLog: * ast/rust-pattern.h (class TupleStructPattern): Assert that items != nullptr. (class TuplePattern): Likewise. (TupleStructPattern::h

[PATCH 030/125] gccrs: parser: Add peek(n) method to parser

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * parse/rust-parse.h: New method. --- gcc/rust/parse/rust-parse.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gcc/rust/parse/rust-parse.h b/gcc/rust/parse/rust-parse.h index 1614d19e4a5..8c8bf96eb8d 100644 --- a/gcc/rust/parse/rust-parse.h +++ b/gcc/rust/parse/

[PATCH 048/125] gccrs: format-args: Start storing string in Rust memory

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-fmt.cc (ffi::RustHamster::to_string): New. (Pieces::collect): Adapt to use new handle API. (Pieces::~Pieces): Likewise. (Pieces::Pieces): Likewise. (Pieces::operator=): Likewise. * ast/rust-fmt.h (struct RustString): Ad

[PATCH 039/125] gccrs: Add get_pattern_kind to Pattern

2024-08-01 Thread Arthur Cohen
From: 0xn4utilus gcc/rust/ChangeLog: * ast/rust-ast.h: Add Kind Enum to Pattern. * ast/rust-macro.h: Add get_pattern_kind(). * ast/rust-path.h: Likewise. * ast/rust-pattern.h: Likewise. Signed-off-by: 0xn4utilus --- gcc/rust/ast/rust-ast.h | 20

[PATCH 037/125] gccrs: Clean BiMap to use tl::optional for lookups

2024-08-01 Thread Arthur Cohen
From: Sourabh Jaiswal gcc/rust/Changelog: * expand/rust-expand-visitor.cc (ExpandVisitor::expand_inner_items): Adjust to use has_value () (ExpandVisitor::expand_inner_stmts): Likewise * expand/rust-macro-builtins.cc (builtin_macro_from_string): Likewise (m

[PATCH 062/125] gccrs: session manager: Init Immutable name resolver.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * rust-session-manager.cc (Session::compile_crate): Create an immutable view of the name resolution context. --- gcc/rust/rust-session-manager.cc | 4 1 file changed, 4 insertions(+) diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-ma

[PATCH 044/125] gccrs: Replace reference to unique pointer with reference

2024-08-01 Thread Arthur Cohen
From: Pierre-Emmanuel Patry Reference to unique pointers are a known anti pattern, only the element shall be taken by reference instead of the whole wrapper. gcc/rust/ChangeLog: * ast/rust-item.h: Change getter function prototype to return a reference directly instead of a refer

[PATCH 049/125] gccrs: format-args: Add basic expansion of unnamed Display::fmt arguments.

2024-08-01 Thread Arthur Cohen
gcc/rust/ChangeLog: * ast/rust-ast-builder.h: Rename AST::AstBuilder -> AST::Builder * ast/rust-ast-builder.cc: Likewise. * expand/rust-derive.cc: Use new AST::Builder name. * expand/rust-derive.h: Likewise. * ast/rust-builtin-ast-nodes.h: Add required gette

<    1   2   3   4   5   6   7   8   9   10   >