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