From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: Generators (iterators) for Gnu Emacs Date: Sun, 07 Dec 2014 15:39:22 -0800 Message-ID: <5484E52A.8020107@dancol.org> References: <877fy77zhp.fsf@web.de> <87k326d4ww.fsf@gmail.com> <877fy6rp2o.fsf@web.de> <548230FB.40307@dancol.org> <5482C872.5010304@dancol.org> <5483C537.3010707@dancol.org> <54840719.5080209@dancol.org> <87ppbv4bdt.fsf@ferrier.me.uk> <5484C780.3080902@dancol.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="TSxvOM9EdamX23elXHEJfGUuAvMP4UhI6" X-Trace: ger.gmane.org 1417995576 32535 80.91.229.3 (7 Dec 2014 23:39:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 7 Dec 2014 23:39:36 +0000 (UTC) Cc: Michael Heerdegen , Nic Ferrier , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 08 00:39:30 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 1XxlQH-0003D5-SM for ged-emacs-devel@m.gmane.org; Mon, 08 Dec 2014 00:39:30 +0100 Original-Received: from localhost ([::1]:59561 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxlQH-00013Z-Du for ged-emacs-devel@m.gmane.org; Sun, 07 Dec 2014 18:39:29 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33091) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxlQD-00012R-Qm for emacs-devel@gnu.org; Sun, 07 Dec 2014 18:39:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XxlQC-00045E-UU for emacs-devel@gnu.org; Sun, 07 Dec 2014 18:39:25 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:52429) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxlQC-00044v-Jk for emacs-devel@gnu.org; Sun, 07 Dec 2014 18:39:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=i3VD+q/WimkLJj/FwLfDg/JZdhACmCzpkyb6DnH31RQ=; b=W+qSsgJEh7Snj6crTPYn3nBQzeTyjuNyJtHvzOu5UNNoSZa/1CIgCdc8Wjf85xKYhh/T9njkGo+Ed30DHHYVWO3R+OhuiHB8bXcO/VtaXwDTURX3eP/u0qpuojwNumTdT7zMnH2LFT24TWEyibSd1Ad75d+YJqzGXjj01rtQETlEnB7AODRqy9AQwtFZoCUKT5I03bpCBDgczXchCQzH8lTVCEwfF6D/rehWbTwGSMsfXde95pPhBrSEn1WsKXqR78pSwrQt86zm+sDnF8Qsv4sPIOWhtGfbbIIGyS9By6QPdhNUisiqIcoDZufffiauo+NYgiy0EcD1NxJrPW9VVg==; Original-Received: from [2601:8:b200:688::2b1] by dancol.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84) (envelope-from ) id 1XxlQB-0003TG-8N; Sun, 07 Dec 2014 15:39:23 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 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:179330 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --TSxvOM9EdamX23elXHEJfGUuAvMP4UhI6 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 12/07/2014 03:31 PM, Stefan Monnier wrote: >> That's a terrible idea. It makes it much harder to reason about the >> correct operation of programs, since now it makes it virtually >> impossible to implement find-definition functionality without lots of >> type inference. >=20 > That's indeed the main problem, and I agree it's a serious one. >=20 >> There's also the runtime overhead of dynamic dispatch. >=20 > That's not relevant: one way or another there is dynamic dispatch, > regardless what system we use. That's not true: if we send messages to objects, we can only know the code to execute after examining the object. If we invoke functions directly, we know *statically* what code runs where. >> Common Lisp solved this problem 20 years ago with namespaces. We shoul= d >> just implement CL namespaces instead of trying to shoehorn Smalltalk >> into the language. Would you accept a CL packages implementation? >=20 > Last time this was discussed (a year ago, maybe?), we neded turning it > down, mostly because `M-x grep RET' can't be used for find-definition > and find-uses. *Any* solution that frees developers from spelling all symbols in full will have that disadvantage. At least namespaces make it relatively symbol to determine the fully-resolved symbol from lexical context without requiring a full type inference pass. --TSxvOM9EdamX23elXHEJfGUuAvMP4UhI6 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCAAGBQJUhOUqAAoJEN4WImmbpWBlJUcP+wfSg1ucFDY6fwEvNQtiTmRk grRuAP2OGTqDPKyRpECvBf7OnBjVAGrFrRFW+RsNQRlLjO4poqvQtCJuqp3kztXE jVRGTaSkDf/Ko5pUOKkvZShPWNiKfeWJC6GDN4ptEWSPmwQKz7y3DCTCk+uY1hyv aSBbCpoa5stkRXKp0Q4WGU+eYvcZtr7ZRBCKcq+xs7OifjKrDOrDd8H5JeKUfwKy NUcIYNJ4eX1asGgOuhaDYoQbo6rmLnUo/f9MZHS0YfBv0IsLtP8Sku8uPO9N2jcS 8JXS0XI+Sjrd5dl2LD1yqCvFMwpKJT6z4o5/c8y1lKeHK9Xen5H6/9Tc2qNoFtUQ RkQ8t07JcP61CFL/vkkuSIKgL1cHPSKibebGX9elOfPi/O13NmbVvB92OeAt77A7 DlxvcsJ/o3e9PI09G38hzW4zzjgJuEKwxquXHQOEV8Rcm49ErrrVoALdvVUnpWKT hViGUSL2OZSqAe85o1LIGTWlYawDce8av/xVoUUrFGhl+Awtfr17PcyPcqVj9JcG SDhkx6zviPp2qqLByEFq8DvNRbGR4mXp2yo/cK7/XfN1x4Kip3ZDIY7/dHgGr9+z xM49OkSvVbD+WETE1uXjxczdNApHkkReV6XuZNc+Vzc2asyjqfgcuFKSrcIc0SlE TsDoJ2a6GtQoCrNJ1+Iv =bQvv -----END PGP SIGNATURE----- --TSxvOM9EdamX23elXHEJfGUuAvMP4UhI6--