@@ -991,12 +991,16 @@ function pagedMerge!(v::AbstractVector{T}, buf::AbstractVector{T}, lo::Integer,
991991 end
992992end
993993
994+ # midpoint was added to Base.sort in version 1.4 and later moved to Base
995+ # -> redefine for compatibility with earlier versions
996+ _midpoint (lo:: Integer ,hi:: Integer ) = lo + ((hi - lo) >>> 0x01 )
997+
994998function pagedmergesort! (v:: AbstractVector{T} , lo:: Integer , hi:: Integer , buf:: AbstractVector{T} , blockLocation, o= Base. Order. Forward) where T
995999 len = hi + 1 - lo
9961000 if len <= Base. SMALL_THRESHOLD
9971001 return Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
9981002 end
999- m = Base . midpoint (lo,hi)
1003+ m = _midpoint (lo,hi)
10001004 pagedmergesort! (v,lo,m,buf,blockLocation,o)
10011005 pagedmergesort! (v,m+ 1 ,hi,buf,blockLocation,o)
10021006 if len <= length (buf)
@@ -1012,7 +1016,7 @@ function threaded_pagedmergesort!(v::AbstractVector, lo::Integer, hi::Integer, b
10121016 if len <= Base. SMALL_THRESHOLD
10131017 return Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
10141018 end
1015- m = Base . midpoint (lo,hi)
1019+ m = _midpoint (lo,hi)
10161020 if len > threadingThreshold
10171021 thr = Threads. @spawn threaded_pagedmergesort! (v,lo,m,bufs,blockLocations,c,threadingThreshold,o)
10181022 threaded_pagedmergesort! (v,m+ 1 ,hi,bufs,blockLocations,c,threadingThreshold,o)
0 commit comments