README 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. -*- org -*-
  2. [[https://www.mersenneforum.org/mayer/README.html][Mlucas 17.1]]
  3. mlucas is an open-source (and free/libre) program for performing Lucas-Lehmer
  4. test on prime-exponent Mersenne numbers, that is, integers of the form
  5. 2 ^ p - 1, with prime exponent p. In short, everything you need to search for
  6. world-record Mersenne primes! It has been used in the verification of various
  7. Mersenne primes, including the 45th, 46th, 48th, 49th and 50th found Mersenne
  8. prime.
  9. You may use it to test any suitable number as you wish, but it is preferable
  10. that you do so in a coordinated fashion, as part of the Great Internet Mersenne
  11. Prime Search ([[https://www.mersenne.org/primes/][GIMPS]]).
  12. * Installation
  13. Run
  14. #+BEGIN_SRC
  15. ./configure
  16. make
  17. make check
  18. make install
  19. #+END_SRC
  20. to complete the installation.
  21. Normally, the configure script should guess your system configuration.
  22. However, you can always override it by passing flags to the configure script.
  23. Running test is optional. Run it if you want to be on the safe side.
  24. Below is a summary of notable options understood by the configure script.
  25. You can see all options by running ~./configure -h~.
  26. * Notable Options
  27. System types:
  28. --host=HOST cross-compile to build programs to run on HOST [BUILD]
  29. Optional Features:
  30. --enable-silent-rules less verbose build output (undo: "make V=1")
  31. --disable-silent-rules verbose build output (undo: "make V=0")
  32. --disable-threads disable thread support detection
  33. --enable-mlucas-default-path
  34. set MLUCAS_DEFAULT_PATH (unset by default) to
  35. "$HOME/.mlucas.d/"
  36. --enable-compiler-features[=feature[,...]]
  37. list of compiler features to be detected (default to
  38. optimization,debugging,hardening if none is given)
  39. --disable-compiler-features
  40. disable compiler features detection
  41. --enable-builds[=build[,...]]
  42. list of build variants to be enabled (default to
  43. generic-c,sse2 for x86 host,
  44. generic-c,sse2,avx,avx2,avx512 for x86_64 host if
  45. none is given)
  46. --enable-verbose-compiler
  47. ignored and will be removed in the future
  48. --enable-instruction ignored and will be removed in the future
  49. --enable-MLUCAS-DEFAULT-PATH
  50. ignored and will be removed in the future
  51. * Usage
  52. [[https://www.mersenneforum.org/mayer/README.html][Online documentation]]
  53. is available.
  54. To show the help text, run ~./mlucas -h~.
  55. After installation, you can run ~man mlucas~ to show the man page.
  56. * Licensing
  57. Most of the files are licensed under the GNU General Public License version 2
  58. or later. Other files are under permissive licenses or in the public domain.
  59. All files except empty files or generated data should have a license header
  60. or footer. If not, please send a bug report (see [[Bugs]] for details).
  61. See file:COPYING for details regarding licensing.
  62. * Bugs
  63. The argument parser is buggy. The relative position of arguments is relevant
  64. to mlucas, the order of arguments in SYNOPSIS in mlucas(1) should be followed
  65. to avoid confusing the parser. Only 100, 1000 and 10000 are supported for
  66. -iters flag. However, the parser will not reject unsupported arguments. Using
  67. unsupported arguments for -iters flag may trigger strange behaviour.
  68. For problems regarding the program mlucas, please contact the author
  69. [[mailto:ewmayer@aol.com][Ernst W. Mayer]].
  70. For installation and documentation related problems regarding this package
  71. and this file:README, please contact
  72. [[mailto:alexvong1995@gmail.com][Alex Vong]].
  73. See BUGS section in mlucas(1) for details.
  74. * ROADMAP
  75. - simplify to reduce maintenance burden
  76. + replace autogen by guile
  77. + remove useless, duplicate files
  78. - documentation
  79. + use org-mode in various plain text files
  80. + replace pod with something lispy
  81. - configure script
  82. + use sane defaults
  83. + remove normal cflags, tricky flags
  84. + detect if compilers support certain flags in configure script
  85. - respect freedesktop standard
  86. + use file:~/.local/share/mlucas/ instead of file:~/.mlucas.d/
  87. - revert previous changes
  88. + replace use of ~mlucas_fopen()~ by ~fopen()~
  89. + and use ~chdir()~ instead
  90. + replace use of ~system("mkdir -p ...")~ with ~mkdir_p()~ from busybox
  91. + hence we can remove ~shell_quote()~ and friends
  92. - find out memory bugs
  93. + asan
  94. + ubsan
  95. + valgrind
  96. * Copyright
  97. README - readme for Mlucas
  98. Copyright (C) 2015-2019 Alex Vong
  99. This program is free software; you can redistribute it and/or
  100. modify it under the terms of the GNU General Public License
  101. as published by the Free Software Foundation; either version 2
  102. of the License, or (at your option) any later version.
  103. This program is distributed in the hope that it will be useful,
  104. but WITHOUT ANY WARRANTY; without even the implied warranty of
  105. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  106. GNU General Public License for more details.
  107. You should have received a copy of the GNU General Public License
  108. along with this program; if not, write to the Free Software Foundation,
  109. Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.