[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 03/49: netstruct/procedural: Support signed integers.
From: |
gnunet |
Subject: |
[gnunet-scheme] 03/49: netstruct/procedural: Support signed integers. |
Date: |
Sat, 25 Dec 2021 22:59:40 +0100 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit f57634225725be0baf4c76d845e50f37e39f6476
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Wed Sep 15 22:41:21 2021 +0200
netstruct/procedural: Support signed integers.
* gnu/gnunet/netstruct/procedural.scm
(unsigned-N-bytes): Rename to ...
(N-bytes): ... this, and add an argument 'signedness'.
(N-bytes)[define-unsigned-N-bytes]: Rename to ...
(N-bytes)[define-N-bytes]: ... this.
(N-bytes)[name-big,name-little]: Use 'signedness' instead of 'unsigned'.
(define-unsigned-N-bytes*): Rename to ...
(define-N-bytes*): ... this, and adjust uses.
(define-N-bytes*): Add argument 'signedness' and use 'define-N-bytes'.
(s8): New variable.
(s16/big,s32/big,s64/big,s16/little,s32/little,s64/little): New
variables.
(ieee-double/big,ieee-double/little): Mark as 'signed' instead of
'unsigned'.
---
gnu/gnunet/netstruct/procedural.scm | 40 ++++++++++++++++++++++++++-----------
1 file changed, 28 insertions(+), 12 deletions(-)
diff --git a/gnu/gnunet/netstruct/procedural.scm
b/gnu/gnunet/netstruct/procedural.scm
index fd5a6af..53b8d95 100644
--- a/gnu/gnunet/netstruct/procedural.scm
+++ b/gnu/gnunet/netstruct/procedural.scm
@@ -43,6 +43,8 @@
u8 u16/big u32/big u64/big
u16/little u32/little u64/little
+ s8 s16/big s32/big s64/big
+ s16/little s32/little s64/little
ieee-double/big ieee-double/little
u8vector
@@ -371,37 +373,40 @@ accepting a bytevector slice and a value."
#:reader primitive-reader
#:setter primitive-setter))
- (define (unsigned-N-bytes length slice-ref slice-set! . rest)
+ (define (N-bytes length slice-ref slice-set! . rest)
(apply make-netprimitive length slice-ref slice-set! rest))
;; Not used at run-time, only when expanding,
;; so this doesn't need to end up in the .go.
(eval-when (expand)
- (define-syntax define-unsigned-N-bytes
+ (define-syntax define-N-bytes
(syntax-rules ()
- ((_ (length slice-ref slice-set!)
+ ((_ signedness
+ (length slice-ref slice-set!)
(name-big name-little))
(begin
(define name-big
- (unsigned-N-bytes
+ (N-bytes
length
(cute slice-ref <> 0 (endianness big))
(cute slice-set! <> 0 <> (endianness big))
#:properties '((endianness . big)
- (integer-type . unsigned))))
+ (integer-type . signedness))))
(define name-little
- (unsigned-N-bytes
+ (N-bytes
length
(cute slice-ref <> 0 (endianness little))
(cute slice-set! <> 0 <> (endianness little))
#:properties '((endianness . little)
- (integer-type . unsigned))))))))
- (define-syntax define-unsigned-N-bytes*
+ (integer-type . signedness))))))))
+ (define-syntax define-N-bytes*
(syntax-rules ()
- ((_ ((length slice-ref slice-set!)
+ ((_ signedness
+ ((length slice-ref slice-set!)
(name-big name-little)) ...)
(begin
- (define-unsigned-N-bytes
+ (define-N-bytes
+ signedness
(length slice-ref slice-set!) (name-big name-little))
...)))))
@@ -409,11 +414,22 @@ accepting a bytevector slice and a value."
(cut slice-u8-ref <> 0)
(cut slice-u8-set! <> 0 <>)
#:properties '((integer-type . unsigned))))
+ (define s8 (make-netprimitive 1
+ (cut slice-s8-ref <> 0)
+ (cut slice-s8-set! <> 0 <>)
+ #:properties '((integer-type . signed))))
- (define-unsigned-N-bytes*
+ (define-N-bytes*
+ unsigned
((2 slice-u16-ref slice-u16-set!) (u16/big u16/little))
((4 slice-u32-ref slice-u32-set!) (u32/big u32/little))
- ((8 slice-u64-ref slice-u64-set!) (u64/big u64/little))
+ ((8 slice-u64-ref slice-u64-set!) (u64/big u64/little)))
+
+ (define-N-bytes*
+ signed
+ ((2 slice-s16-ref slice-s16-set!) (s16/big s16/little))
+ ((4 slice-s32-ref slice-s32-set!) (s32/big s32/little))
+ ((8 slice-s64-ref slice-s64-set!) (s64/big s64/little))
((8 slice-ieee-double-ref slice-ieee-double-set!)
(ieee-double/big ieee-double/little)))
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] branch master updated (6c136b9 -> 5c7bf08), gnunet, 2021/12/25
- [gnunet-scheme] 04/49: dht/struct: New module., gnunet, 2021/12/25
- [gnunet-scheme] 01/49: Rename messge type 156., gnunet, 2021/12/25
- [gnunet-scheme] 06/49: dht/client: Implement message verifiers., gnunet, 2021/12/25
- [gnunet-scheme] 02/49: bv-slice: Support signed integers., gnunet, 2021/12/25
- [gnunet-scheme] 05/49: Define block types., gnunet, 2021/12/25
- [gnunet-scheme] 03/49: netstruct/procedural: Support signed integers.,
gnunet <=
- [gnunet-scheme] 08/49: examples: Consider extending the web interface with other services., gnunet, 2021/12/25
- [gnunet-scheme] 07/49: dht/client: Implement reconnecting., gnunet, 2021/12/25
- [gnunet-scheme] 09/49: examples/web: Connect to the DHT service., gnunet, 2021/12/25
- [gnunet-scheme] 10/49: dht/client: Register new get operations for processing., gnunet, 2021/12/25
- [gnunet-scheme] 12/49: dht/client: Send messages for new get operations., gnunet, 2021/12/25
- [gnunet-scheme] 13/49: dht/client: Send PUT messages., gnunet, 2021/12/25
- [gnunet-scheme] 24/49: examples/web: Put different information on separate pages., gnunet, 2021/12/25
- [gnunet-scheme] 20/49: dht/client: Call the callback on the client result., gnunet, 2021/12/25
- [gnunet-scheme] 17/49: dht/struct: Fix typo in synopsis., gnunet, 2021/12/25
- [gnunet-scheme] 14/49: Merge branch 'master' into dht, gnunet, 2021/12/25