History log of /freebsd-12.1/lib/libc/stdlib/qsort.c (Results 1 – 23 of 23)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0
# 66092616 10-Jun-2018 Konstantin Belousov <[email protected]>

libc qsort(3): stop aliasing.

Qsort swap code aliases the sorted array elements to ints and longs in
order to do swap by machine words. Unfortunately this breaks with the
full code optimization, e.

libc qsort(3): stop aliasing.

Qsort swap code aliases the sorted array elements to ints and longs in
order to do swap by machine words. Unfortunately this breaks with the
full code optimization, e.g. LTO.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83201 which seems to
reference code directly copied from libc/stdlib/qsort.c.

PR: 228780
Reported by: [email protected]
Reviewed by: brooks
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D15714

show more ...


# 8a16b7a1 20-Nov-2017 Pedro F. Giffuni <[email protected]>

General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier f

General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

show more ...


Revision tags: release/10.4.0, release/11.1.0
# ca1578f0 19-May-2017 Xin LI <[email protected]>

The current qsort(3) implementation ignores the sizes of partitions, and
always perform recursion on the left partition, then use a tail call to
handle the right partition. In the worst case this co

The current qsort(3) implementation ignores the sizes of partitions, and
always perform recursion on the left partition, then use a tail call to
handle the right partition. In the worst case this could require O(N)
levels of recursions.

Reduce the possible recursion level to log2(N) by always recursing on the
smaller partition instead.

Obtained from: PostgreSQL 9d6077abf9d6efd992a59f05ef5aba981ea32096

show more ...


# a3f893fc 19-May-2017 Xin LI <[email protected]>

Use size_t.

Inspired by: OpenBSD src/lib/libc/stdlib/qsort.c,v 1.11


Revision tags: release/11.0.1, release/11.0.0, release/10.3.0
# f98e0c9d 20-Sep-2015 Craig Rodrigues <[email protected]>

Use ANSI C prototypes. Eliminates -Wold-style-definition warnings.


Revision tags: release/10.2.0
# 2eaea119 05-Mar-2015 Pedro F. Giffuni <[email protected]>

qsort(3): small style(9) cleanups.

Basically spaces vs. tabs.
No functional change.


# 9382fabf 05-Mar-2015 Pedro F. Giffuni <[email protected]>

qsort(3): enhance to handle 32-bit aligned data on 64-bit systems

Implement a small enhancement to the original qsort implementation:
If the data is 32 bit aligned we can side-step the long type
ver

qsort(3): enhance to handle 32-bit aligned data on 64-bit systems

Implement a small enhancement to the original qsort implementation:
If the data is 32 bit aligned we can side-step the long type
version and use int instead.

The change brings a modest but significant improvement in
32 bit workloads.

Relnotes: yes

PR: 135718
Taken from: ache

show more ...


Revision tags: release/10.1.0, release/9.3.0, release/10.0.0, release/9.2.0
# 580b4d18 13-Jun-2013 Ed Maste <[email protected]>

Renumber clauses to reduce diffs to other versions

NetBSD, OpenBSD, and Android's Bionic number the clauses 1 through 3,
so follow suit to make comparison easier.


Revision tags: release/8.4.0, release/9.1.0, release/8.3.0, release/7.4.0, release/8.2.0, release/8.1.0, release/7.3.0, release/8.0.0, release/7.2.0, release/7.1.0, release/6.4.0, release/7.0.0, release/6.3.0
# ac48ad2e 14-Jan-2008 David Schultz <[email protected]>

Changing 'r' to a size_t in the previous commit turned quicksort
into slowsort for some sequences because different parts of the
code used 'r' to store two different things, one of which was
signed.

Changing 'r' to a size_t in the previous commit turned quicksort
into slowsort for some sequences because different parts of the
code used 'r' to store two different things, one of which was
signed. Clean things up by splitting 'r' into two variables, and
use a more meaningful name.

show more ...


# badf97cd 13-Jan-2008 David Schultz <[email protected]>

Use size_t to avoid overflow when sorting arrays larger than 2 GB.

PR: 111085
MFC after: 2 weeks


Revision tags: release/6.2.0
# c879ae35 09-Jan-2007 Warner Losh <[email protected]>

Per Regents of the University of Calfornia letter, remove advertising
clause.

# If I've done so improperly on a file, please let me know.


Revision tags: release/5.5.0, release/6.1.0, release/6.0.0, release/5.4.0, release/4.11.0, release/5.3.0, release/4.10.0, release/5.2.1, release/5.2.0, release/4.9.0, release/5.1.0, release/4.8.0, release/5.0.0
# eca67d51 10-Sep-2002 Garrett Wollman <[email protected]>

Implement C99's _Exit() interface.
Implement a version of qsort that provides a thunk to the comparison function.

Update manual pages.


Revision tags: release/4.6.2
# 333fc21e 22-Mar-2002 David E. O'Brien <[email protected]>

Fix the style of the SCM ID's.
I believe have made all of libc .c's as consistent as possible.


# c05ac53b 21-Mar-2002 David E. O'Brien <[email protected]>

Remove __P() usage.


# 8fb3f3f6 21-Mar-2002 David E. O'Brien <[email protected]>

Remove 'register' keyword.


Revision tags: release/4.3.0
# 7f3dea24 28-Aug-1999 Peter Wemm <[email protected]>

$Id$ -> $FreeBSD$


# 7e546392 22-Feb-1997 Peter Wemm <[email protected]>

Revert $FreeBSD$ to $Id$


# 1130b656 14-Jan-1997 Jordan K. Hubbard <[email protected]>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.

show more ...


# 09a8dfa2 31-Aug-1996 Bruce Evans <[email protected]>

Don't depend in the kernel on the gcc feature of doing arithmetic on
pointers of type `void *'. Warn about this in future.


# 8a459911 19-Apr-1996 Bruce Evans <[email protected]>

Don't include <sys/types.h> when it isn't used.

This commit covers most of the ANSI library functions. Many others only
need <sys/types.h> because they use u_xxx.


# 43288965 26-Dec-1995 Bruce Evans <[email protected]>

Added prototypes.


# 6c06b4e2 30-May-1995 Rodney W. Grimes <[email protected]>

Remove trailing whitespace.


Revision tags: release/1.1.5.1_cvs
# 58f0484f 27-May-1994 Rodney W. Grimes <[email protected]>

BSD 4.4 Lite Lib Sources