For Development HEAD DRAFTSearch (procedure/syntax/module):

11.58 srfi.226 - 制御機構

Module: srfi.226

このSRFIは、Schemeの根本的な概念である継続や動的環境のセマンティクスを、 マルチスレッドプログラムや限定継続をサポートできるように拡大するものです。 call/ccdynamic-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のサポート状況です。

Continuation prompts
&continuation
make-continuation-violation
continuation-violation?
continuation-violation-prompt-tag

See コンディション

make-continuation-prompt-tag
default-continuation-prompt-tag
continuation-prompt-tag?
call-with-continuation-prompt
abort-current-continuation

See 継続プロンプト.

Continuations
call-with-non-comosable-continuation
call-with-composable-continuation

Not implemented yet.

call-with-current-continuation
call/cc

See 継続.

call-in-continuation
call-in

Not implemented yet.

call-with-continuation-barrier

Not implemented yet.

continuation-prompt-available?

Not implemented yet.

dynamic-wind

See 継続.

unwind-protect

See 上位レベルの例外処理機構.

Shift and reset
shift-at
reset-at

Not implemented yet.

shift
reset

See gauche.partcont - 部分継続. However, current implementation of shift/reset hasn’t integrated to SRFI-226 model yet.

Inspection
continuation?
non-composable-continuation?

Not implemented yet.

Continuation marks
with-continuation-mark
with-continuation-marks
call-with-immediate-continuation-mark
continuation-marks
current-continuation-marks
continuation-mark-set?
continuation-mark-set->list
continuation-mark-set-first

See 継続マーク.

continuation-mark-set->list*
continuation-mark-set->iterator

Not implemented yet.

make-continuation-mark-key
continuation-mark-key?

See 継続マーク.

Parameter objects
make-parameter
make-thread-parameter

See パラメータ. 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 パラメータ.

parameterize

See パラメータ. 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-parameterization
parameterization?
call-with-parameterization

See パラメータ.

temporarily

See 動的状態.

Fluids
define-fluid
define-thread-fluid
define-fluidified
fluid-let
fluid-let*
fluid-parameter

Not implemented yet.

Initial continuations
call-with-initial-continuation

Not implemented yet.

Promises
delay
promise?
force
make-promise

See Delayとforceとlazy. Gauche’s built-ins are SRFI-226 compatible.

Exceptions
with-exception-handler
current-exception-handler
exception-handler-stack

See 下位レベルの例外処理機構. Gauche’s built-ins are SRFI-226 compatible.

raise
raise-continuable

See 例外の通知.

guard

See 上位レベルの例外処理機構.

Conditions
&parameterization
make-parameterization-condition
parameterization-condition?
condition-parameterization

Not implemented yet.

&continuation-marks
make-continuation-marks-condition
continuation-marks-condition?
condition-continuation-marks

Not implemented yet.

&exception-handler-stack
make-exception-handler-stack-condition
exception-handler-stack-condition?
condition-exception-handler-stack

Not implemented yet.

Time objects
time?
current-time
seconds+ time

See 時間.

Threads
&thread
make-thread-condition
thread-condition?
&uncaught-exception
make-uncaught-exception
uncaught-exception-condition?
uncaught-exception-condition-reason
&thread-already-terminated
make-thread-already-terminated-condition
thread-already-terminated-condition?
&thread-timeout
make-thread-timeout-condition
thread-timeout-condition?
&thread-abandoned-mutex
make-thread-abandoned-mutex-condition
thread-abandoned-mutex-condition?
&concurrent-modification
make-concurrent-modification-violation
concurrent-modification-violation?

See スレッド例外.

make-thread
thread?
current-thread
thread-start!
thread-yield!
thread-sleep!
thread-terminate!
thread-schedule-terminate!
thread-join!

See gauche.threads - スレッド.

make-mutex
mutex?
mutex-state
mutex-lock!
mutex-unlock!

See Mutex.

make-condition-variable
condition-variable?
condition-variable-signal!
condition-variable-broadcast!

See 条件変数.

make-thread-local
thread-local?
tlref
tlset!

See スレッドローカル領域.

current-interrupt-level
disable-interrupts!
enable-interrupts!
with-interrupts-disabled
with-interrupts-enabled
thread-interrupt!

Not implemented yet.



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT