[parrot/parrot] 741b8c: [pmc] Clarify dead coroutines
GitHub
noreply at github.com
Fri Oct 17 10:35:22 UTC 2014
Branch: refs/heads/rurban/coros-gh564
Home: https://github.com/parrot/parrot
Commit: 741b8cb212a2a57c3c4c52c3e3f292ec3cd1b863
https://github.com/parrot/parrot/commit/741b8cb212a2a57c3c4c52c3e3f292ec3cd1b863
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M docs/book/pir/ch06_subroutines.pod
M docs/pmc/subs.pod
M src/pmc/coroutine.pmc
M t/pmc/coroutine.t
Log Message:
-----------
[pmc] Clarify dead coroutines
Coros are not resumable when all yield states are exhausted.
This is consistent with the LUA design, which we follow, and all other
coro implementations I know of. Just the parrot book argues that after a
return the state should be automatically reset. Technically no problem, even
without the quirks described in https://github.com/parrot/parrot/issues/564#issuecomment-3503597
or via a seperate reset() method, but semantically an auto-reset is problematic.
Added testcases for all the relevant tickets: #564, #585 and there is on
bug remaining: TT #1003 leading to Null PMC access in get_string on a dead coro
Commit: 4725edbbccbf6dac2a075df87ca926adb6e1f0e2
https://github.com/parrot/parrot/commit/4725edbbccbf6dac2a075df87ca926adb6e1f0e2
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M config/gen/makefiles/root.in
M src/ops/core.ops
M src/ops/core_ops.c
M src/pmc/coroutine.pmc
M src/sub.c
Log Message:
-----------
[pmc] Coroutine is now auto-resetting
Commit: 07f2a907c7ace9c70a06ead0a70d6a4a70f0f325
https://github.com/parrot/parrot/commit/07f2a907c7ace9c70a06ead0a70d6a4a70f0f325
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M docs/pmc/subs.pod
M src/pmc/coroutine.pmc
M t/pmc/coroutine.t
Log Message:
-----------
[pmc] Add Coroutine.reset() method
Mentioned in GH #564.
It is however more efficient to clone an initial coro and
copy this saved clone back, as the context does not need to
be recreated afresh.
Commit: 3268b6ceaebca6cad63d8eb0238de31c6f154c72
https://github.com/parrot/parrot/commit/3268b6ceaebca6cad63d8eb0238de31c6f154c72
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M src/pmc/coroutine.pmc
M src/sub.c
Log Message:
-----------
coro: implemented autoreset method and attribute
fix crashes in sub_continuation_rewind_environment()
Still using traceflag 8. Maybe I should adopt it or resuse the SUB_CALL_FLAG?
Commit: f04d50943a19cbde89e9ad5974bcad66251ab4ac
https://github.com/parrot/parrot/commit/f04d50943a19cbde89e9ad5974bcad66251ab4ac
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M ChangeLog
M include/parrot/interpreter.h
M src/pmc/coroutine.pmc
M src/sub.c
M t/pmc/coroutine.t
Log Message:
-----------
core: autoreset tests, TRACE_CORO, PARROT_TRACE_CORO_STATE_FLAG
add TRACE_CORO define, -t8 only usable when not --optimizing
fix -t2 returning from coroutine msg.
-t2 msg either Coroutine autoreset or Coroutine no autoreset
add autoreset test, not yet working (one-off same as TT #1003)
Commit: fa4e678b3c32b63eeac07243fea06e1e1cbc400a
https://github.com/parrot/parrot/commit/fa4e678b3c32b63eeac07243fea06e1e1cbc400a
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-10-17 (Fri, 17 Oct 2014)
Changed paths:
M ChangeLog
M frontend/parrot/main.c
M frontend/parrot2/main.c
M frontend/parrot2/prt0.pir
M frontend/parrot2/prt0.winxed
Log Message:
-----------
Document -t8 flag, harmonize parrot usage messages
along parrot and parrot_old
Omit GH issue prefix from ChangeLog if default.
Compare: https://github.com/parrot/parrot/compare/741b8cb212a2^...fa4e678b3c32
More information about the parrot-commits
mailing list