branch: externals-release/ada-mode commit 8660d5e9b2219208e5d43b979f5fb57fbb518924 Author: Stephen Leake <stephen_le...@stephe-leake.org> Commit: Stephen Leake <stephen_le...@stephe-leake.org>
Release 8.0.5 packaging fixes --- .elpaignore | 1 + .gitignore | 6 --- Alire.make | 1 - NEWS | 5 +++ README | 2 +- ada-mode.el | 6 +-- ada-mode.texi | 18 ++++---- ada_mode_wisi_parse.gpr | 110 ++++++++++++++++++++++++++++++++++++++++++++++++ build.sh | 9 ++-- install.sh | 2 +- 10 files changed, 134 insertions(+), 26 deletions(-) diff --git a/.elpaignore b/.elpaignore new file mode 100644 index 0000000000..ce56bc2095 --- /dev/null +++ b/.elpaignore @@ -0,0 +1 @@ +alire.toml diff --git a/.gitignore b/.gitignore index d9f97eb120..f65844eda1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ *.elc -*.exe -*.parse_table ada-mode-autoloads.el ada-mode-pkg.el -Makefile.conf ada_annex_p_lr1_parse_table.txt -ada_mode_wisi_parse.gpr -check.gpr -obj/ diff --git a/Alire.make b/Alire.make index f7e9a89a24..910183349d 100644 --- a/Alire.make +++ b/Alire.make @@ -7,5 +7,4 @@ include $(STEPHES_ADA_LIBRARY_ALIRE_PREFIX)/build/alire_rules.make include $(WISITOKEN_ALIRE_PREFIX)/build/wisitoken_alire_rules.make # Local Variables: -# eval: (load-file "prj.el") # End: diff --git a/NEWS b/NEWS index c5830f9018..ad53c680fe 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,11 @@ Please send ada-mode bug reports to bug-gnu-em...@gnu.org, with 'ada-mode' in the subject. If possible, use M-x report-emacs-bug. +Ada Mode 8.0.5 +3 Feb 2020 + +** Alire and ELPA packaging fixes. + Ada Mode 8.0.4 16 Jan 2023 diff --git a/README b/README index 7db7121651..92144ab945 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Emacs Ada mode version 8.0.4 +Emacs Ada mode version 8.0.5 Ada mode provides auto-casing, fontification, navigation, and indentation for Ada source code files. diff --git a/ada-mode.el b/ada-mode.el index a67b46aa1b..7e1f09c07e 100644 --- a/ada-mode.el +++ b/ada-mode.el @@ -6,8 +6,8 @@ ;; Maintainer: Stephen Leake <stephen_le...@stephe-leake.org> ;; Keywords: languages ;; ada -;; Version: 8.0.4 -;; package-requires: ((uniquify-files "1.0.4") (wisi "4.2.2") (gnat-compiler "1.0.1") (emacs "25.3")) +;; Version: 8.0.5 +;; package-requires: ((uniquify-files "1.0.4") (wisi "4.2.2") (gnat-compiler "1.0.2") (emacs "25.3")) ;; url: https://www.nongnu.org/ada-mode/ ;; ;; This file is part of GNU Emacs. @@ -117,7 +117,7 @@ (defun ada-mode-version () "Return Ada mode version." (interactive) - (let ((version-string "8.0.4")) + (let ((version-string "8.0.5")) (if (called-interactively-p 'interactive) (message version-string) version-string))) diff --git a/ada-mode.texi b/ada-mode.texi index 84335451ed..456e36f657 100644 --- a/ada-mode.texi +++ b/ada-mode.texi @@ -259,14 +259,14 @@ ELPA package ada-ref-man. @node Ada executables @section Ada executables -Ada mode requires either the external parser and gpr-query, or the Ada +Ada mode requires either the wisi parser and gpr-query, or the Ada language server @code{ada_language_server}. All of these can be installed via the Alire Ada package manager (@url{https://alire.ada.dev/}), or compiled directly. See the gpr-query package for information on compiling gpr-query. -To install the external parser, +To install the wisi parser: @example cd ~/.emacs.d/elpa/ada-mode-i.j.xx @@ -275,19 +275,19 @@ cd ~/.emacs.d/elpa/ada-mode-i.j.xx @end example By default, @file{install.sh} installs the parser executable in -@code{$HOME/.local/bin}. If you want to install somewhere else, use -@code{install.sh --prefix=<dir>}. +@code{$HOME/.local/bin}, so you must put that in @code{PATH}. If you +want to install somewhere else, use @code{install.sh --prefix=<dir>}. These scripts default to use Alire (@url{https://alire.ada.dev/}) if it is found on @code{PATH}; otherwise they use @code{gprbuild}. One step in build.sh is to run @code{wisitoken-bnf-generate} to generate the LR1 parse table for the parser. This can take up to 5.4GB -of memory; if your machine does not have that much, you can download -the @file{ada_annex_p_lr1_parse_table.txt} from -@url{https://download.savannah.nongnu.org/releases/ada-mode/} - be -sure to get the version that matches ada-mode, and put it in the same -directory as @file{ada_mode_wisi_lr1_parse}. +of memory during the generate process; if your machine does not have +that much, you can download the @file{ada_annex_p_lr1_parse_table.txt} +from @url{https://download.savannah.nongnu.org/releases/ada-mode/} - +be sure to get the version that matches the current ada-mode, and put +it in the same directory as @file{ada_mode_wisi_lr1_parse}. @node Known versions @section Known versions diff --git a/ada_mode_wisi_parse.gpr b/ada_mode_wisi_parse.gpr new file mode 100644 index 0000000000..2f2049c503 --- /dev/null +++ b/ada_mode_wisi_parse.gpr @@ -0,0 +1,110 @@ +-- Abstract : +-- +-- build ada_mode_wisi_parse and other executables +-- +-- Copyright (C) 2014, 2018 - 2020, 2022 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 +-- published by the Free Software Foundation; either version 3, or (at +-- your option) any later version. This program is distributed in the +-- hope that it will be useful, but WITHOUT ANY WARRANTY; without even +-- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +-- PURPOSE. See the GNU General Public License for more details. You +-- should have received a copy of the GNU General Public License +-- distributed with this program; see file COPYING. If not, write to +-- the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, +-- MA 02110-1335, USA. + +with "standard_common"; +with "wisi"; +project Ada_Mode_Wisi_Parse is + + for Main use + ("ada_mode_wisi_lalr_parse.ads", + "ada_mode_wisi_lr1_parse.ads", + "run_ada_lalr_parse.ads", + "run_ada_lr1_parse.ads" + ); + + for Source_Dirs use ("."); + for Create_Missing_Dirs use "True"; + + case Standard_Common.Profile is + when "On" => + for Object_Dir use "obj_pro"; + for Exec_Dir use "exec_pro"; + + when "Off" => + for Object_Dir use "obj"; + for Exec_Dir use "bin"; + end case; + + for Languages use ("Ada", "C"); + + package Compiler is + + case Standard_Common.Build is + when "Debug" => + for Default_Switches ("Ada") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Style_Checks & + Standard_Common.Compiler.Debug_Switches; + + -- Generated files; lines too long, don't need debug + for Switches ("ada_process_actions.adb") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Base_Style_Checks & + Standard_Common.Compiler.Base_Release_Switches & ("-O1", "-gnat2020"); + + for Switches ("ada_process_main.adb") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Base_Style_Checks & + Standard_Common.Compiler.Base_Release_Switches & ("-O1", "-gnat2020"); + + for Default_Switches ("C") use Standard_Common.Compiler.Debug_Switches_C; + + when "Normal" => + for Default_Switches ("Ada") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Style_Checks & + Standard_Common.Compiler.Release_Switches; + + for Switches ("ada_process_actions.adb") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Base_Style_Checks & + Standard_Common.Compiler.Base_Release_Switches & ("-O1", "-gnat2020"); + + for Switches ("ada_process_main.adb") use + Standard_Common.Compiler.Common_Switches & + Standard_Common.Compiler.Base_Style_Checks & + Standard_Common.Compiler.Base_Release_Switches & ("-O1", "-gnat2020"); + + for Default_Switches ("C") use Standard_Common.Compiler.Release_Switches_C; + end case; + + end Compiler; + + package Builder is + -- Specifying some configuration pragmas can reduce parse times + -- by 10% or so, on some systems. But doing so only here causes + -- recompiling of wisitoken. If we add Global_ or Local_ + -- Configuration_Pragmas in wisitoken.gpr, we get compilation + -- errors there. So we leave it up to users to patch this if + -- they want it. + -- for Global_Configuration_Pragmas use "config.pragmas"; + + for Global_Compilation_Switches ("Ada") use Standard_Common.Builder'Global_Compilation_Switches ("Ada"); + + end Builder; + + package Binder is + for default_switches ("Ada") use ("-E"); -- symbolic traceback + end Binder; + + package Install is + for Required_Artifacts ("bin") use + ("ada_annex_p_lr1_parse_table.txt"); + end Install; + +end Ada_Mode_Wisi_Parse; diff --git a/build.sh b/build.sh index 08b8ce7094..5e2e424163 100755 --- a/build.sh +++ b/build.sh @@ -12,7 +12,7 @@ if type alr; then echo "building ada-mode executables via Alire" # alr get --build builds dependencies with release, but top with development. - alr get emacs_ada_mode~8.0.3 + alr get emacs_ada_mode~8.0.5 cd emacs_ada_mode_*; alr build --release elif type gprbuild; then @@ -37,12 +37,11 @@ elif type gprbuild; then gprbuild -p -j8 -P $WISI_DIR/wisi.gpr wisitoken-bnf-generate # We generate the Ada LR1 parse table .txt file here, because it is too - # large to keep in ELPA. The code generated by wisitoken-bnf-generate + # large to keep in ELPA. The C code generated by wisitoken-bnf-generate # is in ELPA, because it requires the re2c tool, which we don't expect - # users to have installed. The LR1 parse table for gpr is in the Ada - # code, so we don't need to generate that here. + # users to have installed (although we do expect Alire to install it). echo "generate Ada LR1 parse table" - $WISI_DIR/wisitoken-bnf-generate --task_count 1 ada_annex_p.wy + $WISI_DIR/wisitoken-bnf-generate ada_annex_p.wy gprbuild -p -j8 -P ada_mode_wisi_parse.gpr -aP $WISI_DIR "$@" diff --git a/install.sh b/install.sh index 8645b48b4a..2c95f9bc05 100755 --- a/install.sh +++ b/install.sh @@ -12,7 +12,7 @@ else PREFIX=$1 fi -echo "installing ada-mode executables to" $PREFIX/bin +echo "installing ada-mode executables to" $PREFIX/bin "; ensure that is in PATH" # No need for gprinstall; we only need the executable