mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
fix asyncs running in the vm; re-enable popen.scm compilation
* libguile/vm-i-system.c (goto/args): Sync the registers before doing the SCM_TICK. We probably need a different SCM_TICK that saves the regs only if necessary. This fixes GC problems with a compiled popen.scm. * ice-9/Makefile.am: Re-enable popen.scm compilation.
This commit is contained in:
parent
2588eccdf4
commit
28a2f57bde
2 changed files with 3 additions and 5 deletions
|
@ -36,7 +36,7 @@ SOURCES = psyntax-pp.scm boot-9.scm \
|
|||
format.scm getopt-long.scm hcons.scm i18n.scm \
|
||||
lineio.scm ls.scm mapping.scm \
|
||||
networking.scm null.scm optargs.scm poe.scm \
|
||||
posix.scm q.scm r4rs.scm r5rs.scm \
|
||||
popen.scm posix.scm q.scm r4rs.scm r5rs.scm \
|
||||
rdelim.scm receive.scm regex.scm runq.scm rw.scm \
|
||||
safe-r5rs.scm safe.scm session.scm slib.scm stack-catch.scm \
|
||||
streams.scm string-fun.scm syncase.scm threads.scm \
|
||||
|
@ -49,16 +49,13 @@ SOURCES = psyntax-pp.scm boot-9.scm \
|
|||
# snarf-check-and-output-texi) fails. need to figure out what the
|
||||
# problem is.
|
||||
#
|
||||
# popen.scm compiles, but then breaks the test suite via random lost gc
|
||||
# references. need to figure out what's going on there.
|
||||
#
|
||||
# occam-channel and gds-client use goops, which is not yet vm-compatible
|
||||
# (it does some compilation-like optimizations for the interpreter), so
|
||||
# punt on them for the time being.
|
||||
#
|
||||
# psyntax.scm needs help. fortunately it's only needed when recompiling
|
||||
# psyntax-pp.scm.
|
||||
NOCOMP_SOURCES = match.scm occam-channel.scm gds-client.scm psyntax.scm popen.scm
|
||||
NOCOMP_SOURCES = match.scm occam-channel.scm gds-client.scm psyntax.scm
|
||||
|
||||
include $(top_srcdir)/guilec.mk
|
||||
|
||||
|
|
|
@ -604,6 +604,7 @@ VM_DEFINE_INSTRUCTION (goto_args, "goto/args", 1, -1, 1)
|
|||
vm_goto_args:
|
||||
x = sp[-nargs];
|
||||
|
||||
SYNC_REGISTER ();
|
||||
SCM_TICK; /* allow interrupt here */
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue