GNU bug report logs - #59140
29.0.50; iter-yield from lambda

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: Michael Heerdegen <michael_heerdegen@HIDDEN>; dated Wed, 9 Nov 2022 01:24:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 9 Nov 2022 01:23:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 08 20:23:10 2022
Received: from localhost ([127.0.0.1]:38448 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1osZo5-0000xz-TT
	for submit <at> debbugs.gnu.org; Tue, 08 Nov 2022 20:23:10 -0500
Received: from lists.gnu.org ([209.51.188.17]:58728)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael_heerdegen@HIDDEN>) id 1osZo4-0000xs-Hn
 for submit <at> debbugs.gnu.org; Tue, 08 Nov 2022 20:23:08 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <michael_heerdegen@HIDDEN>)
 id 1osZo4-0003RT-Cs
 for bug-gnu-emacs@HIDDEN; Tue, 08 Nov 2022 20:23:08 -0500
Received: from mout.web.de ([217.72.192.78])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <michael_heerdegen@HIDDEN>)
 id 1osZny-0001dC-Gz
 for bug-gnu-emacs@HIDDEN; Tue, 08 Nov 2022 20:23:08 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273;
 t=1667956977; bh=kZ30HP4hkQ7lTeqGiUp2mVTVImDghEYOYs2bMUZt6ok=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:Date;
 b=c9RUWiyQluQqags+/mbrMWTdOCV8xLu2KU70Jtj84eRspXkCgPeW81oWyptsTNgpz
 uORFf0JcWQ50gtAyzq2G4iCbsLRhlW7+jZl7kG17JiY8WaiVWOviy2NUz31hL35/TC
 7rTZLCFECVdR/vpkCy6gZCNoTVjmBnHGIqf6vPjpDdofzf+N6QipvALZXxqJvwOctT
 tb1KX5SQZwkM1UEBI7c7qxLUofZrVsdgkbiBCMjGsisV3sWPysx6dBlcq9gtHZYC9o
 AIE6iIhaF1J9AltH/SDXuBjvMaDhS5FbKbjdCxJ+BHV3Wyq9e8l24ZVkVNi6UH1XYt
 fRyCMA+A5rJZQ==
X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6
Received: from drachen.dragon ([88.66.71.129]) by smtp.web.de (mrweb105
 [213.165.67.124]) with ESMTPSA (Nemesis) id 1N79N8-1p4wg92IFY-017fPO; Wed, 09
 Nov 2022 02:22:57 +0100
From: Michael Heerdegen <michael_heerdegen@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 29.0.50; iter-yield from lambda
Date: Wed, 09 Nov 2022 02:22:56 +0100
Message-ID: <87sfissyz3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:iWZZ5Tqy/6hOAzVnXwGDge0US8p5djHL+aR96aosEquoH1Hs5ev
 wqCjIHzGq1muJjkgYj636pNKjDUnyRCy06hFHd3lOY2xh2/qdy7YMkTR0LZj2N2dFpQlh41
 WRT5R5eFFDa0z8L/owOt+M9ypdAo/nBI1eY+vAoOySHFp6WjChV6FQ0zB9na/+yxksUpb9v
 pZJbKdvJwQtP9IMFh3kPg==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:D+eria/AiwQ=;Pxt+wrWuGh07Q71m8cNQf7qcvU9
 dKBhgL35dVwg70bj2aBGqFwNgG6/Z0SCuj41rj1kW9AfhbyupGsGohQr5fDOx7w24v5G2oYzc
 Ov0BfWwO82N2LhnxqmRqgIxWuP/CdlSZfdqmLZB3ANO0KBvEJYs2aQNPmSdtTED9EBMRNq8QF
 QRZeD3DJrnGwNpPdX+GEtziIBwujspOqCRMKjdPc+CUyAlKHPZOWpJhGLQ3tf6HQoSJS68k1X
 utFDXAvit+1EEn/h7GOLcyfoIQLWK7a8lqXDfG0KHSWMg3Dm5bgCSL2szNgf8cTpQRWpQxgYr
 hYx7zXTx4eX5bICoSuApWEqGFuRwQRgIp2BnyyToMUgdrDEdRPeL8C0jYirXt3SBMeSgOA5x9
 VMLImpW5a7juWpTyfM/uqknI0a1XkfNOnJi56AoUtQI9auQc0jFumPztrHX9Y8iNd37h3KNM7
 i/BOM6Wr8E0rnBr6H+IrecIUKOv+Ze0YHEcVyMxLTk768fzH7QEyLMOl3G2gMqssvRkty/8JN
 Pc8K97w9fvm7v05eq03tEcG9tEaDehBHP9v42FVDWlsBdxaRr68We2m9wRPBj71IMvZa50G9Z
 0LTkFoz+9bFPQNd26UqI+e/VF6jnI9g4hzEv3A2kTkEpy/c2UifZa5ARF74XbXGdZAJfDGMvi
 eDagp+/cO4FKgWIB6a9i3CxrQRfkzhusCp4O9m1rbPQeo8zo7OJfHztv09MU0PWqAv78HTKy0
 Y3tCWK0DcSHjxuIk0ZwfDOCCD700+l6jUe9eqdJx+ILycKtfMjJpg5QY/Xjg3s02PKg5Yv30g
 YyxdGrkBj/ovNTGYdKokbnmFfY3Gswf/FgkCgZ2gUbQmpvyXbsC+Rc2/8GwaSctxikr5ZInUB
 l+kNr/G/J67L0HkHjmME5vC9Lr9gtIod/xikchULRD2Sk9sKzyB6EWSRk3mYWi7nvNe4ch6NJ
 Encimu3jko9Gmaj0i3EnLHMlkLw=
Received-SPF: pass client-ip=217.72.192.78;
 envelope-from=michael_heerdegen@HIDDEN; helo=mout.web.de
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: submit
Cc: okamsn@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)


Hello,

In emacs-help (Okamsn <okamsn@HIDDEN>) it has been pointed to
the issue that `iter-yield' (from generator.el) is not supported in some
contexts - contexts where yielding happens from inside a lambda
expression or directly (like here when mapping over a sequence), e.g.

     (setq iter-maker (iter-lambda (x)
                        (seq-doseq (item x)
                          (iter-yield item))))
     (setq my-iter (funcall iter-maker '(1 2 3)))
     (iter-next my-iter)

  ~~> (void-function cps-internal-yield)

(seq-doseq expands to more or less just mapc+lambda) or

     (setq iter-maker (iter-lambda (x)
                        (seq-do #'iter-yield x)))
     (setq my-iter (funcall iter-maker '(1 2 3)))
     (iter-next my-iter)
  ~~> (error "=E2=80=98iter-yield=E2=80=99 used outside a generator")

These examples are written correctly but seem to hit an undocumented
limitation of the implementation in generator.el

I quote Stefan Monnier answering what should be done:

> IIRC, one of the main limitations of `generator.el` is that it doesn't
> handle `lambda` (and neither should you use `#'iter-yield`, IIRC).
>=20
> I don't really know how to go about fixing it.
>=20
> A good first step would be to make sure it emits an error (or a warning)
> when you use `#'iter-yield` or when you call `#'iter-yield` from with
> a lambda expression.

TIA,

Michael.






Acknowledgement sent to Michael Heerdegen <michael_heerdegen@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#59140; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 12 Nov 2022 20:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.