Package: emacs;
Reported by: Left Right <olegsivokon <at> gmail.com>
Date: Fri, 15 Sep 2023 20:13:01 UTC
Severity: normal
View this message in rfc822 format
From: Stephen Leake <stephen_leake <at> stephe-leake.org> To: Left Right <olegsivokon <at> gmail.com> Cc: 66017 <at> debbugs.gnu.org Subject: bug#66017: Cannot install Ada mode Date: Thu, 28 Sep 2023 10:25:25 -0700
Left Right <olegsivokon <at> gmail.com> writes: >> Run "alr toolchain", select the internal Ada compiler. > > Only the external compiler had ever been installed. If I run (I never > ran this before): > > ❯ alr toolchain > CRATE VERSION STATUS NOTES > gnat_external 13.2.1 Default Detected at /usr/bin/gnat > > This is what I get. > > Here's what I did afterwards: > > 1. Installed "gnat_native". > 2. Ran `alr toolchain --select` and interactively selected a version > of "gnat_native" and "gprbuild" so that it looks like this: > > ❯ alr toolchain > CRATE VERSION STATUS NOTES > gprbuild 22.0.1 Default > gnat_native 13.1.0 Default > gnat_external 13.2.1 Available Detected at /usr/bin/gnat Ok. Apparently the version of gnat in alr has been updated since my last release. I've updated my Alire index, and have now reproduced this error. If the --select list has gnat 12, selecting that would be the simplest workaround. You can change it back to external or internal 13 after finishing ada-mode install. > Afterwards, I re-ran build.sh, and I get the same (?) error: > > wisitoken-followed_by.adb:222:07: warning: "Generate_Data" is not > modified, could be declared constant [-gnatwk] > gnatcoll-projects.adb:38:09: warning: unit "Ada.Unchecked_Conversion" > is not referenced [-gnatwu] As Simon pointed out, if the compilation options allowed ignoring warnings, this would not be a problem. I'll do that in the next release. One workaround is to edit the release options in your alire workspace for ada-mode: edit ~/.emacs.d/elpa/ada-mode-8.0.5/emacs_ada_mode_8.0.5_ecfdcfb4/alire/cache/dependencies/stephes_ada_library_3.7.2_2b6a88f9/build/standard_common_alire.gpr (note that is a _very_ long file name!) delete "e" from Common_Switches; it's currently in "-gnatwaBCeJL". Full patch for that file attached below. rerun build.sh That worked for me. Another workaround is to edit the code to eliminate the warning; see the patches below. This will be in the next release. > And if I re-run the failed command: > > ❯ gprbuild -s "-j0" "-p" "-P" > "/home/olegs/.emacs.d/elpa/ada-mode-8.0.5/emacs_ada_mode_8.0.5_ecfdcfb4/alire/cache/dependencies/wisitoken_4.1.0_f9cd282e/build/wisitoken_alire.gpr" > wisitoken_alire.gpr:8:06: imported project file > "standard_common_alire" not found > wisitoken_alire.gpr:28:43: unknown package or project "Standard_Common_Alire" > wisitoken_alire.gpr:28:43: wrong expression kind for attribute > "default_switches" > wisitoken_alire.gpr:28:84: unknown package or project "Standard_Common_Alire" > wisitoken_alire.gpr:31:43: unknown package or project "Standard_Common_Alire" > wisitoken_alire.gpr:31:43: wrong expression kind for attribute > "default_switches" > wisitoken_alire.gpr:31:82: unknown package or project "Standard_Common_Alire" > wisitoken_alire.gpr:35:41: unknown package or project "Standard_Common_Alire" > wisitoken_config.gpr:3:06: imported project file > "stephes_ada_library.gpr" not found > So, it looks like maybe the version I selected through Alire is > ignored? This fails because it doesn't have the environment variables defined by alire to point to the toolchain and dependencies. You can use "alr exec" to try this, but I've not had much success with that. > Should I perhaps uninstall distribution-installed Ada-related packages > and re-try with only Alire-installed ones? No need to uninstall anything. -- -- Stephe diff --git a/build/standard_common_alire.gpr b/build/standard_common_alire.gpr index daf13a3e..c9b64f7c 100644 --- a/build/standard_common_alire.gpr +++ b/build/standard_common_alire.gpr @@ -7,7 +7,7 @@ -- [build-switches] in alire.toml. That is harder to maintain than -- this file. -- --- Copyright (C) 2018 - 2022 Free Software Foundation, Inc. +-- Copyright (C) 2018 - 2023 Free Software Foundation, Inc. -- -- This program is free software; you can redistribute it and/or -- modify it under terms of the GNU General Public License as @@ -48,11 +48,11 @@ project Standard_Common_Alire is "-g", "-gnatfqQ", -- f = all error messages, qQ = process semantics, generate .ali if syntax errors "-gnatw.d", -- warnings about tags - "-gnatwaBCeJL" + "-gnatwaBCJL" -- wa = most warnings -- wB = no warn on bad fixed values -- wC = no warn on conditionals - -- we = error on warning + -- we = error on warning; only in debug, so released code still compiles with newer gnat -- wJ = no warn on obsolescent (including () for array indices!) -- wL = no warn on elaboration ); @@ -64,7 +64,7 @@ project Standard_Common_Alire is "-O0", -- we don't use -Og because that causes gdb to report incorrect results in some cases in Ada. "-gnatVa", -- validity checks "-gnateE", -- extra info in exceptions - "-gnatwP", -- no warn on Inline + "-gnatweP", -- error on warn, no warn on Inline "-gnata" -- assertions, pre/post-conditions ); diff --git a/wisitoken-followed_by.adb b/wisitoken-followed_by.adb index 04c9aed5..098b262f 100644 --- a/wisitoken-followed_by.adb +++ b/wisitoken-followed_by.adb @@ -30,7 +30,7 @@ -- expand : C2: simple_expression : 'new' subtype_indication + primary ; -- that's the derivation we are looking for. --- Copyright (C) 2020, 2022 Stephen Leake All Rights Reserved. +-- Copyright (C) 2020, 2022, 2023 Stephen Leake All Rights Reserved. -- -- This library is free software; you can redistribute it and/or modify it -- under terms of the GNU General Public License as published by the Free @@ -219,7 +219,7 @@ begin Input_Data : aliased WisiToken_Grammar_Runtime.User_Data_Type; Trace : WisiToken.Text_IO_Trace.Trace; - Generate_Data : aliased WisiToken.BNF.Generate_Utils.Generate_Data := + Generate_Data : aliased constant WisiToken.BNF.Generate_Utils.Generate_Data := WisiToken.BNF.Generate_Utils.Parse_Grammar_File (-Grammar_File_Name, Input_Data'Unchecked_Access, BNF.LALR, BNF.re2c_Lexer, Trace, Ignore_Conflicts => True); -- Builds Generate_Data.Descriptor, Generate_Data.Grammar diff --git a/wisitoken_grammar_runtime.adb b/wisitoken_grammar_runtime.adb index dc2f3a72..8972f29e 100644 --- a/wisitoken_grammar_runtime.adb +++ b/wisitoken_grammar_runtime.adb @@ -242,7 +242,12 @@ package body WisiToken_Grammar_Runtime is begin WisiToken.Syntax_Trees.LR_Utils.Raise_Programmer_Error ("Get_RHS: " & Exception_Name (E) & ": " & Exception_Message (E), Tree, Token); - raise; -- WORKAROUND; GNAT pro_22.0w-20201222 ignores 'pragma no_return' on Raise_Programmer_Error + + -- WORKAROUND; GNAT pro_22.0w-20201222 ignores 'pragma + -- no_return' on Raise_Programmer_Error; uncomment 'raise' for that + -- compiler. + -- + -- raise; end; end if; end Get_RHS;
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.