diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-10-12 20:46:47 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-10-12 20:46:47 -0700 |
commit | 03699dd7d47cbf95552bed02e5c37f078528a3b2 (patch) | |
tree | 6524f87881db8d2e0d797177cc6c5ff35322a341 /share | |
parent | 7736be0fad0ce7805e7fe90eb12c9689b03d34a2 (diff) | |
download | txr-03699dd7d47cbf95552bed02e5c37f078528a3b2.tar.gz txr-03699dd7d47cbf95552bed02e5c37f078528a3b2.tar.bz2 txr-03699dd7d47cbf95552bed02e5c37f078528a3b2.zip |
New accessor: hash-userdata.
The get-hash-userdata function is now deprecated in favor of
hash-userdata, which is an accessor.
* hash.c (hash_init): Register hash-userdata as a synonym
for the same function as get-hash-userdata.
* share/txr/stdlib/place.tl (hash-userdata): New defplace.
* txr.1: Document new accessor, marking get-hash-userdata as a
deprecated synonym. Replace references to get-hash-userdata
with references to hash-userdata.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/place.tl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index 101deb1e..eb827fd4 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -561,6 +561,18 @@ ^(remhash ,',hash ,',key)))) ,body))) +(defplace (hash-userdata hash) body + (getter setter + (with-gensyms (hash-sym) + ^(slet ((,hash-sym ,hash)) + (macrolet ((,getter () ^(hash-userdata ,',hash-sym)) + (,setter (val) ^(set-hash-userdata ,',hash-sym ,val))) + ,body)))) + (ssetter + ^(macrolet ((,ssetter (val) + ^(set-hash-userdata ,',hash ,val))) + ,body))) + (defplace (dwim obj-place index : (default nil have-default-p) :env env) body (getter setter (with-gensyms (ogetter-sym osetter-sym obj-sym |