;;; -*-scheme-*- ;;; Mes --- Maxwell Equations of Software ;;; Copyright © 2016,2017 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of Mes. ;;; ;;; Mes 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. ;;; ;;; Mes 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 Mes. If not, see . ;;; Commentary: ;;; bytevectors.mes ;;; Code: ;; rnrs compatibility (define (bytevector-u32-native-set! bv index value) (when (not (= 0 index)) (error "bytevector-u32-native-set! index not zero: " index " value: " value)) (let ((x (list (modulo value #x100) (modulo (ash value -8) #x100) (modulo (ash value -16) #x100) (modulo (ash value -24) #x100)))) (set-car! bv (car x)) (set-cdr! bv (cdr x)) x)) (define (bytevector-u16-native-set! bv index value) (when (not (= 0 index)) (error "bytevector-u16-native-set! index not zero: " index " value: " value)) (let ((x (list (modulo value #x100) (modulo (ash value -8) #x100)))) (set-car! bv (car x)) (set-cdr! bv (cdr x)) x)) (define (make-bytevector length) (make-list length 0))