unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
@ 2014-04-20 11:26 Ivan Shmakov
  2014-04-20 11:36 ` Eli Zaretskii
  2014-04-20 14:46 ` Daniel Colascione
  0 siblings, 2 replies; 11+ messages in thread
From: Ivan Shmakov @ 2014-04-20 11:26 UTC (permalink / raw
  To: 17300

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





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 11:26 bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures) Ivan Shmakov
@ 2014-04-20 11:36 ` Eli Zaretskii
  2014-04-20 12:28   ` Daimrod
  2014-04-20 13:35   ` Ivan Shmakov
  2014-04-20 14:46 ` Daniel Colascione
  1 sibling, 2 replies; 11+ messages in thread
From: Eli Zaretskii @ 2014-04-20 11:36 UTC (permalink / raw
  To: Ivan Shmakov; +Cc: 17300

> From: Ivan Shmakov <ivan@siamics.net>
> Date: Sun, 20 Apr 2014 11:26:25 +0000
> 
> 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'

Did you try "make bootstrap"?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 11:36 ` Eli Zaretskii
@ 2014-04-20 12:28   ` Daimrod
  2014-04-20 13:35   ` Ivan Shmakov
  1 sibling, 0 replies; 11+ messages in thread
From: Daimrod @ 2014-04-20 12:28 UTC (permalink / raw
  To: Eli Zaretskii; +Cc: 17300, Ivan Shmakov

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Ivan Shmakov <ivan@siamics.net>
>> Date: Sun, 20 Apr 2014 11:26:25 +0000
>> 
>> 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'
>
> Did you try "make bootstrap"?

Same problem here with "make bootstrap".

Eager macro-expansion failure: (void-function defsetf)
Symbol's function definition is void: defsetf
make[2]: *** [bootstrap-emacs] Error 1

-- 
Daimrod/Greg





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 11:36 ` Eli Zaretskii
  2014-04-20 12:28   ` Daimrod
@ 2014-04-20 13:35   ` Ivan Shmakov
  2014-04-20 13:52     ` Eli Zaretskii
  1 sibling, 1 reply; 11+ messages in thread
From: Ivan Shmakov @ 2014-04-20 13:35 UTC (permalink / raw
  To: 17300

>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>>>>> From: Ivan Shmakov  Date: Sun, 20 Apr 2014 11:26:25 +0000

 >> 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/minibuffer.el (source)...
 >> Eager macro-expansion failure: (void-function defsetf)
 >> Symbol's function definition is void: defsetf

[…]

 > Did you try "make bootstrap"?

	I didn’t.  But isn’t the directory expected to be clean right
	after $ git clone?

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

-- 
FSF associate member #7257





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 13:35   ` Ivan Shmakov
@ 2014-04-20 13:52     ` Eli Zaretskii
  2014-04-20 16:37       ` Ivan Shmakov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2014-04-20 13:52 UTC (permalink / raw
  To: Ivan Shmakov; +Cc: 17300

> From: Ivan Shmakov <ivan@siamics.net>
> Date: Sun, 20 Apr 2014 13:35:41 +0000
> 
> >>>>> Eli Zaretskii <eliz@gnu.org> writes:
> >>>>> From: Ivan Shmakov  Date: Sun, 20 Apr 2014 11:26:25 +0000
> 
>  >> 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/minibuffer.el (source)...
>  >> Eager macro-expansion failure: (void-function defsetf)
>  >> Symbol's function definition is void: defsetf
> 
> […]
> 
>  > Did you try "make bootstrap"?
> 
> 	I didn’t.  But isn’t the directory expected to be clean right
> 	after $ git clone?

It is.  But you never explained what you meant by "a clean directory",
so I had no way of knowing it was a fresh clone.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 11:26 bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures) Ivan Shmakov
  2014-04-20 11:36 ` Eli Zaretskii
@ 2014-04-20 14:46 ` Daniel Colascione
  1 sibling, 0 replies; 11+ messages in thread
From: Daniel Colascione @ 2014-04-20 14:46 UTC (permalink / raw
  To: Ivan Shmakov, 17300, 17300-done

[-- Attachment #1: Type: text/plain, Size: 178 bytes --]

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.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 13:52     ` Eli Zaretskii
@ 2014-04-20 16:37       ` Ivan Shmakov
  2014-04-20 16:46         ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Ivan Shmakov @ 2014-04-20 16:37 UTC (permalink / raw
  To: 17300

>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>>>>> From: Ivan Shmakov  Date: Sun, 20 Apr 2014 13:35:41 +0000
>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>>>>> From: Ivan Shmakov  Date: Sun, 20 Apr 2014 11:26:25 +0000

 >>>> As of 20eb3d6e5262 [1], Emacs fails to build from a clean
 >>>> directory

[…]

 >>> Did you try "make bootstrap"?

 >> I didn’t.  But isn’t the directory expected to be clean right after
 >> $ git clone?

 > It is.  But you never explained what you meant by "a clean
 > directory", so I had no way of knowing it was a fresh clone.

	Indeed.

	As an aside, I’d gladly be performing all my builds in a clean
	build directory, provided that the build system employed by
	Emacs would /not/ insist on cluttering $(srcdir).  (As in: with
	.elc.)

-- 
FSF associate member #7257





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 16:37       ` Ivan Shmakov
@ 2014-04-20 16:46         ` Eli Zaretskii
  2014-04-20 17:32           ` Ivan Shmakov
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2014-04-20 16:46 UTC (permalink / raw
  To: Ivan Shmakov; +Cc: 17300

> From: Ivan Shmakov <ivan@siamics.net>
> Date: Sun, 20 Apr 2014 16:37:26 +0000
> 
> 	As an aside, I’d gladly be performing all my builds in a clean
> 	build directory, provided that the build system employed by
> 	Emacs would /not/ insist on cluttering $(srcdir).  (As in: with
> 	.elc.)

I, on the contrary, find a clean build to be a waste of time, and try
to avoid it as much as possible.  There's nothing "unclean" about
compiling just the files that were changed since the last update.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 16:46         ` Eli Zaretskii
@ 2014-04-20 17:32           ` Ivan Shmakov
  2014-04-20 18:53             ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Ivan Shmakov @ 2014-04-20 17:32 UTC (permalink / raw
  To: 17300

>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>>>>> From: Ivan Shmakov  Date: Sun, 20 Apr 2014 16:37:26 +0000

 >> As an aside, I’d gladly be performing all my builds in a clean build
 >> directory, provided that the build system employed by Emacs would
 >> /not/ insist on cluttering $(srcdir).  (As in: with .elc.)

 > I, on the contrary, find a clean build to be a waste of time, and try
 > to avoid it as much as possible.

	That’s why it’s generally possible to reuse build directories
	whether building in or out of $(srcdir).

	Unfortunately, and unlike the majority of the GNU software I’ve
	dealt with, Emacs does not currently allow the user to choose:
	$(srcdir) gets changed irrespective of the use of a separate
	build directory.

	Which makes me wonder if there’s a respective bug somewhere on
	the BTS, or if I should file one myself?

 > There's nothing "unclean" about compiling just the files that were
 > changed since the last update.

	Except that it’s known to break builds if the dependencies are
	incomplete or became broken themselves.

-- 
FSF associate member #7257





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 17:32           ` Ivan Shmakov
@ 2014-04-20 18:53             ` Eli Zaretskii
  2014-04-20 21:58               ` Stefan Monnier
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2014-04-20 18:53 UTC (permalink / raw
  To: Ivan Shmakov; +Cc: 17300

> From: Ivan Shmakov <ivan@siamics.net>
> Date: Sun, 20 Apr 2014 17:32:40 +0000
> 
> 	Unfortunately, and unlike the majority of the GNU software I’ve
> 	dealt with, Emacs does not currently allow the user to choose:
> 	$(srcdir) gets changed irrespective of the use of a separate
> 	build directory.
> 
> 	Which makes me wonder if there’s a respective bug somewhere on
> 	the BTS, or if I should file one myself?

File it.

>  > There's nothing "unclean" about compiling just the files that were
>  > changed since the last update.
> 
> 	Except that it’s known to break builds if the dependencies are
> 	incomplete or became broken themselves.

That has become false long ago.  You need to bootstrap in some rare
cases, but mostly the build "just works".





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures)
  2014-04-20 18:53             ` Eli Zaretskii
@ 2014-04-20 21:58               ` Stefan Monnier
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Monnier @ 2014-04-20 21:58 UTC (permalink / raw
  To: Eli Zaretskii; +Cc: 17300, Ivan Shmakov

> That has become false long ago.  You need to bootstrap in some rare
> cases, but mostly the build "just works".

It does break every once in a while, tho.
For maintainers, it's usually easy to figure out the problem and run
"bootstrap" or even fix the specific problem (and avoid a complete
bootstrap), but for less-versed users it can be difficult to detect
the problem.


        Stefan





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2014-04-20 21:58 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-20 11:26 bug#17300: fails to build due to defsetf, cl-define-compiler-macro in cl-macs.el (structures) Ivan Shmakov
2014-04-20 11:36 ` Eli Zaretskii
2014-04-20 12:28   ` Daimrod
2014-04-20 13:35   ` Ivan Shmakov
2014-04-20 13:52     ` Eli Zaretskii
2014-04-20 16:37       ` Ivan Shmakov
2014-04-20 16:46         ` Eli Zaretskii
2014-04-20 17:32           ` Ivan Shmakov
2014-04-20 18:53             ` Eli Zaretskii
2014-04-20 21:58               ` Stefan Monnier
2014-04-20 14:46 ` Daniel Colascione

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).