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 13:32:48 -0800 Message-ID: <5484C780.3080902@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> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="0pvGeIqXIfD7NIrXkod7PhC8N3KpxC3Lh" X-Trace: ger.gmane.org 1417987989 19541 80.91.229.3 (7 Dec 2014 21:33:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 7 Dec 2014 21:33:09 +0000 (UTC) Cc: Michael Heerdegen , emacs-devel@gnu.org To: Stefan Monnier , Nic Ferrier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Dec 07 22:33: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 1XxjRv-0002wk-LG for ged-emacs-devel@m.gmane.org; Sun, 07 Dec 2014 22:33:03 +0100 Original-Received: from localhost ([::1]:59229 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxjRv-0005h4-7X for ged-emacs-devel@m.gmane.org; Sun, 07 Dec 2014 16:33:03 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxjRr-0005gw-Bc for emacs-devel@gnu.org; Sun, 07 Dec 2014 16:33:00 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XxjRq-0000q8-DA for emacs-devel@gnu.org; Sun, 07 Dec 2014 16:32:59 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:51929) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XxjRq-0000q0-2e for emacs-devel@gnu.org; Sun, 07 Dec 2014 16:32:58 -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=jjNRLfDxnxMe1Nh0c5MdCOGuATHrRfKdlzVB6VB4Qzs=; b=km9m68BN+n2y9QRYqmGytKxPq2oOO2LA9X/0ChjM6zleoyDsYq+GfzBACM6EbEfIeOOMPIniAd1rqYzZykwlN96bseBljhz8lm3fdfF8ZYa8zTU7PQK7e+auacbBKLFlJLGipmhccKkeA1YEAChPfZDJwvK2UYYvRsCjAq72fKG0Lu4ZXEnW8GKsU+BKkS9eSAsbV1oeG9PV1Hu08YHP3fRHX5YYv0pT/H3u7HuMfkYKMS05odJLrWRyLkyiskX6o0TKOKaFDNyRm7MShZvqKF1fNzpzu5PUG5YXDF1VOQVfvG06Papm9Qxom/wudmDV/gTnrBS5h+XLlemq94p4Jw==; 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 1XxjRi-0002Zc-Bl; Sun, 07 Dec 2014 13:32:50 -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:179310 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --0pvGeIqXIfD7NIrXkod7PhC8N3KpxC3Lh Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 12/07/2014 01:17 PM, Stefan Monnier wrote: >> So agree to add some more core things to make the problem easier. >=20 > I think I'd be willing to add Objects, indeed. At least the > completion-tables scream "make me an object". We *have* objects. Nothing is stopping you from using EIEIO for completion tables. But I don't think you're talking about polymorphism and encapsulation here: ITYM that we can solve the global namespace problem by attacking the "global" part instead of the "namespace" part. If we have your "Objects", many functions would be instead methods (or messages or whatever terminology you want to choose) that have meaning only in relation to one or more of the values acted upon by these functions, without global names of their own. 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. There's also the runtime overhead of dynamic dispatch. Using "Objects" doesn't even solve the problem it sets out to solve, since you still need elaborately-mangled global names for the types of the objects themselves. Common Lisp solved this problem 20 years ago with namespaces. We should just implement CL namespaces instead of trying to shoehorn Smalltalk into the language. Would you accept a CL packages implementation? --0pvGeIqXIfD7NIrXkod7PhC8N3KpxC3Lh 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 iQIcBAEBCAAGBQJUhMeAAAoJEN4WImmbpWBlYyEP/j3WHedXeaQcF4mr6/ptWhTj ed8NPB6/3e6poovUzjSSf8FzMI0ZU1h/+dcfAtdV46IMKfOEYVSlKthN8OCaKThC Jbh3MehcW4iBtX9q0lp9fyPyKJo7va5ktbosGRaRd/+961eofm+BZrs1a8jOZDq7 cs7Dix0ZTT+XFmqSuxoPgpQamToijHRIGM57NWpfWVVWZwSQnE8MmfVv4i4uJWhA WnYhXzoLbdZYVTTEXHibaqq9KEpwsYZ/zwGuFaWQeIafIz78m6WYYNQcsMdULJab +yjqYwKi55OxOr6E0OaPzfAZfMiaBrjqWOAEitYkXTakZWzCQsvCvEgCJLRj2ujx Rd+LJL9heIJ0ApPOwQG3esFaONIsAiCgHB/zrITcuU/9owUyczeSvn6YS0wPCT7k UAsa5bCJJCAUNgUkJL+rwJ4qipdD1LmZIkSw0fwqFQi+hUnLnizNLaejznwT1m4y YJJjh0nY7/QNKfZMuDDCDlOQ2LR1NcdVCxZ0ual9B9uM2mzqcLDT9demPZfKHj2F M+cft3svilbd3rPTwykc/6tJHzbN/oIAztI/r2BJBlCwdn1ETMHEP52tExXEjGq+ hm/J3LabY8fYI0fCllpBK1ScFkm6bcS9YbC5/8zCATSuRvjJXfuhzjNfxlePSC51 pfCYLiAjNXmh+wpWnejD =6oc1 -----END PGP SIGNATURE----- --0pvGeIqXIfD7NIrXkod7PhC8N3KpxC3Lh--