diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-01-13 07:55:56 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-01-13 07:55:56 -0800 |
commit | 20c0166b6b8e4b4ec9c17e354c7b33004149d5ae (patch) | |
tree | 306a31540a9d0d79bc6c7f793f8c47c5ae1273bb /txr.1 | |
parent | 387834636fe55bbda0ad7061f7a63077869dfd2a (diff) | |
download | txr-20c0166b6b8e4b4ec9c17e354c7b33004149d5ae.tar.gz txr-20c0166b6b8e4b4ec9c17e354c7b33004149d5ae.tar.bz2 txr-20c0166b6b8e4b4ec9c17e354c7b33004149d5ae.zip |
cptr-int: allow full unsigned range.
The cptr-int function requries an address to be expressed as a
signed integer, which is incovenient. E.g. -2147483648 to
2147483647 in a 32 bit address space. Let's fix it to accept
an extended range.
* lib.c (cptr_int): Convert the argument value to a ucnum if it
is positive according to plusp, otherwise to cnum. Then either
one to the mem_t * pointer. Thus we can accept either signed
or unsigned values.
* txr.1: Document the extended range of cptr-int.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -62058,13 +62058,26 @@ object. The .meta integer -parameter must be an integer which is in range for a pointer value. +argument must be an integer which is in range for a pointer value. Note: this range is wider than the .code fixnum range; a portion of the range of .code bignum integers can denote pointers. +An extended range of values is accepted. The entire addressable space may be +expressed by non-negative values. A range of negative values also expresses a +portion of the address space, in accordance with the platform's concept of a +signed integer. + +For instance, on a system with 32 bit addresses, the values 0 to 4294967295 +express all of the addresses as a pure binary value. Furthermore, the values +-2147483648 to -1 also express the upper part of this range, corresponding, +respectively, to the addresses 2147483648 to 4294967295. On that platform, +values of +.meta integer +outside of the range -2147483648 to 4294967295 are invalid. + The .meta type-symbol argument should be a symbol. If omitted, it defaults to |