unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Kenneth Raeburn <raeburn@raeburn.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 22975@debbugs.gnu.org
Subject: bug#22975: 25.0.92; CANNOT_DUMP build can't start in tty mode
Date: Fri, 11 Mar 2016 15:50:08 -0500	[thread overview]
Message-ID: <49B8443F-2416-44A5-BE6B-A25D690E8CF5@raeburn.org> (raw)
In-Reply-To: <83bn6kiypm.fsf@gnu.org>

loadup.el has code testing (fboundp 'dump-emacs), it's not bound if CANNOT_DUMP is defined.

Ken


On Mar 11, 2016, at 14:47, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Ken Raeburn <raeburn@raeburn.org>
>> Date: Fri, 11 Mar 2016 14:18:55 -0500
>> Cc: 22975@debbugs.gnu.org
>> 
>>>> On Mar 11, 2016, at 09:31, Eli Zaretskii <eliz@gnu.org> wrote:
>>>> 
>>>> From: Ken Raeburn <raeburn@raeburn.org>
>>>> Date: Fri, 11 Mar 2016 06:17:45 -0500
>>>> Cc: 22975@debbugs.gnu.org
>>>> 
>>>> It appears that Emacs tries to display the “Using load-path …” message, calls echo_area_display, display_echo_area, with_echo_area_buffer, display_echo_area_1, resize_mini_window, and grow_mini_window, which then uses
>>>> call3 (Qwindow_resize_root_window_vertically, …)
>>>> but since we haven’t loaded window.el yet, there’s no function definition and we raise a signal, quitting out of loadup and trying to display a message.
>>> 
>>> I'm not sure I follow: message calls message3_nolog, which should have
>>> done this:
>>> 
>>> void
>>> message3_nolog (Lisp_Object m)
>>> {
>>>   struct frame *sf = SELECTED_FRAME ();
>>> 
>>>   if (FRAME_INITIAL_P (sf))
>>>     message_to_stderr (m);
>>> 
>>> Is FRAME_INITIAL_P not doing it job in this case?
>> 
>> With “-nw”, sf->output_method is output_termcap. It’s cleared the window and drawn a line of dashes near the bottom, and messages are displayed on the bottom line (when it’s not crashing).
>> 
>> Without “-nw”, sf->output_method is output_initial and messages are printed to stderr line by line until the X frame opens.
>> 
>>> And just so I'm on the right page here: the "Loading foo..." messages
>>> that loadup.el displays are shown where in this case? written to
>>> stderr or displayed in the echo area?
>> 
>> In the echo area.
>> 
>>> 
>>>> As to why normal temacs doesn’t show the problem: The load path displayed for a normal temacs contains one directory, but for a CANNOT_DUMP emacs it contains several; in my tests, resize_mini_window computed the height needed as one line for the former and six lines for the latter, so only in the latter case did grow_mini_window need to get called.
>>> 
>>> I think temacs should write these messages to stderr, so the whole
>>> resize_mini_window rigmarole shouldn't get called at all.  What am I
>>> missing?
>> 
>> In init_display we call init_tty and then update the frame’s output_method. Under X11, the X frame creation happens much later.
> 
> OK, I see.  So now it's crystal clear that bidi-display-reordering
> should be bound to nil until loadup finishes, otherwise we are
> playing with fire.
> 
> Is there a way to know that the build CANNOT_DUMP from Lisp?
> 
>>> Error loop that displays what messages?
>> 
>> *Tries* to display… From the stack trace, it looks like it’s throwing an error that window—-resize-root-window-vertically isn’t defined, then back at the top level we notice we’re displaying a message, so we call resize_echo_area_exactly, which decides to resize, which tries to call window—resize-root-window-vertically, etc.
> 
> Right, all is clear now.
> 
> Thanks.





  reply	other threads:[~2016-03-11 20:50 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-10  5:41 bug#22975: 25.0.92; CANNOT_DUMP build can't start in tty mode Ken Raeburn
2016-03-10  7:10 ` Eli Zaretskii
2016-03-10  7:39   ` Eli Zaretskii
2016-03-11 11:17     ` Ken Raeburn
2016-03-11 14:31       ` Eli Zaretskii
2016-03-11 19:18         ` Ken Raeburn
2016-03-11 19:47           ` Eli Zaretskii
2016-03-11 20:50             ` Kenneth Raeburn [this message]
2016-03-11 20:51             ` Andreas Schwab
2016-03-11 21:06               ` Eli Zaretskii
2016-03-12 10:01                 ` Eli Zaretskii
2016-03-13  1:21                   ` Ken Raeburn
2016-03-13 12:08                     ` martin rudalics
2016-03-13 16:46                       ` Eli Zaretskii
2016-03-13 20:09                         ` martin rudalics
2016-03-13 20:31                           ` Eli Zaretskii
2016-03-14  7:42                             ` martin rudalics
2016-03-13 16:45                     ` Eli Zaretskii
2016-03-14  7:17                       ` Ken Raeburn
2016-03-14 17:41                         ` Eli Zaretskii
2016-03-15  3:33                           ` Ken Raeburn
2016-03-15 17:48                             ` Eli Zaretskii
2016-03-15 18:29             ` Stefan Monnier
2016-03-15 18:44               ` Eli Zaretskii
2016-03-15 19:31                 ` Stefan Monnier
2016-03-15 19:48                   ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49B8443F-2416-44A5-BE6B-A25D690E8CF5@raeburn.org \
    --to=raeburn@raeburn.org \
    --cc=22975@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).