truly thread-local vms; don't compile popen.scm
authorAndy Wingo <wingo@pobox.com>
Sat, 11 Oct 2008 09:54:12 +0000 (11:54 +0200)
committerAndy Wingo <wingo@pobox.com>
Sat, 11 Oct 2008 09:54:12 +0000 (11:54 +0200)
commit2bbe1533e8cf0f3954229d55b03f265d1a82fc90
tree8d2efa9fec920495e75f614521bcd0a73cf08ea1
parent66db076ae17e1a6b5225fabaaeb6958115cc9b4c
truly thread-local vms; don't compile popen.scm

* ice-9/Makefile.am: Don't compile popen.scm, its behaviour at runtime
  is not consistent -- seems to miss some GC references? I suspect a bug
  in the compiler. In any case without popen.scm being compiled,
  continuations.test, r4rs.tes, and r5rs_pitfall.test do pass.

* libguile/threads.h (scm_i_thread):
* libguile/threads.c (thread_mark, guilify_self_2): Add a field for the
  thread's vm. Previously I had this as a fluid, but it seems that newly
  created threads share their fluid values from the creator thread; as
  expected, I guess. In any case one VM should not be active in two
  threads.

* libguile/vm.c (scm_the_vm): Change to access the thread-local vm,
  instead of accessing a fluid.
  (scm_the_vm_fluid): Removed.

* module/system/vm/vm.scm: Removed *the-vm*.
ice-9/Makefile.am
libguile/threads.c
libguile/threads.h
libguile/vm.c
module/system/vm/vm.scm