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 a61b3363 for ; Thu, 3 Oct 2019 23:26:27 +0000 (UTC) Received: (qmail 24338 invoked by alias); 3 Oct 2019 23:26:21 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 24321 Received: (qmail 11101 invoked by uid 1010); 3 Oct 2019 23:26:21 -0000 X-Qmail-Scanner-Diagnostics: from mail-vs1-f46.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25587. spamassassin: 3.4.2. Clear:RC:0(209.85.217.46):SA:0(-2.0/5.0):. Processed in 0.939443 secs); 03 Oct 2019 23:26:21 -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.46 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=FOsgkhNvBe3xvcrbKcoOHXUAsSLB8WMFg9Pvxyh0tLs=; b=mb24V1S3h/AkrSsrnMk6hvnxRbcJu0lMsmkrG2WeXUS2tp5/pxSTGzyC7G6fZZZ86B eUfXqNcRU/iaq2X+iASIfsjJkgQqt1KtFQnhrloEAHqok9RNeayX6ho9eWhIez3l48Mg GE1VNTW9nvYc8oX2UOCo7h866VgCA73/Dt/5I1FVWZO47Az/2sBhgkJJ7sq6jXrg+vxX ZssvYTa95LqOOOsyqTpJ3RXfJLNyEnGvL9qiTvG54cATqzQoidcNy3kd0c8xlA9EhLHa p7nWUdSsA+9geq/RDqhI7g/4biTl8wIVb7pizjTaRXvDgBdDTyolLX9aGSEH9PtADmQH cxOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=FOsgkhNvBe3xvcrbKcoOHXUAsSLB8WMFg9Pvxyh0tLs=; b=jtRZL+24oRtICdhnV6rlwzSKj2MId0niMvq+otQh7tG5n8atUlpiMOQKbHrU7n2Ehy +jyO/EIj3np8wXnefhRfXACHpXUOERohpEbC2vmrVpFXLU4efXDD/jDk/SeGlxYPhpQD 5CK4kFRF0ZAy4A20NRSM5eqLxvpkRHL94TmkfBLr+9gcxxaUFgfvy+9MbLsm2KQrBma7 GTH0qGRs8srtgCoFaUO4DcvcR9yaiXTVN1iy1TLQQCEJ1/uUY8UufQSkwXAeykqGVPwO Iip/DBdJTI2HH9wxLOWj+mkGaQbrMi8IbbiRn2ocVHa1u7BMz5KPYo7c6r3k/gWY/gvX A1jQ== X-Gm-Message-State: APjAAAUkEVOuN8G1IgmI71x5ZTAIcqjT3cSUTCjt1MCgdCdTiB/cOobI Zgn+UWf7z/X+z8nvjbbAJ3zSyS0/gq6uraOabNZITLqR X-Google-Smtp-Source: APXvYqyq1Dl42bfVWEVsxl2CxjpMxxPXiRnrsXAvHVtN+uPiEoszvJlTgCWlG9sgoLMrtorwI1LF3tjY3SWkJ+nxQJg= X-Received: by 2002:a67:ec09:: with SMTP id d9mr6536603vso.215.1570145147175; Thu, 03 Oct 2019 16:25:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sebastian Gniazdowski Date: Thu, 3 Oct 2019 23:25:36 +0000 Message-ID: Subject: Re: A method to not leak unneeded functions To: Zsh Users Content-Type: text/plain; charset="UTF-8" On Thu, 3 Oct 2019 at 23:18, Sebastian Gniazdowski wrote: > Is there any way to speed this up? Uhm, the solution is pretty obvious - to use a global ef-parameter. It doesn't even need to be leaked outside the function - example snippet for a `zpview' project: typeset -g zpview_ef zpview_ef=( ${(k)functions} ) trap "unset -f -- \"\${(k)functions[@]:|zpview_ef}\" &>/dev/null; unset zpview_ef" EXIT trap "unset -f -- \"\${(k)functions[@]:|zpview_ef}\" &>/dev/null; unset zpview_ef; return 1" INT As said, the method is fully instant, it takes only 1 ms to do the unset. -- Sebastian Gniazdowski News: https://twitter.com/ZdharmaI IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin Blog: http://zdharma.org