atilaneves / dpp

Directly include C headers in D source code
Boost Software License 1.0
230 stars 31 forks source link

WIP: update STL refine #136

Closed Laeeth closed 5 years ago

Laeeth commented 5 years ago
1. namespaces are sorted and merged before outputing.  empty lines between namespace opening and closing will not be output.  this makes it much easier to understand and potentially reorganise the output.

additionally, namespace output is produced before global output.  reason for that
is the latter tends to have a lot of garbage and make file less pleasant to read
if it is placed at the end.

2. new options flags
       --no-generate-extra-c-enum
        generating the extra C style enums caused clashes that
                broke compilation for xenon .d target file produced using
                dpp.  enabling this option stops production of C enums from
                D/C++ style ones

       --only-namespace
        (repeat option multiple times to select multiple namespaces)
        output can be quite cluttered and you may wish to filter by
        namespace when #including

3. trivial format change
    - new line generated after aggregate definition completed

4. user attribute @DppOffsetSize(offset,size) is stuck on members of
  aggregates.  idea is that D code can read this and check with the
  actual layout on the D side.  helps with debugging and correctness.

Above the most recent changes.  Will write more when time.