questions about NetBSD port

Joakim via Digitalmars-d digitalmars-d at puremagic.com
Tue Feb 2 22:25:49 PST 2016


On Tuesday, 2 February 2016 at 18:45:20 UTC, Nikolay wrote:
> 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.

You're probably better off porting dmd 2.068 first (as it's the 
last dmd written wholly in C++), using it to compile dmd git 
master on NetBSD, then porting druntime and phobos master.  
Porting dmd to NetBSD/x86 is likely easy: simply follow what the 
other BSDs have done, as you did for ldc.

> 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?

This is the same issue Win64 and Android have had.  You should 
already see version blocks for those in some places, you can do 
the same.  Take a look at my Android patches for similar tweaks 
that are still unmerged:

https://gist.github.com/joakim-noah/d936d6a339426ad1fac3
https://gist.github.com/joakim-noah/5c03801fa6c59b1e90df


More information about the Digitalmars-d mailing list