From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: A generalization of `thunk-let' Date: Wed, 13 Dec 2017 14:52:34 +0100 Message-ID: <87bmj27n19.fsf@web.de> References: <87infp9z6j.fsf@web.de> <87r2s5ez0t.fsf@web.de> <87374kfaw9.fsf@web.de> <87r2s0nh3o.fsf@web.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1513173179 2751 195.159.176.226 (13 Dec 2017 13:52:59 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 13 Dec 2017 13:52:59 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 13 14:52:56 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eP7Sx-0000YA-AK for ged-emacs-devel@m.gmane.org; Wed, 13 Dec 2017 14:52:55 +0100 Original-Received: from localhost ([::1]:35615 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eP7T4-0007AT-9f for ged-emacs-devel@m.gmane.org; Wed, 13 Dec 2017 08:53:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eP7Sy-0007AD-5D for emacs-devel@gnu.org; Wed, 13 Dec 2017 08:52:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eP7Sv-0000Sg-3m for emacs-devel@gnu.org; Wed, 13 Dec 2017 08:52:56 -0500 Original-Received: from mout.web.de ([212.227.15.3]:63621) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eP7Sj-0000FN-FW for emacs-devel@gnu.org; Wed, 13 Dec 2017 08:52:53 -0500 Original-Received: from drachen.dragon ([92.74.165.17]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MLyCC-1eO10R14ns-007j34; Wed, 13 Dec 2017 14:52:35 +0100 In-Reply-To: <87r2s0nh3o.fsf@web.de> (Michael Heerdegen's message of "Tue, 12 Dec 2017 15:41:47 +0100") X-Provags-ID: V03:K0:D5MZfCzk0ARyEH0ndW6KwKRigExMaVelPUWnVsIY24KuJqaHxL7 6GOXBDPkcnmGkldkp+TyCDrJwTnND1SzD/sKIlFMAL2KAJclWzzjwUiOdg8nuUV7uKB8AfM levhylU2hzx0487p47xY4Ja//FRX/Lsn5bom/V6kv9rrtRh51i9eRhbnWqcJNOvw7yDPY4X /EPx7jQoguwOy9g+YPiAQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:OtrsbzMd03Y=:h9bZh0unJG+5Ft88G2HbXe n686sCClcpm+/jEtPIOIWrm/QNkj7Kta6kz20ubbX5+7vLIdsNc4ApvJY/VowP3StFaEHzvf/ HjayPsvPoylfD/LrD1bC2BKl5M2lIE4J/sU4I63OQ9MUjtDrdSXiLKOuJKim/sfoqV3JzIY2k FtY67idRn0byqYInlUi2XdbSAhn33vqsofXomC+fCtX7uqTk12dCaq3zhF91/e1JxE7eHi/44 Q/8Uju1suUXZyrVhv05Un6fhVaLh31+vLIEqXDv9qMH+wd+yPdAwXwNo84dPv2Ohm64o888XA lpM7y7K3sdRMBin8sGxS/+oypo+V0AQd37aRTaDwsvFuiK9ePN9jw3lCHMQGkZdqExrFLnSlP EXbCJurEjBjtaHGdssWEEmK8mqZDPK+iQ9XOMVnZcfqJDy826c4oby2AaQ/gTw5c0wUnQ82DJ Zi++oZsVz4Rp8TCzO4YHFh79bofpHL5J9JNw2bZUnbIrq0LxlHnqk/n/A3QipQDHAltpWi7vJ 6ciJa84RwQ3IBmVgZtWGOFav9ZpFLesbIwo1NiGt8opFXBdErq08HBR/DxZSV+l1+jhQ6O71D Gbwx9c6YpKVKxpX9khrHdlFAhUEg9tJkwJAud6AfmgA+tvOm5mMLPHg1ySdgq6ZZMUtP8H1Si NECK+UqXm2FuGgLW5X3nMIPLJyoeF+bNJFl/E3q2cNKP/SwA5yYh7kOQxVzW0FcbcDJ+eZ/eK i+hLumt4uYMpFqWKFf2wfu4M76GIYm+OOP5zStxtgWTtPy3XOPAQj4LwkfbvOnh+eO8AY0+T X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:220993 Archived-At: Hi, > here is a proof of concept. It is not exactly what you suggested: you > have to declare dependencies explicitly (I think this would even make > code better readable). But dependencies do not need to be sscells - I > made it so that dependencies can be arbitrary expressions (this includes > variables as major case), and an equivalence predicate for testing can > be optionally specified, defaulting to #'eq. > > You can make an sscell B depend on the value of sscell A by making B > depend on the expression (sscell-get A). > > These sscell objects are a generalization of thunks as in thunk.el, and > sscell-let is a generalization of thunk-let. Stefan, would you be ok with that approach? (or please speak before I do the final work and put it to Gnu Elpa...) Thanks, Michael.