[Bug rust/114629] rust-ast-resolve-expr contains bloated code for funny_error

2024-04-08 Thread pierre-emmanuel.patry at embecosm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

Pierre-Emmanuel Patry  changed:

   What|Removed |Added

 CC||pierre-emmanuel.patry@embec
   ||osm.com

--- Comment #2 from Pierre-Emmanuel Patry  ---
I can see the problem with the message, but I don't think we can remove the
behavior as we have to match rustc's behavior. The compiler has to ICE when
meeting this identifier. I suggest changing the message to rustc's one "It
looks like you're trying to break rust; would you like some ICE?" and removing
the "gcc" identifier check.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug rust/114629] rust-ast-resolve-expr contains bloated code for funny_error

2024-04-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

--- Comment #3 from Richard Biener  ---
is that part of the language standard?  I don't think we have to copy rustc
easter eggs - in fact I'd report this as a bug to them.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug rust/114629] rust-ast-resolve-expr contains bloated code for funny_error

2024-04-08 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

Iain Sandoe  changed:

   What|Removed |Added

 CC||iains at gcc dot gnu.org

--- Comment #4 from Iain Sandoe  ---
since humour does not always translate - even between en_GB and en_US in some
cases...

I wonder if the better solution in the case of something that is clearly
intended to be humour (which is subjective as per the comments here) is to
leave the text in the original language (perhaps with surrounding quotation
marks correct for the target language).

That way if the (end user) reading the diagnostic can understand the original
language the joke should stand.  It seems a bit unreasonable to expect
translators to find an equivalent joke in the target language (transliteration
is not likely to work in most cases).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

2024-04-08 Thread pierre-emmanuel . patry
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.

Best regards,
Pierre-Emmanuel

--

Prevent rust language from building when cargo is
missing.

config/ChangeLog:

* acx.m4: Add a macro to check for rust
components.

ChangeLog:

* configure: Regenerate.
* configure.ac: Emit an error message when cargo
is missing.

Signed-off-by: Pierre-Emmanuel Patry 
---
 config/acx.m4 |  11 +
 configure | 117 ++
 configure.ac  |  18 
 3 files changed, 146 insertions(+)

diff --git a/config/acx.m4 b/config/acx.m4
index 7efe98aaf96..3c5fe67342e 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -424,6 +424,17 @@ else
 fi
 ])
 
+# Test for Rust
+# We require cargo and rustc for some parts of the rust compiler.
+AC_DEFUN([ACX_PROG_CARGO],
+[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
+AC_CHECK_TOOL(CARGO, cargo, no)
+if test "x$CARGO" != xno; then
+  have_cargo=yes
+else
+  have_cargo=no
+fi])
+
 # Test for D.
 AC_DEFUN([ACX_PROG_GDC],
 [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
diff --git a/configure b/configure
index 874966fb9f0..46e66e20197 100755
--- a/configure
+++ b/configure
@@ -714,6 +714,7 @@ PGO_BUILD_GEN_CFLAGS
 HAVE_CXX11_FOR_BUILD
 HAVE_CXX11
 do_compare
+CARGO
 GDC
 GNATMAKE
 GNATBIND
@@ -5786,6 +5787,104 @@ else
   have_gdc=no
 fi
 
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cargo", so it can be a program 
name with args.
+set dummy ${ac_tool_prefix}cargo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CARGO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CARGO"; then
+  ac_cv_prog_CARGO="$CARGO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ac_cv_prog_CARGO="${ac_tool_prefix}cargo"
+$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
+break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CARGO=$ac_cv_prog_CARGO
+if test -n "$CARGO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CARGO" >&5
+$as_echo "$CARGO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CARGO"; then
+  ac_ct_CARGO=$CARGO
+  # Extract the first word of "cargo", so it can be a program name with args.
+set dummy cargo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CARGO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CARGO"; then
+  ac_cv_prog_ac_ct_CARGO="$ac_ct_CARGO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ac_cv_prog_ac_ct_CARGO="cargo"
+$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" 
>&5
+break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CARGO=$ac_cv_prog_ac_ct_CARGO
+if test -n "$ac_ct_CARGO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CARGO" >&5
+$as_echo "$ac_ct_CARGO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CARGO" = x; then
+CARGO="no"
+  else
+case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not 
prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" 
>&2;}
+ac_tool_warned=yes ;;
+esac
+CARGO=$ac_ct_CARGO
+  fi
+else
+  CARGO="$ac_cv_prog_CARGO"
+fi
+
+if test "x$CARGO" != xno; then
+  have_cargo=yes
+else
+  have_cargo=no
+fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to compare bootstrapped 
objects" >&5
 $as_echo_n "checking how to compare bootstrapped objects... " >&6; }
 if ${gcc_cv_prog_cmp_skip+:} false; then :
@@ -9099,6 +9198,24 @@ $as_echo "$as_me: WARNING: --enable-host-shared required 
to build $language" >&2
   ;;
 esac
 
+# Disable Rust if cargo is unavailable.
+case ${add_this_lang}:${language}:${have_cargo} in
+  yes:rust:no)
+# Specifically requested language; tell them.
+as_fn_error $? "cargo is required to build $language" "$LINENO" 5
+;;
+  all:rust:no)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cargo is 
required to build $language" >&

Re: [PATCH] rust: Add rust.install-dvi and rust.install-html rules

2024-04-08 Thread Thomas Schwinge
Hi Christophe!

On 2024-04-04T16:27:19+, Christophe Lyon  wrote:
> rust has the (empty) rust.dvi and rust.html rules, but lacks the
> (empty) rust.install-dvi and rust.install-html ones.

Thanks, looks good to me.


Grüße
 Thomas


> 2024-04-04  Christophe Lyon  
>
>   gcc/rust/
>   * Make-lang.in (rust.install-dvi, rust.install-html): New rules.
> ---
>  gcc/rust/Make-lang.in | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in
> index 4d646018792..4d73412739d 100644
> --- a/gcc/rust/Make-lang.in
> +++ b/gcc/rust/Make-lang.in
> @@ -342,6 +342,8 @@ selftest-rust-valgrind: $(RUST_SELFTEST_DEPS)
>  # should have dependencies on info files that should be installed.
>  rust.install-info:
>  
> +rust.install-dvi:
> +rust.install-html:
>  rust.install-pdf:
>  
>  # Install man pages for the front end. This target should ignore errors.


[Bug rust/114629] rust-ast-resolve-expr contains bloated code for funny_error

2024-04-08 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

--- Comment #5 from Andrew Pinski  ---
(In reply to Pierre-Emmanuel Patry from comment #2)
> I can see the problem with the message, but I don't think we can remove the
> behavior as we have to match rustc's behavior. The compiler has to ICE when
> meeting this identifier. I suggest changing the message to rustc's one "It
> looks like you're trying to break rust; would you like some ICE?" and
> removing the "gcc" identifier check.

Really this sounds like a bad idea to copy 100% of what rustc does. Instead we
should follow the rust language specification (hopefully that actually exists).

While you are at it, it would be useful to add a link to the rust langauge
specification (like there is for almost all other languages [I see objective-C
is not listed]) to https://gcc.gnu.org/readings.html .

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug rust/114629] rust-ast-resolve-expr contains bloated code for funny_error

2024-04-08 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114629

--- Comment #6 from Andrew Pinski  ---
(In reply to Andrew Pinski from comment #5)
> While you are at it, it would be useful to add a link to the rust langauge
> specification (like there is for almost all other languages [I see
> objective-C is not listed]) to https://gcc.gnu.org/readings.html .

Also it would be useful to update https://gcc.gnu.org/frontends.html too.

-- 
You are receiving this mail because:
You are on the CC list for the bug.