Hello community,
here is the log from the commit of package guile-bytestructures for openSUSE:Factory checked in at 2018-06-20 15:30:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/guile-bytestructures (Old)
and /work/SRC/openSUSE:Factory/.guile-bytestructures.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "guile-bytestructures"
Wed Jun 20 15:30:31 2018 rev:2 rq:617557 version:1.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/guile-bytestructures/guile-bytestructures.changes 2018-03-12 12:11:37.211689992 +0100
+++ /work/SRC/openSUSE:Factory/.guile-bytestructures.new/guile-bytestructures.changes 2018-06-20 15:31:37.021510085 +0200
@@ -1,0 +2,10 @@
+Thu Jun 14 09:28:40 UTC 2018 - jbrielmaier@suse.de
+
+- Update to version 1.0.3
+ * fixes bsc#1097626
+ * fixes https://github.com/TaylanUB/scheme-bytestructures/issues/30
+ * add test suite
+- package test suite (not executable by default, due to complaining
+ about #!/usr/bin/env)
+
+-------------------------------------------------------------------
Old:
----
v1.0.1.tar.gz
New:
----
v1.0.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ guile-bytestructures.spec ++++++
--- /var/tmp/diff_new_pack.M81OIK/_old 2018-06-20 15:31:39.965403274 +0200
+++ /var/tmp/diff_new_pack.M81OIK/_new 2018-06-20 15:31:39.965403274 +0200
@@ -1,7 +1,7 @@
#
# spec file for package guile-bytestructures
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,10 +17,10 @@
Name: guile-bytestructures
-Version: 1.0.1
+Version: 1.0.3
Release: 0
Summary: Bytestructures for Guile
-License: GPL-3.0
+License: GPL-3.0-only
Group: Development/Libraries/Other
Url: https://github.com/TaylanUB/scheme-bytestructures
Source0: https://github.com/TaylanUB/scheme-bytestructures/archive/v%{version}.tar.gz
@@ -50,7 +50,7 @@
%license COPYING
%doc README.md
%dir %{_datadir}/guile/site/2.*
-%{_datadir}/guile/site/2.*/bytestructures*
+%{_datadir}/guile/site/2.*/*
%dir %{_libdir}/guile/2.*/site-ccache
%{_libdir}/guile/2.*/site-ccache/bytestructures*
++++++ v1.0.1.tar.gz -> v1.0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/Makefile.am new/scheme-bytestructures-1.0.3/Makefile.am
--- old/scheme-bytestructures-1.0.1/Makefile.am 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/Makefile.am 2018-06-12 14:08:24.000000000 +0200
@@ -24,6 +24,7 @@
bytestructures/r6/bytevectors.scm
NOCOMP_SOURCES = \
+ bytestructures/body/align.scm \
bytestructures/body/base.scm \
bytestructures/body/base.syntactic.scm \
bytestructures/body/bitfields.scm \
@@ -42,7 +43,10 @@
bytestructures/r7/string.exports.sld \
bytestructures/r7/struct.exports.sld \
bytestructures/r7/union.exports.sld \
- bytestructures/r7/vector.exports.sld
+ bytestructures/r7/vector.exports.sld \
+ run-tests.body.scm \
+ run-tests.guile.scm \
+ run-tests.r7.scm
EXTRA_DIST += \
COPYING \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/README.md new/scheme-bytestructures-1.0.3/README.md
--- old/scheme-bytestructures-1.0.1/README.md 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/README.md 2018-06-12 14:08:24.000000000 +0200
@@ -699,7 +699,7 @@
the following two expressions are equivalent:
```scheme
-(define bs (bytestructure descriptor) values)
+(define bs (bytestructure descriptor values))
(let ((bs (bytestructure descriptor)))
(bytestructure-set! bs values)
@@ -728,6 +728,9 @@
bytevector and offset. Or if the getter is `#f`, then a bytestructure
encapsulating that bytevector, offset, and descriptor is returned.
+Note that this means that calling `bytestructure-ref` with zero index
+arguments will return a bytestructure identical to the one provided.
+
- `(bytestructure-set! bytestructure index ... value)` *syntax*
Traverses through `bytestructure` using `bytestructure-unwrap` with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/body/align.scm new/scheme-bytestructures-1.0.3/bytestructures/body/align.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/body/align.scm 1970-01-01 01:00:00.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/body/align.scm 2018-06-12 14:08:24.000000000 +0200
@@ -0,0 +1,44 @@
+;;; align.scm --- Alignment calculation helpers.
+
+;; Copyright © 2018 Taylan Ulrich Bayırlı/Kammer
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see http://www.gnu.org/licenses/.
+
+;;; Commentary:
+
+
+;;; Code:
+
+;;; Either remains at 'position' or rounds up to the next multiple of
+;;; 'alignment' depending on whether 'size' (if not greater than 'alignment')
+;;; would fit. Returns three values: the chosen position, the start of the
+;;; alignment boundary of the chosen position, and the bit offset of the chosen
+;;; position from the start of the alignment boundary. A bit is represented by
+;;; the value 1/8.
+(define (align position size alignment)
+ (let* ((integer (floor position))
+ (fraction (- position integer)))
+ (let-values (((prev-boundary-index offset) (floor/ integer alignment)))
+ (let* ((prev-boundary (* prev-boundary-index alignment))
+ (next-boundary (+ prev-boundary alignment)))
+ (if (< next-boundary (+ position (min size alignment)))
+ (values next-boundary next-boundary 0)
+ (values position prev-boundary (* 8 (+ offset fraction))))))))
+
+;;; Returns 'position' if it's already a multiple of 'alignment'; otherwise
+;;; returns the next multiple.
+(define (next-boundary position alignment)
+ (align position +inf.0 alignment))
+
+;;; align.scm ends here
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/body/numeric.scm new/scheme-bytestructures-1.0.3/bytestructures/body/numeric.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/body/numeric.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/body/numeric.scm 2018-06-12 14:08:24.000000000 +0200
@@ -24,10 +24,28 @@
;;; Code:
-(define-syntax-rule (make-numeric-descriptor <size> <getter> <setter>)
+(define i8align 1)
+
+(define i16align 2)
+
+(define i32align 4)
+
+(define i64align
+ (cond-expand
+ (i386 4)
+ (else 8)))
+
+(define f32align 4)
+
+(define f64align
+ (cond-expand
+ (i386 4)
+ (else 8)))
+
+(define-syntax-rule (make-numeric-descriptor <size> <align> <getter> <setter>)
(let ()
(define size <size>)
- (define alignment <size>)
+ (define alignment <align>)
(define (getter syntax? bytevector offset)
(if syntax?
(quasisyntax
@@ -41,89 +59,95 @@
(make-bytestructure-descriptor size alignment #f getter setter)))
(define-syntax-rule (define-numeric-descriptors <list>
- (<name> <size> <getter> <setter>)
+ (<name> <size> <align> <getter> <setter>)
...)
(begin
(define <name>
- (make-numeric-descriptor <size> <getter> <setter>))
+ (make-numeric-descriptor <size> <align> <getter> <setter>))
...
(define <list> (list (list <name> '<name> <getter> <setter>) ...))))
(define-numeric-descriptors
signed-integer-native-descriptors
- (int8 1 bytevector-s8-ref bytevector-s8-set!)
- (int16 2 bytevector-s16-native-ref bytevector-s16-native-set!)
- (int32 4 bytevector-s32-native-ref bytevector-s32-native-set!)
- (int64 8 bytevector-s64-native-ref bytevector-s64-native-set!))
+ (int8 1 i8align bytevector-s8-ref bytevector-s8-set!)
+ (int16 2 i16align bytevector-s16-native-ref bytevector-s16-native-set!)
+ (int32 4 i32align bytevector-s32-native-ref bytevector-s32-native-set!)
+ (int64 8 i64align bytevector-s64-native-ref bytevector-s64-native-set!))
(define-numeric-descriptors
unsigned-integer-native-descriptors
- (uint8 1 bytevector-u8-ref bytevector-u8-set!)
- (uint16 2 bytevector-u16-native-ref bytevector-u16-native-set!)
- (uint32 4 bytevector-u32-native-ref bytevector-u32-native-set!)
- (uint64 8 bytevector-u64-native-ref bytevector-u64-native-set!))
+ (uint8 1 i8align bytevector-u8-ref bytevector-u8-set!)
+ (uint16 2 i16align bytevector-u16-native-ref bytevector-u16-native-set!)
+ (uint32 4 i32align bytevector-u32-native-ref bytevector-u32-native-set!)
+ (uint64 8 i64align bytevector-u64-native-ref bytevector-u64-native-set!))
(define-numeric-descriptors
float-native-descriptors
- (float32
- 4 bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!)
- (float64
- 8 bytevector-ieee-double-native-ref bytevector-ieee-double-native-set!))
+ (float32 4 f32align
+ bytevector-ieee-single-native-ref
+ bytevector-ieee-single-native-set!)
+ (float64 8 f64align
+ bytevector-ieee-double-native-ref
+ bytevector-ieee-double-native-set!))
(define-syntax-rule (define-with-endianness <list> <endianness>
- (<name> <size> <native-name> <getter> <setter>)
+ (<name> <size> <align> <native-name> <getter> <setter>)
...)
(begin
(define <name>
(if (equal? <endianness> (native-endianness))
<native-name>
- (make-numeric-descriptor <size> <getter> <setter>)))
+ (make-numeric-descriptor <size> <align> <getter> <setter>)))
...
(define <list> (list (list <name> '<name> <getter> <setter>) ...))))
(define-with-endianness
signed-integer-le-descriptors (endianness little)
- (int16le 2 int16 bytevector-s16le-ref bytevector-s16le-set!)
- (int32le 4 int32 bytevector-s32le-ref bytevector-s32le-set!)
- (int64le 8 int64 bytevector-s64le-ref bytevector-s64le-set!))
+ (int16le 2 i16align int16 bytevector-s16le-ref bytevector-s16le-set!)
+ (int32le 4 i32align int32 bytevector-s32le-ref bytevector-s32le-set!)
+ (int64le 8 i64align int64 bytevector-s64le-ref bytevector-s64le-set!))
(define-with-endianness
signed-integer-be-descriptors (endianness big)
- (int16be 2 int16 bytevector-s16be-ref bytevector-s16be-set!)
- (int32be 4 int32 bytevector-s32be-ref bytevector-s32be-set!)
- (int64be 8 int64 bytevector-s64be-ref bytevector-s64be-set!))
+ (int16be 2 i16align int16 bytevector-s16be-ref bytevector-s16be-set!)
+ (int32be 4 i32align int32 bytevector-s32be-ref bytevector-s32be-set!)
+ (int64be 8 i64align int64 bytevector-s64be-ref bytevector-s64be-set!))
(define-with-endianness
unsigned-integer-le-descriptors (endianness little)
- (uint16le 2 uint16 bytevector-u16le-ref bytevector-u16le-set!)
- (uint32le 4 uint32 bytevector-u32le-ref bytevector-u32le-set!)
- (uint64le 8 uint64 bytevector-u64le-ref bytevector-u64le-set!))
+ (uint16le 2 i16align uint16 bytevector-u16le-ref bytevector-u16le-set!)
+ (uint32le 4 i32align uint32 bytevector-u32le-ref bytevector-u32le-set!)
+ (uint64le 8 i64align uint64 bytevector-u64le-ref bytevector-u64le-set!))
(define-with-endianness
unsigned-integer-be-descriptors (endianness big)
- (uint16be 2 uint16 bytevector-u16be-ref bytevector-u16be-set!)
- (uint32be 4 uint32 bytevector-u32be-ref bytevector-u32be-set!)
- (uint64be 8 uint64 bytevector-u64be-ref bytevector-u64be-set!))
+ (uint16be 2 i16align uint16 bytevector-u16be-ref bytevector-u16be-set!)
+ (uint32be 4 i32align uint32 bytevector-u32be-ref bytevector-u32be-set!)
+ (uint64be 8 i64align uint64 bytevector-u64be-ref bytevector-u64be-set!))
(define-with-endianness
float-le-descriptors (endianness little)
- (float32le
- 4 float32 bytevector-ieee-single-le-ref bytevector-ieee-single-le-set!)
- (float64le
- 8 float64 bytevector-ieee-double-le-ref bytevector-ieee-double-le-set!))
+ (float32le 4 f32align float32
+ bytevector-ieee-single-le-ref
+ bytevector-ieee-single-le-set!)
+ (float64le 8 f64align float64
+ bytevector-ieee-double-le-ref
+ bytevector-ieee-double-le-set!))
(define-with-endianness
float-be-descriptors (endianness big)
- (float32be
- 4 float32 bytevector-ieee-single-be-ref bytevector-ieee-single-be-set!)
- (float64be
- 8 float64 bytevector-ieee-double-be-ref bytevector-ieee-double-be-set!))
+ (float32be 4 f32align float32
+ bytevector-ieee-single-be-ref
+ bytevector-ieee-single-be-set!)
+ (float64be 8 f64align float64
+ bytevector-ieee-double-be-ref
+ bytevector-ieee-double-be-set!))
(define-syntax-rule (make-complex-descriptor
- <float-size> <float-getter> <float-setter>)
+ <float-size> <float-align> <float-getter> <float-setter>)
(let ()
(define size (* 2 <float-size>))
- (define alignment <float-size>)
+ (define alignment <float-align>)
(define (getter syntax? bytevector offset)
(if syntax?
(quasisyntax
@@ -154,48 +178,57 @@
(make-bytestructure-descriptor size alignment #f getter setter)))
(define-syntax-rule (define-complex-descriptors <list>
- (<name> <float-size> <float-getter> <float-setter>)
+ (<name> <float-size> <float-align>
+ <float-getter> <float-setter>)
...)
(begin
(define <name>
- (make-complex-descriptor <float-size> <float-getter> <float-setter>))
+ (make-complex-descriptor <float-size> <float-align>
+ <float-getter> <float-setter>))
...
(define <list> (list (list <name> '<name> <float-getter> <float-setter>)
...))))
(define-complex-descriptors
complex-native-descriptors
- (complex64
- 4 bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!)
- (complex128
- 8 bytevector-ieee-double-native-ref bytevector-ieee-double-native-set!))
+ (complex64 4 f32align
+ bytevector-ieee-single-native-ref
+ bytevector-ieee-single-native-set!)
+ (complex128 8 f64align
+ bytevector-ieee-double-native-ref
+ bytevector-ieee-double-native-set!))
(define-syntax-rule (define-complex-with-endianness <list> <endianness>
- (<name> <float-size> <native-name>
+ (<name> <float-size> <float-align> <native-name>
<float-getter> <float-setter>)
...)
(begin
(define <name>
(if (equal? <endianness> (native-endianness))
<native-name>
- (make-complex-descriptor <float-size> <float-getter> <float-setter>)))
+ (make-complex-descriptor <float-size> <float-align>
+ <float-getter> <float-setter>)))
...
(define <list> (list (list <name> '<name> <float-getter> <float-setter>)
...))))
(define-complex-with-endianness
complex-le-descriptors (endianness little)
- (complex64le
- 4 complex64 bytevector-ieee-single-le-ref bytevector-ieee-single-le-set!)
- (complex128le
- 8 complex128 bytevector-ieee-double-le-ref bytevector-ieee-double-le-set!))
+ (complex64le 4 f32align complex64
+ bytevector-ieee-single-le-ref
+ bytevector-ieee-single-le-set!)
+ (complex128le 8 f64align complex128
+ bytevector-ieee-double-le-ref
+ bytevector-ieee-double-le-set!))
(define-complex-with-endianness
complex-be-descriptors (endianness big)
- (complex64be
- 4 complex64 bytevector-ieee-single-be-ref bytevector-ieee-single-be-set!)
- (complex128be
- 8 complex128 bytevector-ieee-double-be-ref bytevector-ieee-double-be-set!))
+ (complex64be 4 f32align complex64
+ bytevector-ieee-single-be-ref
+ bytevector-ieee-single-be-set!)
+ (complex128be 8 f64align complex128
+ bytevector-ieee-double-be-ref
+ bytevector-ieee-double-be-set!))
(define signed-integer-descriptors
(append signed-integer-native-descriptors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/body/struct.scm new/scheme-bytestructures-1.0.3/bytestructures/body/struct.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/body/struct.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/body/struct.scm 2018-06-12 14:08:24.000000000 +0200
@@ -26,26 +26,6 @@
;;; Code:
-;;; Either remains at 'position' or rounds up to the next multiple of
-;;; 'alignment' depending on whether 'size' (if not greater than 'alignment')
-;;; would fit. Returns three values: the chosen position, the start of the
-;;; alignment boundary of the chosen position, and the bit offset of the chosen
-;;; position from the start of the alignment boundary.
-(define (align position size alignment)
- (let* ((integer (floor position))
- (fraction (- position integer)))
- (let-values (((prev-boundary-index offset) (floor/ integer alignment)))
- (let* ((prev-boundary (* prev-boundary-index alignment))
- (next-boundary (+ prev-boundary alignment)))
- (if (< next-boundary (+ position (min size alignment)))
- (values next-boundary next-boundary 0)
- (values position prev-boundary (* 8 (+ offset fraction))))))))
-
-;;; Returns 'position' if it's already a multiple of 'alignment'; otherwise
-;;; returns the next multiple.
-(define (next-boundary position alignment)
- (align position +inf.0 alignment))
-
(define (pack-alignment pack alignment)
(case pack
((#t) 1)
@@ -194,8 +174,11 @@
(make-struct-metadata simple-field-alist)))
(make-bytestructure-descriptor size alignment unwrapper #f setter meta))))
-(define (debug-alignment pack fields)
- (let* ((fields (construct-fields pack fields))
+(define debug-alignment
+ (case-lambda
+ ((fields) (debug-alignment #f fields))
+ ((pack fields)
+ (let* ((fields (construct-fields pack fields))
(alignment (apply max (map field-alignment fields)))
(size (let* ((field (last fields))
(end (+ (field-position field) (field-size field))))
@@ -203,11 +186,13 @@
(format #t "{\n")
(for-each (lambda (field)
(let ((name (field-name field))
- (pos (field-position field))
- (size (field-size field)))
- (format #t " ~a: ~a:~a\n" (* 8 pos) name (* 8 size))))
+ (pos (* 8 (field-position field)))
+ (size (* 8 (field-size field)))
+ (align (* 8 (field-alignment field))))
+ (format #t " ~a - ~a: ~a (~a, ~a)\n"
+ pos (+ pos size) name size align)))
fields)
(format #t "} = ~a\n" (* 8 size))
- (values)))
+ (values)))))
;;; struct.scm ends here
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/body/union.scm new/scheme-bytestructures-1.0.3/bytestructures/body/union.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/body/union.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/body/union.scm 2018-06-12 14:08:24.000000000 +0200
@@ -40,14 +40,16 @@
(define (bs:union %fields)
(define fields (construct-fields %fields))
- (define size (apply max (map (lambda (field)
- (bytestructure-descriptor-size
- (field-content field)))
- fields)))
(define alignment (apply max (map (lambda (field)
(bytestructure-descriptor-alignment
(field-content field)))
fields)))
+ (define size (let ((max-element
+ (apply max (map (lambda (field)
+ (bytestructure-descriptor-size
+ (field-content field)))
+ fields))))
+ (next-boundary max-element alignment)))
(define (unwrapper syntax? bytevector offset index)
(let ((index (if syntax? (syntax->datum index) index)))
(values bytevector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/guile/ffi.scm new/scheme-bytestructures-1.0.3/bytestructures/guile/ffi.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/guile/ffi.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/guile/ffi.scm 2018-06-12 14:08:24.000000000 +0200
@@ -54,7 +54,7 @@
(,float64 . ,ffi:double)))
(define (bytestructure-descriptor->ffi-descriptor descriptor)
- (define (convert descriptor top-level?)
+ (define (convert descriptor)
(cond
((assq descriptor numeric-type-mapping)
=> (match-lambda ((key . val) val)))
@@ -62,16 +62,11 @@
(let ((metadata (bytestructure-descriptor-metadata descriptor)))
(cond
((vector-metadata? metadata)
- (if top-level?
- '*
- (make-list
- (vector-metadata-length metadata)
- (convert (vector-metadata-element-descriptor metadata) #f))))
+ (make-list
+ (vector-metadata-length metadata)
+ (convert (vector-metadata-element-descriptor metadata))))
((struct-metadata? metadata)
- (map (lambda (descriptor)
- (convert descriptor #f))
- (map (match-lambda ((field-name . descriptor) descriptor))
- (struct-metadata-field-alist metadata))))
+ (map convert (map cdr (struct-metadata-field-alist metadata))))
((union-metadata? metadata)
;; TODO: Add support once Guile/libffi supports this.
(error "Unions not supported." descriptor))
@@ -82,7 +77,13 @@
(error "Bitfields not supported." descriptor))
(else
(error "Unsupported bytestructure descriptor." descriptor)))))))
- (convert descriptor #t))
+ (cond
+ ((eq? descriptor 'void)
+ ffi:void)
+ ((vector-metadata? (bytestructure-descriptor-metadata descriptor))
+ '*)
+ (else
+ (convert descriptor))))
(define (bs:pointer->proc ret-type func-ptr arg-types)
(define (type->raw-type type)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/guile/numeric-data-model.scm new/scheme-bytestructures-1.0.3/bytestructures/guile/numeric-data-model.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/guile/numeric-data-model.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/guile/numeric-data-model.scm 2018-06-12 14:08:24.000000000 +0200
@@ -1,5 +1,20 @@
(define-module (bytestructures guile numeric-data-model))
+
(import (system foreign))
+(import (system base target))
+
+(define architecture
+ (let ((cpu (target-cpu)))
+ (cond
+ ((member cpu '("i386" "i486" "i586" "i686"))
+ 'i386)
+ ((string=? "x86_64" cpu)
+ 'x86-64)
+ ((string-prefix? "arm" cpu)
+ 'arm)
+ ((string-prefix? "aarch64" cpu)
+ 'aarch64))))
+
(define data-model
(if (= 4 (sizeof '*))
(if (= 2 (sizeof int))
@@ -9,4 +24,7 @@
((= 8 (sizeof int)) 'ilp64)
((= 4 (sizeof long)) 'llp64)
(else 'lp64))))
-(cond-expand-provide (current-module) (list data-model))
+
+(cond-expand-provide
+ (current-module)
+ (list architecture data-model))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/guile/struct.scm new/scheme-bytestructures-1.0.3/bytestructures/guile/struct.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/guile/struct.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/guile/struct.scm 2018-06-12 14:08:24.000000000 +0200
@@ -7,5 +7,6 @@
(bytestructures guile utils)
(bytestructures guile base)
(bytestructures guile bitfields))
+(include-from-path "bytestructures/body/align.scm")
(include-from-path "bytestructures/body/struct.scm")
(include-from-path "bytestructures/r7/struct.exports.sld")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/guile/union.scm new/scheme-bytestructures-1.0.3/bytestructures/guile/union.scm
--- old/scheme-bytestructures-1.0.1/bytestructures/guile/union.scm 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/guile/union.scm 2018-06-12 14:08:24.000000000 +0200
@@ -5,5 +5,6 @@
(bytestructures guile bytevectors)
(bytestructures guile utils)
(bytestructures guile base))
+(include-from-path "bytestructures/body/align.scm")
(include-from-path "bytestructures/body/union.scm")
(include-from-path "bytestructures/r7/union.exports.sld")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/r7/struct.sld new/scheme-bytestructures-1.0.3/bytestructures/r7/struct.sld
--- old/scheme-bytestructures-1.0.1/bytestructures/r7/struct.sld 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/r7/struct.sld 2018-06-12 14:08:24.000000000 +0200
@@ -8,4 +8,5 @@
(bytestructures r7 base)
(bytestructures r7 bitfields))
(include-library-declarations "struct.exports.sld")
+ (include "body/align.scm")
(include "body/struct.scm"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/bytestructures/r7/union.sld new/scheme-bytestructures-1.0.3/bytestructures/r7/union.sld
--- old/scheme-bytestructures-1.0.1/bytestructures/r7/union.sld 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/bytestructures/r7/union.sld 2018-06-12 14:08:24.000000000 +0200
@@ -4,4 +4,5 @@
(bytestructures r7 utils)
(bytestructures r7 base))
(include-library-declarations "union.exports.sld")
+ (include "body/align.scm")
(include "body/union.scm"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scheme-bytestructures-1.0.1/configure.ac new/scheme-bytestructures-1.0.3/configure.ac
--- old/scheme-bytestructures-1.0.1/configure.ac 2018-01-08 00:36:45.000000000 +0100
+++ new/scheme-bytestructures-1.0.3/configure.ac 2018-06-12 14:08:24.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([bytestructures], [1.0.1], [], [], [https://github.com/TaylanUB/scheme-bytestructures/])
+AC_INIT([bytestructures], [1.0.3], [], [], [https://github.com/TaylanUB/scheme-bytestructures/])
AC_CONFIG_SRCDIR(bytestructures)
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([-Wall -Werror foreign color-tests])