I looked at the patches a bit more and thought that a couple of things
needed to be renamed and some style issues addressed. Attached are two
patches; the first your V2 rebased, the second my proposed further changes.
More important, though, the documentation and commit message needs to
say where to get the GCC Algol 68 compiler, and that it's experimental
and not part of the official GCC release, otherwise the reader is at a
loss as to what's going on. Could you do that? Thanks.
Thanks.
From 288c18fe761a2ebd43ec0d5d04fb451122518e9d Mon Sep 17 00:00:00 2001
From: "Jose E. Marchesi" <jema...@gnu.org>
Date: Sun, 2 Feb 2025 23:01:54 +0100
Subject: [PATCH 1/2] Support for the Algol 68 language
[Differences from V1:
- Variables GA68* renamed to A68*.]
This patch adds support for the Algol 68 programming language to
Autoconf. It is based on the Algol 68 GCC front-end, which is currently
under development [1]. A WIP series got sent to gcc-patches in January
[2], and the front-end is temporarily hosted in the sourceware forge
until integration in GCC is completed [3].
The full language is (almost) already implemented, the compiler is
useful and I plan to send official patches for inclusion in GCC 16 very
soon.
Automake support for Algol 68 has been already pushed as of 2 February
2025.
[1] https://gcc.gnu.org/wiki/Algol68FrontEnd
[2] https://inbox.sourceware.org/gcc-patches/20250101020952.18404-1-jose.march...@oracle.com/T/#t
[3] https://forge.sourceforge.org/jemarch/a68-gcc
Add support for the Algol68 programming language.
* lib/autoconf/a68.m4: New file.
* lib/autoconf/autoconf.m4: Include autoconf/a68.m4.
* lib/autoconf/Makefile.am (dist_autoconflib_DATA): Add a68.m4.
* lib/freeze.mk (autoconf_m4f_dependencies): Add
$(src_libdir)/autoconf/a68.m4.
* doc/autoconf.texi: Rebuild menus.
(Preset Output Variables): Mention Algol 68. Document A68FLAGS.
(Algol 68 Compiler): New subsection.
(Language Choice): Mention Algol 68.
(Generating Sources): Likewise.
(Running the Preprocessor): Likewise.
* tests/a68.at: New file.
* tests/suite.at: Include a68.at and aca68.at.
* tests/local.at (_AT_CHECK_ENV): Add A68 and A68FLAGS.
* tests/Makefile.am (TESTSUITE_GENERATED_AT): Add
$(srcdir)/aca68.at.
(TESTSUITE_HAND_AT): Add a68.at.
(AUTOCONF_FILES): Add $(autoconfdir)/a68.m4.
* NEWS: Update.
---
NEWS | 3 +
doc/autoconf.texi | 48 ++++++++++--
lib/autoconf/a68.m4 | 155 +++++++++++++++++++++++++++++++++++++++
lib/autoconf/autoconf.m4 | 1 +
lib/freeze.mk | 1 +
lib/local.mk | 1 +
tests/a68.at | 33 +++++++++
tests/local.mk | 3 +
tests/suite.at | 2 +
9 files changed, 242 insertions(+), 5 deletions(-)
create mode 100644 lib/autoconf/a68.m4
create mode 100644 tests/a68.at
diff --git a/NEWS b/NEWS
index 1e4e513e..4eb6a61f 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,9 @@ GNU Autoconf NEWS - User visible changes.
* Noteworthy changes in release ?.? (????-??-??) [?]
+** Support for the Algol 68 programming language has been added. The new macro
+ AC_LANG_A68 sets variables A68 and A68FLAGS.
+
** Backward incompatibilities
*** AC_PROG_CC now prefers C23 if available.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 7b156b82..779be24a 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -416,6 +416,7 @@ Compilers and Preprocessors
* Erlang Compiler and Interpreter:: Likewise
* Fortran Compiler:: Likewise
* Go Compiler:: Likewise
+* Algol 68 Compiler:: Likewise
Writing Tests
@@ -2742,7 +2743,7 @@ programs to test for Fortran 77 features.
Options for the linker. If it is not set
in the environment when @command{configure} runs, the default value is empty.
@command{configure} uses this variable when linking programs to test for
-C, C++, Objective C, Objective C++, Fortran, and Go features.
+C, C++, Objective C, Objective C++, Fortran, Go and Algol 68 features.
This variable's contents should contain options like @option{-s} and
@option{-L} that affect only the behavior of the linker. Please see the
@@ -2785,6 +2786,13 @@ Debugging and optimization options for the Go compiler. It acts like
@code{CFLAGS}, but for Go instead of C.
@end defvar
+@defvar A68FLAGS
+@evindex A68FLAGS
+@ovindex A68FLAGS
+Debugging and optimization options for the Algol 68 compiler. It acts
+like @code{CFLAGS}, but for Algol68 instead of C.
+@end defvar
+
@defvar builddir
@ovindex builddir
Rigorously equal to @samp{.}. Added for symmetry only.
@@ -7094,6 +7102,7 @@ compiling.
* Erlang Compiler and Interpreter:: Likewise
* Fortran Compiler:: Likewise
* Go Compiler:: Likewise
+* Algol 68 Compiler:: Likewise
@end menu
@node Specific Compiler Characteristics
@@ -8635,6 +8644,31 @@ If output variable @code{GOFLAGS} was not already set, set it to
@end defmac
+@node Algol 68 Compiler
+@subsection Algol 68 Compiler
+@cindex Algol 68
+
+Autoconf provides basic support for the Algol 68 programming language
+when using the @code{ga68} compiler.
+
+@defmac AC_PROG_A68 (@ovar{compiler-search-list})
+Find the Algol 68 compiler to use. Check whether the environment
+variable @code{A68} is set; if so, then set output variable @code{A68}
+to its value.
+
+Otherwise, if the macro is invoked without an argument, then search for
+an Algol 68 compiler named @code{ga68}. If it is not found, then as a
+last resort set @code{A68} to @code{ga68}.
+
+This macro may be invoked with an optional first argument which, if
+specified, must be a blank-separated list of Algol 68 compilers to
+search for.
+
+If output variable @code{A68FLAGS} was not already set, set it to
+@option{-g -O2}. If your package does not like this default,
+@code{A68FLAGS} may be set before @code{AC_PROG_A68}l
+@end defmac
+
@node System Services
@section System Services
@@ -9185,6 +9219,10 @@ extension @file{.mm} for test programs. Use compilation flags:
@item Go
Do compilation tests using @code{GOC} and use extension @file{.go} for
test programs. Use compilation flags @code{GOFLAGS}.
+
+@item Algol 68
+Do compilation tests using @code{A68} and use extension @file{.a68} for
+test programs. Use compilation flags @code{A68FLAGS}.
@end table
@end defmac
@@ -9432,9 +9470,9 @@ on a system with @command{gcc} installed, results in:
const char hw[] = "Hello, World\n";
@end example
-When the test language is Fortran, Erlang, or Go, the @code{AC_DEFINE}
-definitions are not automatically translated into constants in the
-source code by this macro.
+When the test language is Fortran, Erlang, Go or Algol 68, the
+@code{AC_DEFINE} definitions are not automatically translated into
+constants in the source code by this macro.
@defmac AC_LANG_PROGRAM (@var{prologue}, @var{body})
@acindex{LANG_PROGRAM}
@@ -9557,7 +9595,7 @@ Nevertheless, if you need to run the preprocessor, then use
@code{AC_PREPROC_IFELSE}.
The macros described in this section cannot be used for tests in Erlang,
-Fortran, or Go, since those languages require no preprocessor.
+Fortran, Go, or Algol 68 since those languages require no preprocessor.
@anchor{AC_PREPROC_IFELSE}
@defmac AC_PREPROC_IFELSE (@var{input}, @ovar{action-if-true}, @
diff --git a/lib/autoconf/a68.m4 b/lib/autoconf/a68.m4
new file mode 100644
index 00000000..30d8362e
--- /dev/null
+++ b/lib/autoconf/a68.m4
@@ -0,0 +1,155 @@
+# This file is part of Autoconf. -*- Autoconf -*-
+# Algol 68 language support.
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This file is part of Autoconf. This program is free
+# software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, 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.
+#
+# Under Section 7 of GPL version 3, you are granted additional
+# permissions described in the Autoconf Configure Script Exception,
+# version 3.0, as published by the Free Software Foundation.
+#
+# You should have received a copy of the GNU General Public License
+# and a copy of the Autoconf Configure Script Exception along with
+# this program; see the files COPYINGv3 and COPYING.EXCEPTION
+# respectively. If not, see <https://www.gnu.org/licenses/> and
+# <https://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob_plain;f=COPYING.EXCEPTION>.
+
+# Algol 68 support contributed by Jose E. Marchesi.
+
+# ------------------- #
+# Language selection.
+# ------------------- #
+
+# AC_LANG(a68)
+# -----------
+AC_LANG_DEFINE([A68], [a68], [A68], [A68], [],
+[ac_ext=a68
+ac_compile='$A68 -c $A68FLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
+ac_link='$A68 -o conftest$ac_exeext $A68FLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
+ac_compiler_gnu=yes
+])
+
+# AC_LANG_A68
+# -----------
+AU_DEFUN([AC_LANG_A68], [AC_LANG(A68)])
+
+# ------------------- #
+# Producing programs.
+# ------------------- #
+
+# AC_LANG_PROGRAM(A68)([PROLOGUE], [BODY])
+# ----------------------------------------
+m4_define([AC_LANG_PROGRAM(A68)],
+[PROGRAM
+$1
+BEGIN
+$2
+ 0
+END])
+
+# _AC_LANG_IO_PROGRAM(A68)
+# ------------------------
+# Produce source that performs I/O.
+m4_define([_AC_LANG_IO_PROGRAM(A68)],
+[AC_LANG_PROGRAM([],
+[IF INT fd = fcreate ("conftest.out", 8r0777); fd = -1
+ THEN perror ("error creating conftest.out")
+ ELIF fclose (fd) = -1 THEN perror ("error closing conftest.out");
+ FI;
+])])
+
+# AC_LANG_CALL(A68)(PROLOGUE, FUNCTION)
+# -------------------------------------
+# Avoid conflicting decl of main.
+m4_define([AC_LANG_CALL(A68)],
+[AC_LANG_PROGRAM([],[])])
+
+# AC_LANG_FUNC_LINK_TRY(A68)(FUNCTION)
+# ------------------------------------
+# Try to link a program which calls FUNCTION.
+m4_define([AC_LANG_FUNC_LINK_TRY(A68)],
+[AC_LANG_PROGRAM([],[])])
+
+# AC_LANG_BOOL_COMPILE_TRY(A68)(PROLOGUE, EXPRESSION)
+# ---------------------------------------------------
+# Return a program which is valid if EXPRESSION is nonzero.
+m4_define([AC_LANG_BOOL_COMPILE_TRY(A68)],
+[AC_LANG_PROGRAM([], [@<:@$2@:>@INT test multiple;
+ 0])])
+
+# AC_LANG_INT_SAVE(A68)(PROLOGUE, EXPRESSION)
+# ------------------------------------------
+m4_define([AC_LANG_INT_SAVE(A68)],
+[AC_LANG_PROGRAM([
+PROC itoa = (INT i) STRING:
+ BEGIN IF i = 0
+ THEN "0"
+ ELSE INT n := ABS i;
+ STRING res;
+ WHILE n /= 0
+ DO INT rem = n %* 10;
+ res := REPR (rem > 9 | (rem - 10) + ABS "a" | rem + ABS "0") + res;
+ n %:= 10
+ OD;
+ (i < 0 | "-" + res | res)
+ FI
+ END;
+
+INT ret := 0;
+INT fd = fopen ("conftest.val", file o wronly)/
+IF fd = -1 THEN ret := 1; stop FI;
+IF fputs (fd, itoa ($2)) = 0 THEN ret := 1; stop FI;
+stop:
+;
+])])
+
+# ---------------------- #
+# Looking for compilers. #
+# ---------------------- #
+
+# AC_LANG_COMPILER(A68)
+# ---------------------
+AC_DEFUN([AC_LANG_COMPILER(A68)],
+[AC_REQUIRE([AC_PROG_A68])])
+
+# AC_PROG_A68
+# -----------
+AN_MAKEVAR([A68], [AC_PROG_A68])
+AN_PROGRAM([ga68], [AC_PROG_A68])
+AC_DEFUN([AC_PROG_A68],
+[AC_LANG_PUSH(A68)dnl
+AC_ARG_VAR([A68], [Algol 68 compiler command])dnl
+AC_ARG_VAR([A68FLAGS], [Algol 68 compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+m4_ifval([$1],
+ [AC_CHECK_TOOLS(A68, [$1])],
+[AC_CHECK_TOOL(A68, ga68)
+if test -z "$A68"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_CHECK_PROG(A68, [${ac_tool_prefix}ga68], [$ac_tool_prefix}ga68])
+ fi
+fi
+if test -z "$A68"; then
+ AC_CHECK_PROG(A68, ga68, ga68, , , false)
+fi
+])
+
+# Provide some information about the compiler.
+_AS_ECHO_LOG([checking for _AC_LANG compiler version])
+set X $ac_compile
+ac_compiler=$[2]
+_AC_DO_LIMIT([$ac_compiler --version >&AS_MESSAGE_LOG_FD])
+m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
+m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
+A68FLAGS="-g -O2"
+AC_LANG_POP(A68)dnl
+])# AC_PROG_A68
diff --git a/lib/autoconf/autoconf.m4 b/lib/autoconf/autoconf.m4
index c2b6aea3..d79888e9 100644
--- a/lib/autoconf/autoconf.m4
+++ b/lib/autoconf/autoconf.m4
@@ -44,6 +44,7 @@ m4_include([autoconf/c.m4])
m4_include([autoconf/erlang.m4])
m4_include([autoconf/fortran.m4])
m4_include([autoconf/go.m4])
+m4_include([autoconf/a68.m4])
m4_include([autoconf/functions.m4])
m4_include([autoconf/headers.m4])
m4_include([autoconf/types.m4])
diff --git a/lib/freeze.mk b/lib/freeze.mk
index 8239080e..e65c128a 100644
--- a/lib/freeze.mk
+++ b/lib/freeze.mk
@@ -89,6 +89,7 @@ autoconf_m4f_dependencies = \
$(src_libdir)/autoconf/fortran.m4 \
$(src_libdir)/autoconf/erlang.m4 \
$(src_libdir)/autoconf/go.m4 \
+ $(src_libdir)/autoconf/a68.m4 \
$(src_libdir)/autoconf/functions.m4 \
$(src_libdir)/autoconf/headers.m4 \
$(src_libdir)/autoconf/types.m4 \
diff --git a/lib/local.mk b/lib/local.mk
index 98a7f36a..62440dd0 100644
--- a/lib/local.mk
+++ b/lib/local.mk
@@ -95,6 +95,7 @@ dist_autoconflib_DATA = \
lib/autoconf/fortran.m4 \
lib/autoconf/functions.m4 \
lib/autoconf/go.m4 \
+ lib/autoconf/a68.m4 \
lib/autoconf/headers.m4 \
lib/autoconf/types.m4 \
lib/autoconf/libs.m4 \
diff --git a/tests/a68.at b/tests/a68.at
new file mode 100644
index 00000000..b99b50d2
--- /dev/null
+++ b/tests/a68.at
@@ -0,0 +1,33 @@
+# -*- Autotest -*-
+
+AT_BANNER([Algol 68 low level compiling and utility macros.])
+
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, 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
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+# Since the macros which compile are required by most tests, check
+# them first. But remember that looking for a compiler is even more
+# primitive, so check those first.
+
+
+## ------------------- ##
+## Algol 68 Compiler. ##
+## ------------------- ##
+
+AT_CHECK_MACRO([A68],
+[[AC_LANG(A68)
+AC_LANG_COMPILER
+]])
diff --git a/tests/local.mk b/tests/local.mk
index 6a2c06a8..77808f7d 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -92,6 +92,7 @@ TESTSUITE_GENERATED_AT = \
tests/acerlang.at \
tests/acfortran.at \
tests/acgo.at \
+ tests/aca68.at \
tests/acgeneral.at \
tests/acstatus.at \
tests/acautoheader.at \
@@ -116,6 +117,7 @@ TESTSUITE_HAND_AT = \
tests/erlang.at \
tests/fortran.at \
tests/go.at \
+ tests/a68.at \
tests/semantics.at \
tests/autoscan.at \
tests/foreign.at
@@ -198,6 +200,7 @@ AUTOCONF_FILES = $(autoconfdir)/general.m4 \
$(autoconfdir)/erlang.m4 \
$(autoconfdir)/fortran.m4 \
$(autoconfdir)/go.m4 \
+ $(autoconfdir)/a68.m4 \
$(autoconfdir)/headers.m4 \
$(autoconfdir)/libs.m4 \
$(autoconfdir)/types.m4 \
diff --git a/tests/suite.at b/tests/suite.at
index 17fca508..1600bf32 100644
--- a/tests/suite.at
+++ b/tests/suite.at
@@ -55,6 +55,8 @@ m4_include([erlang.at])
m4_include([acerlang.at])
m4_include([go.at])
m4_include([acgo.at])
+m4_include([a68.at])
+m4_include([aca68.at])
# Checking that AC_CHECK_FOO macros work properly.
m4_include([semantics.at])
--
2.48.1
From d875bdd8c6d5d5c1cd6c09a350d2bca35ded4d27 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Wed, 23 Apr 2025 12:58:41 -0700
Subject: [PATCH 2/2] =?UTF-8?q?A68=20=E2=86=92=20A68C=20/=20Algol=2068=20i?=
=?UTF-8?q?n=20some=20cases?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* lib/autoconf/a68.m4: Call the language ‘Algol 68’, not ‘A68’, in
macro names and the like. Use the shell variable A68C, not A68,
for the compiler. This is for consistency of names compared to
support for other languages like Go. All uses changed.
---
NEWS | 6 +--
doc/autoconf.texi | 17 +++----
lib/autoconf/a68.m4 | 114 ++++++++++++++++++++++----------------------
lib/freeze.mk | 2 +-
tests/a68.at | 4 +-
5 files changed, 73 insertions(+), 70 deletions(-)
diff --git a/NEWS b/NEWS
index 4eb6a61f..fe5216ab 100644
--- a/NEWS
+++ b/NEWS
@@ -2,9 +2,6 @@ GNU Autoconf NEWS - User visible changes.
* Noteworthy changes in release ?.? (????-??-??) [?]
-** Support for the Algol 68 programming language has been added. The new macro
- AC_LANG_A68 sets variables A68 and A68FLAGS.
-
** Backward incompatibilities
*** AC_PROG_CC now prefers C23 if available.
@@ -31,6 +28,9 @@ GNU Autoconf NEWS - User visible changes.
The autom4te, autoscan and ifnames programs now recognize the two
preprocessor directives, which were introduced in C23 and C++23.
+*** Support for the Algol 68 programming language has been added.
+ The new macro AC_LANG_A68 sets variables A68C and A68FLAGS.
+
*** AC_PROG_AWK now also checks for busybox awk.
*** AC_USE_SYSTEM_EXTENSIONS now defines _COSMO_SOURCE for Cosmopolitan Libc.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 779be24a..1de94487 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -2743,7 +2743,7 @@ programs to test for Fortran 77 features.
Options for the linker. If it is not set
in the environment when @command{configure} runs, the default value is empty.
@command{configure} uses this variable when linking programs to test for
-C, C++, Objective C, Objective C++, Fortran, Go and Algol 68 features.
+features in C, C++, Objective C, Objective C++, Fortran, Go, and Algol 68.
This variable's contents should contain options like @option{-s} and
@option{-L} that affect only the behavior of the linker. Please see the
@@ -2790,7 +2790,7 @@ Debugging and optimization options for the Go compiler. It acts like
@evindex A68FLAGS
@ovindex A68FLAGS
Debugging and optimization options for the Algol 68 compiler. It acts
-like @code{CFLAGS}, but for Algol68 instead of C.
+like @code{CFLAGS}, but for Algol 68 instead of C.
@end defvar
@defvar builddir
@@ -8653,12 +8653,12 @@ when using the @code{ga68} compiler.
@defmac AC_PROG_A68 (@ovar{compiler-search-list})
Find the Algol 68 compiler to use. Check whether the environment
-variable @code{A68} is set; if so, then set output variable @code{A68}
+variable @code{A68C} is set; if so, then set output variable @code{A68C}
to its value.
Otherwise, if the macro is invoked without an argument, then search for
an Algol 68 compiler named @code{ga68}. If it is not found, then as a
-last resort set @code{A68} to @code{ga68}.
+last resort set @code{A68C} to @code{ga68}.
This macro may be invoked with an optional first argument which, if
specified, must be a blank-separated list of Algol 68 compilers to
@@ -9221,7 +9221,7 @@ Do compilation tests using @code{GOC} and use extension @file{.go} for
test programs. Use compilation flags @code{GOFLAGS}.
@item Algol 68
-Do compilation tests using @code{A68} and use extension @file{.a68} for
+Do compilation tests using @code{A68C} and use extension @file{.a68} for
test programs. Use compilation flags @code{A68FLAGS}.
@end table
@end defmac
@@ -9470,9 +9470,10 @@ on a system with @command{gcc} installed, results in:
const char hw[] = "Hello, World\n";
@end example
-When the test language is Fortran, Erlang, Go or Algol 68, the
-@code{AC_DEFINE} definitions are not automatically translated into
-constants in the source code by this macro.
+When the test language is Fortran, Erlang, Go, or Algol 68,
+the @code{AC_DEFINE}
+definitions are not automatically translated into constants in the
+source code by this macro.
@defmac AC_LANG_PROGRAM (@var{prologue}, @var{body})
@acindex{LANG_PROGRAM}
diff --git a/lib/autoconf/a68.m4 b/lib/autoconf/a68.m4
index 30d8362e..8e335f6f 100644
--- a/lib/autoconf/a68.m4
+++ b/lib/autoconf/a68.m4
@@ -1,6 +1,6 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Algol 68 language support.
-# Copyright (C) 2025 Free Software Foundation, Inc.
+# Copyright 2025 Free Software Foundation, Inc.
# This file is part of Autoconf. This program is free
# software; you can redistribute it and/or modify it under the
@@ -29,26 +29,26 @@
# Language selection.
# ------------------- #
-# AC_LANG(a68)
-# -----------
-AC_LANG_DEFINE([A68], [a68], [A68], [A68], [],
+# AC_LANG(Algol 68)
+# -----------------
+AC_LANG_DEFINE([Algol 68], [a68], [A68], [A68C], [],
[ac_ext=a68
-ac_compile='$A68 -c $A68FLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
-ac_link='$A68 -o conftest$ac_exeext $A68FLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
+ac_compile='$A68C -c $A68FLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'
+ac_link='$A68C -o conftest$ac_exeext $A68FLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'
ac_compiler_gnu=yes
])
# AC_LANG_A68
# -----------
-AU_DEFUN([AC_LANG_A68], [AC_LANG(A68)])
+AU_DEFUN([AC_LANG_A68], [AC_LANG(Algol 68)])
# ------------------- #
# Producing programs.
# ------------------- #
-# AC_LANG_PROGRAM(A68)([PROLOGUE], [BODY])
-# ----------------------------------------
-m4_define([AC_LANG_PROGRAM(A68)],
+# AC_LANG_PROGRAM(Algol 68)([PROLOGUE], [BODY])
+# ---------------------------------------------
+m4_define([AC_LANG_PROGRAM(Algol 68)],
[PROGRAM
$1
BEGIN
@@ -56,10 +56,10 @@ $2
0
END])
-# _AC_LANG_IO_PROGRAM(A68)
-# ------------------------
+# _AC_LANG_IO_PROGRAM(Algol 68)
+# -----------------------------
# Produce source that performs I/O.
-m4_define([_AC_LANG_IO_PROGRAM(A68)],
+m4_define([_AC_LANG_IO_PROGRAM(Algol 68)],
[AC_LANG_PROGRAM([],
[IF INT fd = fcreate ("conftest.out", 8r0777); fd = -1
THEN perror ("error creating conftest.out")
@@ -67,41 +67,43 @@ m4_define([_AC_LANG_IO_PROGRAM(A68)],
FI;
])])
-# AC_LANG_CALL(A68)(PROLOGUE, FUNCTION)
-# -------------------------------------
+# AC_LANG_CALL(Algol 68)(PROLOGUE, FUNCTION)
+# ------------------------------------------
# Avoid conflicting decl of main.
-m4_define([AC_LANG_CALL(A68)],
+m4_define([AC_LANG_CALL(Algol 68)],
[AC_LANG_PROGRAM([],[])])
-# AC_LANG_FUNC_LINK_TRY(A68)(FUNCTION)
-# ------------------------------------
+# AC_LANG_FUNC_LINK_TRY(Algol 68)(FUNCTION)
+# -----------------------------------------
# Try to link a program which calls FUNCTION.
-m4_define([AC_LANG_FUNC_LINK_TRY(A68)],
+m4_define([AC_LANG_FUNC_LINK_TRY(Algol 68)],
[AC_LANG_PROGRAM([],[])])
-# AC_LANG_BOOL_COMPILE_TRY(A68)(PROLOGUE, EXPRESSION)
-# ---------------------------------------------------
+# AC_LANG_BOOL_COMPILE_TRY(Algol 68)(PROLOGUE, EXPRESSION)
+# --------------------------------------------------------
# Return a program which is valid if EXPRESSION is nonzero.
-m4_define([AC_LANG_BOOL_COMPILE_TRY(A68)],
+m4_define([AC_LANG_BOOL_COMPILE_TRY(Algol 68)],
[AC_LANG_PROGRAM([], [@<:@$2@:>@INT test multiple;
- 0])])
+ 0])])
-# AC_LANG_INT_SAVE(A68)(PROLOGUE, EXPRESSION)
-# ------------------------------------------
-m4_define([AC_LANG_INT_SAVE(A68)],
+# AC_LANG_INT_SAVE(Algol 68)(PROLOGUE, EXPRESSION)
+# ------------------------------------------------
+m4_define([AC_LANG_INT_SAVE(Algol 68)],
[AC_LANG_PROGRAM([
PROC itoa = (INT i) STRING:
BEGIN IF i = 0
- THEN "0"
- ELSE INT n := ABS i;
- STRING res;
- WHILE n /= 0
- DO INT rem = n %* 10;
- res := REPR (rem > 9 | (rem - 10) + ABS "a" | rem + ABS "0") + res;
- n %:= 10
- OD;
- (i < 0 | "-" + res | res)
- FI
+ THEN "0"
+ ELSE INT n := ABS i;
+ STRING res;
+ WHILE n /= 0
+ DO INT rem = n %* 10;
+ res := (REPR (rem > 9 | (rem - 10) + ABS "a"
+ | rem + ABS "0")
+ + res);
+ n %:= 10
+ OD;
+ (i < 0 | "-" + res | res)
+ FI
END;
INT ret := 0;
@@ -116,30 +118,30 @@ stop:
# Looking for compilers. #
# ---------------------- #
-# AC_LANG_COMPILER(A68)
-# ---------------------
-AC_DEFUN([AC_LANG_COMPILER(A68)],
-[AC_REQUIRE([AC_PROG_A68])])
-
-# AC_PROG_A68
-# -----------
-AN_MAKEVAR([A68], [AC_PROG_A68])
-AN_PROGRAM([ga68], [AC_PROG_A68])
-AC_DEFUN([AC_PROG_A68],
-[AC_LANG_PUSH(A68)dnl
-AC_ARG_VAR([A68], [Algol 68 compiler command])dnl
+# AC_LANG_COMPILER(Algol 68)
+# --------------------------
+AC_DEFUN([AC_LANG_COMPILER(Algol 68)],
+[AC_REQUIRE([AC_PROG_A68C])])
+
+# AC_PROG_A68C
+# ------------
+AN_MAKEVAR([A68C], [AC_PROG_A68C])
+AN_PROGRAM([ga68], [AC_PROG_A68C])
+AC_DEFUN([AC_PROG_A68C],
+[AC_LANG_PUSH(Algol 68)dnl
+AC_ARG_VAR([A68C], [Algol 68 compiler command])dnl
AC_ARG_VAR([A68FLAGS], [Algol 68 compiler flags])dnl
_AC_ARG_VAR_LDFLAGS()dnl
m4_ifval([$1],
- [AC_CHECK_TOOLS(A68, [$1])],
-[AC_CHECK_TOOL(A68, ga68)
-if test -z "$A68"; then
+ [AC_CHECK_TOOLS(A68C, [$1])],
+[AC_CHECK_TOOL(A68C, ga68)
+if test -z "$A68C"; then
if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(A68, [${ac_tool_prefix}ga68], [$ac_tool_prefix}ga68])
+ AC_CHECK_PROG(A68C, [${ac_tool_prefix}ga68], [$ac_tool_prefix}ga68])
fi
fi
-if test -z "$A68"; then
- AC_CHECK_PROG(A68, ga68, ga68, , , false)
+if test -z "$A68C"; then
+ AC_CHECK_PROG(A68C, ga68, ga68, , , false)
fi
])
@@ -151,5 +153,5 @@ _AC_DO_LIMIT([$ac_compiler --version >&AS_MESSAGE_LOG_FD])
m4_expand_once([_AC_COMPILER_EXEEXT])[]dnl
m4_expand_once([_AC_COMPILER_OBJEXT])[]dnl
A68FLAGS="-g -O2"
-AC_LANG_POP(A68)dnl
-])# AC_PROG_A68
+AC_LANG_POP(Algol 68)dnl
+])# AC_PROG_A68C
diff --git a/lib/freeze.mk b/lib/freeze.mk
index e65c128a..9535306f 100644
--- a/lib/freeze.mk
+++ b/lib/freeze.mk
@@ -89,7 +89,7 @@ autoconf_m4f_dependencies = \
$(src_libdir)/autoconf/fortran.m4 \
$(src_libdir)/autoconf/erlang.m4 \
$(src_libdir)/autoconf/go.m4 \
- $(src_libdir)/autoconf/a68.m4 \
+ $(src_libdir)/autoconf/a68.m4 \
$(src_libdir)/autoconf/functions.m4 \
$(src_libdir)/autoconf/headers.m4 \
$(src_libdir)/autoconf/types.m4 \
diff --git a/tests/a68.at b/tests/a68.at
index b99b50d2..e9ac00fc 100644
--- a/tests/a68.at
+++ b/tests/a68.at
@@ -27,7 +27,7 @@ AT_BANNER([Algol 68 low level compiling and utility macros.])
## Algol 68 Compiler. ##
## ------------------- ##
-AT_CHECK_MACRO([A68],
-[[AC_LANG(A68)
+AT_CHECK_MACRO([Algol 68],
+[[AC_LANG(Algol 68)
AC_LANG_COMPILER
]])
--
2.48.1