May 16, 2014
On Friday, 16 May 2014 at 09:44:11 UTC, bearophile wrote:
> John Colvin:
>
>> Any plans to get any preprocessor stuff working?
>
> Do you mean in D?
>
> Bye,
> bearophile

i think he means in dstep.
May 16, 2014
On 16/05/14 11:19, John Colvin wrote:

> Any plans to get any preprocessor stuff working? Presumably libclang can
> make this feasible.

Yes, eventually. Although, currently libclang doesn't really provide an API for the preprocessor, so that needs to be added.

-- 
/Jacob Carlborg
May 16, 2014
On Thursday, 15 May 2014 at 22:25:47 UTC, Tom Browder via Digitalmars-d-learn wrote:
> I am a volunteer developer with the well-known 3D CAD FOSS project BRL-CAD:
>
>   http://brlcad.org
>
> I have wanted to use D for a long time but I hadn't taken the plunge.
> Yesterday I advertised to the BRL-CAD community my new project to
> attempt to create D bindings for BRL-CAD's C libraries, and I created
> a branch for the project.
>
> I have been looking for specific information on creating D bindings
> from C headers for which there seems to be sufficient information
> available, but I would appreciate recommendations as to the best
> method.  I have successfully built my first pure D program but now
> need to test the feasibility of my project.
>
> What I have not seen yet is the exact way to build a D program which
> uses D bindings and its matching C library.  I have just created a
> Cookbook page on the D Wiki where I show my first attempt for a real
> GNU Makefile as an example for the project.  The page link is here:
>
>   http://wiki.dlang.org/Using_C_libraries_for_a_D_program
>
> I would appreciate it if an experienced D user would correct that
> recipe so it should compile the desired binary source correctly
> (assuming no errors in the  input files).
>
> Thanks for any help.
>
> Best regards,
>
> -Tom

For a start use dub to build D projects, it's becoming the de-facto build tool.

http://code.dlang.org/

Then take a look at one of my projects in which i've ported C headers to D.

https://github.com/nomad-software/tcltk

In that repo i've included all the C headers as well as their D counterparts for reference. Converting headers is not straightforward when you first start but once you understand the rules it gets easier. Here's some helpful links:

http://dlang.org/interfaceToC.html
http://www.gamedev.net/page/resources/_/technical/game-programming/binding-d-to-c-r3122
http://forum.dlang.org/thread/qvjjzoxoufxnxzokywgq@forum.dlang.org
http://forum.dlang.org/thread/wmzqweodmbpkfjbvevcc@forum.dlang.org
http://forum.dlang.org/thread/fzqloumcqbdvnccvacpi@forum.dlang.org

Once the D file is created and imported into your program you just need to link the necessary library and you're good to go. See the `package.json` file in the above repository for how i do it for Posix and Windows. Windows DLL's are supplied in the `dist` directory.
May 16, 2014
On Friday, 16 May 2014 at 10:10:17 UTC, Tom Browder via
Digitalmars-d-learn wrote:
> Thanks for the suggestion, Frank, but I don't do windows.

Monodevelop (open source C# dev platform) has a plugin for D by
Alexander Bothe called Mono-D which is absolutely fantastic and
integrates okay with dub too. There is also an emacs major mode
for d (d-mode) which gives basic highlighting and indentation
too. I use both all of these tools on my Arch linux set up and
they work very well, and Mono-D has some debugging support too.
Best of luck spreading D Tom! You're doing the lord's work son.

Alex
May 16, 2014
On Fri, May 16, 2014 at 1:19 PM, Alex Herrmann via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> On Friday, 16 May 2014 at 10:10:17 UTC, Tom Browder via
...
>> Thanks for the suggestion, Frank, but I don't do windows.
...
> Monodevelop (open source C# dev platform) has a plugin for D by
...

Thanks for the suggestions, Alex,

...
> Best of luck spreading D Tom! You're doing the lord's work son.

I don't know if it's the Lord's work or not, but I do think D is the better C++ for lots of us (with profuse thanks to Bjarne Stroustrup for C++).

Best regards,

-Tom
May 16, 2014
On Fri, May 16, 2014 at 1:05 PM, Gary Willoughby via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> On Thursday, 15 May 2014 at 22:25:47 UTC, Tom Browder via
..
>> What I have not seen yet is the exact way to build a D program which uses D bindings and its matching C library.  I have just created a
...
> For a start use dub to build D projects, it's becoming the de-facto build tool.
...

Thanks for all the help, Gary.

Wow, you have been very busy--quite a record to strive for!

Best regards,

-Tom
May 16, 2014
On Fri, May 16, 2014 at 1:05 PM, Gary Willoughby via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote: ...
> Then take a look at one of my projects in which i've ported C headers to D.
>
> https://github.com/nomad-software/tcltk

I notice your binding source files have a ".d" suffix.  Is that the preferred convention?  I'm asking because I saw ".di" used on several D Wiki pages.

Best,

-Tom
May 16, 2014
On Friday, 16 May 2014 at 19:05:25 UTC, Tom Browder via Digitalmars-d-learn wrote:
> On Fri, May 16, 2014 at 1:05 PM, Gary Willoughby via
> Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> ...
>> Then take a look at one of my projects in which i've ported C headers to D.
>>
>> https://github.com/nomad-software/tcltk
>
> I notice your binding source files have a ".d" suffix.  Is that the
> preferred convention?  I'm asking because I saw ".di" used on several
> D Wiki pages.
>
> Best,
>
> -Tom

Using .di is more idiomatic as those are supposed to denote declaration-only interface files (with no implementation). In practice it makes almost no difference though so many people use plain .d by habit.
May 16, 2014
On Friday, 16 May 2014 at 19:17:05 UTC, Dicebot wrote:
> On Friday, 16 May 2014 at 19:05:25 UTC, Tom Browder via Digitalmars-d-learn wrote:
>> On Fri, May 16, 2014 at 1:05 PM, Gary Willoughby via
>> Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
>> ...
>>> Then take a look at one of my projects in which i've ported C headers to D.
>>>
>>> https://github.com/nomad-software/tcltk
>>
>> I notice your binding source files have a ".d" suffix.  Is that the
>> preferred convention?  I'm asking because I saw ".di" used on several
>> D Wiki pages.
>>
>> Best,
>>
>> -Tom
>
> Using .di is more idiomatic as those are supposed to denote declaration-only interface files (with no implementation). In practice it makes almost no difference though so many people use plain .d by habit.

That's right. I always use .d files when porting C headers because i just see them as regular D code. I like to classify .di files as D 'headers' generated from pure D libraries (using the -H compiler switch). That's just my opinion though and to be honest i don't think it matters. :)
May 16, 2014
On Fri, May 16, 2014 at 2:31 PM, Gary Willoughby via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> On Friday, 16 May 2014 at 19:17:05 UTC, Dicebot wrote:
>> Using .di is more idiomatic as those are supposed to denote declaration-only interface files (with no implementation). In practice it makes almost no difference though so many people use plain .d by habit.
...
> That's right. I always use .d files when porting C headers because i just see them as regular D code. I like to classify .di files as D 'headers' generated from pure D libraries (using the -H compiler switch). That's just my opinion though and to be honest i don't think it matters. :)

Okay, Dicebot and Gary, that makes good sense I think, thanks.

So I should use the ".d" for the binding source files since there will almost certainly be implementation code in them.

Best,

-Tom