From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: public APIs and private ones (Re: `C-h v' may offer too many symbols) Date: Fri, 11 Mar 2011 13:08:53 -0600 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <871v2dh3ui.fsf@lifelogs.com> References: <87y64mkdu3.fsf@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1299870571 1144 80.91.229.12 (11 Mar 2011 19:09:31 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 11 Mar 2011 19:09:31 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 11 20:09:25 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Py7i9-00066W-Uw for ged-emacs-devel@m.gmane.org; Fri, 11 Mar 2011 20:09:18 +0100 Original-Received: from localhost ([127.0.0.1]:35755 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Py7i9-0002NU-9n for ged-emacs-devel@m.gmane.org; Fri, 11 Mar 2011 14:09:17 -0500 Original-Received: from [140.186.70.92] (port=60163 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Py7i0-0002LX-MF for emacs-devel@gnu.org; Fri, 11 Mar 2011 14:09:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Py7hx-0000Xq-1o for emacs-devel@gnu.org; Fri, 11 Mar 2011 14:09:08 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:44722) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Py7hw-0000Xi-OU for emacs-devel@gnu.org; Fri, 11 Mar 2011 14:09:05 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Py7hv-0005w0-DY for emacs-devel@gnu.org; Fri, 11 Mar 2011 20:09:03 +0100 Original-Received: from 38.98.147.130 ([38.98.147.130]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 11 Mar 2011 20:09:03 +0100 Original-Received: from tzz by 38.98.147.130 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 11 Mar 2011 20:09:03 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 36 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 38.98.147.130 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" User-Agent: Gnus/5.110014 (No Gnus v0.14) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:ndVeRVcV1QPEOdfTCuJKBitaZPg= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:137121 Archived-At: On Fri, 11 Mar 2011 13:31:30 +0900 Kenichi Handa wrote: KH> In article , Stefan Monnier writes: >> > Yes, it is a bit silly complete keywords, which are not variables by >> > definition. I'm going to install this trivial fix. >> Sounds good. FWIW, here's a patch I have pending for the lexbind branch >> (where special-variable-p is t only for vars that have been defvar'd >> or defconst'd). KH> This is a little bit different topic, but shouldn't we have KH> a way to distinguish functions/macros/variables for public KH> API from those for internal (i.e. only within a specific KH> package) use only. For instance, as basic-save-buffer-1 is KH> just a helper function of basic-save-buffer, there's no need KH> to list it by C-h f TAB. KH> In addition, and this is more important, such a KH> distinguishment makes it easier to maintain a package. For KH> instance, when I improve the MIME handling of rmailmm.el, KH> the most difficult thing was to keep backward compatibility KH> of existing functions. It seems that most of them are KH> intended for internal use only. If that is clear, I could KH> have renamed or changed the behaviour of some of them. I think (or autoloaded-p called-interactively-p) functions are implicitly intended for public consumption so maybe that's the criteria you're looking for (I'm inventing some of these predicate names). But maybe it also makes sense to add filtering by `autoloaded-p' and `called-interactively-p' (which is currently available with M-x TAB) and `has-docstring-p' to `C-h f' somehow, either by making parallel commands or by adding filtering inside it. So then public-API-p can be part of that system, if it's different from (or autoloaded-p called-interactively-p). Ted