1. 19 Jan, 2020 1 commit
    • Marius Gerbershagen's avatar
      tests: fix output-streams test from the run-program testsuite · 3267bf7f
      Marius Gerbershagen authored
      The test was failing because it was detecting an output of
      
      "
      
      Hello stdoutHello stderr"
      
      instead of the expected
      
      "
      Hello stdout
      Hello stderr"
      
      The reason for this is that the buffers of the
      streams *standard-output* and *error-output* may be distinct, even if
      the ouput send to both streams ends up in the same place. Thus, we
      need to explicitely force-output in print-test. The error manifested
      itself only in builds without thread support, because otherwise ECL
      uses write instead of fwrite, avoiding any buffering.
      3267bf7f
  2. 17 Jan, 2020 1 commit
  3. 13 Jan, 2020 1 commit
  4. 12 Jan, 2020 6 commits
  5. 11 Jan, 2020 3 commits
    • Marius Gerbershagen's avatar
    • Marius Gerbershagen's avatar
      configure: check if feenableexcept is actually working · e65e23ee
      Marius Gerbershagen authored
      Not all processors will signal floating point exceptions even when
      told so, for example the Raspberry Pi as Dave Richards pointed out on
      the ecl-devel mailing list.
      e65e23ee
    • Marius Gerbershagen's avatar
      ieee_fp: use explicit checks for fpe bits if feenableexcept is not declared · cb03494a
      Marius Gerbershagen authored
      Using isnan and isfinite to check for floating point exceptions
      doesn't work when we want floats to be able to have infinity or NaN as
      values, thus this option was removed with commit
      5f71f728. However, we can still use
      fetestexcept to explicitly check if floating point exceptions occurred
      even when we can't use the feenableexcept/SIGFPE signal delivery
      mechanism.
      
      Previously, we had something like this in the
      ECL_MATHERR_TEST/ECL_MATHERR_CLEAR macros, but this was not used
      consistently in our codebase (the ECL_MATHERR_TEST macro was missing
      in many places). Instead of error-prone testing at every point of
      computation, we call fetestexcept in DO_DETECT_FPE when creating a new
      float/complex float. In order to avoid having to do this twice, the
      DO_DETECT_FPE2 macro is introduced.
      
      A minor disadvantage of this strategy is that floating point
      exceptions may be signaled later than they occurred.
      cb03494a
  6. 06 Jan, 2020 1 commit
  7. 04 Jan, 2020 2 commits
  8. 02 Jan, 2020 2 commits
  9. 31 Dec, 2019 1 commit
  10. 30 Dec, 2019 4 commits
  11. 29 Dec, 2019 1 commit
  12. 26 Dec, 2019 2 commits
    • Marius Gerbershagen's avatar
      tests: Add stack overflow test · cb2cc7a8
      Marius Gerbershagen authored
      cb2cc7a8
    • Marius Gerbershagen's avatar
      Change handling of C stack size · d7b2dfb7
      Marius Gerbershagen authored
      Previously: unconditionally use the size from ECL_OPT_C_STACK_SIZE if
      it is larger than the OS provided value and if possible resize the
      stack at runtime.
      
      Now: Use ECL_OPT_C_STACK_SIZE if provided. Otherwise, use a) the OS
      provided value if we can resize the stack at runtime (for Unix) or b)
      the new build option ECL_DEFAULT_C_STACK_SIZE (1 MB) if we can set the
      stack size at link time (for Windows).
      d7b2dfb7
  13. 23 Dec, 2019 1 commit
  14. 22 Dec, 2019 2 commits
  15. 21 Dec, 2019 2 commits
    • Marius Gerbershagen's avatar
      cmp: add missing proclamations for formatter functions · 93e9c3b4
      Marius Gerbershagen authored
      All functions declared with si::c-export-fname must be either in
      symbols_list.h or have a proclamation so that the compiler knows the
      number of arguments that the function takes.
      93e9c3b4
    • Marius Gerbershagen's avatar
      cmp: fix segmentation faults from coerce compiler macro · 7e381828
      Marius Gerbershagen authored
      si::coerce-to-vector assumed that the to be coerced object had the
      same length as that specified by the type. This lead to segmentation
      faults even in safe code, for example in
      
      (coerce '(a b c) '(vector * 4))
      
      (coerce.error.3 test in ansi-tests)
      
      Actually, si::coerce-to-vector had some checks for a correct length
      previously, but they did not work correctly and were removed in commit
      baaab018.
      7e381828
  16. 20 Dec, 2019 1 commit
  17. 18 Dec, 2019 1 commit
  18. 16 Dec, 2019 8 commits