1. 08 5月, 2011 4 次提交
  2. 07 5月, 2011 3 次提交
    • R
      reduce some ridiculously large spin counts · 77f15d10
      Rich Felker 提交于
      these should be tweaked according to testing. offhand i know 1000 is
      too low and 5000 is likely to be sufficiently high. consider trying to
      add futexes to file locking, too...
      77f15d10
    • R
      remove debug code that was missed in barrier commit · 9dd6399c
      Rich Felker 提交于
      9dd6399c
    • R
      completely new barrier implementation, addressing major correctness issues · f16a3089
      Rich Felker 提交于
      the previous implementation had at least 2 problems:
      
      1. the case where additional threads reached the barrier before the
      first wave was finished leaving the barrier was untested and seemed
      not to be working.
      
      2. threads leaving the barrier continued to access memory within the
      barrier object after other threads had successfully returned from
      pthread_barrier_wait. this could lead to memory corruption or crashes
      if the barrier object had automatic storage in one of the waiting
      threads and went out of scope before all threads finished returning,
      or if one thread unmapped the memory in which the barrier object
      lived.
      
      the new implementation avoids both problems by making the barrier
      state essentially local to the first thread which enters the barrier
      wait, and forces that thread to be the last to return.
      f16a3089
  3. 06 5月, 2011 1 次提交
  4. 02 5月, 2011 4 次提交
  5. 29 4月, 2011 1 次提交
  6. 28 4月, 2011 4 次提交
    • R
      use compiler builtins for variadic macros when available · def0af18
      Rich Felker 提交于
      this slightly cuts down on the degree musl "fights with" gcc, but more
      importantly, it fixes a critical bug when gcc inlines a variadic
      function and optimizes out the variadic arguments due to noticing that
      they were "not used" (by __builtin_va_arg).
      
      we leave the old code in place if __GNUC__ >= 3 is false; it seems
      like it might be necessary at least for tinycc support and perhaps if
      anyone ever gets around to fixing gcc 2.95.3 enough to make it work..
      def0af18
    • R
      correct variadic prototypes for execl* family · e6bac87d
      Rich Felker 提交于
      the old versions worked, but conflicted with programs which declared
      their own prototypes and generated warnings with some versions of gcc.
      e6bac87d
    • R
      replace heap sort with smoothsort implementation by Valentin Ochs · 22263709
      Rich Felker 提交于
      Smoothsort is an adaptive variant of heapsort. This version was
      written by Valentin Ochs (apo) specifically for inclusion in musl. I
      worked with him to get it working in O(1) memory usage even with giant
      array element widths, and to optimize it heavily for size and speed.
      It's still roughly 4 times as large as the old heap sort
      implementation, but roughly 20 times faster given an almost-sorted
      array of 1M elements (20 being the base-2 log of 1M), i.e. it really
      does reduce O(n log n) to O(n) in the mostly-sorted case. It's still
      somewhat slower than glibc's Introsort for random input, but now
      considerably faster than glibc when the input is already sorted, or
      mostly sorted.
      22263709
    • R
      add word-sized ctz function to atomic.h · 4bb9b4f3
      Rich Felker 提交于
      strictly speaking this and a few other ops should be factored into
      asm.h or the file should just be renamed to asm.h, but whatever. clean
      it up someday.
      4bb9b4f3
  7. 27 4月, 2011 1 次提交
  8. 26 4月, 2011 4 次提交
  9. 25 4月, 2011 1 次提交
    • R
      fix 2 eof-related bugs in scanf · 5efc6af4
      Rich Felker 提交于
      1. failed match of literal chars from the format string would always
      return matching failure rather than input failure at eof, leading to
      infinite loops in some programs.
      
      2. unread of eof would wrongly adjust the character counts reported by
      %n, yielding an off-by-one error.
      5efc6af4
  10. 23 4月, 2011 2 次提交
  11. 22 4月, 2011 5 次提交
  12. 21 4月, 2011 10 次提交