Репозитории ALT
S: | 5.4.3-alt1 |
5.1: | 4.14-alt1.M51.1 |
4.1: | 3.9-alt8.M41.4 |
4.0: | 3.1-alt6 |
3.0: | 2.0-alt0.10.1 |
Группа :: Система/Настройка/Прочее
Пакет: alterator
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: alterator-5.4.1-fix-call-cc-via-shift-for-guile20.patch
Скачать
Скачать
diff --git a/alterator/interfaces/guile/algo.scm b/alterator/interfaces/guile/algo.scm
index a773183..aadc8df 100644
--- a/alterator/interfaces/guile/algo.scm
+++ b/alterator/interfaces/guile/algo.scm
@@ -155,10 +155,12 @@
;; Implement call/cc in terms of shift
(define (call-with-current-continuation p)
- (let ((st (current-dynamic-state)))
+ (let ((st0 (make-dynamic-state (current-dynamic-state))))
(shift k
- (with-dynamic-state st
- (lambda ()
- (p k))))))
+ (let ((st1 (make-dynamic-state (current-dynamic-state))))
+ (set-current-dynamic-state st0)
+ (p (lambda (x)
+ (set-current-dynamic-state st1)
+ (k x)))))))
(define call/cc call-with-current-continuation)