Skip to content
Permalink
Browse files

Merge branch 'develop' back into vectorconf.

  • Loading branch information...
cryptogenomicon committed Apr 29, 2017
2 parents 53515d5 + 2f5278d commit 9aa3b9ece0056bb6c07e89a94050df4f5ef60dc9
Showing with 890 additions and 1,753 deletions.
  1. +1 −1 Makefile.in
  2. +25 −48 configure.ac
  3. +11 −0 decoy_config.h.in
  4. +0 −155 devkit/esl-dependencies
  5. +4 −14 documentation/codestyle.tex
  6. +0 −83 documentation/intro.tex
  7. +0 −6 documentation/statistics.tex
  8. +0 −3 easel.c
  9. +3 −15 easel.h
  10. +5 −4 esl_alphabet.h
  11. +2 −1 esl_avx.c
  12. +2 −2 esl_avx.h
  13. +1 −1 esl_buffer.c
  14. +1 −0 esl_buffer.h
  15. +1 −0 esl_cluster.h
  16. +2 −0 esl_composition.h
  17. +0 −54 esl_config.h.in
  18. +7 −29 esl_dirichlet.c
  19. +11 −21 esl_dirichlet.h
  20. +2 −8 esl_dirichlet.tex
  21. +14 −79 esl_distance.c
  22. +5 −22 esl_distance.h
  23. +5 −10 esl_distance.tex
  24. +1 −0 esl_dmatrix.h
  25. +7 −5 esl_dsqdata.c
  26. +4 −4 esl_dsqdata.h
  27. +7 −20 esl_exponential.c
  28. +5 −13 esl_exponential.h
  29. +1 −0 esl_fileparser.h
  30. +5 −18 esl_gamma.c
  31. +2 −10 esl_gamma.h
  32. +1 −0 esl_gencode.c
  33. +1 −0 esl_gencode.h
  34. +1 −1 esl_getopts.h
  35. +7 −28 esl_gev.c
  36. +4 −7 esl_gev.h
  37. +0 −8 esl_gev.tex
  38. +8 −22 esl_gumbel.c
  39. +6 −7 esl_gumbel.h
  40. +0 −9 esl_gumbel.tex
  41. +0 −1 esl_heap.h
  42. +2 −1 esl_histogram.c
  43. +1 −0 esl_histogram.h
  44. +3 −1 esl_hmm.c
  45. +1 −0 esl_hmm.h
  46. +4 −0 esl_huffman.c
  47. +1 −3 esl_huffman.h
  48. +16 −37 esl_hyperexp.c
  49. +10 −17 esl_hyperexp.h
  50. +1 −0 esl_keyhash.c
  51. +1 −0 esl_keyhash.h
  52. +0 −1 esl_mem.c
  53. +1 −1 esl_mem.h
  54. +1 −0 esl_minimizer.c
  55. +1 −0 esl_minimizer.h
  56. +9 −18 esl_mixgev.c
  57. +2 −8 esl_mixgev.h
  58. +3 −6 esl_mpi.c
  59. +3 −2 esl_mpi.h
  60. +229 −208 esl_msa.c
  61. +8 −15 esl_msa.h
  62. +24 −38 esl_msa.tex
  63. +2 −22 esl_msacluster.c
  64. +1 −1 esl_msacluster.h
  65. +0 −5 esl_msacluster.tex
  66. +60 −29 esl_msafile.c
  67. +3 −6 esl_msafile.h
  68. +12 −29 esl_msafile2.c
  69. +7 −23 esl_msafile2.h
  70. +90 −25 esl_msafile_a2m.c
  71. +1 −0 esl_msafile_a2m.h
  72. +3 −10 esl_msafile_afa.c
  73. +1 −0 esl_msafile_afa.h
  74. +4 −21 esl_msafile_clustal.c
  75. +1 −0 esl_msafile_clustal.h
  76. +2 −14 esl_msafile_phylip.c
  77. +1 −0 esl_msafile_phylip.h
  78. +3 −10 esl_msafile_psiblast.c
  79. +1 −0 esl_msafile_psiblast.h
  80. +3 −10 esl_msafile_selex.c
  81. +1 −0 esl_msafile_selex.h
  82. +4 −32 esl_msafile_stockholm.c
  83. +5 −0 esl_msafile_stockholm.h
  84. +2 −11 esl_msashuffle.c
  85. +2 −5 esl_msashuffle.h
  86. +13 −23 esl_msaweight.c
  87. +1 −0 esl_msaweight.h
  88. +1 −0 esl_neon.h
  89. +4 −3 esl_neon64.h
  90. +1 −0 esl_normal.h
  91. +3 −1 esl_paml.h
  92. +1 −1 esl_quicksort.h
  93. +1 −0 esl_random.h
  94. +1 −0 esl_randomseq.h
  95. +0 −3 esl_ratematrix.c
  96. +1 −0 esl_ratematrix.h
  97. +1 −2 esl_recorder.h
  98. +2 −1 esl_red_black.c
  99. +2 −1 esl_red_black.h
  100. +1 −0 esl_regexp.h
  101. +0 −1 esl_rootfinder.h
  102. +2 −2 esl_scorematrix.c
  103. +1 −0 esl_scorematrix.h
  104. +9 −59 esl_sq.c
  105. +2 −19 esl_sq.h
  106. +4 −4 esl_sq.tex
  107. +27 −74 esl_sqio.c
  108. +5 −24 esl_sqio.h
  109. +2 −8 esl_sqio.tex
  110. +6 −43 esl_sqio_ascii.c
  111. +7 −18 esl_sqio_ascii.h
  112. +2 −5 esl_sqio_ncbi.c
  113. +3 −3 esl_sqio_ncbi.h
  114. +4 −3 esl_sse.h
  115. +2 −6 esl_ssi.h
  116. +9 −13 esl_stack.c
  117. +1 −5 esl_stack.h
  118. +1 −0 esl_stats.h
  119. +2 −1 esl_stopwatch.c
  120. +1 −0 esl_stopwatch.h
  121. +13 −29 esl_stretchexp.c
  122. +4 −12 esl_stretchexp.h
  123. +1 −0 esl_threads.h
  124. +3 −2 esl_tree.c
  125. +3 −2 esl_tree.h
  126. +4 −3 esl_vectorops.c
  127. +7 −6 esl_vectorops.h
  128. +3 −2 esl_vmx.h
  129. +15 −31 esl_weibull.c
  130. +4 −13 esl_weibull.h
  131. +1 −0 esl_workqueue.h
  132. +1 −1 esl_wuss.h
  133. +1 −1 interface_gsl.c
  134. +6 −4 interface_gsl.h
  135. +5 −4 interface_lapack.c
  136. +4 −2 interface_lapack.h
@@ -636,7 +636,7 @@ ifneq (,$(wildcard ./documentation/.))
endif
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} distclean
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} distclean
-rm esl_config.h
-rm esl_config.h decoy_config.h
-rm -rf autom4te.cache
-rm LICENSE.sh
-rm Makefile
@@ -33,6 +33,11 @@
# 13. AC_OUTPUT
#
# Order obeys autoconf manual, "standard configure.ac layout".
#
# Use full 3-arg form of AC_DEFINE() macros. autoheader chokes if you
# don't. We don't use autoheader (we only use autoconf, out of the
# GNU build tools, to limit complexity) but some packagers do, such
# as Debian.



@@ -111,11 +116,10 @@ AC_SUBST(EASEL_LICENSE)
AC_SUBST(EASEL_VERSION)
AC_SUBST(EASEL_URL)

AC_DEFINE_UNQUOTED(EASEL_DATE, "$EASEL_DATE")
AC_DEFINE_UNQUOTED(EASEL_COPYRIGHT, "$EASEL_COPYRIGHT")
AC_DEFINE_UNQUOTED(EASEL_LICENSE, "$EASEL_LICENSE")
AC_DEFINE_UNQUOTED(EASEL_VERSION, "$EASEL_VERSION")

AC_DEFINE_UNQUOTED([EASEL_DATE], ["$EASEL_DATE"], [Release date])
AC_DEFINE_UNQUOTED([EASEL_COPYRIGHT], ["$EASEL_COPYRIGHT"], [Brief copyright statement])
AC_DEFINE_UNQUOTED([EASEL_LICENSE], ["$EASEL_LICENSE"], [Brief license statement])
AC_DEFINE_UNQUOTED([EASEL_VERSION], ["$EASEL_VERSION"], [Version number])

# Figure out what host we're compiling on.
# Three GNU scripts must be included in the distro:
@@ -135,33 +139,6 @@ AC_CANONICAL_HOST
# 4. Process ./configure command line options
################################################################

# --enable-modular - configure for use of standalone modules
#
# Default is to enable all augmentations and compile entire library.
# With --enable-modular, any desired augmentations must be set
# at compile-time by the user.
#
AC_ARG_ENABLE(modular,[AS_HELP_STRING([--enable-modular],[compile and prepare modules for standalone use])],
[
AC_MSG_NOTICE([Compiling for standalone (independent) use of modules.])
],
[
AC_MSG_NOTICE([Compiling the full Easel library, with all augmentations.])
AC_DEFINE(eslAUGMENT_ALPHABET)
AC_DEFINE(eslAUGMENT_NCBI)
AC_DEFINE(eslAUGMENT_DMATRIX)
AC_DEFINE(eslAUGMENT_FILEPARSER)
AC_DEFINE(eslAUGMENT_GEV)
AC_DEFINE(eslAUGMENT_GUMBEL)
AC_DEFINE(eslAUGMENT_HISTOGRAM)
AC_DEFINE(eslAUGMENT_KEYHASH)
AC_DEFINE(eslAUGMENT_MINIMIZER)
AC_DEFINE(eslAUGMENT_MSA)
AC_DEFINE(eslAUGMENT_RANDOM)
AC_DEFINE(eslAUGMENT_SSI)
AC_DEFINE(eslAUGMENT_STATS)
AC_DEFINE(eslLIBRARY)
])

# --enable-debugging - enable basic debugging code (level 1)
# --enable-debugging=x - also set verbosity level to <x> (1-3)
@@ -175,11 +152,11 @@ AS_HELP_STRING([--enable-debugging=x],[also set diagnostics verbosity level to <
enable_debugging=$enableval, enable_debugging=no)

case $enable_debugging in
yes) AC_DEFINE(eslDEBUGLEVEL, 1);;
1) AC_DEFINE(eslDEBUGLEVEL, 1);;
2) AC_DEFINE(eslDEBUGLEVEL, 2);;
3) AC_DEFINE(eslDEBUGLEVEL, 3);;
no) AC_DEFINE(eslDEBUGLEVEL, 0);;
yes) AC_DEFINE([eslDEBUGLEVEL], 1, [debugging on, low verbosity]);;
1) AC_DEFINE([eslDEBUGLEVEL], 1, [debugging on, low verbosity]);;
2) AC_DEFINE([eslDEBUGLEVEL], 2, [debugging on, moderate verbosity]);;
3) AC_DEFINE([eslDEBUGLEVEL], 3, [debugging on, high verbosity]);;
no) AC_DEFINE([eslDEBUGLEVEL], 0, [debugging off]);;
*) AC_MSG_ERROR([Unknown argument to --enable-debugging: $enable_debugging]);;
esac

@@ -254,7 +231,7 @@ fi
#
if test "$enable_threads" != "no"; then
AX_PTHREAD([
AC_DEFINE(HAVE_PTHREAD)
AC_DEFINE(HAVE_PTHREAD, 1, [Set to enable POSIX multithreading])
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
],[
@@ -293,7 +270,7 @@ fi
#
if test "$enable_sse" = "yes" || test "$enable_sse" = "check"; then
ESL_SSE([
AC_DEFINE(eslENABLE_SSE)
AC_DEFINE(eslENABLE_SSE, 1, [Set to enable the SSE vector implementation])
SSE_CFLAGS=$esl_sse_cflags
AC_SUBST(SSE_CFLAGS)
enable_sse=yes
@@ -307,7 +284,7 @@ fi

if test "$enable_avx" = "yes" || test "$enable_avx" = "check"; then
ESL_AVX([
AC_DEFINE(eslENABLE_AVX)
AC_DEFINE(eslENABLE_AVX, 1, [Set to enable the AVX vector implementation])
AVX_CFLAGS=$esl_avx_cflags
AC_SUBST(AVX_CFLAGS)
enable_avx=yes
@@ -321,7 +298,7 @@ fi

if test "$enable_avx512" = "yes" || test "$enable_avx512" = "check"; then
ESL_AVX512([
AC_DEFINE(eslENABLE_AVX512)
AC_DEFINE(eslENABLE_AVX512, 1, [Set to enable the AVX-512 vector implementation])
AVX512_CFLAGS=$esl_avx512_cflags
AC_SUBST(AVX512_CFLAGS)
enable_avx512=yes
@@ -333,11 +310,10 @@ if test "$enable_avx512" = "yes" || test "$enable_avx512" = "check"; then
])
fi


if test "$enable_neon" = "yes" || test "$enable_neon" = "check"; then
ESL_NEON([
AC_DEFINE(eslENABLE_NEON)
AS_VAR_IF([esl_have_neon_aarch64],[yes],[AC_DEFINE(eslHAVE_NEON_AARCH64)])
AC_DEFINE(eslENABLE_NEON, 1, [Set to enable the ARM NEON vector implementation])
AS_VAR_IF([esl_have_neon_aarch64],[yes],[AC_DEFINE(eslHAVE_NEON_AARCH64, 1, [Set to enable the ARM AARCH64 version of NEON])])
NEON_CFLAGS=$esl_neon_cflags
AC_SUBST(NEON_CFLAGS)
enable_neon=yes
@@ -351,7 +327,7 @@ fi

if test "$enable_vmx" = "yes" || test "$enable_vmx" = "check"; then
ESL_VMX([
AC_DEFINE(eslENABLE_VMX)
AC_DEFINE(eslENABLE_VMX, 1, [Set to enable the Altivec/VMX vector implementation])
VMX_CFLAGS=$esl_vmx_cflags
AC_SUBST(VMX_CFLAGS)
enable_vmx=yes
@@ -379,7 +355,7 @@ AC_COMPILE_IFELSE(
[#include <xmmintrin.h>],
[_MM_SET_FLUSH_ZERO_MODE (_MM_FLUSH_ZERO_ON);])],
[ AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_FLUSH_ZERO_MODE])],
AC_DEFINE([HAVE_FLUSH_ZERO_MODE], 1, [Set to support FTZ, flush-to-zero mode])],
[ AC_MSG_RESULT([no]) ])

AC_MSG_CHECKING([whether denormals-are-zero (DAZ) is supported])
@@ -388,7 +364,7 @@ AC_COMPILE_IFELSE(
[#include <pmmintrin.h>],
[_MM_SET_DENORMALS_ZERO_MODE (_MM_DENORMALS_ZERO_ON);])],
[ AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_DENORMALS_ZERO_MODE])],
AC_DEFINE([HAVE_DENORMALS_ZERO_MODE], 1, [Set to support DAZ, denormals-are-zero mode])],
[ AC_MSG_RESULT([no]) ])

CFLAGS="$esl_save_cflags"
@@ -400,7 +376,7 @@ AC_PATH_PROG(HAVE_GZIP, "gzip", "no")
if test "${HAVE_GZIP}" = "no"; then
AC_MSG_WARN([gzip not found])
else
AC_DEFINE(HAVE_GZIP)
AC_DEFINE([HAVE_GZIP],1,[Support external gzip decompression])
fi


@@ -545,6 +521,7 @@ AC_SYS_LARGEFILE
#################################################################
# 13. Write out esl_config.h header and the Makefiles
#################################################################
AC_CONFIG_HEADERS([decoy_config.h]) # This keeps gnu 'autoheader' from overwriting our esl_config.h.in
AC_CONFIG_HEADERS([esl_config.h])
AC_CONFIG_FILES([miniapps/Makefile])
AC_CONFIG_FILES([testsuite/Makefile])
@@ -0,0 +1,11 @@
/* decoy_config.h.in
*
* Easel doesn't use this at all. Some packagers (e.g. Debian)
* inexplicably run GNU 'autoheader' as part of their build/release
* cycle, which will overwrite and destroy esl_config.h.in if we don't
* do something about it. It appears to be sufficient to put
* AC_CONFIG_HEADERS([decoy_config.h])
* first in our configure.ac, to distract autoheader. (autoheader
* only looks at the first AC_CONFIG_HEADERS() to construct its
* output .in filename.)
*/

This file was deleted.

@@ -165,10 +165,8 @@ \subsection{The .c file}
that may affect even the standard library header files. Standard
headers like \ccode{stdio.h} come next, then Easel's main header
\ccode{easel.h}; then headers of any other Easel modules this module
depends on; then any headers for modules this module can be augmented
with, surrounded by appropriate \ccode{\#ifdef}'s; then the module's
own header. For example, the \ccode{\#include}'s in the
\eslmod{buffer} module look like:
depends on, then the module's own header. For example, the
\ccode{\#include}'s in the \eslmod{buffer} module look like:

\input{cexcerpts/include_example}

@@ -197,13 +195,8 @@ \subsection{The .c file}
destroying the object that this module implements.

\item[\textbf{The rest of the API.}]
Everything else that is part of the API for this module in its
baseline (unaugmented) form. This might be split across multiple
sections.

\item[\textbf{Augmented API, if any.}]
Any functions that are only available with one or more augmentations
are split out into one or more separate sections.
Everything else that is part of the API for this module.
This might be split across multiple sections.

\item[\textbf{Debugging/dev code.}]
Most objects can be validated or dumped to an output stream
@@ -1441,9 +1434,6 @@ \section{Writing unit tests}
tests must temporarily register a nonfatal error handler when testing
exceptions.

Unit tests should test all possible combinations of augmentations that
may affect a function.

Every function, procedure, and macro in the exposed API shall be
tested by one or more unit tests. The unit tests aim for complete code
coverage. This is measured by code coverage tests using \ccode{gcov}.

0 comments on commit 9aa3b9e

Please sign in to comment.
You can’t perform that action at this time.