From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.bugs Subject: bug#16353: 24.3.50; cl-position fails in 23.4.1 Date: Tue, 07 Jan 2014 11:03:30 +0100 Message-ID: References: <87a9faw9w6.fsf@gmail.com> <87txdgsp3a.fsf@gmail.com> <87ppo4qh8z.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1389089123 4390 80.91.229.3 (7 Jan 2014 10:05:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 7 Jan 2014 10:05:23 +0000 (UTC) To: 16353@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jan 07 11:05:29 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1W0TXK-0008AW-Df for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Jan 2014 11:05:26 +0100 Original-Received: from localhost ([::1]:39601 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TXJ-0006t8-2p for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Jan 2014 05:05:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TX6-0006s3-EU for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:05:21 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0TWx-0000Z8-01 for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:05:12 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54382) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TWw-0000YV-Sg for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:05:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1W0TWw-0003fg-FQ for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:05:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <87a9faw9w6.fsf@gmail.com> Resent-From: Helmut Eller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 Jan 2014 10:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16353 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.138908905314013 (code B ref -1); Tue, 07 Jan 2014 10:05:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 7 Jan 2014 10:04:13 +0000 Original-Received: from localhost ([127.0.0.1]:40168 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W0TW9-0003dx-3e for submit@debbugs.gnu.org; Tue, 07 Jan 2014 05:04:13 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:52266) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W0TW5-0003di-5l for submit@debbugs.gnu.org; Tue, 07 Jan 2014 05:04:10 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0TVv-0000MD-4V for submit@debbugs.gnu.org; Tue, 07 Jan 2014 05:04:08 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:53796) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TVv-0000M7-1z for submit@debbugs.gnu.org; Tue, 07 Jan 2014 05:03:59 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53928) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TVn-0006Ll-Nk for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:03:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0TVg-00009X-Dj for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:03:51 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:59244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0TVg-00009C-7d for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 05:03:44 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1W0TVd-0004XZ-30 for bug-gnu-emacs@gnu.org; Tue, 07 Jan 2014 11:03:41 +0100 Original-Received: from 212.46.176.45 ([212.46.176.45]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Jan 2014 11:03:41 +0100 Original-Received: from eller.helmut by 212.46.176.45 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Jan 2014 11:03:41 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 40 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 212.46.176.45 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:dqnSMVs1pdnYdXgnWCASbil6QbQ= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:83092 Archived-At: On Tue, Jan 07 2014, João Távora wrote: > Can it be done without including the full definitions, e.g. via some > bytecode-changing trick? I'm asking because I could include this > workaround Here's an idea for a solution: unintern the existing symbol, say cl-postion, then intern "cl-position" again to create a second symbol. defalias the second symbol. Code loaded before the unintern dance, will call the function of the uninterned symbols and code loaded afterwards calls the function of the second symbol. To make this work it's important to load all code that must call uninterned symbols into memory. In practice that seems to be cl-seq.elc. --- cl-lib-0.3.el.orig 2014-01-07 10:47:47.508299389 +0100 +++ cl-lib-0.3.el 2014-01-07 10:48:57.436296376 +0100 @@ -299,9 +299,20 @@ dolist dotimes )) - (let ((new (if (consp fun) (prog1 (cdr fun) (setq fun (car fun))) - (intern (format "cl-%s" fun))))) - (unless (fboundp new) (defalias new fun)))) + (let* ((old (cond ((consp fun) (car fun)) + (t fun))) + (new (cond ((consp fun) (cdr fun)) + (t (intern (format "cl-%s" fun))))) + (f (symbol-function old)) + (autoload (and (consp f) (eq (car f) 'autoload)))) + (when autoload + (load (cadr f))) + (let ((new2 (cond ((fboundp new) + (message "Conflict: %s" new) + (unintern new) + (intern (symbol-name new))) + (t new)))) + (defalias new2 old)))) ;; `cl-labels' is not 100% compatible with `labels' when using dynamic scoping ;; (mostly because it does not turn lambdas that refer to those functions into