Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use ACE 4.1 #36

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
56227e7
preparation for ACE 4.1: standardise coset tables, skip banner correctly
dimpase Mar 12, 2023
8aa2fb3
ACE3 src to src.old, ACE4 src to src
dimpase Mar 12, 2023
dc566ec
bump version, add ACE4 manual
dimpase Mar 13, 2023
c8d2377
correct reported ACE binary version
dimpase Mar 13, 2023
9795812
fix output parsing for subgroup gens (after ACE's "ds")
dimpase Mar 13, 2023
ca68993
Merge pull request #1 from dimpase/dimpase-patch-1
dimpase Mar 13, 2023
14927b5
adjust test output
dimpase Mar 13, 2023
0f18e7f
fix parsing for ACEBinaryVersion()
dimpase Mar 13, 2023
6653d33
adjust parising for ACEBinaryVersion, remove stat(istics)
dimpase Mar 13, 2023
75aa044
remove ACEDumpVariables, as it relies on removed "dump" ACE command
dimpase Mar 13, 2023
3eeb8a9
remote traces of host stuff from docs
dimpase Mar 13, 2023
f80e2b4
remove ACEBinaryVersion as not giving anything intersting for ACE4
dimpase Mar 13, 2023
a6b379e
more of cleaning "stats" ACE option
dimpase Mar 14, 2023
4b614da
removing ao and ai options, part I
dimpase Mar 14, 2023
64e1a68
remove ignored options
dimpase Mar 14, 2023
3231705
remove old "hole" option
dimpase Mar 14, 2023
b8e5fc6
remove 'pmode' old option
dimpase Mar 14, 2023
2b7834c
removed old sources, moved tests/ and ex/ to src/
dimpase Mar 14, 2023
c4c240f
removed hardcoded gcc from Makefile
dimpase Mar 14, 2023
7f40f05
administrativia updates
dimpase Mar 14, 2023
d84e738
ACE 4.1 material provided by Colin Ramsay
dimpase Mar 14, 2023
ba22b37
removed a duplicate reference
dimpase Mar 14, 2023
f349d7f
fix typo
dimpase Mar 14, 2023
be8e85c
ace41 manual related stuff (#2)
dimpase Mar 21, 2023
4cc94af
use xetex for docs
dimpase Mar 21, 2023
6fd307d
build ACE docs, remove sources from tarball
dimpase Mar 21, 2023
6f269cc
test CI for doc building (#3)
dimpase Mar 23, 2023
1b3a806
update emails of ACE C code authors
dimpase Mar 25, 2023
76eb0b2
use updated docs action in CI.yml
dimpase Nov 29, 2023
d8382f5
explicitly install xetex and metapost in CI.yml
dimpase Nov 29, 2023
4399445
add missing ')'
dimpase Feb 7, 2024
4f9a345
add DEV to version #
dimpase Feb 7, 2024
6e01f32
Update .release
dimpase Feb 7, 2024
6e94401
Update README.md
dimpase Feb 8, 2024
b1103b3
replace tabs with spaces
dimpase Feb 8, 2024
0b46e3c
expand CHANGES, rename stadoc to otherdoc
dimpase Feb 8, 2024
f6ab03d
remote pmode, adjust tables
dimpase Feb 8, 2024
0a1dc19
added DEV to 5.7.0 everywhere else
dimpase Feb 8, 2024
720621a
Merge branch 'master' into master
dimpase May 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: 'Install xetex and metapost'
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends texlive-xetex texlive-metapost
- uses: gap-actions/setup-gap@v2
- uses: gap-actions/build-pkg-docs@v1
with:
Expand All @@ -74,3 +78,9 @@ jobs:
name: manual
path: ./doc/manual.pdf
if-no-files-found: error
- name: 'Upload ACE binary documentation'
uses: actions/upload-artifact@v3
with:
name: ace41
path: ./doc/ace41.pdf
if-no-files-found: error
28 changes: 17 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,34 @@
/gh-pages/
/tmp/

/doc/*.aux
/doc/*.bbl
/doc/*.blg
/doc/*.dvi
*.aux
*.bbl
*.blg
*.dvi
/doc/*.example-1.tst
/doc/*.example-2.tst
/doc/*.example-4.tst
/doc/*.example-6.tst
/doc/*.example-7.tst
/doc/*.example-8.tst
/doc/*.example-9.tst
/doc/*.idx
/doc/*.ilg
/doc/*.ind
/doc/*.lab
/doc/*.log
/doc/*.six
/doc/*.toc
*.idx
*.ilg
*.ind
*.lab
*.log
*.six
*.toc
*.lof
*.lot
*.mpx
*.eps
*.swp
/doc/manual.pdf
/doc/tthmacros.tex
/doc/tthout

/Makefile
/bin/
/src/ace
ace*.pdf
3 changes: 3 additions & 0 deletions .release
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
# documentation system. For details, please refer to
# <https://github.com/gap-system/gap/issues/4430>.
#
# don't package ACE binary doc sources
rm -rf standalone-doc/

# Note: we used to create symlinks instead of copying the files, which
# seems conceptually cleaner, but caused breakage in the GAP release
# process. Figuring out the details does not seem worth the hassle, so
Expand Down
7 changes: 7 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ In this file we record the changes since the 3.xxx versions of the ACE
package. Also look at gap/CHANGES for a history of the pre-3.xxx
development.

## Version 5.7.0DEV (2023-03-12)
* use ACE 4.1 sources, adjust GAP interface accordingly
dimpase marked this conversation as resolved.
Show resolved Hide resolved
in particular, take care of ACE's pmode option removed,
remove aceoutfile ACE GAP package option.
* build and install docs for the standalone ACE program


## Version 5.6.2 (2023-01-03)
* Enhance the `configure` script to accept `--with-gaproot=PATH`
* Drop the `-ansi` option from the flags passed to the C compiler
Expand Down
11 changes: 8 additions & 3 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,15 @@ distclean: clean
doc:
(cd doc;./make_doc)

# TeX sources of ace3001 manual are available in history of the package repository
# otherdoc:
# (cd standalone-doc;latex ace3001;bibtex ace3001;latex ace3001;latex ace3001)
# (cd standalone-doc;dvips ace3001 -o)
# (cd standalone-doc;rm ace3001.{toc,blg,log,aux})
#
# TeX sources of ace41 manual: to build the manual with xelatex and metapost
otherdoc:
(cd standalone-doc;latex ace3001;bibtex ace3001;latex ace3001;latex ace3001)
(cd standalone-doc;dvips ace3001 -o)
(cd standalone-doc;rm ace3001.{toc,blg,log,aux})
cd standalone-doc && make

Makefile: configure Makefile.in $(GAPPATH)/sysinfo.gap
./configure "$(GAPPATH)"
Expand Down
28 changes: 22 additions & 6 deletions PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ SetPackageInfo( rec(

PackageName := "ACE",
Subtitle := "Advanced Coset Enumerator",
Version := "5.6.2",
Date := "03/01/2023", # dd/mm/yyyy format
Version := "5.7.0DEV",
Date := "12/03/2023", # dd/mm/yyyy format
License := "MIT",

Persons := [
Expand All @@ -13,7 +13,7 @@ Persons := [
IsAuthor := true,
IsMaintainer := true,
Email := "[email protected]",
WWWHome := "http://staffhome.ecm.uwa.edu.au/~00021149",
WWWHome := "https://research-repository.uwa.edu.au/en/persons/gregory-gamble",
PostalAddress := Concatenation( [
"Greg Gamble\n",
"Department of Mathematics and Statistics\n",
Expand Down Expand Up @@ -46,7 +46,7 @@ Persons := [
FirstNames := "George",
IsAuthor := true,
IsMaintainer := false,
Email := "[email protected]",
Email := "[email protected]",
dimpase marked this conversation as resolved.
Show resolved Hide resolved
WWWHome := "http://staff.itee.uq.edu.au/havas",
PostalAddress := Concatenation( [
"George Havas\n",
Expand All @@ -64,7 +64,7 @@ Persons := [
FirstNames := "Colin",
IsAuthor := true,
IsMaintainer := false,
Email := "[email protected]",
Email := "[email protected]",
dimpase marked this conversation as resolved.
Show resolved Hide resolved
PostalAddress := Concatenation( [
"Colin Ramsay\n",
"Centre for Discrete Mathematics and Computing\n",
Expand All @@ -91,6 +91,22 @@ Persons := [
"Germany" ),
Place := "Kaiserslautern, Germany",
Institution := "RPTU Kaiserslautern-Landau"
),
rec(
LastName := "Pasechnik",
FirstNames := "Dmitrii",
IsAuthor := false,
IsMaintainer := true,
Email := "[email protected]",
WWWHome := "https://www.pasechnik.info",
PostalAddress := Concatenation(
"Department of Computer Science\n",
"University of Oxford\n",
"Wolfson Building, Parks Road\n",
"Oxford OX1 3QD\n",
"UK" ),
Place := "Oxford, UK",
Institution := "University of Oxford"
)
],

Expand Down Expand Up @@ -152,7 +168,7 @@ BannerString := Concatenation(
" <", ~.Persons[1].Email, "> (address for correspondence)\n",
" ", ~.Persons[2].FirstNames, " ", ~.Persons[2].LastName,
" (", ~.Persons[2].WWWHome, ")\n",
" [uses ACE binary (C code program) version: 3.001]\n",
" [uses ACE binary (C code program) version: 4.1]\n",
"C code by ", ~.Persons[3].FirstNames, " ", ~.Persons[3].LastName,
" (", ~.Persons[3].WWWHome, ")\n",
" ", ~.Persons[4].FirstNames, " ", ~.Persons[4].LastName,
Expand Down
27 changes: 8 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ enumeration by interfacing with the Advanced Coset Enumerator (ACE),
ACE coset enumerator (C) 1995-2001 by George Havas and Colin Ramsay
<http://staff.itee.uq.edu.au/havas>

from within GAP 4.
from within GAP 4. The current version uses
[ACE 4.1](https://outbox.eait.uq.edu.au/uqcramsa/ace4100.tar.gz).

The GAP interface (package) has been written by Alexander Hulpke and Greg
Gamble. In order to install the ACE package you must get the archive file
Expand Down Expand Up @@ -92,29 +93,17 @@ For details on how to use the ACE package see the package documentation
in the `doc` subdirectory (view either `manual.dvi` via `xdvi` or
`manual.ps` via `ghostview` or `manual.pdf` via a PDF viewer), which
gives information on how to use ACE from within GAP. The ACE user manual
(`ace3001.ps` or `ace3001.pdf`) in the `standalone-doc` directory,
(`ace3001.ps` for old ACE 3 or for the more recent one `ace4.pdf`,
used in the current package version) in the `standalone-doc` directory,
explains how to use the ACE binary (i.e. the C program that is interfaced
with by the package from within GAP) as a stand-alone.

The `src` subdirectory contains a copy of the C source code for ACE. The
only modification are those listed in src/CHANGES. In particular, the
the following bug was fixed on 25 February, 2001.

A bug was discovered in ACE 3.000 on 22 December, 2000 that was
particularly manifested by the Linux gcc compilers listed below. The bug
was reported with fix by Volker Gebhardt (thanks!) and caused a
segmentation fault when ACE output coset representatives. The fix is
incorporated in ACE 3.001 which we now use.

ACE has been compiled successfully with the following C compiler:

gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1)

and is presumed to compile with any modern version of C compiler.
The `src` subdirectory contains a copy of the C source code for ACE.
The only modifications made were for `make.linux`.

If you encounter problems with the ACE binary, please contact one of the
C code authors: George Havas <[email protected]> or Colin Ramsay
<[email protected]>.
C code authors: George Havas <[email protected]> or Colin Ramsay
<[email protected]>.

If you encounter problems at the GAP level, please submit an issue to
<https://github.com/gap-packages/ace/issues>
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.6.2
5.7.0DEV
16 changes: 6 additions & 10 deletions doc/ace.tex
Original file line number Diff line number Diff line change
Expand Up @@ -705,9 +705,7 @@

\quad`outfile'& the full path of the {\ACE} output file; and

\quad`version'& the version of the current {\ACE} binary. More
detailed information regarding the compilation of the binary is given
by `ACEBinaryVersion' (see~"ACEBinaryVersion").
\quad`version'& the version of the current {\ACE} binary.

\enditems

Expand Down Expand Up @@ -816,11 +814,10 @@

\endexample

enables the display of all of the output from {\ACE} (including
{\ACE}'s banner, containing the host machine information); in
particular, the progress messages, emitted by {\ACE} when the
`messages' option (see~"option messages") is set to a non-zero value,
will be displayed via `Info'. Finally,
enables the display of all of the output from {\ACE} (including {\ACE}'s
banner); in particular, the progress messages, emitted by {\ACE} when
the `messages' option (see~"option messages") is set to a non-zero value, will
be displayed via `Info'. Finally,

\beginexample
gap> SetInfoACELevel(4);
Expand Down Expand Up @@ -887,8 +884,7 @@
\>ACEPackageVersion() F

gives the current version of the {\ACE} Package (i.e.~the {\GAP} code
component; the function `ACEBinaryVersion' (see~"ACEBinaryVersion")
gives details of the C code compilation).
component).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
Expand Down
17 changes: 8 additions & 9 deletions doc/basics.tex
Original file line number Diff line number Diff line change
Expand Up @@ -200,8 +200,8 @@
positions in the relators; i.e.~this is a Felsch-like style.

However, in C style, some definitions may be made following a
preferred definition strategy, controlled by the `pmode' and `psize'
options (see~"option pmode" and~"option psize").
preferred definition strategy, controlled by the `psize'
options (see~"option psize").

\atindex{Cr style}{@Cr style}
*Cr style* &
Expand Down Expand Up @@ -310,13 +310,12 @@
of each potential definition. In particular, definitions which close
relator cycles (or at least shorten gaps in cycles) are favoured. A
definition which actually closes a relator cycle immediately yields
twice as many table entries (deductions) as other definitions. The
value of the `pmode' option (see~"option pmode") determines which
definitions are *preferred*; if the value of the `pmode' option is
non-zero, depending on the `pmode' value, gaps of length one found
during relator C style (i.e.~Felsch-like) scans are either filled
immediately (subject to the value of `fill') or noted in the
*preferred definition stack*. The preferred definition stack is
twice as many table entries (deductions) as other definitions.
Gaps of length one found during relator C style (i.e.~Felsch-like) scans
are either filled immediately (subject to the value of `fill') or noted
in the *preferred definition stack*.

The preferred definition stack is
implemented as a ring of size determined by the `psize' option
(see~"option psize"). However, making preferred definitions carelessly
can violate the conditions required for guaranteed termination of the
Expand Down
2 changes: 0 additions & 2 deletions doc/examples.tex
Original file line number Diff line number Diff line change
Expand Up @@ -646,13 +646,11 @@
dmode := 0
dsize := 1000
fill := 1
hole := -1
lookahead := 1
loop := 0
mendelsohn := 0
no := 0
path := 0
pmode := 0
psize := 256
row := 1
rt := 1000
Expand Down
79 changes: 0 additions & 79 deletions doc/interact.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1014,85 +1014,6 @@
standalone gurus. To fully understand their output you will need to
consult the standalone manual and the C source code.

\>ACEDumpVariables( <i> ) F
\>ACEDumpVariables() F
\>ACEDumpVariables( <i>, [<level>] ) F
\>ACEDumpVariables( [<level>] ) F
\>ACEDumpVariables( <i>, [<level>, <detail>] ) F
\>ACEDumpVariables( [<level>, <detail>] ) F

dump the internal variables of {\ACE} of the <i>th (or default)
process started by `ACEStart'; <level> should be one of 0, 1, or 2,
and <detail> should be 0 or 1.

The value of <level> determines which of the three levels of {\ACE} to
dump. (You will need to read the standalone manual to understand what
Levels 0, 1 and 2 are all about.) The value of <detail> determines the
amount of detail (`<detail> = 0' means less detail). The first two
forms of `ACEDumpVariables' (with no list argument) selects `<level> =
0, <detail> = 0'. The third and fourth forms (with a list argument
containing the integer <level>) makes `<detail> = 0'. This command is
intended for gurus; the source code should be consulted to see what
the output means.

\>ACEDumpStatistics( <i> ) F
\>ACEDumpStatistics() F

dump {\ACE}'s internal statistics accumulated during the most recent
enumeration of the <i>th (or default) process started by `ACEStart',
provided the {\ACE} binary was built with the statistics package
(which it is by default). Use `ACEBinaryVersion();'
(see~"ACEBinaryVersion") to check for the inclusion of the statistics
package. See the `enum.c' source file for the meaning of the
variables.

\>ACEBinaryVersion( <i> ) F
\>ACEBinaryVersion() F

for the <i>th (or default) process started by `ACEStart', print, via
`Info' (at `InfoACE' level 1), version details of the {\ACE} binary
you are currently running, including what compiler flags were set when
the executable was built, and also returns the version number of the
binary as a string. Essentially the information obtained is what is
obtained via {\ACE}'s `options' option (see~"option options"), and the
returned value is what is stored in `ACEData.version' (see~"ACEData").
A typical output, illustrating the default build, is:

\beginexample
gap> ACEBinaryVersion();
#I No interactive ACE sessions are currently active
#I ACE Binary Version: 3.001
#I ACE 3.001 Sat Feb 27 11:27:15 2016
#I =========================================
#I Host information:
#I name = banksia
#I ACE 3.001 executable built:
#I Wed Feb 24 15:25:26 AWST 2016
#I Level 0 options:
#I statistics package = on
#I coinc processing messages = on
#I dedn processing messages = on
#I Level 1 options:
#I workspace multipliers = decimal
#I Level 2 options:
#I host info = on
"3.001"

\endexample

*Notes:*
The {\ACE} binary's banner may also appear in the output (if it has
not already appeared). Unlike other {\ACE} interface functions, the
information obtained via `ACEBinaryVersion();' is absolutely
independent of any enumeration. For this reason, we make it
permissible to run `ACEBinaryVersion();' when there are no currently
active interactive {\ACE} processes; and, in such a case,
`ACEBinaryVersion();' emits a warning that there are no interactive
{\ACE} sessions currently active and initiates (and closes again) its
own stream to obtain the information from the {\ACE} binary. For the
current version of the {\ACE} package (the {\GAP} code component) use
`ACEPackageVersion();' (see~"ACEPackageVersion").

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Interactive Versions of Non-interactive ACE Functions}

Expand Down
Loading
Loading