Skip to content

Quite verbose d files generated #263

@andre2007

Description

@andre2007

For this dockerfile

FROM dlang2/ldc-ubuntu:1.20.0 as ldc

RUN apt-get update && apt-get upgrade -y \
    && apt-get install -y curl clang-9 libclang-9-dev

RUN curl -fskSL https://github.com/open62541/open62541/releases/download/v1.1-rc1/open62541-linux64.tar.gz | tar -xzf - --strip-components=1 open62541-linux64 -C /usr/
RUN ln -s /usr/bin/clang-9 /usr/bin/clang
RUN DFLAGS="-L=-L/usr/lib/llvm-9/lib/" dub build dpp

ADD open62541h.dpp /tmp/
RUN DFLAGS="-L=-L/usr/lib/llvm-9/lib/" dub run dpp -- /tmp/open62541h.dpp \
    --include-path /include/open62541/ \
    --preprocess-only

and the file open62541h.dpp

#include <open62541/client.h>
#include <open62541/client_config_default.h>
#include <open62541/client_highlevel.h>

A 6MB file /tmp/open62541h.d is generated with ~ 142.000 lines. The first 6000 lines looks as expected. After that there are lines with these pattern:

    static if(!is(typeof(UA_NS0ID_OPCUA_BINARYSCHEMA_ROLEPERMISSIONTYPE_DICTIONARYFRAGMENT))) {
        private enum enumMixinStr_UA_NS0ID_OPCUA_BINARYSCHEMA_ROLEPERMISSIONTYPE_DICTIONARYFRAGMENT = `enum UA_NS0ID_OPCUA_BINARYSCHEMA_ROLEPERMISSIONTYPE_DICTIONARYFRAGMENT = 16133;`;
        static if(is(typeof({ mixin(enumMixinStr_UA_NS0ID_OPCUA_BINARYSCHEMA_ROLEPERMISSIONTYPE_DICTIONARYFRAGMENT); }))) {
            mixin(enumMixinStr_UA_NS0ID_OPCUA_BINARYSCHEMA_ROLEPERMISSIONTYPE_DICTIONARYFRAGMENT);
        }
    }




    static if(!is(typeof(UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS))) {
        private enum enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS = `enum UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS = 16134;`;
        static if(is(typeof({ mixin(enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS); }))) {
            mixin(enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS);
        }
    }




    static if(!is(typeof(UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTUSERROLEPERMISSIONS))) {
        private enum enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTUSERROLEPERMISSIONS = `enum UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTUSERROLEPERMISSIONS = 16135;`;
        static if(is(typeof({ mixin(enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTUSERROLEPERMISSIONS); }))) {
            mixin(enumMixinStr_UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTUSERROLEPERMISSIONS);
        }
    }

Are the static if / string mixin really needed, or could just instead the line

enum UA_NS0ID_OPCUANAMESPACEMETADATA_DEFAULTROLEPERMISSIONS = 16134;

be added?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions