From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#23912: 25.0.95; Abort in gc when working with streams Date: Mon, 12 Sep 2016 22:18:52 +0200 Message-ID: <87k2eg27o3.fsf@web.de> References: <87wpkxtmwg.fsf@web.de> <83poqpjro0.fsf@gnu.org> <87oa6973hi.fsf@web.de> <7dcd2856-b9a4-9516-607a-1109d2be2dbc@yandex.ru> <874m81qj9t.fsf@web.de> <83a8hsk662.fsf@gnu.org> <87eg6y8qw4.fsf@web.de> <83oa618far.fsf@gnu.org> <87d1mhb5bc.fsf@web.de> <83h9bs8dw8.fsf@gnu.org> <87furc6pg1.fsf@web.de> <87y44sqqhn.fsf@web.de> <83k2gcuxjc.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1473711621 10972 195.159.176.226 (12 Sep 2016 20:20:21 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 12 Sep 2016 20:20:21 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) Cc: 23912@debbugs.gnu.org To: Richard Stallman Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Sep 12 22:20:17 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjXiC-0002Il-RL for geb-bug-gnu-emacs@m.gmane.org; Mon, 12 Sep 2016 22:20:17 +0200 Original-Received: from localhost ([::1]:45033 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjXiA-0006Rj-Us for geb-bug-gnu-emacs@m.gmane.org; Mon, 12 Sep 2016 16:20:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42347) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjXi3-0006OF-9f for bug-gnu-emacs@gnu.org; Mon, 12 Sep 2016 16:20:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bjXhy-0001sl-73 for bug-gnu-emacs@gnu.org; Mon, 12 Sep 2016 16:20:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:60260) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bjXhy-0001sb-3L for bug-gnu-emacs@gnu.org; Mon, 12 Sep 2016 16:20:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bjXhx-0004wu-Q2 for bug-gnu-emacs@gnu.org; Mon, 12 Sep 2016 16:20:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 12 Sep 2016 20:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23912 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 23912-submit@debbugs.gnu.org id=B23912.147371154518950 (code B ref 23912); Mon, 12 Sep 2016 20:20:01 +0000 Original-Received: (at 23912) by debbugs.gnu.org; 12 Sep 2016 20:19:05 +0000 Original-Received: from localhost ([127.0.0.1]:57972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjXh3-0004va-Fz for submit@debbugs.gnu.org; Mon, 12 Sep 2016 16:19:05 -0400 Original-Received: from mout.web.de ([217.72.192.78]:63193) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjXh2-0004v4-7Q for 23912@debbugs.gnu.org; Mon, 12 Sep 2016 16:19:04 -0400 Original-Received: from drachen.dragon ([90.186.0.153]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0MD8Fc-1bp53c1iN2-00GbMX; Mon, 12 Sep 2016 22:18:56 +0200 In-Reply-To: <83k2gcuxjc.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 23 Jul 2016 19:30:47 +0300") X-Provags-ID: V03:K0:qKqOBQVIReGY3F6SjY3iktcWgQjcfiwvhICqV7Vah6VYI2BcplK +h2yqlWW4rXh7yvqBvBRQWEee1rykG3zGFGfD9zkzsGmr6ApVFblsY95OLJcpXjjki/7eZ4 qP4Zjck/slEeResV0UNGI4yUkL5rE/20N9+bmypsBvbHa5g/PXk8buesruBOXoubrsC2rFf PyolOtJZVnNEOGT9+YLCQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:4WbIzD//dkQ=:c3t80AAJsfWOfIKmaFmC5C wsgu/aSnZlMW4X7gw79CoivN/55YylSpUUmw3pwyuNQzVrU4xPnAZbmWqIMywNqhP8zJXUybX kS6/vbWw/rTGZ8yJgyPJ3eWoTMVv5sUGXAzQqbMoi0zFqBbhPkCNSP0QjtCBFLDFBCYFlialQ 7SZtaVYvgF7B5JJbgX7vcYoMvJKc9Ax4cXr4X89mWmaFydJvJDBzryabARurBdrDATKLj0LjZ 4cGZ6n+hnUlxEK/bGuKnFi6P/G8KIwuqQZhADKOBpyxF24ceKASVlUDkfjB8yhNhyjetRoqZd aR6g21Afs19SM+xN56bqBOey4WzuONXo0tqOcXHS7+0LziQViNxo9QLiNNYpcTl629Xg7kaz2 KeFi59euUjMaa2l1rNNNndKLpDCBK+NP/evPu+60KvDUZy33O3vWGTaRM6lQp9I193kCXnwFY q+NY1v6WYcm0THHqWop8XlXuZtsKk6zcWr39QBnndpXz3n3TM5b9l2c+uqrbB71wVz090swEA JU/1IHXhvegrw8uw0RlFHW25RzMWnNSlpWYdpsvhvimcVQpnq5CJ+xLWE9ykrAlz5zue3jlG1 gajxsx/NgEPg3uexG7iUMSEOWR9TrS/WCJVoSDbeldC1QhcimIRl78S5xEqIuduR659YwYWiU +w1RFlZ3+CmX4VW4Mqk7n9s61gv/JnNFn0yghqk7DM3wEWixTDZ1+W12q6zMuVn7GiFxjYSpn 0+1ynFvH4clEFPj+RLFvzZe0w2eCwjPOihJ/TZe39xUF3MYEvRvccmJ5P9I2wpTQhKzRQofz X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:123236 Archived-At: Hello Richard, > I pinged RMS. It's important for me to hear his opinion on this. Can you please tell us if we should wait for your answer, or if you just don't remember? No need to read the complete thread; this was our question: Richard, do you perhaps remember, or can try to second-guess, why do we set the abort_on_gc flag inside prin1-to-string? I mean this fragment of print.c: /* Save and restore this: we are altering a buffer but we don't want to deactivate the mark just for that. No need for specbind, since errors deactivate the mark. */ Lisp_Object save_deactivate_mark = Vdeactivate_mark; bool prev_abort_on_gc = abort_on_gc; abort_on_gc = true; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Lisp_Object printcharfun = Vprin1_to_string_buffer; PRINTPREPARE; print (object, printcharfun, NILP (noescape)); /* Make Vprin1_to_string_buffer be the default buffer after PRINTFINISH */ PRINTFINISH; struct buffer *previous = current_buffer; set_buffer_internal (XBUFFER (Vprin1_to_string_buffer)); object = Fbuffer_string (); if (SBYTES (object) == SCHARS (object)) STRING_SET_UNIBYTE (object); /* Note that this won't make prepare_to_modify_buffer call ask-user-about-supersession-threat because this buffer does not visit a file. */ Ferase_buffer (); set_buffer_internal (previous); Vdeactivate_mark = save_deactivate_mark; abort_on_gc = prev_abort_on_gc; Why do we want to prevent GC while working on Vprin1_to_string_buffer? It's just a buffer, and AFAICT we just collect the printed stuff there. And yet this code that tries to avoid GC was there since long ago, first as GCPRO, and now as this flag. What bad things could happen if we just remove it? FWIW, I didn't notice bad things after I removed it locally (several weeks ago). Many thanks! Michael.