From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: Circular dependencies between libraries - what to do? Date: Sat, 20 Sep 2014 23:40:28 +0200 Organization: Aioe.org NNTP Server Message-ID: <87mw9ukm2b.fsf@debian.uxu> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1411249527 16481 80.91.229.3 (20 Sep 2014 21:45:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 20 Sep 2014 21:45:27 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Sep 20 23:45:22 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 1XVSSz-0003CU-OI for geh-help-gnu-emacs@m.gmane.org; Sat, 20 Sep 2014 23:45:17 +0200 Original-Received: from localhost ([::1]:36155 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XVSSz-0006Ir-Bc for geh-help-gnu-emacs@m.gmane.org; Sat, 20 Sep 2014 17:45:17 -0400 X-FeedAbuse: http://nntpfeed.proxad.net/abuse.pl feeded by 195.154.128.97 Original-Path: usenet.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!proxad.net!feeder1-2.proxad.net!nntpfeed.proxad.net!dedibox.gegeweb.org!gegeweb.eu!gegeweb.org!aioe.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 43 Original-NNTP-Posting-Host: P0uMB9BthHuWo8+BJXB4Mw.user.speranza.aioe.org Original-X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-Notice: Filtered by postfilter v. 0.8.2 Cancel-Lock: sha1:rZyVxjCCQuJ4jf3brpnCNq7TwxU= Mail-Copies-To: never Original-Xref: usenet.stanford.edu gnu.emacs.help:207800 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:100074 Archived-At: Thorsten Jolitz writes: > (1) how to use require without introducing circular > dependencies? At the top of a file, put the require:s, e.g., (require 'message) (require 'moggle) Then at the end of the file, put (provide 'message-my) If you get a circular dependency (which I never did with 50+ init files, but OK, I suppose I would solve it like this) - break the file in two so you get clean modules. Here is an example: http://user.it.uu.se/~embe8573/conf/emacs-init/gnus/message-my.el Then compile everything - here is the makefile I use, if you don't have one and need to write one - http://user.it.uu.se/~embe8573/conf/emacs-init/Makefile When compiling, it'll say what functions and variables are (can be) uncovered. They aren't (most often), actually, but fix it anyway to get even better code, and to make the compiler shut up :) > (2) how to declare their dependencies as MELPA > packages? I never used MELPA so I don't know. Do tell if when find out :) Good luck! -- underground experts united