From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: keep spinning even without new line Date: Sun, 30 Dec 2018 01:21:07 +0100 Message-ID: <87ef9zj24s.fsf@elephly.net> References: <87muootkms.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:40828) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gdQYz-0004OZ-JC for guix-devel@gnu.org; Sat, 29 Dec 2018 21:10:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gdQW1-00014D-Q3 for guix-devel@gnu.org; Sat, 29 Dec 2018 21:07:49 -0500 Received: from sender-of-o53.zoho.com ([135.84.80.218]:21749) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gdQW1-00010t-GN for guix-devel@gnu.org; Sat, 29 Dec 2018 21:07:45 -0500 In-reply-to: <87muootkms.fsf@elephly.net> 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: guix-devel@gnu.org Ricardo Wurmus writes: > Hi Guix, > > when using =E2=80=9Cguix package -i=E2=80=9D the build log lines are repl= aced with a > spinner character. In some cases, the build log does not produce new > lines for a long time, so that the spinner appears to be stuck. > > What do you think of advancing the spinner even when the build log is > not verbose enough to trigger the display of the next character? How > can this be accomplished? One way to accomplish this is to generate periodic =E2=80=9C(build-log heartbeat)=E2=80=9D events, so that =E2=80=9Cprint-build-event=E2=80=9D in = (guix status) only needs to advance the spinner when the last event was a build-log event. Currently, events are produced only by =E2=80=9Cbuild-event-output-port=E2= =80=9D, which generates them when processing build trace strings sent by the daemon. I don=E2=80=99t really want to change the daemon to intersperse the actual = build output with heartbeat traces, so maybe a timer should generate these events in =E2=80=9Cbuild-event-output-port=E2=80=9D or even earlier in =E2= =80=9Cprocess-stderr=E2=80=9D. =E2=80=9Cprocess-stderr=E2=80=9D is probably too low-level, and there=E2=80= =99s a chance that injecting output there would corrupt the output sent by the daemon. Any better ideas? -- Ricardo