built in import c header files
12345swordy
alexanderheistermann at gmail.com
Thu Apr 22 19:36:51 UTC 2021
On Thursday, 22 April 2021 at 19:35:36 UTC, 12345swordy wrote:
> On Thursday, 22 April 2021 at 07:34:42 UTC, RazvanN wrote:
>> https://forum.dlang.org/post/txdjmjkhradboqfmozlm@forum.dlang.org
>>
>> On Tuesday, 6 October 2020 at 20:59:54 UTC, 12345swordy wrote:
>>> I remember reading a reddit comment saying that if d were to
>>> import c header files directly without any 3rd party
>>> libraries it would be a game changer. The question is: how
>>> difficult to implement a C AST parser for the dmd front end?
>>>
>>>
>>> -Alex
>>
>> As suggested by other participants to this thread, using
>> libclang is the way to go. There really isn't any benefit in
>> having a builtin C parser in dmd. Instead of working on this,
>> I suggest to try to improve dpp as it is easy to install and
>> use.
>>
>> At UPB we have integrated a D driver in the linux kernel.
>> Initially, we could not use dpp due to the complexity and
>> oddity of the C code used in the kernel, so we translated the
>> header files by hand: it was a nightmare. As Atila pointed
>> out, there was an endless stream of dependencies. After the
>> project was finished, we took on the responsibility to try to
>> make dpp work with the linux kernel. We fixed tens of corner
>> case and it looked like dpp could handle all of the cases,
>> however we then stumbled upon a memory issue due to some bug
>> in std.appender (used internally by dpp). Unfortunately, the
>> student working on fixing dpp abandoned the project at that
>> point, but we are very close to making dpp work with the linux
>> kernel. If that works, I assure you that dpp will work in 99%
>> of the cases.
>>
>> Bottom line: it is better to improve dpp than to implement a C
>> parser (when libclang already does that for you)
>>
>> RazvanN
>
> Anyways, I respectfully disagree, d should import c99 standard
> with no compiler extensions out of the box. Zig can do it, why
> not d?
>
> -Alex
c99 standard compliant header files obviously ;p
-Alex
More information about the Digitalmars-d
mailing list