;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 124.99
;;; Reason:
;;;  (bit-xxx) functions operate only on arrays of same rank and dimensions
;;; Written 24-Jun-88 11:29:55 by pld (Peter L. DeWolf) at site Gigamos Cambridge
;;; while running on Cthulhu from band 1
;;; with Experimental System 124.95, Experimental Local-File 74.3, Experimental File-Server 23.1, Experimental Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, microcode 1761, SDU Boot Tape 3.14, SDU ROM 8, the old ones.



; From modified file DJ: L.SYS; GENRIC.LISP#58 at 24-Jun-88 11:37:18
#10R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS; GENRIC  "

(defun bit-array-logical-op (alu-function bv1 bv2 bv-out)
  (cond ((not (equal (array-dimensions bv1) (array-dimensions bv2)))
	 (ferror "Dimensions of input bit-arrays do not agree"))
	((not (equal (array-dimensions bv1) (array-dimensions bv-out)))
	 (ferror "Dimensions of input arrays do not agree with that of the output array")))
  (dotimes (i (array-length bv-out))
    (setf (ar-1-force bv-out i)
	  (boole alu-function (ar-1-force bv1 i) (ar-1-force bv2 i))))
  bv-out)

))
