summaryrefslogtreecommitdiff
path: root/libphobos/libdruntime/core
diff options
context:
space:
mode:
Diffstat (limited to 'libphobos/libdruntime/core')
-rw-r--r--libphobos/libdruntime/core/internal/array/appending.d4
-rw-r--r--libphobos/libdruntime/core/internal/array/concatenation.d4
-rw-r--r--libphobos/libdruntime/core/internal/array/construction.d4
-rw-r--r--libphobos/libdruntime/core/internal/array/utils.d14
-rw-r--r--libphobos/libdruntime/core/internal/newaa.d13
-rw-r--r--libphobos/libdruntime/core/lifetime.d4
-rw-r--r--libphobos/libdruntime/core/stdc/config.d5
-rw-r--r--libphobos/libdruntime/core/stdc/math.d499
-rw-r--r--libphobos/libdruntime/core/stdc/stdio.d188
-rw-r--r--libphobos/libdruntime/core/stdc/stdlib.d12
-rw-r--r--libphobos/libdruntime/core/sys/windows/sql.d6
-rw-r--r--libphobos/libdruntime/core/sys/windows/sqlext.d1
-rw-r--r--libphobos/libdruntime/core/sys/windows/sqltypes.d4
-rw-r--r--libphobos/libdruntime/core/sys/windows/sqlucode.d1
14 files changed, 543 insertions, 216 deletions
diff --git a/libphobos/libdruntime/core/internal/array/appending.d b/libphobos/libdruntime/core/internal/array/appending.d
index ba34727a305..1b2b78ea570 100644
--- a/libphobos/libdruntime/core/internal/array/appending.d
+++ b/libphobos/libdruntime/core/internal/array/appending.d
@@ -52,7 +52,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_arrayappendT, core,internal,array,appending).
*/
- ref Tarr _d_arrayappendcTXTrace(Tarr : T[], T)(string file, int line, string funcname, return ref scope Tarr px, size_t n) @trusted
+ ref Tarr _d_arrayappendcTXTrace(Tarr : T[], T)(return ref scope Tarr px, size_t n, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
@@ -115,7 +115,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_arrayappendT, core,internal,array,appending).
*/
- ref Tarr _d_arrayappendTTrace(Tarr : T[], T)(string file, int line, string funcname, return ref scope Tarr x, scope Tarr y) @trusted
+ ref Tarr _d_arrayappendTTrace(Tarr : T[], T)(return ref scope Tarr x, scope Tarr y, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
diff --git a/libphobos/libdruntime/core/internal/array/concatenation.d b/libphobos/libdruntime/core/internal/array/concatenation.d
index 3063c4c0ea0..13ec5fad40f 100644
--- a/libphobos/libdruntime/core/internal/array/concatenation.d
+++ b/libphobos/libdruntime/core/internal/array/concatenation.d
@@ -48,7 +48,7 @@ Tret _d_arraycatnTX(Tret, Tarr...)(auto ref Tarr froms) @trusted
{
// TODO: forward file, line, name from _d_arraycatnTXTrace
_d_arraysetlengthTImpl!(typeof(res))._d_arraysetlengthTTrace(
- __FILE__, __LINE__, "_d_arraycatnTX", res, totalLen);
+ res, totalLen, __FILE__, __LINE__, __FUNCTION__);
}
else
{
@@ -178,7 +178,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_arraycatnTX, core,internal,array,concatenation).
*/
- Tret _d_arraycatnTXTrace(Tret, Tarr...)(string file, int line, string funcname, scope auto ref Tarr froms) @trusted
+ Tret _d_arraycatnTXTrace(Tret, Tarr...)(scope auto ref Tarr froms, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
diff --git a/libphobos/libdruntime/core/internal/array/construction.d b/libphobos/libdruntime/core/internal/array/construction.d
index 45a1ce5629d..40e5a61bbde 100644
--- a/libphobos/libdruntime/core/internal/array/construction.d
+++ b/libphobos/libdruntime/core/internal/array/construction.d
@@ -470,7 +470,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_newitemT, core,lifetime).
*/
- T[] _d_newarrayTTrace(T)(string file, int line, string funcname, size_t length, bool isShared) @trusted
+ T[] _d_newarrayTTrace(T)(size_t length, bool isShared, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
@@ -602,7 +602,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_newarraymT, core,internal,array,construction).
*/
- Tarr _d_newarraymTXTrace(Tarr : U[], T, U)(string file, int line, string funcname, size_t[] dims, bool isShared=false) @trusted
+ Tarr _d_newarraymTXTrace(Tarr : U[], T, U)(size_t[] dims, bool isShared=false, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
diff --git a/libphobos/libdruntime/core/internal/array/utils.d b/libphobos/libdruntime/core/internal/array/utils.d
index 2cda571ba71..deaae3f95da 100644
--- a/libphobos/libdruntime/core/internal/array/utils.d
+++ b/libphobos/libdruntime/core/internal/array/utils.d
@@ -53,18 +53,6 @@ version (D_ProfileGC)
string name = } ~ "`" ~ Type ~ "`;" ~ q{
// FIXME: use rt.tracegc.accumulator when it is accessable in the future.
- version (tracegc)
- } ~ "{\n" ~ q{
- import core.stdc.stdio : printf;
-
- printf("%sTrace file = '%.*s' line = %d function = '%.*s' type = %.*s\n",
- } ~ "\"" ~ Hook ~ "\".ptr," ~ q{
- file.length, file.ptr,
- line,
- funcname.length, funcname.ptr,
- name.length, name.ptr
- );
- } ~ "}\n" ~ q{
ulong currentlyAllocated = gcStatsPure().allocatedInCurrentThread;
scope(exit)
@@ -99,7 +87,7 @@ version (D_ProfileGC)
* purity, and throwabilty checks. To prevent breaking existing code, this function template
* is temporarily declared `@trusted pure` until the implementation can be brought up to modern D expectations.
*/
- auto _d_HookTraceImpl(T, alias Hook, string errorMessage)(string file, int line, string funcname, Parameters!Hook parameters) @trusted pure
+ auto _d_HookTraceImpl(T, alias Hook, string errorMessage)(Parameters!Hook parameters, string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted pure
{
version (D_TypeInfo)
{
diff --git a/libphobos/libdruntime/core/internal/newaa.d b/libphobos/libdruntime/core/internal/newaa.d
index 7c858f33522..47283f28030 100644
--- a/libphobos/libdruntime/core/internal/newaa.d
+++ b/libphobos/libdruntime/core/internal/newaa.d
@@ -44,7 +44,7 @@ struct Impl
Bucket[] buckets;
uint used;
uint deleted;
- TypeInfo_Struct entryTI;
+ const(TypeInfo) entryTI;
uint firstUsed;
immutable uint keysz;
immutable uint valsz;
@@ -75,15 +75,6 @@ private size_t mix(size_t h) @safe pure nothrow @nogc
return h;
}
-struct Entry(K, V)
-{
- // can make this const, because we aren't really going to use it aside from
- // construction.
- const K key;
- V value;
-}
-
-
// create a binary-compatible AA structure that can be used directly as an
// associative array.
// NOTE: this must only be called during CTFE
@@ -92,7 +83,7 @@ AAShell makeAA(K, V)(V[K] src) @trusted
assert(__ctfe, "makeAA Must only be called at compile time");
immutable srclen = src.length;
assert(srclen <= uint.max);
- alias E = Entry!(K, V);
+ alias E = TypeInfo_AssociativeArray.Entry!(K, V);
if (srclen == 0)
return AAShell.init;
// first, determine the size that would be used if we grew the bucket list
diff --git a/libphobos/libdruntime/core/lifetime.d b/libphobos/libdruntime/core/lifetime.d
index a088bf6ca2d..49512ab14b4 100644
--- a/libphobos/libdruntime/core/lifetime.d
+++ b/libphobos/libdruntime/core/lifetime.d
@@ -2788,7 +2788,7 @@ if (is(T == class))
/**
* TraceGC wrapper around $(REF _d_newclassT, core,lifetime).
*/
-T _d_newclassTTrace(T)(string file, int line, string funcname) @trusted
+T _d_newclassTTrace(T)(string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
@@ -2985,7 +2985,7 @@ version (D_ProfileGC)
/**
* TraceGC wrapper around $(REF _d_newitemT, core,lifetime).
*/
- T* _d_newitemTTrace(T)(string file, int line, string funcname) @trusted
+ T* _d_newitemTTrace(T)(string file = __FILE__, int line = __LINE__, string funcname = __FUNCTION__) @trusted
{
version (D_TypeInfo)
{
diff --git a/libphobos/libdruntime/core/stdc/config.d b/libphobos/libdruntime/core/stdc/config.d
index c95fe651407..34f78e03e4a 100644
--- a/libphobos/libdruntime/core/stdc/config.d
+++ b/libphobos/libdruntime/core/stdc/config.d
@@ -670,3 +670,8 @@ package(core) template muslRedirTime64Mangle(string name, string redirectedName)
else
enum muslRedirTime64Mangle = name;
}
+
+version (PPC64)
+ enum PPCUseIEEE128 = real.mant_dig == 113;
+else
+ enum PPCUseIEEE128 = false;
diff --git a/libphobos/libdruntime/core/stdc/math.d b/libphobos/libdruntime/core/stdc/math.d
index e54d5813995..1f384f9cbd4 100644
--- a/libphobos/libdruntime/core/stdc/math.d
+++ b/libphobos/libdruntime/core/stdc/math.d
@@ -4284,404 +4284,651 @@ else
double acos(double x);
///
float acosf(float x);
- ///
- real acosl(real x);
///
double asin(double x);
///
float asinf(float x);
- ///
- real asinl(real x);
///
pure double atan(double x);
///
pure float atanf(float x);
- ///
- pure real atanl(real x);
///
double atan2(double y, double x);
///
float atan2f(float y, float x);
- ///
- real atan2l(real y, real x);
///
pure double cos(double x);
///
pure float cosf(float x);
- ///
- pure real cosl(real x);
///
pure double sin(double x);
///
pure float sinf(float x);
- ///
- pure real sinl(real x);
///
pure double tan(double x);
///
pure float tanf(float x);
- ///
- pure real tanl(real x);
///
double acosh(double x);
///
float acoshf(float x);
- ///
- real acoshl(real x);
///
pure double asinh(double x);
///
pure float asinhf(float x);
- ///
- pure real asinhl(real x);
///
double atanh(double x);
///
float atanhf(float x);
- ///
- real atanhl(real x);
///
double cosh(double x);
///
float coshf(float x);
- ///
- real coshl(real x);
///
double sinh(double x);
///
float sinhf(float x);
- ///
- real sinhl(real x);
///
pure double tanh(double x);
///
pure float tanhf(float x);
- ///
- pure real tanhl(real x);
///
double exp(double x);
///
float expf(float x);
- ///
- real expl(real x);
///
double exp2(double x);
///
float exp2f(float x);
- ///
- real exp2l(real x);
///
double expm1(double x);
///
float expm1f(float x);
- ///
- real expm1l(real x);
///
pure double frexp(double value, int* exp);
///
pure float frexpf(float value, int* exp);
- ///
- pure real frexpl(real value, int* exp);
///
int ilogb(double x);
///
int ilogbf(float x);
- ///
- int ilogbl(real x);
///
double ldexp(double x, int exp);
///
float ldexpf(float x, int exp);
- ///
- real ldexpl(real x, int exp);
///
double log(double x);
///
float logf(float x);
- ///
- real logl(real x);
///
double log10(double x);
///
float log10f(float x);
- ///
- real log10l(real x);
///
double log1p(double x);
///
float log1pf(float x);
- ///
- real log1pl(real x);
///
double log2(double x);
///
float log2f(float x);
- ///
- real log2l(real x);
///
double logb(double x);
///
float logbf(float x);
- ///
- real logbl(real x);
///
pure double modf(double value, double* iptr);
///
pure float modff(float value, float* iptr);
- ///
- pure real modfl(real value, real *iptr);
///
double scalbn(double x, int n);
///
float scalbnf(float x, int n);
- ///
- real scalbnl(real x, int n);
///
double scalbln(double x, c_long n);
///
float scalblnf(float x, c_long n);
- ///
- real scalblnl(real x, c_long n);
///
pure double cbrt(double x);
///
pure float cbrtf(float x);
- ///
- pure real cbrtl(real x);
///
pure double fabs(double x);
- version (CRuntime_Microsoft)
- {
- }
- else
- {
- ///
- pure float fabsf(float x);
- ///
- pure real fabsl(real x);
- }
///
double hypot(double x, double y);
///
float hypotf(float x, float y);
- ///
- real hypotl(real x, real y);
///
double pow(double x, double y);
///
float powf(float x, float y);
- ///
- real powl(real x, real y);
///
double sqrt(double x);
///
float sqrtf(float x);
- ///
- real sqrtl(real x);
///
pure double erf(double x);
///
pure float erff(float x);
- ///
- pure real erfl(real x);
///
double erfc(double x);
///
float erfcf(float x);
- ///
- real erfcl(real x);
///
double lgamma(double x);
///
float lgammaf(float x);
- ///
- real lgammal(real x);
///
double tgamma(double x);
///
float tgammaf(float x);
- ///
- real tgammal(real x);
///
pure double ceil(double x);
///
pure float ceilf(float x);
- ///
- pure real ceill(real x);
///
pure double floor(double x);
///
pure float floorf(float x);
- ///
- pure real floorl(real x);
///
pure double nearbyint(double x);
///
pure float nearbyintf(float x);
- ///
- pure real nearbyintl(real x);
///
pure double rint(double x);
///
pure float rintf(float x);
- ///
- pure real rintl(real x);
///
c_long lrint(double x);
///
c_long lrintf(float x);
- ///
- c_long lrintl(real x);
///
long llrint(double x);
///
long llrintf(float x);
- ///
- long llrintl(real x);
///
pure double round(double x);
///
pure float roundf(float x);
- ///
- pure real roundl(real x);
///
c_long lround(double x);
///
c_long lroundf(float x);
- ///
- c_long lroundl(real x);
///
long llround(double x);
///
long llroundf(float x);
- ///
- long llroundl(real x);
///
pure double trunc(double x);
///
pure float truncf(float x);
- ///
- pure real truncl(real x);
///
double fmod(double x, double y);
///
float fmodf(float x, float y);
- ///
- real fmodl(real x, real y);
///
double remainder(double x, double y);
///
float remainderf(float x, float y);
- ///
- real remainderl(real x, real y);
///
double remquo(double x, double y, int* quo);
///
float remquof(float x, float y, int* quo);
- ///
- real remquol(real x, real y, int* quo);
///
pure double copysign(double x, double y);
///
pure float copysignf(float x, float y);
- ///
- pure real copysignl(real x, real y);
///
pure double nan(char* tagp);
///
pure float nanf(char* tagp);
- ///
- pure real nanl(char* tagp);
///
double nextafter(double x, double y);
///
float nextafterf(float x, float y);
///
- real nextafterl(real x, real y);
-
- ///
- double nexttoward(double x, real y);
- ///
- float nexttowardf(float x, real y);
- ///
- real nexttowardl(real x, real y);
///
double fdim(double x, double y);
///
float fdimf(float x, float y);
- ///
- real fdiml(real x, real y);
///
pure double fmax(double x, double y);
///
pure float fmaxf(float x, float y);
- ///
- pure real fmaxl(real x, real y);
+
///
pure double fmin(double x, double y);
///
pure float fminf(float x, float y);
- ///
- pure real fminl(real x, real y);
+
///
pure double fma(double x, double y, double z);
///
pure float fmaf(float x, float y, float z);
- ///
- pure real fmal(real x, real y, real z);
+
+
+ static if (PPCUseIEEE128) {
+ ///
+ real __acosieee128(real x);
+ ///
+ alias acosl = __acosieee128;
+ ///
+ real __asinieee128(real x);
+ ///
+ alias asinl = __asinieee128;
+ ///
+ pure real __atanieee128(real x);
+ ///
+ alias atanl = __atanieee128;
+ ///
+ real __atan2ieee128(real y, real x);
+ ///
+ alias atan2l = __atan2ieee128;
+ ///
+ pure real __cosieee128(real x);
+ ///
+ alias cosl = __cosieee128;
+ ///
+ pure real __sinieee128(real x);
+ ///
+ alias sinl = __sinieee128;
+ ///
+ pure real __tanieee128(real x);
+ ///
+ alias tanl = __tanieee128;
+ ///
+ real __acoshieee128(real x);
+ ///
+ alias acoshl = __acoshieee128;
+ ///
+ pure real __asinhieee128(real x);
+ ///
+ alias asinhl = __asinhieee128;
+ ///
+ real __atanhieee128(real x);
+ ///
+ alias atanhl = __atanhieee128;
+ ///
+ real __coshieee128(real x);
+ ///
+ alias coshl = __coshieee128;
+ ///
+ real __sinhieee128(real x);
+ ///
+ alias sinhl = __sinhieee128;
+ ///
+ pure real __tanhieee128(real x);
+ ///
+ alias tanhl = __tanhieee128;
+ ///
+ real __expieee128(real x);
+ ///
+ alias expl = __expieee128;
+ ///
+ real __exp2ieee128(real x);
+ ///
+ alias exp2l = __exp2ieee128;
+ ///
+ real __expm1ieee128(real x);
+ ///
+ alias expm1l = __expm1ieee128;
+ ///
+ pure real __frexpieee128(real value, int* exp);
+ ///
+ alias frexpl = __frexpieee128;
+ ///
+ int __ilogbieee128(real x);
+ ///
+ alias ilogbl = __ilogbieee128;
+ ///
+ real __ldexpieee128(real x, int exp);
+ ///
+ alias ldexpl = __ldexpieee128;
+ ///
+ real __logieee128(real x);
+ ///
+ alias logl = __logieee128;
+ ///
+ real __log10ieee128(real x);
+ ///
+ alias log10l = __log10ieee128;
+ ///
+ real __log1pieee128(real x);
+ ///
+ alias log1pl = __log1pieee128;
+ ///
+ real __log2ieee128(real x);
+ ///
+ alias log2l = __log2ieee128;
+ ///
+ real __logbieee128(real x);
+ ///
+ alias logbl = __logbieee128;
+ ///
+ pure real __modfieee128(real value, real *iptr);
+ ///
+ alias modfl = __modfieee128;
+ ///
+ real __scalbnieee128(real x, int n);
+ ///
+ alias scalbnl = __scalbnieee128;
+ ///
+ real __scalblnieee128(real x, c_long n);
+ ///
+ alias scalblnl = __scalblnieee128;
+ ///
+ pure real __cbrtieee128(real x);
+ ///
+ alias cbrtl = __cbrtieee128;
+ ///
+ pure float fabsf(float x);
+ ///
+ pure real __fabsieee128(real x);
+ ///
+ alias fabsl = __fabsieee128;
+ ///
+ real __hypotieee128(real x, real y);
+ ///
+ alias hypotl = __hypotieee128;
+ ///
+ real __powieee128(real x, real y);
+ ///
+ alias powl = __powieee128;
+ ///
+ real __sqrtieee128(real x);
+ ///
+ alias sqrtl = __sqrtieee128;
+ ///
+ pure real __erfieee128(real x);
+ ///
+ alias erfl = __erfieee128;
+ ///
+ real __erfcieee128(real x);
+ ///
+ alias erfcl = __erfcieee128;
+ ///
+ real __lgammaieee128(real x);
+ ///
+ alias lgammal = __lgammaieee128;
+ ///
+ real __tgammaieee128(real x);
+ ///
+ alias tgammal = __tgammaieee128;
+ ///
+ pure real __ceilieee128(real x);
+ ///
+ alias ceill = __ceilieee128;
+ ///
+ pure real __floorieee128(real x);
+ ///
+ alias floorl = __floorieee128;
+ ///
+ pure real __nearbyintieee128(real x);
+ ///
+ alias nearbyintl = __nearbyintieee128;
+ ///
+ pure real __rintieee128(real x);
+ ///
+ alias rintl = __rintieee128;
+ ///
+ c_long __lrintieee128(real x);
+ ///
+ alias lrintl = __lrintieee128;
+ ///
+ long __llrintieee128(real x);
+ ///
+ alias llrintl = __llrintieee128;
+ ///
+ pure real __roundieee128(real x);
+ ///
+ alias roundl = __roundieee128;
+ ///
+ c_long __lroundieee128(real x);
+ ///
+ alias lroundl = __lroundieee128;
+ ///
+ long __llroundieee128(real x);
+ ///
+ alias llroundl = __llroundieee128;
+ ///
+ pure real __truncieee128(real x);
+ ///
+ alias truncl = __truncieee128;
+ ///
+ real __fmodieee128(real x, real y);
+ ///
+ alias fmodl = __fmodieee128;
+ ///
+ real __remainderieee128(real x, real y);
+ ///
+ alias remainderl = __remainderieee128;
+ ///
+ real __remquoieee128(real x, real y, int* quo);
+ ///
+ alias remquol = __remquoieee128;
+ ///
+ pure real __copysignieee128(real x, real y);
+ ///
+ alias copysignl = __copysignieee128;
+ ///
+ pure real __nanieee128(char* tagp);
+ ///
+ alias nanl = __nanieee128;
+ ///
+ real __nextafterieee128(real x, real y);
+ ///
+ alias nextafterl = __nextafterieee128;
+ ///
+ double __nexttoward_to_ieee128(double x, real y);
+ ///
+ alias nexttoward = __nexttoward_to_ieee128;
+ ///
+ float __nexttowardf_to_ieee128(float x, real y);
+ ///
+ alias nexttowardf = __nexttowardf_to_ieee128;
+ ///
+ real __nexttowardieee128(real x, real y);
+ ///
+ alias nexttowardl = __nexttowardieee128;
+ ///
+ real __fdimieee128(real x, real y);
+ ///
+ alias fdiml = __fdimieee128;
+ ///
+ pure real __fmaxieee128(real x, real y);
+ ///
+ alias fmaxl = __fmaxieee128;
+ ///
+ pure real __fminieee128(real x, real y);
+ ///
+ alias fminl = __fminieee128;
+ ///
+ pure real __fmaieee128(real x, real y, real z);
+ ///
+ alias fmal = __fmaieee128;
+ }
+ else
+ {
+ ///
+ real acosl(real x);
+ ///
+ real asinl(real x);
+ ///
+ pure real atanl(real x);
+ ///
+ real atan2l(real y, real x);
+ ///
+ pure real cosl(real x);
+ ///
+ pure real sinl(real x);
+ ///
+ pure real tanl(real x);
+ ///
+ real acoshl(real x);
+ ///
+ pure real asinhl(real x);
+ ///
+ real atanhl(real x);
+ ///
+ real coshl(real x);
+ ///
+ real sinhl(real x);
+ ///
+ pure real tanhl(real x);
+ ///
+ real expl(real x);
+ ///
+ real exp2l(real x);
+ ///
+ real expm1l(real x);
+ ///
+ pure real frexpl(real value, int* exp);
+ ///
+ int ilogbl(real x);
+ ///
+ real ldexpl(real x, int exp);
+ ///
+ real logl(real x);
+ ///
+ real log10l(real x);
+ ///
+ real log1pl(real x);
+ ///
+ real log2l(real x);
+ ///
+ real logbl(real x);
+ ///
+ pure real modfl(real value, real *iptr);
+ ///
+ real scalbnl(real x, int n);
+ ///
+ real scalblnl(real x, c_long n);
+ ///
+ pure real cbrtl(real x);
+ version (CRuntime_Microsoft)
+ {
+ }
+ else
+ {
+ ///
+ pure float fabsf(float x);
+ ///
+ pure real fabsl(real x);
+ }
+ ///
+ real hypotl(real x, real y);
+ ///
+ real powl(real x, real y);
+ ///
+ real sqrtl(real x);
+ ///
+ pure real erfl(real x);
+ ///
+ real erfcl(real x);
+ ///
+ real lgammal(real x);
+ ///
+ real tgammal(real x);
+ ///
+ pure real ceill(real x);
+ ///
+ pure real floorl(real x);
+ ///
+ pure real nearbyintl(real x);
+ ///
+ pure real rintl(real x);
+ ///
+ c_long lrintl(real x);
+ ///
+ long llrintl(real x);
+ ///
+ pure real roundl(real x);
+ ///
+ c_long lroundl(real x);
+ ///
+ long llroundl(real x);
+ ///
+ pure real truncl(real x);
+ ///
+ real fmodl(real x, real y);
+ ///
+ real remainderl(real x, real y);
+ ///
+ real remquol(real x, real y, int* quo);
+ ///
+ pure real copysignl(real x, real y);
+ ///
+ pure real nanl(char* tagp);
+ ///
+ real nextafterl(real x, real y);
+ ///
+ double nexttoward(double x, real y);
+ ///
+ float nexttowardf(float x, real y);
+ ///
+ real nexttowardl(real x, real y);
+ ///
+ real fdiml(real x, real y);
+ ///
+ pure real fmaxl(real x, real y);
+ ///
+ pure real fminl(real x, real y);
+ ///
+ pure real fmal(real x, real y, real z);
+ }
}
diff --git a/libphobos/libdruntime/core/stdc/stdio.d b/libphobos/libdruntime/core/stdc/stdio.d
index d3ee2cae8e5..c9b6d7b6b7e 100644
--- a/libphobos/libdruntime/core/stdc/stdio.d
+++ b/libphobos/libdruntime/core/stdc/stdio.d
@@ -1303,54 +1303,118 @@ version (MinGW)
}
else version (CRuntime_Glibc)
{
- ///
- pragma(printf)
- int fprintf(FILE* stream, scope const char* format, scope const ...);
- ///
- pragma(scanf)
- int __isoc99_fscanf(FILE* stream, scope const char* format, scope ...);
- ///
- alias fscanf = __isoc99_fscanf;
- ///
- pragma(printf)
- int sprintf(scope char* s, scope const char* format, scope const ...);
- ///
- pragma(scanf)
- int __isoc99_sscanf(scope const char* s, scope const char* format, scope ...);
- ///
- alias sscanf = __isoc99_sscanf;
- ///
- pragma(printf)
- int vfprintf(FILE* stream, scope const char* format, va_list arg);
- ///
- pragma(scanf)
- int __isoc99_vfscanf(FILE* stream, scope const char* format, va_list arg);
- ///
- alias vfscanf = __isoc99_vfscanf;
- ///
- pragma(printf)
- int vsprintf(scope char* s, scope const char* format, va_list arg);
- ///
- pragma(scanf)
- int __isoc99_vsscanf(scope const char* s, scope const char* format, va_list arg);
- ///
- alias vsscanf = __isoc99_vsscanf;
- ///
- pragma(printf)
- int vprintf(scope const char* format, va_list arg);
- ///
- pragma(scanf)
- int __isoc99_vscanf(scope const char* format, va_list arg);
- ///
- alias vscanf = __isoc99_vscanf;
- ///
- pragma(printf)
- int printf(scope const char* format, scope const ...);
- ///
- pragma(scanf)
- int __isoc99_scanf(scope const char* format, scope ...);
- ///
- alias scanf = __isoc99_scanf;
+ static if (PPCUseIEEE128)
+ {
+ ///
+ pragma(printf)
+ int __fprintfieee128(FILE* stream, scope const char* format, scope const ...);
+ ///
+ alias fprintf = __fprintfieee128;
+ ///
+ pragma(scanf)
+ int __isoc99_fscanfieee128(FILE* stream, scope const char* format, scope ...);
+ ///
+ alias fscanf = __isoc99_fscanfieee128;
+ ///
+ pragma(printf)
+ int __sprintfieee128(scope char* s, scope const char* format, scope const ...);
+ ///
+ alias sprintf = __sprintfieee128;
+ ///
+ pragma(scanf)
+ int __isoc99_sscanfieee128(scope const char* s, scope const char* format, scope ...);
+ ///
+ alias sscanf = __isoc99_sscanfieee128;
+ ///
+ pragma(printf)
+ int vfprintf(FILE* stream, scope const char* format, va_list arg);
+ ///
+ pragma(scanf)
+ int __isoc99_vfscanfieee128(FILE* stream, scope const char* format, va_list arg);
+ ///
+ alias vfscanf = __isoc99_vfscanfieee128;
+ ///
+ pragma(printf)
+ int __vsprintfieee128(scope char* s, scope const char* format, va_list arg);
+ ///
+ alias vsprintf = __vsprintfieee128;
+ ///
+ pragma(scanf)
+ int __isoc99_vsscanfieee128(scope const char* s, scope const char* format, va_list arg);
+ ///
+ alias vsscanf = __isoc99_vsscanfieee128;
+ ///
+ pragma(printf)
+ int __vprintfieee128(scope const char* format, va_list arg);
+ ///
+ alias vprintf = __vprintfieee128;
+ ///
+ pragma(scanf)
+ int __isoc99_vfscanfieee128(scope const char* format, va_list arg);
+ ///
+ alias vscanf = __isoc99_vfscanfieee128;
+ ///
+ pragma(printf)
+ int __printfieee128(scope const char* format, scope const ...);
+ ///
+ alias printf = __printfieee128;
+ ///
+ pragma(scanf)
+ int __isoc99_scanfieee128(scope const char* format, scope ...);
+ ///
+ alias scanf = __isoc99_scanfieee128;
+ }
+ else
+ {
+ ///
+ pragma(printf)
+ int fprintf(FILE* stream, scope const char* format, scope const ...);
+ ///
+ pragma(scanf)
+ int __isoc99_fscanf(FILE* stream, scope const char* format, scope ...);
+ ///
+ alias fscanf = __isoc99_fscanf;
+ ///
+ pragma(printf)
+ int sprintf(scope char* s, scope const char* format, scope const ...);
+ ///
+ pragma(scanf)
+ int __isoc99_sscanf(scope const char* s, scope const char* format, scope ...);
+ ///
+ alias sscanf = __isoc99_sscanf;
+ ///
+ pragma(printf)
+ int vfprintf(FILE* stream, scope const char* format, va_list arg);
+ ///
+ pragma(scanf)
+ int __isoc99_vfscanf(FILE* stream, scope const char* format, va_list arg);
+ ///
+ alias vfscanf = __isoc99_vfscanf;
+ ///
+ pragma(printf)
+ int vsprintf(scope char* s, scope const char* format, va_list arg);
+ ///
+ pragma(scanf)
+ int __isoc99_vsscanf(scope const char* s, scope const char* format, va_list arg);
+ ///
+ alias vsscanf = __isoc99_vsscanf;
+ ///
+ pragma(printf)
+ int vprintf(scope const char* format, va_list arg);
+ ///
+ pragma(scanf)
+ int __isoc99_vscanf(scope const char* format, va_list arg);
+ ///
+ alias vscanf = __isoc99_vscanf;
+ ///
+ pragma(printf)
+ int printf(scope const char* format, scope const ...);
+ ///
+ pragma(scanf)
+ int __isoc99_scanf(scope const char* format, scope ...);
+ ///
+ alias scanf = __isoc99_scanf;
+ }
}
else
{
@@ -1544,12 +1608,28 @@ else version (CRuntime_Glibc)
int fileno(FILE *);
}
- ///
- pragma(printf)
- int snprintf(scope char* s, size_t n, scope const char* format, scope const ...);
- ///
- pragma(printf)
- int vsnprintf(scope char* s, size_t n, scope const char* format, va_list arg);
+ static if (PPCUseIEEE128)
+ {
+ ///
+ pragma(printf)
+ int __snprintfieee128(scope char* s, size_t n, scope const char* format, scope const ...);
+ ///
+ alias snprintf = __snprintfieee128;
+ ///
+ pragma(printf)
+ int __vsnprintfieee128(scope char* s, size_t n, scope const char* format, va_list arg);
+ ///
+ alias vsnprintf = __vsnprintfieee128;
+ }
+ else
+ {
+ ///
+ pragma(printf)
+ int snprintf(scope char* s, size_t n, scope const char* format, scope const ...);
+ ///
+ pragma(printf)
+ int vsnprintf(scope char* s, size_t n, scope const char* format, va_list arg);
+ }
//
// Gnu under-the-hood C I/O functions. Uses _iobuf* for the unshared
diff --git a/libphobos/libdruntime/core/stdc/stdlib.d b/libphobos/libdruntime/core/stdc/stdlib.d
index bd5fc2b15ea..52fa1d0f70c 100644
--- a/libphobos/libdruntime/core/stdc/stdlib.d
+++ b/libphobos/libdruntime/core/stdc/stdlib.d
@@ -147,8 +147,16 @@ version (CRuntime_Microsoft)
}
else
{
- /// Added to Bionic since Lollipop.
- real strtold(scope inout(char)* nptr, scope inout(char)** endptr);
+ static if (PPCUseIEEE128)
+ {
+ real __strtoieee128(scope inout(char)* nptr, scope inout(char)** endptr);
+ alias strtold = __strtoieee128;
+ }
+ else
+ {
+ /// Added to Bionic since Lollipop.
+ real strtold(scope inout(char)* nptr, scope inout(char)** endptr);
+ }
}
// No unsafe pointer manipulation.
diff --git a/libphobos/libdruntime/core/sys/windows/sql.d b/libphobos/libdruntime/core/sys/windows/sql.d
index 9054ce589e8..013d9f06e60 100644
--- a/libphobos/libdruntime/core/sys/windows/sql.d
+++ b/libphobos/libdruntime/core/sys/windows/sql.d
@@ -11,13 +11,15 @@ $(RED Warning:
*/
module core.sys.windows.sql;
+
+enum ODBCVER = 0x0400;
+
+deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package."):
version (Windows):
public import core.sys.windows.sqltypes;
import core.sys.windows.windef;
-enum ODBCVER = 0x0351;
-
enum SQL_ACCESSIBLE_PROCEDURES=20;
enum SQL_ACCESSIBLE_TABLES=19;
enum SQL_ALL_TYPES=0;
diff --git a/libphobos/libdruntime/core/sys/windows/sqlext.d b/libphobos/libdruntime/core/sys/windows/sqlext.d
index b871fbbbb84..a53918394dc 100644
--- a/libphobos/libdruntime/core/sys/windows/sqlext.d
+++ b/libphobos/libdruntime/core/sys/windows/sqlext.d
@@ -11,6 +11,7 @@ $(RED Warning:
*/
module core.sys.windows.sqlext;
+deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package."):
version (Windows):
/* Conversion notes:
diff --git a/libphobos/libdruntime/core/sys/windows/sqltypes.d b/libphobos/libdruntime/core/sys/windows/sqltypes.d
index 04fac6bac6a..ca91f015851 100644
--- a/libphobos/libdruntime/core/sys/windows/sqltypes.d
+++ b/libphobos/libdruntime/core/sys/windows/sqltypes.d
@@ -70,6 +70,10 @@ alias long ODBCINT64, SQLBIGINT;
alias ulong SQLUBIGINT;
//}
+//Everything above this line may by used by odbcinst.d
+//Everything below this line is deprecated
+deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package."):
+
struct DATE_STRUCT {
SQLSMALLINT year;
SQLUSMALLINT month;
diff --git a/libphobos/libdruntime/core/sys/windows/sqlucode.d b/libphobos/libdruntime/core/sys/windows/sqlucode.d
index e7ae1d276be..d20952d5b4b 100644
--- a/libphobos/libdruntime/core/sys/windows/sqlucode.d
+++ b/libphobos/libdruntime/core/sys/windows/sqlucode.d
@@ -11,6 +11,7 @@ $(RED Warning:
*/
module core.sys.windows.sqlucode;
+deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package."):
version (Windows):
version (ANSI) {} else version = Unicode;