From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: Emacs Lisp's future Date: Sun, 05 Oct 2014 11:01:31 +0200 Message-ID: <87ppe6gaac.fsf@fencepost.gnu.org> References: <54193A70.9020901@member.fsf.org> <87lhp6h4zb.fsf@panthera.terpri.org> <87k34qo4c1.fsf@fencepost.gnu.org> <54257C22.2000806@yandex.ru> <83iokato6x.fsf@gnu.org> <87wq8pwjen.fsf@uwakimon.sk.tsukuba.ac.jp> <837g0ptnlj.fsf@gnu.org> <87r3yxwdr6.fsf@uwakimon.sk.tsukuba.ac.jp> <87tx3tmi3t.fsf@fencepost.gnu.org> <834mvttgsf.fsf@gnu.org> <87lhp5m99w.fsf@fencepost.gnu.org> <87h9ztm5oa.fsf@fencepost.gnu.org> <87d2ahm3nw.fsf@fencepost.gnu.org> <871tqneyvl.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1412499730 29587 80.91.229.3 (5 Oct 2014 09:02:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 5 Oct 2014 09:02:10 +0000 (UTC) Cc: Richard Stallman , dmantipov@yandex.ru, emacs-devel@gnu.org, handa@gnu.org, Stefan Monnier , eliz@gnu.org, stephen@xemacs.org To: Mark H Weaver Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 05 11:02:03 2014 Return-path: Envelope-to: ged-emacs-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 1XahhY-0003fc-N6 for ged-emacs-devel@m.gmane.org; Sun, 05 Oct 2014 11:02:00 +0200 Original-Received: from localhost ([::1]:46707 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XahhY-00033u-CL for ged-emacs-devel@m.gmane.org; Sun, 05 Oct 2014 05:02:00 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50730) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XahhV-00033p-9V for emacs-devel@gnu.org; Sun, 05 Oct 2014 05:01:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XahhU-0006ry-6t for emacs-devel@gnu.org; Sun, 05 Oct 2014 05:01:57 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45486) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XahhU-0006ru-4c for emacs-devel@gnu.org; Sun, 05 Oct 2014 05:01:56 -0400 Original-Received: from localhost ([127.0.0.1]:52658 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XahhM-0006Dw-AT; Sun, 05 Oct 2014 05:01:48 -0400 Original-Received: by lola (Postfix, from userid 1000) id CB75FE0544; Sun, 5 Oct 2014 11:01:31 +0200 (CEST) In-Reply-To: <871tqneyvl.fsf@netris.org> (Mark H. Weaver's message of "Sun, 05 Oct 2014 03:53:18 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:174986 Archived-At: Mark H Weaver writes: > * I'm not sure that Guile strings should include property lists. I already mentioned that string ports could be turned into the basic underlying data representation for Emacs buffers. That's one case where it is quite obvious that a string port alone is not a sufficient representation. > One can reasonably assume that competent Elisp programmers will keep > in mind that Elisp strings are more than just characters, but we > cannot expect that of Scheme programmers, and they've never had any > tools to deal with it in any case. Emacs lisp includes procedures > such as 'substring-no-properties', but Scheme has never had anything > like that. > > Supporting property lists in Scheme raises difficult questions > such as: > > * What should the Scheme procedures 'string=?' and 'equal?' do when > comparing two strings with the equal character sequences but > unequal property lists? > > * Should Scheme procedures such as 'substring', 'string-append', > 'string-upcase', etc, propagate the associated property list > data? > > * Are there security implications to carrying around and possibly > propagating (via Scheme's "substring") extra information that is > effectively invisible to all procedures that have ever been > available in Scheme? > > * What should Scheme's 'write' do when applied to a string that > includes a property list? ('write' is analogous to 'prin1'). I should think that GOOPS, the basis for GUILE's builtin object hierarchy, basically provides all the necessary mechanisms for transparently making "richer" string variants maintain their additional data when being manipulated by standard operations. So while Emacs development would likely benefit from the willingness to refactor some string internals in a different manner, ultimately the work of Emacs data implementors should not require tight interaction with GUILE development. > While we're on the subject of interoperability between Emacs Lisp and > Scheme programs, I'm concerned about nil. [...] > The problem comes when 'x' originated in Scheme code as (), is later > copied by Elisp code into something that's conceptually a boolean, and > then that copy is inspected by Scheme code. The intent was that the > copied boolean would be false, but the Scheme code will see () and treat > it as true. > > What do you think? Do I worry too much? :) No. It will be the main recurring interoperation headache. -- David Kastrup