Show a cover letter.

GET /api/covers/71858/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 71858,
    "url": "https://patches.dpdk.org/api/covers/71858/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/cover/20200622004503.29036-1-dmitry.kozliuk@gmail.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200622004503.29036-1-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200622004503.29036-1-dmitry.kozliuk@gmail.com",
    "date": "2020-06-22T00:45:01",
    "name": "[RFC,0/2] pmdinfogen: rewrite in Python",
    "submitter": {
        "id": 1581,
        "url": "https://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/cover/20200622004503.29036-1-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 10538,
            "url": "https://patches.dpdk.org/api/series/10538/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10538",
            "date": "2020-06-22T00:45:01",
            "name": "pmdinfogen: rewrite in Python",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/10538/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/covers/71858/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4CE28A0350;\n\tMon, 22 Jun 2020 02:45:23 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 8079A1C0C6;\n\tMon, 22 Jun 2020 02:45:22 +0200 (CEST)",
            "from mail-lf1-f68.google.com (mail-lf1-f68.google.com\n [209.85.167.68]) by dpdk.org (Postfix) with ESMTP id A9E0C1C07B\n for <dev@dpdk.org>; Mon, 22 Jun 2020 02:45:21 +0200 (CEST)",
            "by mail-lf1-f68.google.com with SMTP id t74so8610435lff.2\n for <dev@dpdk.org>; Sun, 21 Jun 2020 17:45:21 -0700 (PDT)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id q11sm3067009lfe.34.2020.06.21.17.45.19\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 21 Jun 2020 17:45:19 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=dzo1lnkFjqyXDyJCC4T3L8PSX68DevTYb2ohQnm+8h0=;\n b=AjAdDL80JRfddkyVIt3Z1586hWkb1sl1IC4donKCHjo1kHiV+VypkbWQT0Z2rSCfcE\n 1BHXfL1plT6LBAyE5OI68V4SL7MxdXbWrLEmuy+wNVHKhJC7opqGqw4DtGpfQX9kAgJ7\n aLY1Q30KBm6qyl9eFD5byXs75j6daaDDAb10JHIOcYgjYTfXIE8iOqY7vn6G8VbHxOmo\n /sk4F+fKBAd3hm94xbMBfxiOeYX+fJ3ddyiZp8WHZcvXVVLC1Ixf+CasVWNpdKUfSvkr\n QC+z4Ene4ujrW3Fir0SlSNpHXZcLDXOqZpnsCA1AfUygAhkEg/il10kjyvQcLp2NgMn1\n UIHQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n :content-transfer-encoding;\n bh=dzo1lnkFjqyXDyJCC4T3L8PSX68DevTYb2ohQnm+8h0=;\n b=XvhrE+AClHbZXxvM+fkgLZrdzfMdnjkPm+WT+LR0MesOBL+wSUMjlzc1D2sAsuJkMO\n BV85dBpkXITLkLHAms6E9I876n1oygv90dr/JwRFAMMn6YOUj7X9e0blctdjnUN7sTo+\n dCGam7N3Mbak3YniYvI3cLkQn34ezry8vEurbfThZ/dVDS0crkmGwrAtnRUDl7Y9FROK\n W6RB+vvYrzAoQzppThgU7SQxxEt40OXaLRRp69bmaX697ZEAfGGKfea12Zla1QnBEtF8\n FPFr0DnRrPrm7Bl6garTHDiQX8HoNSQyjsEQvqFcQ06+sr8U3rheW3L6du59yFKDLMRW\n 27uw==",
        "X-Gm-Message-State": "AOAM533AtpIDUc97802o6dP22/9jMNcy8ZtrbJI78B5HCHj2ve2uEY7Z\n actgBZpY4IDUmW5jGWgFxowYfUzq0Ug=",
        "X-Google-Smtp-Source": "\n ABdhPJxdJCAM7bgF7vkz0ITpr5+4VCE6AsX/H+3m7VZc4AqdSDv7HCaGASy9ONUF5DRC4q3Z0ccZ3g==",
        "X-Received": "by 2002:ac2:4241:: with SMTP id m1mr6979304lfl.20.1592786720627;\n Sun, 21 Jun 2020 17:45:20 -0700 (PDT)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Neil Horman <nhorman@tuxdriver.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>, robin.jarry@6wind.com,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "Date": "Mon, 22 Jun 2020 03:45:01 +0300",
        "Message-Id": "<20200622004503.29036-1-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.25.4",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [RFC PATCH 0/2] pmdinfogen: rewrite in Python",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This is a PoC rewrite of pmdinfogen in Python with missing bits\ndescribed below and in commits. Community input is desired.\n\nPros:\n\n1. Simpler build process without host apps.\n2. Less build requirements (host libelf).\n3. Easier debugging and maintenance with a high-level language.\n4. Easier porting on Windows (only add new object format).\n\nCons:\n\n1. No standard ELF or COFF module for Python\n    (amount of Python code without libelf on par with C code using it).\n2. struct rte_pci_id must be synchronized with header file\n    (it's a few lines that never change).\n\nThere are no built-in or widely used Python libraries for ELF or COFF.\nSome ELF-parsing libraries exist on PyPI, but they're not very handy for\nthe task and their installation would complicate build requirements.\nThus, elf.py implements its own parsing.\n\nCOFF support is underway, it's just not included in this RFC.\nAmount of code is similar to elf.py.\n\nBuild is only tested on Linux x64_64.\n\nIf the community deems this RFC worth finishing, there are a few opens:\n\n1. Support for >65K section headers seems present in current pmdinfogen.\n    However, the data it reads is not used after. Is it really needed?\n\n2. How much error-handling is required? This is a build-time tool,\n    and Python gives nice stacktraces. However, segfaults are possible\n    in Python version due to pointer handling. IMO, error checking\n    must be just sufficient to prevent silent segfaults.\n\n3. On Unix, pmdinfogen is called for each object file extracted with ar\n    from an .a library by a shell script. On Windows, other tools\n    have to be used, shell script will not work. On the other hand, COFF\n    library format is quite simple. Would it be appropriate for\n    pmdinfogen to handle it to avoid intermediate script?\n\n---\nDmitry Kozlyuk (2):\n  pmdinfogen: prototype in Python\n  build: use Python pmdinfogen\n\n buildtools/elf.py        | 194 +++++++++++++++++++++++++++++++++++++++\n buildtools/meson.build   |   3 +-\n buildtools/pmdinfogen.py | 144 +++++++++++++++++++++++++++++\n drivers/meson.build      |   2 +-\n 4 files changed, 340 insertions(+), 3 deletions(-)\n create mode 100644 buildtools/elf.py\n create mode 100755 buildtools/pmdinfogen.py"
}