changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/std/array.lisp

changeset 291: a0dfde3cb3c4
child: 00d1c8afcdbb
author: Richard Westhaver <ellis@rwest.io>
date: Mon, 22 Apr 2024 23:14:47 -0400
permissions: -rw-r--r--
description: begin :STD refactor
1 ;;; std/array.lisp --- Standard Arrays
2 
3 ;;
4 
5 ;;; Code:
6 (in-package :std/array)
7 
8 (defun copy-array (array)
9  (let ((new-array
10  (make-array (array-dimensions array)
11  :element-type (array-element-type array)
12  :adjustable (adjustable-array-p array)
13  :fill-pointer (and (array-has-fill-pointer-p array)
14  (fill-pointer array)))))
15  (loop for i below (array-total-size array)
16  do (setf (row-major-aref new-array i)
17  (row-major-aref array i)))
18  new-array))
19 
20 (deftype signed-array-length ()
21  "A (possibly negated) array length."
22  '#.(let ((limit (1- array-dimension-limit)))
23  `(integer ,(- limit) ,limit)))
24