1. 10 Oct, 2014 2 commits
    • Raymond Toy's avatar
      a1946b35
    • Raymond Toy's avatar
      Unify extern-alien-name for darwin x86 and ppc. · 571dd490
      Raymond Toy authored
      Initial attempt to unify extern-alien-name, primarily for darwin (x86
      and ppc). Thus, systems using elf do not prepend an underscore, but
      other systems are assumed to prepend an underscore.
      
      This is currently only for darwin/x86.  A cross-compile on darwin x86
      is needed.
      
       * code/x86-vm.lisp:
         * For elf systems, don't prepend an underscore.  For other systems,
           do prepend.
       * compiler/generic/new-genesis.lisp:
         * Fix long-standing bug where we should call EXTERN-ALIEN-NAME to
           get the right name for "resolve_linkage_tramp".
       * lisp/Darwin-os.c:
         * Update os_dlsym to assume the external name is always preceded by
           an underscore.  The lookup for dlysm is done by stripping off the
           leading underscore.
       * lisp/os-common.c:
         * Add EXTERN_ALIEN_NAME macro to create the correct alien name for
           elf and non-elf systems.
         * Use it to generate the correct name to be used for comparison in
           the sanity checks of the linkage table entries.
      571dd490
  2. 09 Oct, 2014 2 commits
    • Raymond Toy's avatar
      First cut at removing ppc-darwin-dlshim.c. Not needed anymore because · 57711cc2
      Raymond Toy authored
      dlsym works on OSX/ppc like on other ports.
      
      A cross-compile was used with cross-ppc-ppc-darwin.lisp.  I'm not sure
      a cross-compile is required, though.
      
       * code/ppc-vm.lisp:
         * EXTERN-ALIEN-NAME doesn't need to prepend an underscore anymore. 
       * lisp/Config.ppc_darwin:
         * Don't compile/link ppc-darwin-dlshim.c.
       * lisp/os-common.c:
         * Don't prepend underscore for call_into_lisp.
       * tools/cross-scripts/cross-ppc-ppc-darwin.lisp:
         * EXTERN-ALIEN-NAME doesn't need to prepend an underscore anymore.
      57711cc2
    • Raymond Toy's avatar
      Fix issue with negative value for lisp::cycles-per-tick. · 2c1badef
      Raymond Toy authored
      This causes negative cpu cyles with TIME. Basic issue is that a cpu
      frequency of 2.3 GHZ won't fit in an int. Use an unsigned int.
      
      We also take this opportunity to use a rounded value for
      clocks-per-tick instead of truncating.  For this particular case the
      ratio is actual 68.99 which would truncated to 68. We should probably
      use 69 instead.
      2c1badef
  3. 07 Oct, 2014 2 commits
  4. 04 Oct, 2014 3 commits
  5. 02 Oct, 2014 5 commits
    • Raymond Toy's avatar
      Micro-optimize SCALE-FLOAT to use multiplication when possible. · 8f5f6abc
      Raymond Toy authored
      If the exponent (second arg of SCALE-FLOAT) is such that 2^exponent
      can be represented as a float (single or double), we can implement
      SCALE-FLOAT using a multiplication by 2^exponent, since multiplication
      by 2^exponent is exact.
      
       * src/compiler/float-tran.lisp:
         * Update deftransforms for SCALE-FLOAT to do a multiply when
           possible. 
       * tests/float-tran.lisp:
         * Add tests to make sure the deftransforms for SCALE-FLOAT are
           applied appropriately.
      8f5f6abc
    • Raymond Toy's avatar
      Add FAST-ASH-C/FIXNUM=>SIGNED vop. · 3ff38ffa
      Raymond Toy authored
      This allows the compiler to shift a fixnum to a signed-reg without
      first converting the fixnum to a signed-reg, saving a shift.
      3ff38ffa
    • Raymond Toy's avatar
      Editorial fixes. · 227e5085
      Raymond Toy authored
       * Remove [In progress]
       * Rephrase some items.
       * Fix typos.
      227e5085
    • Raymond Toy's avatar
      Fix regression in %ENUMERATE-DIRECTORIES. · 8329e1d5
      Raymond Toy authored
      Previously (18a at least), %ENUMERATE-DIRECTORIES would return a path
      even if a directory element did not exist.  This behavior is restored.
      
      See email from cmucl-help, Sep 26, 2014.
      
       * src/code/filesys.lisp:
         * Fix regression.in %ENUMERATE-DIRECTORIES.  Even if the directory
           does not exist, we continue recursing instead of stopping.
       * src/general-info/release-20f.txt:
         * Update
       * tests/filesys.lisp:
         * New file adding tests for UNIX-NAMESTRING.
      8329e1d5
    • Raymond Toy's avatar
      Fix regression in %ENUMERATE-DIRECTORIES. · 2f316750
      Raymond Toy authored
      Previously (18a at least), %ENUMERATE-DIRECTORIES would return a path
      even if a directory element did not exist.  This behavior is restored.
      
      See email from cmucl-help, Sep 26, 2014.
      
       * src/code/filesys.lisp:
         * Fix regression.in %ENUMERATE-DIRECTORIES.  Even if the directory
           does not exist, we continue recursing instead of stopping.
       * src/general-info/release-20f.txt:
         * Update
       * tests/filesys.lisp:
         * New file adding tests for UNIX-NAMESTRING.
      2f316750
  6. 01 Oct, 2014 4 commits
  7. 28 Sep, 2014 4 commits
  8. 27 Sep, 2014 2 commits
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · ab0a979d
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      
      Conflicts:
      	tests/float.lisp
      ab0a979d
    • Raymond Toy's avatar
      Fix incorrect value from INTEGER-DECODE-FLOAT for denormals. · 315ea234
      Raymond Toy authored
      This is a long standing bug where INTEGER-DECODE-FLOAT returned
      incorrect values for denormal double-float numbers.  The lower 32 bits
      of the double were not shifted enough when creating the integer
      result.
      
      As a side-effect, DECODE-FLOAT decodes denormal double-float's
      correctly and SCALE-FLOAT scales denormals correctly too.
      
       * src/code/float.lisp:
         * Shift the lower 32-bit of the fraction one more time to adjust
           for the fact that the upper 20 bits were shifted an extra time.
       * tests/float.lisp:
         * Add several tests for INTEGER-DECODE-FLOAT, SCALE-FLOAT, and
           DECODE-FLOAT.
       * src/general-info/release-20f.txt:
         * Add this bug fix to the notes.
      315ea234
  9. 26 Sep, 2014 4 commits
  10. 25 Sep, 2014 6 commits
  11. 21 Sep, 2014 1 commit
    • Raymond Toy's avatar
      Add deftransform to convert (log x 2) and (log x 10) to log2 and · db25e3e0
      Raymond Toy authored
      %log10. This better than using the definition (/ (log x) (log base)).
      This also allows exact answer for 2^n and 10^n for appropriate n.
      
      
       * src/compiler/float-tran.lisp:
         * Add deftransforms to convert (log x 2) and (log x 10) to
           kernel::log2 and kernel:%log10 
       * tests/float-tran.lisp:
         * Add tests to check the transforms are done, or not done, as
           appropriate.
      db25e3e0
  12. 20 Sep, 2014 5 commits