Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
-
6b9f32f5
by Tarn Burton at 2023-11-29T22:39:39+00:00
-
b218d29c
by Raymond Toy at 2023-11-29T22:39:54+00:00
5 changed files:
- src/code/exports.lisp
- src/code/stream.lisp
- src/general-info/release-21f.md
- src/pcl/gray-compat.lisp
- src/pcl/gray-streams.lisp
Changes:
| ... | ... | @@ -1620,6 +1620,7 @@ |
| 1620 | 1620 | "STREAM-ADVANCE-TO-COLUMN" "STREAM-CLEAR-INPUT"
|
| 1621 | 1621 | "STREAM-CLEAR-OUTPUT"
|
| 1622 | 1622 | "STREAM-FILE-POSITION"
|
| 1623 | + "STREAM-FILE-LENGTH"
|
|
| 1623 | 1624 | "STREAM-FINISH-OUTPUT" "STREAM-FORCE-OUTPUT"
|
| 1624 | 1625 | "STREAM-FRESH-LINE" "STREAM-LINE-COLUMN" "STREAM-LINE-LENGTH"
|
| 1625 | 1626 | "STREAM-LISTEN" "STREAM-PEEK-CHAR" "STREAM-READ-BYTE"
|
| ... | ... | @@ -397,7 +397,9 @@ |
| 397 | 397 | ;; simple-stream
|
| 398 | 398 | (stream::%file-length stream)
|
| 399 | 399 | ;; lisp-stream
|
| 400 | - (funcall (lisp-stream-misc stream) stream :file-length)))
|
|
| 400 | + (funcall (lisp-stream-misc stream) stream :file-length)
|
|
| 401 | + ;; fundamental-stream
|
|
| 402 | + (stream-file-length stream)))
|
|
| 401 | 403 | |
| 402 | 404 | |
| 403 | 405 | ;;; Input functions:
|
| ... | ... | @@ -20,6 +20,8 @@ public domain. |
| 20 | 20 | ## New in this release:
|
| 21 | 21 | * Known issues:
|
| 22 | 22 | * Feature enhancements:
|
| 23 | + * Add support for Gray streams implementation of file-length via
|
|
| 24 | + `ext:stream-file-length` generic function.
|
|
| 23 | 25 | * Changes:
|
| 24 | 26 | * ANSI compliance fixes:
|
| 25 | 27 | * Bug fixes:
|
| ... | ... | @@ -39,6 +39,9 @@ |
| 39 | 39 | (file-position stream position)
|
| 40 | 40 | (file-position stream)))
|
| 41 | 41 | |
| 42 | +(define-gray-stream-method ext:stream-file-length ((stream simple-stream))
|
|
| 43 | + (file-length stream))
|
|
| 44 | + |
|
| 42 | 45 | (define-gray-stream-method ext:stream-clear-output ((stream simple-stream))
|
| 43 | 46 | (clear-output stream))
|
| 44 | 47 |
| ... | ... | @@ -376,6 +376,13 @@ |
| 376 | 376 | (defmethod (setf stream-file-position) (position (stream character-output-stream))
|
| 377 | 377 | (file-position (character-output-stream-lisp-stream stream) position))
|
| 378 | 378 | |
| 379 | +(defgeneric stream-file-length (stream)
|
|
| 380 | + (:documentation
|
|
| 381 | + _N"Implements FILE-LENGTH for the stream."))
|
|
| 382 | + |
|
| 383 | +(defmethod stream-file-length (stream)
|
|
| 384 | + (error 'type-error :datum stream :expected-type 'file-stream))
|
|
| 385 | + |
|
| 379 | 386 | |
| 380 | 387 | ;;; Binary streams.
|
| 381 | 388 | ;;;
|