From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Allocating Executable Memory Date: Sat, 5 Jun 2010 14:28:44 -0400 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: dough.gmane.org 1275762543 22236 80.91.229.12 (5 Jun 2010 18:29:03 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 5 Jun 2010 18:29:03 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Jun 05 20:29:02 2010 connect(): No such file or directory Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OKy77-0002Ja-66 for guile-devel@m.gmane.org; Sat, 05 Jun 2010 20:28:57 +0200 Original-Received: from localhost ([127.0.0.1]:53137 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKy76-0001dK-F9 for guile-devel@m.gmane.org; Sat, 05 Jun 2010 14:28:56 -0400 Original-Received: from [140.186.70.92] (port=49393 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKy72-0001ad-Ho for guile-devel@gnu.org; Sat, 05 Jun 2010 14:28:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKy71-0008Jv-El for guile-devel@gnu.org; Sat, 05 Jun 2010 14:28:52 -0400 Original-Received: from mail-iw0-f169.google.com ([209.85.214.169]:45424) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKy71-0008If-Bg for guile-devel@gnu.org; Sat, 05 Jun 2010 14:28:51 -0400 Original-Received: by iwn2 with SMTP id 2so104218iwn.0 for ; Sat, 05 Jun 2010 11:28:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=w8b9sGpMNsESZlc/1wkpEibx5ugX/Vn+YqV9HUCAlyM=; b=g9b3VBB4gQ5VwXkLwQZxHRSgNd6yIQ6MncVWPowYu+yoxX1+B0DgYsY+9zrCBCmDvA D1K2bytDlkPlO1L8SX5sFba60zCEb2eib50jFUDWKJNhQPxdO9KZx0alXYBu4bUNOVmt PNMTLO+XQyxvh2lkbxYzxRaQR8qLSSMAOVbe8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=fcJHK9SFXbu8k7sezy1hLgk8iOeSQw3+mPxGG5KjOOE7QmCFqdL0x1WbQf3Nwx9OrV pTYyrlfJppKdgK8ONSD2VMan5CTMVfMSjiRI/2G11+4KMgpdaUeAgmcDFkri88NoSBn7 EIdZyCO9pLRnDlFYm22EH0OCnu9GfZQiPcWCo= Original-Received: by 10.231.125.158 with SMTP id y30mr15300118ibr.99.1275762524808; Sat, 05 Jun 2010 11:28:44 -0700 (PDT) Original-Received: by 10.231.32.13 with HTTP; Sat, 5 Jun 2010 11:28:44 -0700 (PDT) X-Google-Sender-Auth: AwZlqPoX2t3GvPcj6ph_exYi_P4 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:10436 Archived-At: This issue is somewhat related to the question of how to build a JIT, but will also apply later when we try to attach GCC or some other system to Guile. The question is, how does one modify the Guile memory allocation system so that you can request that some memory be executable? You could make all memory executable, but that's probably not great for security. You could allocate executable memory as-needed, as part of a program or objcode structure, and free it when the structure is freed, but it only comes in page-size chunks, so this would probably lead to a huge over-use of memory. It seems like the right solution is to give the GC system the ability to manage executable memory at the user's request, but that will require some modifications. So, people who are familiar with the GC system, where should those modifications be made, and how would you do it? Noah