From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Circular dependencies between libraries - what to do? Date: Sat, 20 Sep 2014 18:52:40 -0400 Message-ID: References: <87d2aqgf92.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1411257411 3689 80.91.229.3 (20 Sep 2014 23:56:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 20 Sep 2014 23:56:51 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Sep 21 01:56:43 2014 Return-path: Envelope-to: geh-help-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 1XVUWB-00005U-Oy for geh-help-gnu-emacs@m.gmane.org; Sun, 21 Sep 2014 01:56:43 +0200 Original-Received: from localhost ([::1]:36394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVUWB-00055v-FH for geh-help-gnu-emacs@m.gmane.org; Sat, 20 Sep 2014 19:56:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58075) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVUV1-0003SO-DI for help-gnu-emacs@gnu.org; Sat, 20 Sep 2014 19:55:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XVUUn-0007cm-Iy for help-gnu-emacs@gnu.org; Sat, 20 Sep 2014 19:55:31 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:39885) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVUUn-0007cB-Cp for help-gnu-emacs@gnu.org; Sat, 20 Sep 2014 19:55:17 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XVTWO-0006jw-It for help-gnu-emacs@gnu.org; Sun, 21 Sep 2014 00:52:52 +0200 Original-Received: from 69-165-145-6.dsl.teksavvy.com ([69.165.145.6]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 21 Sep 2014 00:52:52 +0200 Original-Received: from monnier by 69-165-145-6.dsl.teksavvy.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 21 Sep 2014 00:52:52 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 14 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 69-165-145-6.dsl.teksavvy.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) Cancel-Lock: sha1:UEdai6VXulN8NJoBw8CXQs763VY= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:100078 Archived-At: > I'm probably asking for trouble, but B actually does not work without A, > and A calls B functions, so they do require each other. You can try to restructure the files, so as to get rid of the circularity. Or you can load the files differently. E.g. instead of top-level `require', you can use autoloads, so that loading A doesn't load B, but when A calls functions from B, then B gets loaded. Or instead of autoloads, you can place a (require 'B) *inside* the functions of A that call functions from B. Stefan