beest.org/buildbot/#builders/58/builds/1710
Buildbot URL: https://builder.wildebeest.org/buildbot/
Worker for this Build: debian-arm64
Build Reason:
Blamelist: Arthur Cohen
BUILD FAILED: failed compile (failure)
And the same for all other builders.
... and me: <https://github.com/Rus
Hi Thomas, thanks a lot!
On 3/2/22 13:36, Thomas Schwinge wrote:
Hi Arthur!
On 2022-03-02T13:05:30+0100, Arthur Cohen wrote:
On 3/2/22 11:05, Thomas Schwinge wrote:
On 2022-03-02T10:44:38+0100, I wrote:
On 2022-03-02T09:03:48+, Philip Herron wrote:
Yet again the build bots are out
.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/58/builds/1716
Buildbot URL: https://builder.wildebeest.org/buildbot/
Worker for this Build: debian-arm64
Build Reason:
Blamelist: Arthur Cohen , bors[bot]
<26634292+bors[bot]@users.noreply.github.com>
failure on builder gccrust-debian-arm64 while
building gccrust.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/58/builds/1720
Buildbot URL: https://builder.wildebeest.org/buildbot/
Worker for this Build: debian-arm64
Build Reason:
Blamelist: Arthur Cohen
On 3/7/22 15:23, Mark Wielaard wrote:
Hi,
On Mon, 2022-03-07 at 10:57 +0100, Arthur Cohen wrote:
This is due to the lexer's fix not being in yet. I think it should
be
resolved later as soon as bors merges the fix, but I'll check just in
case.
According to:
https://builder.wild
Hi Mark,
On 3/7/22 15:42, Mark Wielaard wrote:
Hi Arthur,
On Mon, 2022-03-07 at 15:32 +0100, Arthur Cohen wrote:
I suspect this might be due to bors, our merging bot on github, and me
asking it to merge multiple pull requests this morning (around 4 or 5).
Not really sure.
But the bug is
Hi everyone,
Sorry for the failure! Here's the explanation of why it happened:
I created a pull request for a64a5cf77c9685aa623ec69168e7f50324a102b9:
```
commit a64a5cf77c9685aa623ec69168e7f50324a102b9
(origin/invalid-macro-match-fix, invalid-macro-match-fix)
Author: Arthur Cohen
This is the fixed version of our previous patch set for gccrs - We've adressed
the comments raised in our previous emails.
This patch set does not contain any work that was not previously included, such
as closure support, the constant evaluator port, or the better implementation
of target hooks b
From: Philip Herron
This testsuite is heavily inspired from the lto testsuite which uses a
pattern that each file is compiled to an object file and finally linked
together. Since rust does not have headers/prototypes we rely on the
ordering here so that all files numbered greater than zero get co
From: Philip Herron
This testsuite is specifically about testcases which scan the asm debug
info for results.
Co-authored-by: Tom Tromey
---
gcc/testsuite/rust/debug/chartype.rs | 10 ++
.../rust/debug/custom_link_section.rs | 13
gcc/testsuite/rust/debug/debug.ex
From: Tom Tromey
The Rust 'char' type should use the DWARF DW_ATE_UTF encoding.
---
gcc/dwarf2out.cc | 23 ++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index e3920c898f5..a8bccbabca4 100644
--- a/gcc/dwarf2out.cc
+++ b/
From: Philip Herron
This copy's over code from other front-end testsuites to enable testing
for the rust front-end specifically.
Co-authored-by: Marc Poulhiès
Co-authored-by: Thomas Schwinge
---
gcc/testsuite/lib/rust-dg.exp | 49 +
gcc/testsuite/lib/rust.exp| 186 +++
From: Philip Herron
This allows us to invoke the rust testsuite.
ChangeLog:
* Makefile.def: Add Rust language.
* Makefile.in: Regenerate via autogen.
---
Makefile.def | 1 +
Makefile.in | 8
2 files changed, 9 insertions(+)
diff --git a/Makefile.def b/Makefile.def
ind
From: The Other
This patch contains the basic framework of our AST visitors, as well as
one aimed at pretty-printing and exporting these AST nodes
Co-authored-by: Philip Herron
Co-authored-by: Arthur Cohen
---
gcc/rust/ast/rust-ast-dump.cc| 1089 ++
gcc/rust
From: The Other
The lexer is refered to as a ManagedTokenSource within the parser, this
lexer does not currently support unicode but serves as a starting point
to do so.
Co-authored-by: Philip Herron
Co-authored-by: Arthur Cohen
Co-authored-by: Mark Wielaard
---
gcc/rust/lex/rust
From: The Other
This adds the proper definitions of our AST Item nodes.
Co-authored-by: Philip Herron
---
gcc/rust/ast/rust-item.h | 4382 ++
1 file changed, 4382 insertions(+)
create mode 100644 gcc/rust/ast/rust-item.h
diff --git a/gcc/rust/ast/rust-item
From: Arthur Cohen
Add an Optional class to improve error handling
---
gcc/rust/util/rust-optional-test.cc | 110 +++
gcc/rust/util/rust-optional.h | 278
2 files changed, 388 insertions(+)
create mode 100644 gcc/rust/util/rust-optional-test.cc
From: Philip Herron
This patch implements the classes mentionned in the previous HIR patch,
as well as a set of visitor frameworks used in handling that HIR.
---
gcc/rust/hir/tree/rust-hir-full-decls.h | 232 +
gcc/rust/hir/tree/rust-hir-full-test.cc | 5292 +++
gcc/rust/hir
From: Philip Herron
This is a simple helper over an enum of possible ABI options in Rust.
---
gcc/rust/util/rust-abi.cc | 72 +++
gcc/rust/util/rust-abi.h | 45
2 files changed, 117 insertions(+)
create mode 100644 gcc/rust/util/rust
From: Arthur Cohen
Used for V0 symbol mangling scheme which.
---
gcc/rust/util/rust-base62.cc | 46
gcc/rust/util/rust-base62.h | 34 ++
2 files changed, 80 insertions(+)
create mode 100644 gcc/rust/util/rust-base62.cc
create mode
From: Philip Herron
This is a wrapper for make_unique we can likely get rid of this as there
are other implementations available or simply keep using the unique_ptr
constructor.
---
gcc/rust/util/rust-make-unique.h | 35
1 file changed, 35 insertions(+)
create m
From: Arthur Cohen
Similarly to the unsafe checker, constant evaluation can only be performed
in a few contexts and include restrictions on the Rust language. Should
the user fail to uphold those conditions, errors will be reported and the
compilation pipeline interrupted.
These contexts are as
From: Philip Herron
Extern crates statements to tell the front-end to look for another library.
The mechanism here is heavily inspired from gccgo, so when we compile a
library for example we invoke:
gccrs -g -O2 -frust-crate=mylib -c src/lib.rs -o src/mylib.o
All going well this object file w
From: Arthur Cohen
The attribute checker is responsible for checking the validity of various
attributes including built-in ones. It is currently unfinished and will
receive some modifications, as well as become the host of some existing
code in the compiler which needs to be refactored. One of
From: Philip Herron
These are various helper classes used in the compiler pipeline.
---
gcc/rust/util/rust-canonical-path.h | 195 +
gcc/rust/util/rust-common.h | 53 ++
gcc/rust/util/rust-hir-map.cc | 980 ++
gcc/rust/util/rust-hir-map.h
From: Philip Herron
This hash was ported from the go runime as we needed a hash for the legacy
symbol mangling system. Which means all symbols in Rust contain a hash of
some metadata for uniqueness on generic functions.
---
gcc/rust/util/fnv-hash.h | 95
From: Arthur Cohen
This pass is responsible for resolving the privacy of items and verifying
that access to these items is performed within the limits of that privacy.
By default, items in Rust are private and only public to the current
module and its submodules. However, the user can annotate
From: Philip Herron
This patch contains the entry point and utilities used for the lowering
of HIR nodes to `tree`s. It also contains a constant evaluator, ported
over from the C++ frontend.
Co-authored-by: David Faust
Co-authored-by: Faisal Abbas <90.abbasfai...@gmail.com>
---
gcc/rust/backen
From: Arthur Cohen
The UnsafeChecker visitor verifies that unsafe actions are only performed
in unsafe contexts. Otherwise, an error should be reported to the user and
the compilation pipeline should be halted. These contexts, which include
unsafe blocks or unsafe functions, are allowed to
From: Philip Herron
The wrappers over linemap and location will eventually disappear here but
served as a useful starting point for us. We have wrappers over the
diagnostics system which we might be able to get rid of as well.
---
gcc/rust/rust-diagnostics.cc | 244 ++
From: Philip Herron
This is the Makefile for our front-end.
---
gcc/rust/Make-lang.in | 399 ++
1 file changed, 399 insertions(+)
create mode 100644 gcc/rust/Make-lang.in
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
new file mode 100644
ind
From: Philip Herron
This specifies the extensions of the Rust language.
---
gcc/rust/lang-specs.h | 26 ++
1 file changed, 26 insertions(+)
create mode 100644 gcc/rust/lang-specs.h
diff --git a/gcc/rust/lang-specs.h b/gcc/rust/lang-specs.h
new file mode 100644
index 000
From: Philip Herron
We have some rust specific langugage options note -fwrapv is enabled by
default in the code. We are trying to respect options such as
-Wunused-result which we get by porting over c++ no-discard for rust's
must-use attribute, so we have enabled these by default directly here.
-
From: Philip Herron
Our compiler driver is pretty simple so far, the key piece to enforce is
that a compilation unit in Rust is the whole crate so the process for
compiling rust means pointing the compiler at the main entry point such as
src/lib.rs or src/main.rs where the expansion pass takes ov
From: Philip Herron
Contains abstractions over Rust's types, used when performing the
HIR's type-resolution.
---
gcc/rust/typecheck/rust-tyty.cc | 2885 +++
gcc/rust/typecheck/rust-tyty.h | 2533 +++
2 files changed, 5418 insertions(+)
create
From: Thomas Young
In order to find dead code we use a depth first search and keep liveness
variables, after type resolution. In this case, if a function is unused
and it calls another function the 2nd function is now unused since the
caller is not used etc. The algorithm is a depth first search.
From: Philip Herron
This was a copy paste from gccgo front-end, we do not use any of the
target_libs yet but we will need these when we support the libpanic crate.
---
gcc/rust/config-lang.in | 34 ++
1 file changed, 34 insertions(+)
create mode 100644 gcc/rust/c
From: Philip Herron
This is a simple walk_tree which acts on the monomorphized code. By walking
the compiled translation unit of functions.
---
gcc/rust/checks/lints/rust-lint-unused-var.cc | 98 +++
gcc/rust/checks/lints/rust-lint-unused-var.h | 36 +++
2 files changed, 134
From: Philip Herron
This is a wrapper to get out of C land in the rust-lang.cc and into our
class hierarchy for the rust front-end. We expect that the front-end only
support one source file input as the expansion pass will attempt to resolve
that relative pass and parse accordingly.
The main mis
From: Philip Herron
We still need to write out documentation section but these README's will
help in the mean time.
---
gcc/rust/CONTRIBUTING.md | 130 +++
gcc/rust/README.md | 264 +++
gcc/rust/logo.png| Bin 0 -> 70864 bytes
3 f
On 10/26/22 23:04, David Malcolm wrote:
%{On Wed, 2022-10-26 at 10:18 +0200, arthur.co...@embecosm.com wrote:
From: Philip Herron
Extern crates statements to tell the front-end to look for another
library.
The mechanism here is heavily inspired from gccgo, so when we compile
a
library for exam
tches.
Sorry about the annoyance.
(...snip...)
Kindly,
--
Arthur Cohen
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 70
Hi David,
On 10/26/22 23:15, David Malcolm wrote:
On Wed, 2022-10-26 at 10:17 +0200, arthur.co...@embecosm.com wrote:
This is the fixed version of our previous patch set for gccrs - We've
adressed
the comments raised in our previous emails.
[...snip...]
(Caveat: I'm not a global reviewer)
S
On 10/28/22 15:06, David Malcolm wrote:
On Fri, 2022-10-28 at 13:48 +0200, Arthur Cohen wrote:
Hi David,
On 10/26/22 23:15, David Malcolm wrote:
On Wed, 2022-10-26 at 10:17 +0200, arthur.co...@embecosm.com wrote:
This is the fixed version of our previous patch set for gccrs -
We
t front-end v3 42/46] gccrs: Add lang-spec.h
[PATCH Rust front-end v3 43/46] gccrs: Add lang.opt
[PATCH Rust front-end v3 44/46] gccrs: Add compiler driver
[PATCH Rust front-end v3 45/46] gccrs: Compiler proper interface
[PATCH Rust front-end v3 46/46] gccrs: Add README, CONTRIBUTING and
--
Arth
On 11/9/22 14:53, Richard Biener wrote:
On Wed, Oct 26, 2022 at 10:37 AM wrote:
From: Philip Herron
This patch contains the entry point and utilities used for the lowering
of HIR nodes to `tree`s. It also contains a constant evaluator, ported
over from the C++ frontend.
Co-authored-by: Da
Hi Richard,
(...)
+
+ unsigned HOST_WIDE_INT ltype_length
+= wi::ext (wi::to_offset (TYPE_MAX_VALUE (ltype_domain))
+- wi::to_offset (TYPE_MIN_VALUE (ltype_domain)) + 1,
TYPE_MIN_VALUE is not checked to be constant, also the correct
check would be to use TREE_CODE (..) ==
Hi everyone, We're trying a new slot for the monthly community call which
should hopefully allow even more people to join. Feel free to answer with a
better time and we'll try to work towards that, or bring back the second
monthly call for US timezones. All the best
December community call
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20221212T10Z
DTEND:20221212T11Z
DTSTAMP:20221202T111250Z
ORGANIZER;CN=gccrs:mailto:7060a0923ffebd3cb52b1afef35a28ff7b64f05962c9af84c
23b1847f1f5f...@group.ca
This patchset contains the fixed version of our most recent patchset. We
have fixed most of the issues noted in the previous round of reviews, and are
keeping some for later as they would otherwise create too many conflicts with
our updated development branch.
Similarly to the previous round of pa
From: Tom Tromey
The Rust 'char' type should use the DWARF DW_ATE_UTF encoding.
Co-authored-by: Mark Wielaard
Co-authored-by: Marc Poulhiès
---
gcc/dwarf2out.cc | 19 ++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index e3
From: Philip Herron
This copies over code from other front-end testsuites to enable testing
for the rust front-end specifically.
Co-authored-by: Marc Poulhiès
Co-authored-by: Thomas Schwinge
---
gcc/testsuite/lib/rust-dg.exp | 49 +
gcc/testsuite/lib/rust.exp| 186 +++
From: Philip Herron
This testsuite is heavily inspired from the LTO testsuite that uses a
pattern where each file is compiled to an object file and finally linked
together. Since Rust does not have headers/prototypes, we rely on the
ordering here so that all files numbered greater than zero get c
From: Philip Herron
This allows us to invoke the rust testsuite.
ChangeLog:
* Makefile.def: Add Rust language.
* Makefile.in: Regenerate via autogen.
---
Makefile.def | 1 +
Makefile.in | 8
2 files changed, 9 insertions(+)
diff --git a/Makefile.def b/Makefile.def
ind
From: Philip Herron
This testsuite is specifically about testcases which scan the asm debug
info for results.
Co-authored-by: Tom Tromey
Co-authored-by: Mark Wielaard
Co-authored-by: Marc Poulhiès
---
gcc/testsuite/rust/debug/chartype.rs | 10 ++
.../rust/debug/custom_link_secti
From: The Other
The lexer is referred to as a ManagedTokenSource within the parser. This
lexer does not currently support Unicode, but serves as a starting point
to do so.
Co-authored-by: Philip Herron
Co-authored-by: Arthur Cohen
Co-authored-by: Mark Wielaard
---
gcc/rust/lex/rust
From: Philip Herron
This hash was ported from the Go runtime, as we needed a hash for the legacy
symbol mangling system. All symbols in Rust contain a hash of some
metadata for uniqueness on generic functions.
---
gcc/rust/util/fnv-hash.h | 95
1 file cha
From: The Other
This patch contains the basic framework of our AST visitors, as well as
one aimed at pretty-printing and exporting these AST nodes.
Co-authored-by: Philip Herron
Co-authored-by: Arthur Cohen
---
gcc/rust/ast/rust-ast-dump.cc| 1089 ++
gcc/rust
From: The Other
This adds the proper definitions of our AST Item nodes.
Co-authored-by: Philip Herron
---
gcc/rust/ast/rust-item.h | 4382 ++
1 file changed, 4382 insertions(+)
create mode 100644 gcc/rust/ast/rust-item.h
diff --git a/gcc/rust/ast/rust-item
From: Philip Herron
This patch implements the classes mentioned in the previous HIR patch,
as well as a set of visitor frameworks used in handling that HIR.
---
gcc/rust/hir/tree/rust-hir-full-decls.h | 232 +
gcc/rust/hir/tree/rust-hir-full-test.cc | 5292 +++
gcc/rust/hir/
From: Arthur Cohen
This adds an Optional class to improve error handling.
---
gcc/rust/util/rust-optional-test.cc | 110 +++
gcc/rust/util/rust-optional.h | 278
2 files changed, 388 insertions(+)
create mode 100644 gcc/rust/util/rust-optional-test.cc
From: Arthur Cohen
Used for V0 symbol mangling scheme which is still in development.
---
gcc/rust/util/rust-base62.cc | 46
gcc/rust/util/rust-base62.h | 34 ++
2 files changed, 80 insertions(+)
create mode 100644 gcc/rust/util/rust
From: Arthur Cohen
The attribute checker is responsible for checking the validity of various
attributes including built-in ones. It is currently unfinished and will
receive some modifications, as well as become the host of some existing
code in the compiler which needs to be refactored. One of
From: Thomas Young
In order to find dead code we use a depth first search and keep liveness
variables, after type resolution. In this case, if a function is unused
and it calls another function the 2nd function is now unused since the
caller is not used etc. The algorithm is a depth first search.
From: Arthur Cohen
The UnsafeChecker visitor verifies that unsafe actions are only performed
in unsafe contexts. Otherwise, an error should be reported to the user and
the compilation pipeline should be halted. These contexts, which include
unsafe blocks or unsafe functions, are allowed to
From: Philip Herron
These are various helper classes used in the compiler pipeline.
---
gcc/rust/util/rust-canonical-path.h | 195 +
gcc/rust/util/rust-common.h | 53 ++
gcc/rust/util/rust-hir-map.cc | 980 ++
gcc/rust/util/rust-hir-map.h
From: Arthur Cohen
Similarly to the unsafe checker, constant evaluation can only be performed
in a few contexts and include restrictions on the Rust language. Should
the user fail to uphold those conditions, errors will be reported and the
compilation pipeline interrupted.
These contexts are as
From: Philip Herron
Contains abstractions over Rust's types, used when performing the
HIR's type-resolution.
---
gcc/rust/typecheck/rust-tyty.cc | 2885 +++
gcc/rust/typecheck/rust-tyty.h | 2533 +++
2 files changed, 5418 insertions(+)
create
From: Philip Herron
This is a wrapper for make_unique. We can likely get rid of this, as there
are other implementations available, or simply keep using the unique_ptr
constructor.
---
gcc/rust/util/rust-make-unique.h | 35
1 file changed, 35 insertions(+)
creat
From: Philip Herron
This is a simple helper over an enum of possible ABI options in Rust.
---
gcc/rust/util/rust-abi.cc | 72 +++
gcc/rust/util/rust-abi.h | 45
2 files changed, 117 insertions(+)
create mode 100644 gcc/rust/util/rust
From: Philip Herron
This is a simple walk_tree which acts on the monomorphized code by walking
the compiled translation unit of functions.
---
gcc/rust/checks/lints/rust-lint-unused-var.cc | 98 +++
gcc/rust/checks/lints/rust-lint-unused-var.h | 36 +++
2 files changed, 134
From: Philip Herron
Extern crates statements to tell the front-end to look for another library.
The mechanism here is heavily inspired from gccgo, so when we compile a
library for example we invoke:
gccrs -g -O2 -frust-crate=mylib -c src/lib.rs -o src/mylib.o
All going well this object file w
From: Philip Herron
This is the Makefile for our front-end.
---
gcc/rust/Make-lang.in | 402 ++
1 file changed, 402 insertions(+)
create mode 100644 gcc/rust/Make-lang.in
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
new file mode 100644
ind
From: Philip Herron
This specifies the extensions of the Rust language.
---
gcc/rust/lang-specs.h | 26 ++
1 file changed, 26 insertions(+)
create mode 100644 gcc/rust/lang-specs.h
diff --git a/gcc/rust/lang-specs.h b/gcc/rust/lang-specs.h
new file mode 100644
index 000
From: Philip Herron
We have some Rust-specific language options. Note that -fwrapv is
enabled by default in the code. We are trying to respect options such as
-Wunused-result which we get by porting over C++'s no-discard for Rust's
must-use attribute, so we have enabled these by default directly
From: Arthur Cohen
This pass is responsible for resolving the privacy of items and verifying
that access to these items is performed within the limits of that privacy.
By default, items in Rust are private and only public to the current
module and its submodules. However, the user can annotate
From: Philip Herron
This was a copy/paste from gccgo front-end. We do not use any of the
target_libs yet, but we will need these when we support the libpanic crate.
---
gcc/rust/config-lang.in | 34 ++
1 file changed, 34 insertions(+)
create mode 100644 gcc/rust/
From: Philip Herron
This patch contains the entry point and utilities used for the lowering
of HIR nodes to `tree`s. It also contains a constant evaluator, ported
over from the C++ frontend.
Co-authored-by: David Faust
Co-authored-by: Faisal Abbas <90.abbasfai...@gmail.com>
---
gcc/rust/backen
From: Philip Herron
The wrappers over linemap and location will eventually disappear here but
served as a useful starting point for us. We have wrappers over the
diagnostics system which we might be able to get rid of as well.
---
gcc/rust/rust-diagnostics.cc | 244 ++
From: Philip Herron
This is a wrapper to get out of C land in the rust-lang.cc and into our
class hierarchy for the rust front-end. We expect that the front-end only
support one source file input as the expansion pass will attempt to resolve
that relative pass and parse accordingly.
The main mis
From: Philip Herron
Our compiler driver is fairly simple so far. The key piece to enforce is
that a compilation unit in Rust is the whole crate, so the process for
compiling Rust means pointing the compiler at the main entry point such as
src/lib.rs or src/main.rs where the expansion pass takes o
From: Philip Herron
We still need to write out a documentation section, but these READMEs will
help in the meantime.
---
gcc/rust/CONTRIBUTING.md | 130 +++
gcc/rust/README.md | 264 +++
gcc/rust/logo.png| Bin 0 -> 70864 bytes
3
o need the core
library, which again, we cannot compile yet in its 1.49 version.
This is very much an extremely experimental compiler and will still get
a lot of changes in the coming weeks and months up until the release.
Adrian
--
Arthur Cohen
Toolchain Engineer
Embecosm GmbH
Gesch
From: Arthur Cohen
Changelog:
* MAINTAINERS: Add Arthur Cohen as Rust front-end maintainer.
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 55c5ef95806..d2eea049667 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -165,6 +165,7 @@ D front
Hi there :) Nice to meet you!
This mailing list is focused on the development of gccrs, an alternative
Rust compiler (https://github.com/rust-GCC/gccrs)
We don't really focus on web front-end development nor can we compile
your project yet :D
All the best,
Arthur
OpenPGP_0x1B3465B044AD9C
-execution-test-cases.patch
Patches 08 to 46 contain 'gcc/rust/' specific changes which will be hard
to review for someone not familiar with the codebase. These changes include
various transformations on our HIR, or checks specific to the Rust programming
language.
--
Arthur Cohen
Too
ented with :)
We plan on removing that flag as soon as possible, but in the meantime,
we think it will help not creating divide within the Rust ecosystem, as
well as not waste Rust crate maintainers' time.
Thanks again,
Arthur
On 12/13/22 14:26, Arthur Cohen wrote:
Hi everyone,
I have
Hi Martin,
On 12/13/22 14:30, Martin Liška wrote:
On 12/13/22 14:26, Arthur Cohen wrote:
Thank you, and congratulations, to all the contributors.
We thank you!! Congratulations.
Thank you :)
I have one question: do you have a list of supported architectures Rust FE
can support right now
our upstream dev branch, so
in the meantime feel free to apply your patch. When I'll get to updating
master, I'm expecting these kinds of tiny conflicts and we'll deal with
them.
Thanks a lot for working on this and sorry that my tardiness in updating
has caused a duplication of eff
Hi Jakub,
On 12/15/22 13:23, Jakub Jelinek wrote:
Hi!
This patch allows magic comments also for Rust and Modula-2
for effective target tests etc. and fixes up the Assembly entry
- it is a glob, so /* Assembly can match /whatever Assembly and
not just /* Assembly.
Tested on x86_64-linux with
ma
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::compile_crate): Allow the dump of
prettified AST
(Session::dump_ast_pretty): New
* rust-session-manager.h: Add new output file for pretty AST dump
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/rust/ru
From: Philip Herron
We simply hit a gcc_unreachable() on double borrows but it seems reasonable
to just desugar the AST into a borrow of a borrow to foo. Instead of a
borrow expression with a flag to be respected.
Fixes #1506
gcc/rust/ChangeLog:
* hir/rust-ast-lower-expr.h: Lower doubl
gcc/rust/ChangeLog:
* backend/rust-builtins.h: Refactor builtin context class and add
overflow builtins.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/rust/backend/rust-builtins.h | 51 ++--
1 file changed, 36 insertions(+), 15 deletions
..attribute. We cannot yet handle this attribute, but we should not reject it
either
gcc/rust/ChangeLog:
* util/rust-attributes.cc: Add `rustc_inherit_overflow_checks` to list
of builtin attributes.
gcc/testsuite/ChangeLog:
* rust/compile/rustc_attr1.rs: New test.
Test
gcc/rust/ChangeLog:
* backend/rust-compile-expr.cc (CompileExpr::visit): Insert overflow
checks logic.
(CompileExpr::array_copied_expr): Insert overflow checks logic.
* backend/rust-compile-item.cc (CompileItem::visit): Insert overflow
checks logic.
gcc/rust/ChangeLog:
* ast/rust-ast-dump.h: Add shorthand `AST::Dump::debug` function to
dump an AST node on `stderr`.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/rust/ast/rust-ast-dump.h | 16
1 file changed, 16 insertions(+)
diff --git a/gcc/ru
gcc/rust/ChangeLog:
* expand/rust-macro-expand.cc (parse_many): Return early from parsing
loop if we encounter an error, and emit that error in the meantime.
Co-authored-by: philberty
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/rust/expand/rust-macro-expand.cc
gcc/rust/ChangeLog:
* ast/rust-ast.h: Add assertions and accessors for fragment nodes.
* expand/rust-attribute-visitor.cc (AttrVisitor::visit): Fix expansion
context typo when visiting `InherentImpl` items.
(AttrVisitor::maybe_expand_expr): Use new Fragment accessor
gcc/rust/ChangeLog:
* ast/rust-ast.h: Improve assertions within ASTFragment API.
Co-authored-by: philberty
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/rust/ast/rust-ast.h | 47 ++---
1 file changed, 39 insertions(+), 8 deletions(-)
From: Philip Herron
In order to compile a block expression constant, the simplest way for us
was to reuse what code we have and to generate an artifical function which
does not get added to the translation unit. The constant then becomes
a CALL_EXPR to this artifical function which we can pass to
1 - 100 of 1405 matches
Mail list logo