[SAoC] 'DPP with Linux kernel headers' Project Thread

Cristian Becerescu cristian.becerescu at yahoo.com
Mon Oct 28 11:14:24 UTC 2019


Update for week 2 of Milestone 2

- PRs from the previous week were successfully merged

- Tested running dpp to translate linux/virtio.h

In this phase, I've begun testing dpp with every linux header 
used by Alex Militaru's driver, starting with linux/virtio.h.

There are multiple cases where a function is declared through a 
macro, where the function return type is specified using 
__typeof(X)__ (e.g. __typeof(X)__ functionName()). The D 
translation would be something like:

typeof(X) functionName();

In C, X could be a variable of a certain type, the type itself 
(e.g. int), or an alias of a type.
In D, it is not valid code if X is either a certain type, or an 
alias of a type.

E.g.:
alias u32 = uint;

typeof(u32) f1(); // err
typeof(int) f2(); // err

Another issue is related to translating nested (on multiple 
levels) anonymous unions and structs (specifically in 
linux/slab.h, line 596), but I still have to wrap my head around 
this (because the generated code is a bit complicated).

An inconvenience is that on my machine, running dpp with virtio.h 
takes about 15 minutes, which slows down the debugging process 
with this specific header.


More information about the Digitalmars-d mailing list