Example Example/Template of a GAP Package and Guidelines for Package Authors Version 3.5.1 4 February 2017 Werner Nickel Greg Gamble Alexander Konovalov Werner Nickel Email: mailto:nickel@mathematik.tu-darmstadt.de Homepage: http://www.mathematik.tu-darmstadt.de/~nickel Greg Gamble Email: mailto:gregg@math.rwth-aachen.de Homepage: http://www.math.rwth-aachen.de/~Greg.Gamble Alexander Konovalov Email: mailto:alexk@mcs.st-andrews.ac.uk Homepage: http://www.cs.st-andrews.ac.uk/~alexk/ ------------------------------------------------------- Copyright © 1997-2012 by Werner Nickel, Greg Gamble and Alexander Konovalov Example package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (http://www.fsf.org/licenses/gpl.html) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ------------------------------------------------------- Acknowledgements We appreciate very much all past and future comments, suggestions and contributions to this package and its documentation provided by GAP users and developers. ------------------------------------------------------- Contents (Example) 1 The Example Package 1.1 The Main Functions 1.1-1 ListDirectory 1.1-2 FindFile 1.1-3 LoadedPackages 1.1-4 Which 1.1-5 WhereIsPkgProgram 1.1-6 HelloWorld 1.1-7 FruitCake 1.1-8 Recipe 2 Installing and Loading the Example Package 2.1 Unpacking the Example Package 2.2 Compiling Binaries of the Example Package 2.3 Loading the Example Package A Guidelines for Writing a GAP Package A.1 Structure of a GAP Package A.2 Writing Documentation and Tools Needed A.3 An Example of a GAP Package A.4 File Structure A.5 The PackageInfo.g File A.6 Functions and Variables and Choices of Their Names A.7 Package Dependencies (Requesting one GAP Package from within Another) A.8 Declaration and Implementation Part of a Package A.9 Autoreadable Variables A.10 Standalone Programs in a GAP Package A.10-1 Installation of GAP Package Binaries A.10-2 Test for the Existence of GAP Package Binaries A.10-3 Calling of and Communication with External Binaries A.11 Having an InfoClass A.12 The Banner A.13 Version Numbers A.14 Testing a GAP package A.14-1 Tests files for a GAP package A.14-2 Testing GAP package loading A.14-3 LoadAllPackages A.14-4 Testing a GAP package with the GAP standard test suite A.15 Access to the GAP Development Version A.16 Selecting a license for a GAP Package A.17 Wrapping up a GAP Package A.18 The WWW Homepage of a Package A.19 Upgrading the package to work with GAP 4.5 A.19-1 Changes in GAP 4.5 from the packages perspective A.20 Checklists A.20-1 Package release checklist A.20-2 Checklist for package upgrade to work with GAP 4.5