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 \
|
format.scm getopt-long.scm hcons.scm i18n.scm \
|
||||||
lineio.scm ls.scm mapping.scm \
|
lineio.scm ls.scm mapping.scm \
|
||||||
networking.scm null.scm optargs.scm poe.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 \
|
rdelim.scm receive.scm regex.scm runq.scm rw.scm \
|
||||||
safe-r5rs.scm safe.scm session.scm slib.scm stack-catch.scm \
|
safe-r5rs.scm safe.scm session.scm slib.scm stack-catch.scm \
|
||||||
streams.scm string-fun.scm syncase.scm threads.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
|
# snarf-check-and-output-texi) fails. need to figure out what the
|
||||||
# problem is.
|
# 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
|
# occam-channel and gds-client use goops, which is not yet vm-compatible
|
||||||
# (it does some compilation-like optimizations for the interpreter), so
|
# (it does some compilation-like optimizations for the interpreter), so
|
||||||
# punt on them for the time being.
|
# punt on them for the time being.
|
||||||
#
|
#
|
||||||
# psyntax.scm needs help. fortunately it's only needed when recompiling
|
# psyntax.scm needs help. fortunately it's only needed when recompiling
|
||||||
# psyntax-pp.scm.
|
# 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
|
include $(top_srcdir)/guilec.mk
|
||||||
|
|
||||||
|
|
|
@ -604,6 +604,7 @@ VM_DEFINE_INSTRUCTION (goto_args, "goto/args", 1, -1, 1)
|
||||||
vm_goto_args:
|
vm_goto_args:
|
||||||
x = sp[-nargs];
|
x = sp[-nargs];
|
||||||
|
|
||||||
|
SYNC_REGISTER ();
|
||||||
SCM_TICK; /* allow interrupt here */
|
SCM_TICK; /* allow interrupt here */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue