From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.bugs Subject: bug#15602: bug#19235: make-fresh-user-module procedure leaks memory Date: Sat, 25 Jun 2016 20:50:56 -0400 Message-ID: <878txsrcwf.fsf@netris.org> References: <20141130232834.32cbf5b2@bother.homenet> <87iohn51dc.fsf@yeeloong.lan> <20141207141903.1347c764@bother.homenet> <20141226182608.24c7dabf@bother.homenet> <87por9ru0u.fsf@pobox.com> <878txwrnub.fsf@netris.org> <8760szau7r.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1466902349 1872 80.91.229.3 (26 Jun 2016 00:52:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 Jun 2016 00:52:29 +0000 (UTC) Cc: 15602@debbugs.gnu.org, Chris Vine , 19235@debbugs.gnu.org To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Sun Jun 26 02:52:18 2016 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bGyJ8-0004Qi-7h for guile-bugs@m.gmane.org; Sun, 26 Jun 2016 02:52:18 +0200 Original-Received: from localhost ([::1]:52002 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGyJ7-0001HX-DP for guile-bugs@m.gmane.org; Sat, 25 Jun 2016 20:52:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41649) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGyIw-0001HK-Ox for bug-guile@gnu.org; Sat, 25 Jun 2016 20:52:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGyIs-0006gh-Ox for bug-guile@gnu.org; Sat, 25 Jun 2016 20:52:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:43507) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGyIs-0006gd-LP for bug-guile@gnu.org; Sat, 25 Jun 2016 20:52:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bGyIs-0001qG-Cw for bug-guile@gnu.org; Sat, 25 Jun 2016 20:52:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Sun, 26 Jun 2016 00:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15602 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 15602-submit@debbugs.gnu.org id=B15602.14669022777023 (code B ref 15602); Sun, 26 Jun 2016 00:52:02 +0000 Original-Received: (at 15602) by debbugs.gnu.org; 26 Jun 2016 00:51:17 +0000 Original-Received: from localhost ([127.0.0.1]:55842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bGyI9-0001pC-6N for submit@debbugs.gnu.org; Sat, 25 Jun 2016 20:51:17 -0400 Original-Received: from world.peace.net ([50.252.239.5]:58617) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bGyI7-0001ow-Cc; Sat, 25 Jun 2016 20:51:15 -0400 Original-Received: from pool-71-174-35-80.bstnma.east.verizon.net ([71.174.35.80] helo=jojen) by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bGyI1-0001EP-6c; Sat, 25 Jun 2016 20:51:09 -0400 In-Reply-To: <8760szau7r.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Fri, 24 Jun 2016 10:04:24 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.95 (gnu/linux) 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-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.org gmane.lisp.guile.bugs:8252 Archived-At: ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mark H Weaver skribis: > >> One potential issue that has been troubling me is that in Guile's model, >> there's no guarantee that a module will _ever_ finish loading. > > I think the fact that we evaluate all the top-level forms is > problematic. The R6RS phases were a great idea. :-) > >> The main program itself could simply run from the auto-load. That's >> why I think it's important to propagate permission to threads created >> during the auto-load, but maybe there will still be problems. > > I=E2=80=99m not sure what you mean by =E2=80=9Cpropagate permission=E2=80= =9D? I mean: propagate permission to access the not-yet-committed module. For example, suppose a program loads a module that runs the main event loop as a top-level form in its body. This module will never be committed to the global module table, because it never finishes loading. Now suppose that it spawns some new threads. Those threads should have access to the module. Similarly, if a module uses 'par-for-each' to initialize some tables, the spawned threads should have access to the module being loaded. Mark