~ chicken-core (chicken-5) c4144fa2a6a15cffc947de3676671a44864f2070
commit c4144fa2a6a15cffc947de3676671a44864f2070
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Aug 20 03:28:05 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Aug 20 03:28:05 2011 +0200
renamed mutate-procedure to mutate-procedure!; deprecated mutate-procedure
diff --git a/lolevel.import.scm b/lolevel.import.scm
index be76dd87..daf41c22 100644
--- a/lolevel.import.scm
+++ b/lolevel.import.scm
@@ -43,7 +43,8 @@
make-pointer-vector
make-weak-locative
move-memory!
- mutate-procedure
+ mutate-procedure ; DEPRECATED
+ mutate-procedure!
null-pointer
null-pointer?
number-of-bytes
diff --git a/lolevel.scm b/lolevel.scm
index d005c70d..bfeeac8d 100644
--- a/lolevel.scm
+++ b/lolevel.scm
@@ -616,15 +616,17 @@ EOF
(##sys#check-become-alist alst 'object-become!)
(##sys#become! alst) )
-(define (mutate-procedure old proc)
- (##sys#check-closure old 'mutate-procedure)
- (##sys#check-closure proc 'mutate-procedure)
+(define (mutate-procedure! old proc)
+ (##sys#check-closure old 'mutate-procedure!)
+ (##sys#check-closure proc 'mutate-procedure!)
(let* ([n (##sys#size old)]
[words (##core#inline "C_words" n)]
[new (##core#inline "C_copy_block" old (##sys#make-vector words))] )
(##sys#become! (list (cons old (proc new))))
new ) )
+(define mutate-procedure mutate-procedure!) ; DEPRECATED
+
;;; pointer vectors
diff --git a/manual/Unit lolevel b/manual/Unit lolevel
index 9f13b3af..ad09a720 100644
--- a/manual/Unit lolevel
+++ b/manual/Unit lolevel
@@ -727,18 +727,18 @@ The effect of using {{object-become!}} on evicted data (see {{object-evict}})
is undefined.
-==== mutate-procedure
+==== mutate-procedure!
-<procedure>(mutate-procedure OLD PROC)</procedure>
+<procedure>(mutate-procedure! OLD PROC)</procedure>
Replaces the procedure {{OLD}} with the result of calling the one-argument
procedure {{PROC}}. {{PROC}} will receive a copy of {{OLD}} that will be
-identical in behaviour to the result of {{PROC}}:
+identical in behaviour to the result of {{OLD}}:
<enscript highlight=scheme>
;;; Replace arbitrary procedure with tracing one:
- (mutate-procedure my-proc
+ (mutate-procedure! my-proc
(lambda (new)
(lambda args
(printf "~s called with arguments: ~s~%" new args)
Trap