;;; 'SCM' type tag decoding. ;;; Copyright (C) 2014, 2015, 2017, 2018 Free Software Foundation, Inc. ;;; ;;; This library is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU Lesser General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; This library 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 Lesser ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU Lesser General Public License ;;; along with this program. If not, see . (define-module (system base types) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-60) #:use-module (ice-9 match) #:use-module ((ice-9 iconv) #:prefix iconv:) #:use-module (ice-9 format) #:use-module (ice-9 vlist) #:use-module (system foreign) #:export (%word-size memory-backend memory-backend? %ffi-memory-backend dereference-word memory-port type-number->name inferior-object? inferior-object-kind inferior-object-sub-kind inferior-object-address inferior-struct? inferior-struct-name inferior-struct-fields scm->object)) ;; This module can be loaded from GDB-linked-against-2.0, so use 2.2 ;; features conditionally. (cond-expand (guile-2.2 (use-modules (system syntax internal))) ;for 'make-syntax' (else #t)) ;;; Commentary: ;;; ;;; 'SCM' type tag decoding, primarily to support Guile debugging in GDB. ;;; ;;; Code: