November 11, 2013
On 11/11/13, 12:35 PM, Brad Roberts wrote:
>
> https://d.puremagic.com/test-results/?projectid=1
>
> FreeBSD/32 and FreeBSD/64 are both tested just as much as the rest of
> the platforms.  That said, I'm sure that neither gets the same level of
> usage from the community as linux or win32.

Any particular reason why the binaries omitted from the zip file? I'm not expecting an installer, although that would be nice, but if it is being tested, why not provide the binaries?

-- 

Andrew Edwards
--------------------
http://www.akeron.co
auto getAddress() {
    string location = "@", period = ".";
    return ("info" ~ location ~ "afidem" ~ period ~ "org");
}
November 11, 2013
On Monday, 11 November 2013 at 17:35:29 UTC, Brad Roberts wrote:
> On 11/11/13 8:15 AM, Joakim wrote:
>> On Sunday, 10 November 2013 at 16:49:18 UTC, Tyro[17] wrote:
>>> This happened on OpenBSD, FreeBSD and DragonFlyBSD. I am running the 64bit version of all these
>>> operating systems. Which actually might be the problem now that I think about it. Does DMD even
>>> support the 64bit version  of Free/OpenBSD?
>>
>> Oh, I should mention also, that there isn't general BSD support in D.  Try grepping for freebsd in
>> the source.  I just tried it on the source in the 2.063.2 zip file and I got 510 hits for freebsd,
>> 181 hits for openbsd, and 2 hits for dragonfly.  By comparison, I got 685 hits for linux.  That
>> should give you a crude but reasonable idea of how well-supported each OS is.  As for 64-bit, I
>> believe it should work on FreeBSD, but likely isn't well-tested.
>
> https://d.puremagic.com/test-results/?projectid=1
>
> FreeBSD/32 and FreeBSD/64 are both tested just as much as the rest of the platforms.  That said, I'm sure that neither gets the same level of usage from the community as linux or win32.

OK, good to know.  It might help 64-bit usage on FreeBSD if the official dlang zip file shipped with the 64-bit builds of dmd also, just as it does for linux, though maybe that is already the plan for the upcoming versions.
November 11, 2013
On 11/11/13, 11:05 AM, Joakim wrote:
> On Sunday, 10 November 2013 at 19:09:37 UTC, Tyro[17] wrote:
>> On 11/10/13, 12:16 PM, nazriel wrote:
>>> On Sunday, 10 November 2013 at 16:49:18 UTC, Tyro[17] wrote:
>>>> What is the proper way to configure DMD for use on BSD systems?
>> [Snip]
>>>
>>> Try running it with gmake
>>>
>>
>> Ok... Thanks for the pointer. I tried it and got much further than
>> before. Pays to use the right tool for the job. I still ran into
>> problems though:
>>
>> g++  -c -Wno-deprecated -Wstrict-ailiasing -D__pascal= -fno-exceptions
>> -O2  -Ibackend -Itk -Iroot -DMARS=1 -DTARGET_FREEBSD=1
>> -DDM_TARGET_CPU_X86=1 -DDMDV2=1 -I. backend/dwarf.c
>> backend/dwarf.c: In function 'void dwarf_initfile(const char*)':
>> backend/dwarf.c:658:9: error 'error' was not declared in this scope
>> backend/dwarf.c:662:35: error 'getcwd' was not declared in this scope
>> backend/dwarf.c:667:22: error 'ERANGE' was not declared in this scope
>> gmake: *** [dwarf.o] Error 1
>>
>>
>> Any pointers?
> There exist FreeBSD ports for dmd1 and dmd2, which you can use to
> compile either one in 32- or 64-bit.  Any reason you're not using them?
> They're a little stale, but they should work.  At the very least, you
> should be able to figure out build requirements like this by looking at
> the port's makefile, if you prefer to build dmd yourself.

Reason... I had every intention of volunteering to become the so called build master for DMD. I thought it a bit presumptuous to do such a thing without actually knowing how to build the compiler on the supported platforms. I'm using DragonFlyBSD but as far as I know it is 100% source/binary compatible with FreeBSD.

Either way, I've progressed well beyond this point. My current problem is there are a number of undefined references to Port::'et al' in the following files (list abbreviated to remove eliminate all duplicates):

    lexer.c: Port::strtold(char const*, char**)
    lexer.c: Port::strtod(char const*, char**)
    lexer.c: Port::strtof(char const*, char**)

    mars.c: browse(char const*)

    mtype.c: Port::snan
    mtype.c: Port::ldbl_infinity
    mtype.c: Port::ldbl_nan
    mtype.c: Port::ldbl_max

    blockopt.c: util_progress()

    cgelem.c: util_progress()

    constfold.c: Port::fmodl(long double, long double)
    constfold.c: Port::ldbl_nan
    constfold.c: Port::isNan(long double)

    e2ir.c: Port::isSignallingNan(long double)

    expression.c: Port::isNan(long double)
    expression.c: Port::fequal(long double, long double)
    expression.c: Port::strtold(char const*, char**)
    expression.c: Port::isInfinity(double)

    go.c: util_progress()

    inifile.c: Port::strupr(char*)
    inifile.c: Port::memicmp(char const*, char const* int)

    doc.c: Port::memicmp(char const*, char const* int)

    ctfeexpr.c: Port::isNan(long double)

I could start over with FreeBSD now that I know what the problem with that system was. But after installing, configuring and deleting three flavors of BSD for as many times as I did starting on Wednesday of last week, I have no desire to do it again. At least not right now.

-- 

Andrew Edwards
--------------------
http://www.akeron.co
auto getAddress() {
    string location = "@", period = ".";
    return ("info" ~ location ~ "afidem" ~ period ~ "org");
}
November 11, 2013
On Monday, 11 November 2013 at 18:02:18 UTC, Tyro[17] wrote:
> Reason... I had every intention of volunteering to become the so called build master for DMD. I thought it a bit presumptuous to do such a thing without actually knowing how to build the compiler on the supported platforms. I'm using DragonFlyBSD but as far as I know it is 100% source/binary compatible with FreeBSD.
As Walter said in that thread, you don't have to build everything yourself if you're the build master.  You're just responsible for the end product, which may simply mean prodding those responsible for the OS builds that you're unfamiliar with (http://forum.dlang.org/thread/l5ec4p$18p2$1@digitalmars.com#post-l5edpl:241a8i:241:40digitalmars.com).

DragonFly forked from FreeBSD 4 and the dmd2 FreeBSD port doesn't compile on anything less than FreeBSD 8.  Also, the dmd codebase hardcodes for FreeBSD, so even if some source would compile on DragonFly also, it won't until you add in the DragonFly name into the all the appropriate ifdefs.

> Either way, I've progressed well beyond this point. My current problem is there are a number of undefined references to Port::'et al' in the following files (list abbreviated to remove eliminate all duplicates):
>
>     lexer.c: Port::strtold(char const*, char**)
>     lexer.c: Port::strtod(char const*, char**)
>     lexer.c: Port::strtof(char const*, char**)
>
>     mars.c: browse(char const*)
>
>     mtype.c: Port::snan
>     mtype.c: Port::ldbl_infinity
>     mtype.c: Port::ldbl_nan
>     mtype.c: Port::ldbl_max
>
>     blockopt.c: util_progress()
>
>     cgelem.c: util_progress()
>
>     constfold.c: Port::fmodl(long double, long double)
>     constfold.c: Port::ldbl_nan
>     constfold.c: Port::isNan(long double)
>
>     e2ir.c: Port::isSignallingNan(long double)
>
>     expression.c: Port::isNan(long double)
>     expression.c: Port::fequal(long double, long double)
>     expression.c: Port::strtold(char const*, char**)
>     expression.c: Port::isInfinity(double)
>
>     go.c: util_progress()
>
>     inifile.c: Port::strupr(char*)
>     inifile.c: Port::memicmp(char const*, char const* int)
>
>     doc.c: Port::memicmp(char const*, char const* int)
>
>     ctfeexpr.c: Port::isNan(long double)

This is because DragonFly is not included in the ifdefs.  Look at dmd2/root/port.c.  You'll see that all these Port::* functions are defined specifically for FreeBSD and the other supported platforms but DragonFly isn't mentioned anywhere.  You have to go through and add DragonFly into all the appropriate source files for it to work on DragonFly, not just for dmd but especially in druntime and a little bit in Phobos too.  It might make sense to add a general BSD define, but then you'll have to test that on all the other BSDs also.

In any case, none of this is required to be build master, as dmd only supports FreeBSD officially and that already works.

> I could start over with FreeBSD now that I know what the problem with that system was. But after installing, configuring and deleting three flavors of BSD for as many times as I did starting on Wednesday of last week, I have no desire to do it again. At least not right now.

If you are interested in volunteering for build master, none of this was necessary, so I wouldn't let it put you off.  I suggest you talk to Walter or Brad about what knowledge is required to do that job and figure out if you fit the bill.  You will not have to do any of the above porting work as build master, simply keep the trains running on time AFAIK. :)
November 11, 2013
On 2013-11-11 18:55, Joakim wrote:

> OK, good to know.  It might help 64-bit usage on FreeBSD if the official
> dlang zip file shipped with the 64-bit builds of dmd also, just as it
> does for linux, though maybe that is already the plan for the upcoming
> versions.

I've sent pre-compiled binaries for FreeBSD 32bit and 64bit to Walter. Hopefully he'll add them soon to the zip and make an announcement.

-- 
/Jacob Carlborg
November 11, 2013
On 2013-11-11 18:49, Tyro[17] wrote:

> Any particular reason why the binaries omitted from the zip file? I'm
> not expecting an installer, although that would be nice, but if it is
> being tested, why not provide the binaries?

Walter said it was due to his FreeBSD machine was running out of memory when compiling DMD. Again he'll hopefully include the binaries I sent him.

-- 
/Jacob Carlborg
1 2
Next ›   Last »