questions about NetBSD port

Nikolay via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 2 10:45:20 PST 2016


I am porting LDC/phobos/druntime to NetBSD. Currently my patch is 
merged into LDC master. I have several questions about 
phobos/druntime and general workflow.
As I can understand I should prepare pull requests for 
phobos/druntime master branches. LDC team will merge/cherry-pick 
changes into ldc branch from master later. Is it correct 
workflow?  Because it means that I can’t check my patch: there is 
no dmd compiler for NetBSD + phobos/druntime master branches.

Also I have a set of issues with real (long double) type. Several 
functions absent in NetBSD for real type (more specific - they 
are just aliases for functions with double). Other functions 
return less accurate values.
I have to disable a couple unit tests for NetBSD.
E.g. std/conv.d:2835 assert(to!string(r) == 
to!string(real.min_normal))
see related question:  
http://stackoverflow.com/questions/35090322/netbsd-long-double-trouble
But also there are a set of unit tests where I have to reduce 
accuracy. This problem affects std/internal/math/gammafunction.d, 
std/math.d, std/numeric.d, std/complex.d
E.g.  std/complex.d:792
assert(sin(complex(2.0L, 0)) == std.math.sin(2.0L));
I replace with:
assert(feqrel(sin(complex(2.0L, 0)).re, std.math.sin(2.0L)) > 
real.mant_dig-10);
My question is: should I wrap such changes with version(NetBSD) 
statement or it is acceptable reduce accuracy for all platforms?

PS
You can look to my code here (netbsd_patch branch):
https://github.com/nrTQgc/druntime
https://github.com/nrTQgc/phobos




More information about the Digitalmars-d mailing list