From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: Document top-level pseudo-hygiene Date: Fri, 07 Feb 2014 00:13:05 +0100 Message-ID: <87bnyjvnr2.fsf@gnu.org> References: <87r47ugh9h.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1391728407 29999 80.91.229.3 (6 Feb 2014 23:13:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 6 Feb 2014 23:13:27 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Feb 07 00:13:34 2014 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WBY8T-0004H4-95 for guile-devel@m.gmane.org; Fri, 07 Feb 2014 00:13:33 +0100 Original-Received: from localhost ([::1]:38703 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WBY8S-0006ZF-Rg for guile-devel@m.gmane.org; Thu, 06 Feb 2014 18:13:32 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57017) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WBY8J-0006YT-LD for guile-devel@gnu.org; Thu, 06 Feb 2014 18:13:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WBY8E-0001wv-7K for guile-devel@gnu.org; Thu, 06 Feb 2014 18:13:23 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:57539) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WBY8E-0001wr-18 for guile-devel@gnu.org; Thu, 06 Feb 2014 18:13:18 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WBY8B-00040h-Lh for guile-devel@gnu.org; Fri, 07 Feb 2014 00:13:15 +0100 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Feb 2014 00:13:15 +0100 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 07 Feb 2014 00:13:15 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 40 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 19 =?utf-8?Q?Pluvi=C3=B4se?= an 222 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:48o+zk8jEUAnfyEyYezLv1tKifo= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:16861 Archived-At: Hello gentlefolks! Mark H Weaver skribis: > "Andy Wingo" writes: >> commit 03dfed840b377a72191b6f125c106fdfd9e90a21 >> Author: Andy Wingo >> Date: Fri Jan 24 12:34:26 2014 +0100 >> >> Document top-level pseudo-hygiene >> >> * doc/ref/api-macros.texi (Hygiene and the Top-Level): Add a section >> documenting our pseudo-hygienic top-level names. > > As I've said before, I strenuously object to these novel semantics that > you've invented. I believe this would be an ugly wart on Guile that we > would have to support indefinitely, in violation of the standards, > because its existence would encourage people to write code that depends > upon it. [...] >> +For this reason many people prefer to never use identifier-introducing >> +macros at the top-level, instead making those macros receive the names >> +for their introduced identifiers as part of their arguments, or to >> +construct them programmatically and use @code{datum->syntax}. > > Yes, this is exactly what we must teach people to do when an introduced > toplevel identifier would cross a module boundary. Sorry to chime in late, but it seems to me that the above commit does exactly that: it exposes the issue, warns against the use of generated top-level identifiers, while explaining what happens if you really want to use them. So there are the “novel semantics” on one hand for those who want, but the manual is fair in explaining the pros and cons, no? Cheers, Ludo’.