From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: ABI break! Date: Wed, 18 Jan 2017 22:25:38 +0100 Message-ID: <878tq883hp.fsf@gnu.org> References: <1484164902-10160-1-git-send-email-jmd@gnu.org> <877f5xjpmk.fsf@gnu.org> <20170115063226.GA20478@jocasta.intra> <87shokdkrl.fsf@gnu.org> <20170116124617.GB16013@jocasta.intra> <87lgua63ni.fsf@gnu.org> <87vatd9u4s.fsf_-_@gnu.org> <20170118061703.GA26238@jocasta.intra> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56014) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cTxjl-0008Eq-HL for guix-devel@gnu.org; Wed, 18 Jan 2017 16:25:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cTxji-0002sM-B0 for guix-devel@gnu.org; Wed, 18 Jan 2017 16:25:45 -0500 In-Reply-To: <20170118061703.GA26238@jocasta.intra> (John Darrington's message of "Wed, 18 Jan 2017 07:17:04 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: John Darrington Cc: guix-devel@gnu.org, John Darrington John Darrington skribis: > On Tue, Jan 17, 2017 at 11:52:35PM +0100, Ludovic Court??s wrote: > ludo@gnu.org (Ludovic Court??s) skribis: >=20=20=20=20=20=20 > > Pushed with tests as 384344198dcaa97847e66d3dd82f279ede08d690. >=20=20=20=20=20=20 > And if you get a weird error when running ???make??? about > ???file-system-needed-for-boot????, just run: >=20=20=20=20=20=20 > rm gnu/system.go && make >=20=20=20=20=20=20 > This is because of an ABI break: ???file-system-needed-for-boot???? = was a > macro and now is a procedure. >=20=20=20=20=20=20 > Surely this means that the Makefile is wrong? > > It should recognise that gnu/system.scm has changed and rebuild gnu/syste= m.go accordingly. gnu/system.scm has not changed; gnu/system/file-system.scm did. Guile modules are composed at run time for the most part, so when you change one, you don=E2=80=99t have to rebuild those that use it. However, you do have to recompile them if they rely on it for macros and those macros have changed or are no longer macros. This is what happened here. Ludo=E2=80=99.