changeset 698: | 96958d3eb5b0 |
parent: | 00d1c8afcdbb |
author: | Richard Westhaver <ellis@rwest.io> |
date: | Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: | -rw-r--r-- |
description: | fixes |
291 | 1 | ;;; std/array.lisp --- Standard Arrays |
2 | ||
3 | ;; |
|
4 | ||
5 | ;;; Code: |
|
292
00d1c8afcdbb
mostly done with std refactor, added sst-file-writer to rdb
Richard Westhaver <ellis@rwest.io>
parents:
291
diff
changeset
|
6 | ;; sb-kernel:with-array-data |
291 | 7 | (in-package :std/array) |
8 | ||
9 | (defun copy-array (array) |
|
10 | (let ((new-array |
|
11 | (make-array (array-dimensions array) |
|
12 | :element-type (array-element-type array) |
|
13 | :adjustable (adjustable-array-p array) |
|
14 | :fill-pointer (and (array-has-fill-pointer-p array) |
|
15 | (fill-pointer array))))) |
|
16 | (loop for i below (array-total-size array) |
|
17 | do (setf (row-major-aref new-array i) |
|
18 | (row-major-aref array i))) |
|
19 | new-array)) |
|
20 | ||
21 | (deftype signed-array-length () |
|
22 | "A (possibly negated) array length." |
|
23 | '#.(let ((limit (1- array-dimension-limit))) |
|
24 | `(integer ,(- limit) ,limit))) |