Subject: bug#17300: closed (Re: bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures))

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 20 Apr 2014 14:47:04 +0000

Your bug report

#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures) 

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17300: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17300
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
From: Daniel Colascione <[email-masked]>
To: Ivan Shmakov <[email-masked]>, [email-masked], [email-masked]
Date: Sun, 20 Apr 2014 07:46:32 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On 04/20/2014 04:26 AM, Ivan Shmakov wrote:
> Package:  emacs
> 
> 	As of 20eb3d6e5262 [1], Emacs fails to build from a clean
> 	directory with the output like:

Fixed.

Subject: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
From: Ivan Shmakov <[email-masked]>
To: [email-masked]
Date: Sun, 20 Apr 2014 11:26:25 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Package:  emacs

	As of 20eb3d6e5262 [1], Emacs fails to build from a clean
	directory with the output like:

Loading /home/private/users/ivan/devel/emacs-2014-04-20-build/lisp/emacs-lisp/nadvice.el (source)...
Loading /home/private/users/ivan/devel/emacs-2014-04-20-build/lisp/minibuffer.el (source)...
Eager macro-expansion failure: (void-function defsetf)
Symbol's function definition is void: defsetf
make[1]: *** [bootstrap-emacs] Error 1
make[1]: Leaving directory `/home/private/users/ivan/devel/emacs-2014-04-20-build/src'

	Apparently, the “defstruct introspection” commit [2] is to
	blame, as it introduced to cl-macs.el:

	• the use of the ‘defsetf’ macro, defined in cl.el (not
	  currently required by cl-macs.el, and possibly leading to a
	  circular dependency);

	• two invocations of the ‘cl-define-compiler-macro’ in the
	  “Structures.” section /prior/ to its definition in “Compiler
	  macros.” later in the same file.

	The first issue could be solved by simply replacing defsetf by
	gv-define-simple-setter.  The solution for the second is to move
	these two invocations below the definition of the macro.

[1] http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/vc/ediff-diff.el?h=emacs-24&id=20eb3d6e5262a31147b42a9733010ce397fdc3d8
[2] http://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/vc/ediff-diff.el?h=emacs-24&id=49b8b4c4a07e9e3d160367cc52d4ef4fb7f3fa22

PS.  And since when using periods in ‘;;; ’-headings within the code
	became a convention, BTW?

-- 
FSF associate member #7257