1. 15 Jul, 2019 1 commit
  2. 30 Jun, 2019 4 commits
  3. 21 Jun, 2019 2 commits
  4. 02 Jun, 2019 1 commit
    • Marius Gerbershagen's avatar
      si::get-local-time-zone: don't apply shift for daylight saving time · 1b778f61
      Marius Gerbershagen authored
      Previously, we were simply returning the number of hours West of
      Greenwich, which had the effect that si::get-local-time-zone could
      return different values for a user in the same location depending on
      the time of the year. However, the functions calling
      si::get-local-time-zone later do the necessary fixup for Daylight
      Saving Time on their own, which lead to wrong values returned in
      decode-universal-time and encode-universal-time.
      
      Fixes #495.
      1b778f61
  5. 28 May, 2019 1 commit
  6. 27 May, 2019 1 commit
  7. 25 May, 2019 11 commits
  8. 24 May, 2019 2 commits
  9. 21 May, 2019 1 commit
  10. 20 May, 2019 5 commits
  11. 17 May, 2019 1 commit
  12. 15 May, 2019 10 commits
    • Daniel Kochmański's avatar
      expt: rework the function · 60370703
      Daniel Kochmański authored
      - extract functions for handling different kind of results
      - add specialised code for floats and complex floats in integer case
      - improve comments a little
      - fix the regression where (expt -1.0 2) results in complex result
      60370703
    • Daniel Kochmański's avatar
      coerce: allow coercing to si:complex-*-float · b8c328b5
      Daniel Kochmański authored
      Previously coerce didn't understand these atomic specifiers.
      b8c328b5
    • Daniel Kochmański's avatar
      cmpffi: produce-inline-loc: do not return uninitialized variable · 19526d40
      Daniel Kochmański authored
      For functions without returned value we did return cl_object value0
      which was not initialized. That could lead to segmentation faults if
      we have used result of calling a function defined as such location.
      
      SFFI definition like this:
      
      (ffi:def-function ("my_test_function3" sffi-test-3)
          ((x :float) (y :double))
        :returning :void)
      
      was previously compiled to
      
      /*      function definition for SFFI-TEST-3                     */
      /*      optimize speed 3, debug 0, space 0, safety 2            */
      static cl_object L6sffi_test_3(cl_object v1x, cl_object v2y)
      {
       cl_object env0 = ECL_NIL;
       const cl_env_ptr cl_env_copy = ecl_process_env();
       cl_object value0;
       ecl_cs_check(cl_env_copy,value0);
       {
      TTL:
        my_test_function3(ecl_to_float(v1x),ecl_to_double(v2y));
        cl_env_copy->nvalues = 0;
        return value0;
       }
      }
      
      and now it is compiled to
      
      /*      function definition for SFFI-TEST-3                       */
      /*      optimize speed 3, debug 0, space 0, safety 2              */
      static cl_object L6sffi_test_3(cl_object v1x, cl_object v2y)
      {
       cl_object env0 = ECL_NIL;
       const cl_env_ptr cl_env_copy = ecl_process_env();
       cl_object value0;
       ecl_cs_check(cl_env_copy,value0);
       {
      TTL:
        my_test_function3(ecl_to_float(v1x),ecl_to_double(v2y));
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        return value0;
       }
      }
      
      void functions are treated the same as when *destionation* is 'RETURN
      in cmpmulti.lsp.
      19526d40
    • Daniel Kochmański's avatar
      dffi: disable complex argument type · b2b6548a
      Daniel Kochmański authored
      libffi is incapable of properly handling complex float argument types
      yet. Commit disables complex types and adds a comment explaining
      what's going on.
      
      SFFI types which doesn't have counterpart in DFFI conversion table are
      NULL and function ecl_type_to_libffi_type will signal a condition when
      they are used.
      b2b6548a
    • Daniel Kochmański's avatar
      05f94fc7
    • Daniel Kochmański's avatar
    • Daniel Kochmański's avatar
    • Daniel Kochmański's avatar
      complex-float: add documentation bits · c17f23f2
      Daniel Kochmański authored
      c17f23f2
    • Daniel Kochmański's avatar
      complex-float: add some tests · 41afa2da
      Daniel Kochmański authored
      Most of things is covered in ANSI-TESTS anway, these are just smoke
      tests for some functionality and taking into account internal
      implementation details.
      41afa2da
    • Daniel Kochmański's avatar
      complex-float: rework numlib functions (atanh and such) · 044858cf
      Daniel Kochmański authored
      numlib is similar to math operation definitions in core but these
      functions are implemented in C.
      
      - refactor functions for code clarity
      - add definitions for complex float
      044858cf