Permalink
Commits on Nov 15, 2011
  1. Less consing for unhandled signals.

    * src/code/cold-error.lisp: each hundler cluster becomes a function
    with typecase inside. Simplify testing in CL:SIGNAL (no more dynamic
    typep, just funcall as we pop).
    
    * src/code/defboot.lisp (%handler-bind): actual implementation of
    handler clusters as functions.
    
    * src/code/target-error.lisp (initial-handler-clusters):
    initialize *handler-clusters* according to our new representation.
    committed Nov 15, 2011
  2. SB-SPROF wall-clock profiling support: cleanup.

    * src/runtime/win32-os.c: pseudo-atomic bits don't have any physical
    representation now. paframe and pacont go away.
    committed Nov 15, 2011
  3. * src/runtime/win32-os.c: removed debugging kludge for non-interesting

    special case of memory faults.
    committed Nov 15, 2011
  4. Windows: never try lisp-side exception handler in non-lisp threads.

    This could happen before on amd64 with VEH.
    
    * src/runtime/win32-os.c (handle_exception): in non-lisp thread, never
    fall through to lisp handler.
    committed Nov 15, 2011
  5. Windows: disable system error dialogs for critical errors.

    * src/runtime/win32-os.c (os_init): added SetErrorMode(SEM_FAILCRITICALERRORS)
    committed Nov 15, 2011
  6. @pkhuong

    Plug a CTYPE leak into fasls via SETQ

      Type mismatch from SETQing lexical variables used to dump CTYPE
      structs directly.  Splice a type specifier in instead during
      IR1 conversion of SETQ so that the source form remains dumpable.
    
      Reported with the test case by Xach on #lisp.
    
      Fixes lp#890750.
    pkhuong committed Nov 15, 2011
  7. Unimportant change to silence compiler warnings.

    * src/runtime/win32-os.c (maybe_resetstkoflw): explicit cast.
    (os_dlsym_default, translating_vfprintf): Silenced compiler
    warnings for signed/unsigned comparison.
    committed Nov 15, 2011
  8. Guard page violation on Windows: don't pretend to be able to continue

    execution.
    
    * src/runtime/win32-os.c (handle_exception): continue handler search
    for unhandled guard page violations too.
    committed Nov 15, 2011
  9. Give non-Lisp handlers a chance to handle memory faults on Windows.

    * src/runtime/win32-os.c (sbcl_enable_lisp_pagefault_handler): new variable
    (handle_exception): continue handler search on page faults, unless
    sbcl_enable_lisp_pagefault_handler is set.
    committed Nov 15, 2011
  10. Merge branch 'master' into mswinmt

    Conflicts:
    	src/code/filesys.lisp
    committed Nov 15, 2011
Commits on Nov 14, 2011
  1. @nikodemus

    document GRAB-MUTEX in the manual

     lp#884099
    nikodemus committed Nov 14, 2011
  2. @nikodemus

    symlinks and RENAME-FILE and DELETE-DIRECTORY

     Both followed symlinks too eagerly.
    
      * Presumably anyone doing (rename-file "link-to-foo" "bar") wants to rename
        the link and not the file it points to -- which has the unpleasant
        side-effect of breaking the selfsame link.
    
        Make it so.
    
     * It is less clear what someone doing (delete-directory "link-to-dir")
       expects to happen -- so take the conservative option and signal an error,
       and document this.
    nikodemus committed Nov 14, 2011
  3. @nikodemus

    sb-concurrency: GATE tweak, fix building without threads

     * OPEN-GATE wasn't interrupt-safe. Don't want to have an interrupt unwind
       after opening the gate but before broadcasting on the condition variable.
    
     * Disable tests needing threads on unithread builds, add one that
       doesn't need threads.
    
     Also: many thanks to Tobias Rittweiler on whose code the GATE implementation
     is based!
    nikodemus committed Nov 14, 2011
  4. @nikodemus
  5. Further fixes for _resetstkoflw kludge

    * src/runtime/interrupt.c (reset_control_stack_guard_page): use
    maybe_resetstkoflw, that is our dynamic-linking wrapper for MSVCRT
    one.
    
    * src/runtime/win32-os.c (maybe_resetstkoflw): define it.
    
    * src/runtime/win32-os.h (maybe_resetstkoflw): declare it.
    committed Nov 14, 2011
Commits on Nov 13, 2011
  1. @pkhuong

    More numerically stable %hypot (ABS of complex floats) on win32

    Based on a patch by Robert Smith.
    pkhuong committed Nov 13, 2011
Commits on Nov 12, 2011
  1. @nikodemus

    extensible CAS and CAS extensions

      DEFINE-CAS-EXPANDER and DEFCAS are analogous to DEFINE-SETF-EXPANDER and
      DEFSETF, including CAS-functions similar to SETF-functions:
    
       (defun (cas foo) (old new ...) ...)
    
      THis is exported from SB-EXT for users to play with, and used to implement
      our CAS places internally.
    
      Add support for CAS of:
    
       * SLOT-VALUE
    
       * STANDARD-INSTANCE-ACCESS
    
       * FUNCALLABLE-STANDARD-INSTANCE-ACCESS
    
      In case of SLOT-VALUE we don't yet support any optimizations or specify
      results when SLOT-VALUE-USING-CLASS or friends are in play -- perhaps later
      we can add
    
        (CAS SLOT-VALUE-USING-CLASS) &co
    
      in order to support it for arbitrary instances.
    
      Adding support for permutation vector optimization should not be too hard
      either, but let's let the dust settle first...
    nikodemus committed Jun 8, 2011
  2. @nikodemus

    clean leftover SB_LUTEX gunk from the runtime

      Missed a spot...
    nikodemus committed Nov 12, 2011
Commits on Nov 11, 2011
  1. @nikodemus
  2. @csrhodes

    fix out-of-line structure predicates on obsolete standard-instances

    Apply the same fix to typep-to-layout that I did over five years ago
    to the various inline / compiler transforms.  Include an out-of-line
    test case.
    csrhodes committed Nov 11, 2011
  3. Code cleanup for run-program on win32

    * src/code/run-program.lisp: remove duplicate definition of
    get-exit-code-process, use one from sb-win32 package.
    
    * src/code/warm-mswin.lisp ("GetExitCodeProcess"): handle argument is
    of type handle, which is signed instead of unsigned.
    committed Nov 11, 2011
  4. @csrhodes

    improve layout-invalid error message

    It helps if we pass the right initialization forms to make-condition.
    csrhodes committed Nov 11, 2011