Next: srfi.227 - 省略可能引数, Previous: srfi.222 - 複合オブジェクト, Up: ライブラリモジュール - SRFI [Contents][Index]
srfi.226 - 制御機構このSRFIは、Schemeの根本的な概念である継続や動的環境のセマンティクスを、
マルチスレッドプログラムや限定継続をサポートできるように拡大するものです。
call/ccやdynamic-windといったいくつかのR7RSプリミティブは、
拡大されたセマンティクスに一致するように拡張されます。
スレッドAPIはSRFI-18およびGaucheのスレッドAPIとほぼ互換です (gauche.threads - スレッド参照)。
拡大された機能はランタイムと固く結びついているので、 このSRFIのAPIは主にGaucheの組み込みとして実装されています。 この節では、SRFI-226のAPIの一覧とドキュメントへのポインタを示します。
0.9.13の時点では、GaucheはSRFI-226の一部のみを実装しています。 将来のリリースで全てをカバーする予定です。
SRFI-226はR7RSの上位互換になっています。
ただ、GaucheはGaucheでR7RSの制御機構をマルチスレッド向けに拡張していて、
SRFI-226と非互換であった部分があります。
徐々にSRFI-226互換に移行してゆきますが、後方互換なインタフェースも提供します。
srfi.226をuseした場合はSRFI-226の振る舞いになります。
以下が、SRFI-226のAPIのリストとGaucheのサポート状況です。
call-with-non-comosable-continuationcall-with-composable-continuationNot implemented yet.
call-with-current-continuationcall/ccSee 継続.
call-in-continuationcall-inNot implemented yet.
call-with-continuation-barrierNot implemented yet.
continuation-prompt-available?Not implemented yet.
dynamic-windSee 継続.
unwind-protectSee 上位レベルの例外処理機構.
shift-atreset-atNot implemented yet.
shiftresetSee gauche.partcont - 部分継続. However, current implementation
of shift/reset hasn’t integrated to SRFI-226 model
yet.
continuation?non-composable-continuation?Not implemented yet.
with-continuation-markwith-continuation-markscall-with-immediate-continuation-markcontinuation-markscurrent-continuation-markscontinuation-mark-set?continuation-mark-set->listcontinuation-mark-set-firstSee 継続マーク.
continuation-mark-set->list*continuation-mark-set->iteratorNot implemented yet.
make-continuation-mark-keycontinuation-mark-key?See 継続マーク.
make-parametermake-thread-parameterSee パラメータ. Gauche’s built-in make-parameter works
in a compatibility mode for now. If you use srfi.226,
make-parameter works as specified in SRFI-226.
parameter?See パラメータ.
parameterizeSee パラメータ. Gauche’s built-in parameterize works
in a compatibility mode for now. If you use srfi.226,
make-parameter works as specified in SRFI-226.
current-parameterizationparameterization?call-with-parameterizationSee パラメータ.
temporarilySee 動的状態.
define-fluiddefine-thread-fluiddefine-fluidifiedfluid-letfluid-let*fluid-parameterNot implemented yet.
call-with-initial-continuationNot implemented yet.
delaypromise?forcemake-promiseSee Delayとforceとlazy. Gauche’s built-ins are SRFI-226 compatible.
with-exception-handlercurrent-exception-handlerexception-handler-stackSee 下位レベルの例外処理機構. Gauche’s built-ins are SRFI-226 compatible.
raiseraise-continuableSee 例外の通知.
guardSee 上位レベルの例外処理機構.
¶meterizationmake-parameterization-conditionparameterization-condition?condition-parameterizationNot implemented yet.
&continuation-marksmake-continuation-marks-conditioncontinuation-marks-condition?condition-continuation-marksNot implemented yet.
&exception-handler-stackmake-exception-handler-stack-conditionexception-handler-stack-condition?condition-exception-handler-stackNot implemented yet.
time?current-timeseconds+ timeSee 時間.
&threadmake-thread-conditionthread-condition?&uncaught-exceptionmake-uncaught-exceptionuncaught-exception-condition?uncaught-exception-condition-reason&thread-already-terminatedmake-thread-already-terminated-conditionthread-already-terminated-condition?&thread-timeoutmake-thread-timeout-conditionthread-timeout-condition?&thread-abandoned-mutexmake-thread-abandoned-mutex-conditionthread-abandoned-mutex-condition?&concurrent-modificationmake-concurrent-modification-violationconcurrent-modification-violation?See スレッド例外.
make-threadthread?current-threadthread-start!thread-yield!thread-sleep!thread-terminate!thread-schedule-terminate!thread-join!make-mutexmutex?mutex-statemutex-lock!mutex-unlock!See Mutex.
make-condition-variablecondition-variable?condition-variable-signal!condition-variable-broadcast!See 条件変数.
make-thread-localthread-local?tlreftlset!See スレッドローカル領域.
current-interrupt-leveldisable-interrupts!enable-interrupts!with-interrupts-disabledwith-interrupts-enabledthread-interrupt!Not implemented yet.
Next: srfi.227 - 省略可能引数, Previous: srfi.222 - 複合オブジェクト, Up: ライブラリモジュール - SRFI [Contents][Index]