unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
       [not found] ` <20220919074155.2E6D7C00872@vcs2.savannah.gnu.org>
@ 2022-09-19  7:46   ` Po Lu
  2022-09-19  7:52     ` Gregory Heytings
  2022-09-19  7:50   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-09-19  7:46 UTC (permalink / raw)
  To: emacs-devel; +Cc: Gregory Heytings

Gregory Heytings <gregory@heytings.org> writes:

>  # ADVICE-ON-FAILURE-BEGIN:bootstrap
>  #   You might try to:
> +#   - run "git bootstrap configure=default", to rebuild Emacs with the
> +#     default configuration options, which might fix the problem
>  #   - run "git clean -fdx" and run "make bootstrap" again, which might
> -#     fix the problem
> +#     fix the problem if "git boostrap configure=default" did not
>  #     !BEWARE! "git clean -fdx" deletes all files that are not under
>  #     !BEWARE! version control, which means that all changes to such
>  #     !BEWARE! files will be lost and cannot be restored later

Excuse me, but what is "git bootstrap"?  Trying that leads to:

  git: 'bootstrap' is not a git command. See 'git --help'.

further more, it is definitely better to mention the bug tracker than to
not, which is what you keep removing with your changes.

It is also probably a bad idea to refer to git as a first choice,
because most people do not get Emacs from a repository checkout.  Nor
are we guaranteed to be using Git 5, or 10 years in the future.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
       [not found] ` <20220919074155.2E6D7C00872@vcs2.savannah.gnu.org>
  2022-09-19  7:46   ` master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice Po Lu
@ 2022-09-19  7:50   ` Lars Ingebrigtsen
  2022-09-19  7:52     ` Po Lu
  2022-09-19  7:53     ` Gregory Heytings
  1 sibling, 2 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19  7:50 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel, Po Lu

Gregory Heytings <gregory@heytings.org> writes:

> +#   - run "git bootstrap configure=default", to rebuild Emacs with the

Can you two knock it off with the reversion wars here?

In any case, I don't think is the recipe we want to recommend here.  The
currently recommended way to get a full new build (without doing the
potentially dangerous "git clean") is to say "make extraclean; make".




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:46   ` master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice Po Lu
@ 2022-09-19  7:52     ` Gregory Heytings
  0 siblings, 0 replies; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19  7:52 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel


>
> Excuse me, but what is "git bootstrap"?
>

That was a typo.

>
> it is definitely better to mention the bug tracker than to not, which is 
> what you keep removing with your changes.
>

Why not, but nobody mentioned the bug tracker in the discussion.  Let's 
see what others think about it.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:50   ` Lars Ingebrigtsen
@ 2022-09-19  7:52     ` Po Lu
  2022-09-19  7:53     ` Gregory Heytings
  1 sibling, 0 replies; 35+ messages in thread
From: Po Lu @ 2022-09-19  7:52 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Can you two knock it off with the reversion wars here?

I wasn't trying to start a reversion war.

> In any case, I don't think is the recipe we want to recommend here.  The
> currently recommended way to get a full new build (without doing the
> potentially dangerous "git clean") is to say "make extraclean; make".

In addition, "git bootstrap configure=default" is not a command.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:50   ` Lars Ingebrigtsen
  2022-09-19  7:52     ` Po Lu
@ 2022-09-19  7:53     ` Gregory Heytings
  2022-09-19  7:59       ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19  7:53 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel, Po Lu


>> +#   - run "git bootstrap configure=default", to rebuild Emacs with the
>
> I don't think is the recipe we want to recommend here.  The currently 
> recommended way to get a full new build (without doing the potentially 
> dangerous "git clean") is to say "make extraclean; make".
>

That's what "make bootstrap configure=default" does, in a single step.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:53     ` Gregory Heytings
@ 2022-09-19  7:59       ` Lars Ingebrigtsen
  2022-09-19  8:01         ` Po Lu
  2022-09-19  9:29         ` Gregory Heytings
  0 siblings, 2 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19  7:59 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel, Po Lu

Gregory Heytings <gregory@heytings.org> writes:

> That's what "make bootstrap configure=default" does, in a single step.

Yes, but it's a pretty obscure thing to have to remember, which is why
we shouldn't tell people to do that when simpler, more straightforward
alternatives exist.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:59       ` Lars Ingebrigtsen
@ 2022-09-19  8:01         ` Po Lu
  2022-09-19  9:29         ` Gregory Heytings
  1 sibling, 0 replies; 35+ messages in thread
From: Po Lu @ 2022-09-19  8:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Yes, but it's a pretty obscure thing to have to remember, which is why
> we shouldn't tell people to do that when simpler, more straightforward
> alternatives exist.

make bootstrap does not remove auto-save and lock files, so it is
definitely not the same as make extraclean.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  7:59       ` Lars Ingebrigtsen
  2022-09-19  8:01         ` Po Lu
@ 2022-09-19  9:29         ` Gregory Heytings
  2022-09-19  9:41           ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19  9:29 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel, Po Lu


>> That's what "make bootstrap configure=default" does, in a single step.
>
> Yes, but it's a pretty obscure thing to have to remember, which is why 
> we shouldn't tell people to do that when simpler, more straightforward 
> alternatives exist.
>

Hmm...  I don't know.  IMO telling people to use

make bootstrap configure=default

to rebuild Emacs with the default configuration options (starting with a 
"make extraclean" state) is clearer than telling them to use

make extraclean; make bootstrap

which does the same thing, but with which it is not clear at all that 
Emacs will be rebuilt with the default configuration options.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  9:29         ` Gregory Heytings
@ 2022-09-19  9:41           ` Lars Ingebrigtsen
  2022-09-19 10:13             ` Stefan Kangas
  2022-09-19 10:14             ` Gregory Heytings
  0 siblings, 2 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19  9:41 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel, Po Lu

Gregory Heytings <gregory@heytings.org> writes:

> Hmm...  I don't know.  IMO telling people to use
>
> make bootstrap configure=default
>
> to rebuild Emacs with the default configuration options (starting with
> a "make extraclean" state) is clearer than telling them to use
>
> make extraclean; make bootstrap
>
> which does the same thing, but with which it is not clear at all that
> Emacs will be rebuilt with the default configuration options.

But that's not what we're recommending.  It's

make extraclean; make

(In my opinion, this is what "make bootstrap" should be doing, and if we
should move the current "bootstrap" to a new target like
"bootstrap-partial" or something.)






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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  9:41           ` Lars Ingebrigtsen
@ 2022-09-19 10:13             ` Stefan Kangas
  2022-09-19 12:15               ` Stefan Monnier
  2022-09-19 10:14             ` Gregory Heytings
  1 sibling, 1 reply; 35+ messages in thread
From: Stefan Kangas @ 2022-09-19 10:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Gregory Heytings; +Cc: emacs-devel, Po Lu

Lars Ingebrigtsen <larsi@gnus.org> writes:

> (In my opinion, this is what "make bootstrap" should be doing, and if we
> should move the current "bootstrap" to a new target like
> "bootstrap-partial" or something.)

+1



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19  9:41           ` Lars Ingebrigtsen
  2022-09-19 10:13             ` Stefan Kangas
@ 2022-09-19 10:14             ` Gregory Heytings
  2022-09-19 10:17               ` Lars Ingebrigtsen
  1 sibling, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 10:14 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel, Po Lu


>> Hmm...  I don't know.  IMO telling people to use
>>
>> make bootstrap configure=default
>>
>> to rebuild Emacs with the default configuration options (starting with 
>> a "make extraclean" state) is clearer than telling them to use
>>
>> make extraclean; make bootstrap
>>
>> which does the same thing, but with which it is not clear at all that 
>> Emacs will be rebuilt with the default configuration options.
>
> But that's not what we're recommending.  It's
>
> make extraclean; make
>

Isn't the effect of "make extraclean; make" to rebuild Emacs with the 
default configuration options (contrary to "make bootstrap", which uses 
"bootstrap-clean", and with which the configuration options are kept)? 
Am I missing something?

>
> (In my opinion, this is what "make bootstrap" should be doing, and we 
> should move the current "bootstrap" to a new target like 
> "bootstrap-partial" or something.)
>

FWIW, I tend to agree.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 10:14             ` Gregory Heytings
@ 2022-09-19 10:17               ` Lars Ingebrigtsen
  2022-09-19 11:29                 ` Gregory Heytings
  0 siblings, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19 10:17 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: emacs-devel, Po Lu

Gregory Heytings <gregory@heytings.org> writes:

>> make extraclean; make
>
> Isn't the effect of "make extraclean; make" to rebuild Emacs with the
> default configuration options (contrary to "make bootstrap", which
> uses "bootstrap-clean", and with which the configuration options are
> kept)? Am I missing something?

I'm not quite sure what you're asking here, so I may be missing
something.  :-)  After a "make extraclean", there's nothing more to
remove, so saying "make" or "make bootstrap" are identical in effect.
So there's no point in advising people to say
"make extraclean; make bootstrap".




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 10:17               ` Lars Ingebrigtsen
@ 2022-09-19 11:29                 ` Gregory Heytings
  2022-09-19 12:23                   ` Po Lu
  2022-09-19 19:51                   ` Gregory Heytings
  0 siblings, 2 replies; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 11:29 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel, Po Lu

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


>> Isn't the effect of "make extraclean; make" to rebuild Emacs with the 
>> default configuration options (contrary to "make bootstrap", which uses 
>> "bootstrap-clean", and with which the configuration options are kept)? 
>> Am I missing something?
>
> I'm not quite sure what you're asking here, so I may be missing 
> something.  :-)

😉

>
> After a "make extraclean", there's nothing more to remove, so saying 
> "make" or "make bootstrap" are identical in effect. So there's no point 
> in advising people to say "make extraclean; make bootstrap".
>

Exactly, so I think neither of use missed something! 😃

My point here is that this advice will be displayed after a failed make 
bootstrap, and that just telling to use "make extraclean; make" is not 
clear enough, its effect might be surprising (e.g. the toolkit could 
change from Lucid to GTK).  Given that its effect is to rebuild Emacs with 
the default configuration options, the two possible wordings are:

run "make extraclean" and run "make" again, to rebuild Emacs with the 
default configuration options, which might fix the problem

or:

run "make bootstrap configure=default", to rebuild Emacs with the default 
configuration options, which might fix the problem

Those two commands are equivalent, but I find the latter clearer, and it's 
not obscure, it repeats something that can already be found in 
INSTALL.REPO.

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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 10:13             ` Stefan Kangas
@ 2022-09-19 12:15               ` Stefan Monnier
  2022-09-19 12:25                 ` Po Lu
                                   ` (2 more replies)
  0 siblings, 3 replies; 35+ messages in thread
From: Stefan Monnier @ 2022-09-19 12:15 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Lars Ingebrigtsen, Gregory Heytings, emacs-devel, Po Lu

Stefan Kangas [2022-09-19 06:13:08] wrote:
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>> (In my opinion, this is what "make bootstrap" should be doing, and if we
>> should move the current "bootstrap" to a new target like
>> "bootstrap-partial" or something.)
>
> +1

-1

I think we should move `make bootstrap` towards a *more*
partial bootstrap.

Those who want `make extraclean; make` know where to get it (and if you
want to give it a separate name, than name it `make
recompile-from-scratch` or something :-).

`make bootstrap` should focus on fixing the bootstrap issues that can be
present in ELisp files.  It's there so as to avoid the need for
a complete recompile-from-scratch for those of us who don't have
machines which can recompile the world under 2min.


        Stefan




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 11:29                 ` Gregory Heytings
@ 2022-09-19 12:23                   ` Po Lu
  2022-09-19 19:51                   ` Gregory Heytings
  1 sibling, 0 replies; 35+ messages in thread
From: Po Lu @ 2022-09-19 12:23 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Lars Ingebrigtsen, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> run "make extraclean" and run "make" again, to rebuild Emacs with the
> default configuration options, which might fix the problem
>
> or:
>
> run "make bootstrap configure=default", to rebuild Emacs with the
> default configuration options, which might fix the problem
>
> Those two commands are equivalent, but I find the latter clearer, and
> it's not obscure, it repeats something that can already be found in
> INSTALL.REPO.

The former is shorter and easier to remember.  Other programs typically
do not accept "configure=" parameters in their Makefiles.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:15               ` Stefan Monnier
@ 2022-09-19 12:25                 ` Po Lu
  2022-09-19 12:33                 ` Lars Ingebrigtsen
  2022-09-19 12:33                 ` Gregory Heytings
  2 siblings, 0 replies; 35+ messages in thread
From: Po Lu @ 2022-09-19 12:25 UTC (permalink / raw)
  To: Stefan Monnier
  Cc: Stefan Kangas, Lars Ingebrigtsen, Gregory Heytings, emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> `make bootstrap` should focus on fixing the bootstrap issues that can be
> present in ELisp files.

Right, that makes sense.  Also, it seems that we should not print any
message if C file compilation fails -- it is generally not affected by
bootstrap failures.

> It's there so as to avoid the need for a complete
> recompile-from-scratch for those of us who don't have machines which
> can recompile the world under 2min.

Yeah, that takes 10 to 15 minutes here.  Sometimes, I resort to
eyeballing which elc files have to be deleted to get the build working
again instead of make bootstrap, if I do not have much time.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:15               ` Stefan Monnier
  2022-09-19 12:25                 ` Po Lu
@ 2022-09-19 12:33                 ` Lars Ingebrigtsen
  2022-09-19 12:51                   ` Po Lu
  2022-09-19 12:33                 ` Gregory Heytings
  2 siblings, 1 reply; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19 12:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Stefan Kangas, Gregory Heytings, emacs-devel, Po Lu

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> `make bootstrap` should focus on fixing the bootstrap issues that can be
> present in ELisp files.  It's there so as to avoid the need for
> a complete recompile-from-scratch for those of us who don't have
> machines which can recompile the world under 2min.

The difference in time between a "make bootstrap" and a "make
extraclean; make" is about 0.5% in my tests (1m8.1s vs 1m7.7s).  (The
absolute time difference will vary, of course, but the percentage
shouldn't, I'd imagine.)

But, sure, the name doesn't really make much difference -- it'd just be
nice to have instructions for users that are as clear and easy as
possible.  The current answer -- "make extraclean; make" isn't quite
good enough, especially since that can fail if you've already done, say,
a "bootstrap-clean".

But since we've already advising people to say "make bootstrap", it'd be
less of an adjustment for the few developers that need that extra 0.5%
speed to adjust their typing to "make bootstrap-mostly", in my opinion.




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:15               ` Stefan Monnier
  2022-09-19 12:25                 ` Po Lu
  2022-09-19 12:33                 ` Lars Ingebrigtsen
@ 2022-09-19 12:33                 ` Gregory Heytings
  2 siblings, 0 replies; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 12:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Stefan Kangas, Lars Ingebrigtsen, emacs-devel, Po Lu


>
> Those who want `make extraclean; make` know where to get it (and if you 
> want to give it a separate name, than name it `make 
> recompile-from-scratch` or something :-).
>

Indeed.  I tend to agree with Lars and Stefan K., but both viewpoints have 
their merits.  So what about simply adding a "full-bootstrap" target?



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:33                 ` Lars Ingebrigtsen
@ 2022-09-19 12:51                   ` Po Lu
  2022-09-19 13:02                     ` Stefan Monnier
  2022-09-19 13:04                     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 35+ messages in thread
From: Po Lu @ 2022-09-19 12:51 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Stefan Monnier, Stefan Kangas, Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> But since we've already advising people to say "make bootstrap", it'd be
> less of an adjustment for the few developers that need that extra 0.5%
> speed to adjust their typing to "make bootstrap-mostly", in my opinion.

I think what Stefan is saying is that we should make the 0.5% more like
25% out of the box.

I guess that means "make bootstrap" should, for starters, not rebuild
temacs from scratch.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:51                   ` Po Lu
@ 2022-09-19 13:02                     ` Stefan Monnier
  2022-09-19 13:04                     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 35+ messages in thread
From: Stefan Monnier @ 2022-09-19 13:02 UTC (permalink / raw)
  To: Po Lu; +Cc: Lars Ingebrigtsen, Stefan Kangas, Gregory Heytings, emacs-devel

> I think what Stefan is saying is that we should make the 0.5% more like
> 25% out of the box.
>
> I guess that means "make bootstrap" should, for starters, not rebuild
> temacs from scratch.

At least, that's what it did back when I introduced it, IIRC :-)


        Stefan




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 12:51                   ` Po Lu
  2022-09-19 13:02                     ` Stefan Monnier
@ 2022-09-19 13:04                     ` Lars Ingebrigtsen
  2022-09-19 13:22                       ` Gregory Heytings
                                         ` (3 more replies)
  1 sibling, 4 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19 13:04 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Monnier, Stefan Kangas, Gregory Heytings, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> I think what Stefan is saying is that we should make the 0.5% more like
> 25% out of the box.
>
> I guess that means "make bootstrap" should, for starters, not rebuild
> temacs from scratch.

But why use the name "bootstrap" for something like that?  "Bootstrap"
implies that it's built from the ground up.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:04                     ` Lars Ingebrigtsen
@ 2022-09-19 13:22                       ` Gregory Heytings
  2022-09-19 18:41                         ` Lars Ingebrigtsen
  2022-09-19 13:37                       ` Po Lu
                                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 13:22 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, Stefan Monnier, Stefan Kangas, emacs-devel

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


>
> But why use the name "bootstrap" for something like that?  "Bootstrap" 
> implies that it's built from the ground up.
>

I guess there are different viewpoints on where the ground is 😉

WDYT of simply adding another "full-bootstrap" target, with the meaning 
"from the lowest possible ground"?

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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:04                     ` Lars Ingebrigtsen
  2022-09-19 13:22                       ` Gregory Heytings
@ 2022-09-19 13:37                       ` Po Lu
  2022-09-19 14:02                         ` Eli Zaretskii
  2022-09-19 13:37                       ` Gerd Möllmann
  2022-09-19 13:46                       ` Stefan Monnier
  3 siblings, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-09-19 13:37 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: Stefan Monnier, Stefan Kangas, Gregory Heytings, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> But why use the name "bootstrap" for something like that?  "Bootstrap"
> implies that it's built from the ground up.

I always thought the "bootstrap" implied building the Lisp part of Emacs
from the ground up.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:04                     ` Lars Ingebrigtsen
  2022-09-19 13:22                       ` Gregory Heytings
  2022-09-19 13:37                       ` Po Lu
@ 2022-09-19 13:37                       ` Gerd Möllmann
  2022-09-19 13:46                       ` Stefan Monnier
  3 siblings, 0 replies; 35+ messages in thread
From: Gerd Möllmann @ 2022-09-19 13:37 UTC (permalink / raw)
  To: larsi; +Cc: emacs-devel, gregory, luangruo, monnier, stefan

 > But why use the name "bootstrap" for something like that?  "Bootstrap"
 > implies that it's built from the ground up.

Right, that was my original idea at least.

The history of this is that we originally had .elc files in CVS, with 
all the problems one can imagine that come with such an approach.  I 
added bootstrapping to make Emacs from sources, only.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:04                     ` Lars Ingebrigtsen
                                         ` (2 preceding siblings ...)
  2022-09-19 13:37                       ` Gerd Möllmann
@ 2022-09-19 13:46                       ` Stefan Monnier
  3 siblings, 0 replies; 35+ messages in thread
From: Stefan Monnier @ 2022-09-19 13:46 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Po Lu, Stefan Kangas, Gregory Heytings, emacs-devel

> But why use the name "bootstrap" for something like that?
> "Bootstrap" implies that it's built from the ground up.

When compiling C files, with a pre-installed C compiler, you're not
bootstrapping anything.  Bootstrap comes into the picture when you need
to build something with the something you're building, and you thus need
to take extra steps to break the circular dependency (e.g. the use of
`ldefs-boot.el`, or the use of an ELisp interpreter to run the
not-yet-compiled code).

Without such circular dependency, Make rules can often express the real
dependencies precisely enough that you don't need a special Make target
to rebuild from scratch.


        Stefan




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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:37                       ` Po Lu
@ 2022-09-19 14:02                         ` Eli Zaretskii
  2022-09-19 14:14                           ` Po Lu
  0 siblings, 1 reply; 35+ messages in thread
From: Eli Zaretskii @ 2022-09-19 14:02 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, monnier, stefan, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,  Stefan Kangas
>  <stefan@marxist.se>,  Gregory Heytings <gregory@heytings.org>,
>  emacs-devel@gnu.org
> Date: Mon, 19 Sep 2022 21:37:01 +0800
> 
> Lars Ingebrigtsen <larsi@gnus.org> writes:
> 
> > But why use the name "bootstrap" for something like that?  "Bootstrap"
> > implies that it's built from the ground up.
> 
> I always thought the "bootstrap" implied building the Lisp part of Emacs
> from the ground up.

No, "bootstrap" means just that: build a program when some components
needed for the build are missing.  Thus, "bootstrap" is not
necessarily supposed to make sense when those components are present.

We are actually using "bootstrap" in a different role: as a build from
a clean tree.  (And when you actually build a fresh checkout, it is
nowadays unnecessary to say "make bootstrap", as GNUmakefile does TRT
in that case if you just say "make".)

So maybe we should repurpose "bootstrap", and rename it while at that,
to something like "clean-build" or somesuch.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 14:02                         ` Eli Zaretskii
@ 2022-09-19 14:14                           ` Po Lu
  2022-09-19 14:20                             ` Eli Zaretskii
  0 siblings, 1 reply; 35+ messages in thread
From: Po Lu @ 2022-09-19 14:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, monnier, stefan, gregory, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> No, "bootstrap" means just that: build a program when some components
> needed for the build are missing.  Thus, "bootstrap" is not
> necessarily supposed to make sense when those components are present.
>
> We are actually using "bootstrap" in a different role: as a build from
> a clean tree.  (And when you actually build a fresh checkout, it is
> nowadays unnecessary to say "make bootstrap", as GNUmakefile does TRT
> in that case if you just say "make".)
>
> So maybe we should repurpose "bootstrap", and rename it while at that,
> to something like "clean-build" or somesuch.

Hmm, but in that case, what target should be used to resolve incremental
build failures?

"make clean; make" perhaps?



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 14:14                           ` Po Lu
@ 2022-09-19 14:20                             ` Eli Zaretskii
  2022-09-19 14:54                               ` Gregory Heytings
  0 siblings, 1 reply; 35+ messages in thread
From: Eli Zaretskii @ 2022-09-19 14:20 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, monnier, stefan, gregory, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  monnier@iro.umontreal.ca,  stefan@marxist.se,
>   gregory@heytings.org,  emacs-devel@gnu.org
> Date: Mon, 19 Sep 2022 22:14:11 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > No, "bootstrap" means just that: build a program when some components
> > needed for the build are missing.  Thus, "bootstrap" is not
> > necessarily supposed to make sense when those components are present.
> >
> > We are actually using "bootstrap" in a different role: as a build from
> > a clean tree.  (And when you actually build a fresh checkout, it is
> > nowadays unnecessary to say "make bootstrap", as GNUmakefile does TRT
> > in that case if you just say "make".)
> >
> > So maybe we should repurpose "bootstrap", and rename it while at that,
> > to something like "clean-build" or somesuch.
> 
> Hmm, but in that case, what target should be used to resolve incremental
> build failures?

That's what we (mistakenly) call "bootstrap".  If it doesn't clean
well enough, its clean stage should be improved.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 14:20                             ` Eli Zaretskii
@ 2022-09-19 14:54                               ` Gregory Heytings
  2022-09-19 15:51                                 ` Eli Zaretskii
  0 siblings, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 14:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Po Lu, larsi, monnier, stefan, emacs-devel


>
> That's what we (mistakenly) call "bootstrap".  If it doesn't clean well 
> enough, its clean stage should be improved.
>

You mean, make bootstrap-clean identical to extraclean, except perhaps 
that it wouldn't remove config.cache?



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 14:54                               ` Gregory Heytings
@ 2022-09-19 15:51                                 ` Eli Zaretskii
  2022-09-19 16:02                                   ` Gregory Heytings
  0 siblings, 1 reply; 35+ messages in thread
From: Eli Zaretskii @ 2022-09-19 15:51 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: luangruo, larsi, monnier, stefan, emacs-devel

> Date: Mon, 19 Sep 2022 14:54:53 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: Po Lu <luangruo@yahoo.com>, larsi@gnus.org, monnier@iro.umontreal.ca, 
>     stefan@marxist.se, emacs-devel@gnu.org
> 
> > That's what we (mistakenly) call "bootstrap".  If it doesn't clean well 
> > enough, its clean stage should be improved.
> 
> You mean, make bootstrap-clean identical to extraclean, except perhaps 
> that it wouldn't remove config.cache?

If extraclean does a good job, yes.  (I think someone said it didn't?)



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 15:51                                 ` Eli Zaretskii
@ 2022-09-19 16:02                                   ` Gregory Heytings
  2022-09-19 16:14                                     ` Eli Zaretskii
  0 siblings, 1 reply; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 16:02 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, larsi, monnier, stefan, emacs-devel


>>> That's what we (mistakenly) call "bootstrap".  If it doesn't clean 
>>> well enough, its clean stage should be improved.
>>
>> You mean, make bootstrap-clean identical to extraclean, except perhaps 
>> that it wouldn't remove config.cache?
>
> If extraclean does a good job, yes.  (I think someone said it didn't?)
>

It depends how you define "good".  What it does is, in a repository that 
was not modified otherwise, equivalent to "git clean -fdx".  Unlike "git 
clean -fdx" however, it does not remove files that were created by the 
user (e.g. .patch or .bak files).



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 16:02                                   ` Gregory Heytings
@ 2022-09-19 16:14                                     ` Eli Zaretskii
  2022-09-19 16:30                                       ` Gregory Heytings
  0 siblings, 1 reply; 35+ messages in thread
From: Eli Zaretskii @ 2022-09-19 16:14 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: luangruo, larsi, monnier, stefan, emacs-devel

> Date: Mon, 19 Sep 2022 16:02:47 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: luangruo@yahoo.com, larsi@gnus.org, monnier@iro.umontreal.ca, 
>     stefan@marxist.se, emacs-devel@gnu.org
> 
> 
> >>> That's what we (mistakenly) call "bootstrap".  If it doesn't clean 
> >>> well enough, its clean stage should be improved.
> >>
> >> You mean, make bootstrap-clean identical to extraclean, except perhaps 
> >> that it wouldn't remove config.cache?
> >
> > If extraclean does a good job, yes.  (I think someone said it didn't?)
> >
> 
> It depends how you define "good".  What it does is, in a repository that 
> was not modified otherwise, equivalent to "git clean -fdx".  Unlike "git 
> clean -fdx" however, it does not remove files that were created by the 
> user (e.g. .patch or .bak files).

"Good job" for this purpose means anything that could interfere with a
clean build.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 16:14                                     ` Eli Zaretskii
@ 2022-09-19 16:30                                       ` Gregory Heytings
  0 siblings, 0 replies; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 16:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, larsi, monnier, stefan, emacs-devel


>>>>> That's what we (mistakenly) call "bootstrap".  If it doesn't clean 
>>>>> well enough, its clean stage should be improved.
>>>>
>>>> You mean, make bootstrap-clean identical to extraclean, except 
>>>> perhaps that it wouldn't remove config.cache?
>>>
>>> If extraclean does a good job, yes.  (I think someone said it didn't?)
>>
>> It depends how you define "good".  What it does is, in a repository 
>> that was not modified otherwise, equivalent to "git clean -fdx". 
>> Unlike "git clean -fdx" however, it does not remove files that were 
>> created by the user (e.g. .patch or .bak files).
>
> "Good job" for this purpose means anything that could interfere with a 
> clean build.
>

In that case it does a good job: the "cleanest" clean target is 
extraclean, and bootstrap-clean sometimes does not clean enough.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 13:22                       ` Gregory Heytings
@ 2022-09-19 18:41                         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 35+ messages in thread
From: Lars Ingebrigtsen @ 2022-09-19 18:41 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Po Lu, Stefan Monnier, Stefan Kangas, emacs-devel

Gregory Heytings <gregory@heytings.org> writes:

> WDYT of simply adding another "full-bootstrap" target, with the
> meaning "from the lowest possible ground"?

If other people are so married to the "bootstrap" name that they refuse
to consider renaming it, I don't think it's worth spending more time
arguing about.  So, sure.



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

* Re: master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice.
  2022-09-19 11:29                 ` Gregory Heytings
  2022-09-19 12:23                   ` Po Lu
@ 2022-09-19 19:51                   ` Gregory Heytings
  1 sibling, 0 replies; 35+ messages in thread
From: Gregory Heytings @ 2022-09-19 19:51 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel, Po Lu


>
> run "make extraclean" and run "make" again, to rebuild Emacs with the 
> default configuration options, which might fix the problem
>
> or:
>
> run "make bootstrap configure=default", to rebuild Emacs with the 
> default configuration options, which might fix the problem
>
> Those two commands are equivalent, but I find the latter clearer, and it's 
> not obscure, it repeats something that can already be found in INSTALL.REPO.
>

I now mentioned both, and all this will possibly be simplified if make 
bootstrap is changed to use extraclean by default.



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

end of thread, other threads:[~2022-09-19 19:51 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <166357331345.19427.12446846086384744693@vcs2.savannah.gnu.org>
     [not found] ` <20220919074155.2E6D7C00872@vcs2.savannah.gnu.org>
2022-09-19  7:46   ` master 3fd2b00a4b 2/2: ; * Makefile.in: Add "make bootstrap configure=default" as a first choice Po Lu
2022-09-19  7:52     ` Gregory Heytings
2022-09-19  7:50   ` Lars Ingebrigtsen
2022-09-19  7:52     ` Po Lu
2022-09-19  7:53     ` Gregory Heytings
2022-09-19  7:59       ` Lars Ingebrigtsen
2022-09-19  8:01         ` Po Lu
2022-09-19  9:29         ` Gregory Heytings
2022-09-19  9:41           ` Lars Ingebrigtsen
2022-09-19 10:13             ` Stefan Kangas
2022-09-19 12:15               ` Stefan Monnier
2022-09-19 12:25                 ` Po Lu
2022-09-19 12:33                 ` Lars Ingebrigtsen
2022-09-19 12:51                   ` Po Lu
2022-09-19 13:02                     ` Stefan Monnier
2022-09-19 13:04                     ` Lars Ingebrigtsen
2022-09-19 13:22                       ` Gregory Heytings
2022-09-19 18:41                         ` Lars Ingebrigtsen
2022-09-19 13:37                       ` Po Lu
2022-09-19 14:02                         ` Eli Zaretskii
2022-09-19 14:14                           ` Po Lu
2022-09-19 14:20                             ` Eli Zaretskii
2022-09-19 14:54                               ` Gregory Heytings
2022-09-19 15:51                                 ` Eli Zaretskii
2022-09-19 16:02                                   ` Gregory Heytings
2022-09-19 16:14                                     ` Eli Zaretskii
2022-09-19 16:30                                       ` Gregory Heytings
2022-09-19 13:37                       ` Gerd Möllmann
2022-09-19 13:46                       ` Stefan Monnier
2022-09-19 12:33                 ` Gregory Heytings
2022-09-19 10:14             ` Gregory Heytings
2022-09-19 10:17               ` Lars Ingebrigtsen
2022-09-19 11:29                 ` Gregory Heytings
2022-09-19 12:23                   ` Po Lu
2022-09-19 19:51                   ` Gregory Heytings

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).