Add ImportC compiler to dmd
Iain Buclaw
ibuclaw at gdcproject.org
Wed May 12 11:24:09 UTC 2021
On Monday, 10 May 2021 at 08:53:57 UTC, Gregor Mückl wrote:
> On Sunday, 9 May 2021 at 20:57:06 UTC, Walter Bright wrote:
>> https://github.com/dlang/dmd/pull/12507
>>
>> If you could add a C compiler to dmd with 3000 lines of code,
>> so C code could be imported directly? I would!
>
> How does this impact gdc as part of GCC? GCC already has a C
> compiler, so this could be seen as some kind of duplication of
> features/effort from their perspective.
Not really a duplication, as it is contained to the D front-end
with no reliance on GCC infrastructure.
Integration is another matter though, as all GCC compilers know
about all languages that have been enabled, and what file
extensions they handle. i.e: `gdc foo.c bar.d baz.go` will
invoke the C, D and Go compilers separately in one execution step:
```
cpp foo.c -o foo.i;
cc1 foo.i -o foo.o;
d21 bar.d -o bar.o;
go1 baz.go -o baz.o;
ld foo.o bar.o baz.o -o a.out
```
While it might be wishful thinking to register C source files
against the D compiler (so `gdc foo.c` calls the preprocessor and
compiler in one step), that could cause a conflict with gcc and
g++ calling the D compiler when they themselves handle C source
files.
Importing C source files into D modules is another thing (the D
front-end is already compiling), and doesn't affect the above
mentioned machinery.
More information about the Digitalmars-d
mailing list