From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 5db0560e for ; Sun, 11 Aug 2019 18:21:15 +0000 (UTC) Received: (qmail 27534 invoked by alias); 11 Aug 2019 18:21:06 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 44648 Received: (qmail 1819 invoked by uid 1010); 11 Aug 2019 18:21:06 -0000 X-Qmail-Scanner-Diagnostics: from mail-vs1-f47.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25538. spamassassin: 3.4.2. Clear:RC:0(209.85.217.47):SA:0(-2.0/5.0):. Processed in 3.693068 secs); 11 Aug 2019 18:21:06 -0000 X-Envelope-From: sgniazdowski@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.217.47 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=lzRqbxmBoSW7FuKpSlNR6P0riQd9WQuVm2G75vAIe4Y=; b=j6MvInZAhkPTwuJRChm4R6fpQSZhiStoPtlQUCArfi34agUrLM4SPFmiBNrJUU3PLR svfShPd+Ksc5vRlOJ73RFXF7KMF/BEiIeJz0oB3dpBdtq1pwT/xwuSaQLduD0nV1qtuT ruFXBJmtCIbQ5FAuy7TOdEpRjgunu3GHLp6/uMLJqjkUSgAyb8q8Mu4DuzjwIcxOvRe9 L/I4nx+SvrGGvDQnGn6BbyFFqfXZcKzRT3molMMQuEjYTChi1ClVYjrgTRG/kVDwdlec vuGDQUnrVqS13eBhem1QhOBEcZpeteKA0KZBikMDE3wc/XsrFF9+x6ljeCrTRJgPUlZq 1oAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lzRqbxmBoSW7FuKpSlNR6P0riQd9WQuVm2G75vAIe4Y=; b=E5O3qc8ckKZkgojbNTvagzy9CZXBeH26QXa9YH06GA5VVnNwQAdXdI3TIWX/QYqNAC VAxbOJinhrIOsT6Ay2lVIT9PmQXpV9fBySvMHanpq/BqNn/tP/6balPUq6ErVrwhl76d 4Zlbc5wpDCmy7uenrtWV6k3nmImv/PmS5ZiqG61KE9wTIx+J65j37Xw+I1kchBjP/umE atVd73aa2lfAYsrgZigWEx5nZK8V9FXIK2eQL+HJFJIjVqWPRXCD+Nd0mWmwGgzPdLtC BLvGRdafmmltfHKPlVbiCBjyMVChkbvGndlJ+Pp3f5nAY4fkNk6s1zi1v1fI/KfHny2A Jopw== X-Gm-Message-State: APjAAAV5FE1HkqnkA6B0dDEEIS2pPSAQ2uC3ThT/YXoG472LNghMKUR/ h2mpMKj7ULZU3jLYMRCcdmApz0vGvhbBmFNcaxo1hFjK X-Google-Smtp-Source: APXvYqxF4BYWRDQYvVHR1EQIAzvxyZ2Aoz6Krko2yT9oqz8rWnA8qAeSSlL/m1jyRj0IoLajgP1+lCuneN94ybohvX0= X-Received: by 2002:a67:8e0a:: with SMTP id q10mr19125229vsd.215.1565547627735; Sun, 11 Aug 2019 11:20:27 -0700 (PDT) MIME-Version: 1.0 From: Sebastian Gniazdowski Date: Sun, 11 Aug 2019 20:20:16 +0200 Message-ID: Subject: Optimizing (z)-flag To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Hello, I'm thinking: why the (z) flag runs significantly slower that a zsh executing the same script / text? It points that the cause should be the way that (z) stores resulting elements. I suspect that it in general doesn't use realloc() to extend the destination array but instead some kind of allocate new larger buffer / copy / free the previous buffer. So the possible optimization could be to use realloc, a method that has already been proven, as it is used when appending to arrays. Am I right? Where is the code of (z) flag aggregating the resulting elements located? It's hard to find as it's somewhere between the lex.c and subst.c. The advantages of providing such optimization would span over e.g. syntax-highlighting plugins. -- Sebastian Gniazdowski News: https://twitter.com/ZdharmaI IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin Blog: http://zdharma.org