@@ -986,12 +986,16 @@ function pagedMerge!(v::AbstractVector{T}, buf::AbstractVector{T}, lo::Integer,
986986 end
987987end
988988
989+ # midpoint was added to Base.sort in version 1.4 and later moved to Base
990+ # -> redefine for compatibility with earlier versions
991+ _midpoint (lo:: Integer ,hi:: Integer ) = lo + ((hi - lo) >>> 0x01 )
992+
989993function pagedmergesort! (v:: AbstractVector{T} , lo:: Integer , hi:: Integer , buf:: AbstractVector{T} , blockLocation, o= Base. Order. Forward) where T
990994 len = hi + 1 - lo
991995 if len <= Base. SMALL_THRESHOLD
992996 return Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
993997 end
994- m = Base . midpoint (lo,hi)
998+ m = _midpoint (lo,hi)
995999 pagedmergesort! (v,lo,m,buf,blockLocation,o)
9961000 pagedmergesort! (v,m+ 1 ,hi,buf,blockLocation,o)
9971001 if len <= length (buf)
@@ -1007,7 +1011,7 @@ function threaded_pagedmergesort!(v::AbstractVector, lo::Integer, hi::Integer, b
10071011 if len <= Base. SMALL_THRESHOLD
10081012 return Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
10091013 end
1010- m = Base . midpoint (lo,hi)
1014+ m = _midpoint (lo,hi)
10111015 if len > threadingThreshold
10121016 thr = Threads. @spawn threaded_pagedmergesort! (v,lo,m,bufs,blockLocations,c,threadingThreshold,o)
10131017 threaded_pagedmergesort! (v,m+ 1 ,hi,bufs,blockLocations,c,threadingThreshold,o)
0 commit comments