From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: Feature request: Expose `ellipsis?' from psyntax.ss Date: Wed, 14 Nov 2018 14:10:21 -0500 Message-ID: <875zwzmq4n.fsf@netris.org> References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1542222559 7739 195.159.176.226 (14 Nov 2018 19:09:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 14 Nov 2018 19:09:19 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cc: guile-devel@gnu.org To: Marc =?utf-8?Q?Nieper-Wi=C3=9Fkirchen?= Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Nov 14 20:09:15 2018 Return-path: Envelope-to: guile-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 1gN0XL-0001sT-5C for guile-devel@m.gmane.org; Wed, 14 Nov 2018 20:09:15 +0100 Original-Received: from localhost ([::1]:33800 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gN0ZQ-0003uH-Vl for guile-devel@m.gmane.org; Wed, 14 Nov 2018 14:11:24 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37539) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gN0Z7-0003ty-Js for guile-devel@gnu.org; Wed, 14 Nov 2018 14:11:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gN0Z2-0004Bi-K0 for guile-devel@gnu.org; Wed, 14 Nov 2018 14:11:05 -0500 Original-Received: from world.peace.net ([64.112.178.59]:57834) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gN0Z2-0004BZ-Gm for guile-devel@gnu.org; Wed, 14 Nov 2018 14:11:00 -0500 Original-Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gN0Z1-0000Uj-Ee; Wed, 14 Nov 2018 14:10:59 -0500 In-Reply-To: ("Marc \=\?utf-8\?Q\?Nieper-Wi\=C3\=9Fkirchen\=22's\?\= message of "Wed, 14 Nov 2018 14:16:22 +0100") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 64.112.178.59 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:19734 Archived-At: Hi Marc, Marc Nieper-Wi=C3=9Fkirchen writes: > Guile includes a mechanism to specify a custom ellipsis for > `syntax-case' macros. For macro writers it would be nice if there were > a way to check whether a given identifier is the current (custom) > ellipsis. > > The `ellipsis?' procedure in psyntax.ss does exactly this, but it > isn't available to user code. Re-implementing it is not possible > without accessing internal details like the special identifier #{ > $sc-ellipsis }# and without resorting to hacks. Surprisingly, it actually _is_ possible to do it portably in any R[567]RS Scheme. See 'match-check-ellipsis' near the end of modules/ice-9/match.upstream.scm. > Thus, I would like to ask to add `ellipsis?' to the list of procedures > exported by Guile (like `identifier?` or `bound-identifier=3D?` already > are). I'll need to think about how this could be exposed in the API. It's not as simple as exporting that procedure. The 'ellipsis?' procedure is not able to answer the question by looking only at the syntax object; it also needs the macro-expansion environment 'r', which you do not have. 'identifier?' and 'bound-identifier=3D?' only need the syntax objects. Mark