summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--autoload.c2
-rw-r--r--stdlib/defset.tl8
-rw-r--r--stdlib/place.tl8
3 files changed, 9 insertions, 9 deletions
diff --git a/autoload.c b/autoload.c
index ebc0fb28..b666e386 100644
--- a/autoload.c
+++ b/autoload.c
@@ -102,6 +102,7 @@ static val place_set_entries(val fun)
lit("with-delete-expander"),
lit("set"), lit("pset"), lit("zap"), lit("flip"), lit("inc"), lit("dec"),
lit("pinc"), lit("pdec"),
+ lit("set-mask"), lit("clear-mask"),
lit("push"), lit("pop"), lit("swap"), lit("shift"), lit("rotate"),
lit("test-set"), lit("test-clear"), lit("compare-swap"),
lit("test-inc"), lit("test-dec"),
@@ -750,7 +751,6 @@ static val defset_set_entries(val fun)
val name[] = {
lit("defset"), lit("sub-list"), lit("sub-vec"), lit("sub-str"),
lit("left"), lit("right"), lit("key"),
- lit("set-mask"), lit("clear-mask"),
nil
};
autoload_set(al_fun, name, fun);
diff --git a/stdlib/defset.tl b/stdlib/defset.tl
index 634f9371..489bbd57 100644
--- a/stdlib/defset.tl
+++ b/stdlib/defset.tl
@@ -130,11 +130,3 @@
(defset key (node) nkey
^(progn (set-key ,node ,nkey) ,nkey))
-
-(defmacro set-mask (:env env place . integers)
- (with-update-expander (getter setter) place env
- ^(,setter (logior (,getter) ,*integers))))
-
-(defmacro clear-mask (:env env place . integers)
- (with-update-expander (getter setter) place env
- ^(,setter (logand (,getter) (lognot (logior ,*integers))))))
diff --git a/stdlib/place.tl b/stdlib/place.tl
index ae8b5b5d..993dd75c 100644
--- a/stdlib/place.tl
+++ b/stdlib/place.tl
@@ -275,6 +275,14 @@
(3 ^(let ((,oldval (,getter))) (,setter (pppred ,oldval)) ,oldval))
(t ^(let ((,oldval (,getter))) (,setter (- ,oldval, delta)) ,oldval))))))
+(defmacro set-mask (:env env place . integers)
+ (with-update-expander (getter setter) place env
+ ^(,setter (logior (,getter) ,*integers))))
+
+(defmacro clear-mask (:env env place . integers)
+ (with-update-expander (getter setter) place env
+ ^(,setter (logand (,getter) (lognot (logior ,*integers))))))
+
(defmacro swap (place-0 place-1 :env env)
(with-gensyms (tmp)
(with-update-expander (getter-0 setter-0) place-0 env