Skip to content
Commits on Jun 18, 2015
Commits on Mar 16, 2013
  1. use the slim constructor in more cases, less code bloat

    committed
      Allow using the fast predicate with user functions and in presence
      of an explicitly null :KEY.
    
      Define global two-arg entry points for commonplace variadic
      predicates instead of generating one per call site.
  2. remove references to sb-studio.net

    committed
      End of an era.
Commits on Mar 1, 2011
  1. update TODO schedule

    committed
  2. fix outdated comment

    committed
     HEAP-MIN is called HEAP-TOP.
  3. 1.0 release

    committed
  4. fix typo in docstring

    committed
Commits on Nov 18, 2010
  1. fix for Bordeaux-Threads support

    committed
      * MAKE-LOCK doesn't use a keyword argument for the name, oops!
Commits on Nov 3, 2010
  1. another boundary bug in %HEAP-DELETE.

    committed
      Deleting the last element of a heap vector requires no fixing
      up.
    
      Add tests for basic boundary cases of HEAP-HELETE.
Commits on Nov 2, 2010
  1. slot renaming

    committed
      Rename TEST to FAST-PRED to avoid confusion.
    
      Rename VECTOR to %VECTOR for safe subclassing.
  2. update README

    committed
  3. fix bug in HEAP-DELETE introduced when adding :COUNT

    committed
     :COUNT NIL deleted only a single element.
  4. improve HEAP-DELETE docstring

    committed
     Clarify that it currently always uses EQL.
Commits on Nov 1, 2010
  1. two bugs in %HEAP-DELETE

    committed
     * Deletion of last element of the heap left a reference to it at the
       last index, confusing HEAP-DELETE.
    
     * Return value mixup.
  2. stray DYNAMIC-EXTENT

    committed
     Left over when I thought supporting DX allocation for heaps was worth
     it. Dunno -- maybe it is, but it makes sense only when your initial
     :SIZE is good enough that you don't need any further growth, and
     still small enough to fit on a page to be safe...
    
     Maybe look at this again later.
  3. indent CSS for prettier html

    committed
  4. documentation and minor changes

    committed
     - Steal the SBCL docstring extractor again.
    
     - Edit docstrings for readability.
    
     - Add a few wrapper functions so things like HEAP-KEY have "heap" as
       the argument in the docs instead of "instance".
    
     - Remove HEAP-P as redundant.
  5. no asynch-unwind safety

    committed
  6. add :KEY to MAKE-HEAP

    committed
     Combine predicate and key to a single function.
    
     Add a compiler-macro to convert common variadic predicates to
     fixed-arg lambdas.
    
     Use Alexandria wholesale instead of cherry-picking symbols.
  7. defensive programming

    committed
     HEAP-INSERT calls the predicate with the new element before
     mangling the heap, so that problematic inserts are detected
     before the heap state is messed up.
    
     %HEAP-DELETE restores the deleted element on unwind, and in lucky
     cases even manages to restore the heap to a clean state.
  8. fix typo in TEST-OP

    committed
  9. make clean & make wc

    committed
  10. rudimentary tests

    committed
  11. unordered traversal

    committed
     MAP-HEAP can also traverse the heap without respect to heap order,
     which allows recovery of heaps with bad elements.
    
     (Though it would be better if HEAP-INSERT fixed the heap on unwind.)
    
     Also improve locking docs, and explain the approach to thread safety
     and its limitations.
  12. .gitignore

    committed
Commits on Oct 31, 2010
  1. lock the package

    committed
  2. renamed HEAP-PEEK to HEAP-TOP

    committed
Something went wrong with that request. Please try again.