Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to release-18e-branch:||(view) (annotate)|
Remove cruft from last checkin.
Fix a typo in apply-with-bindings. Add string-stream and file-stream, required by the ANSI spec, as structure classes. Make the string streams and fd-stream, respectively, inherit from them. Add bootstrap magic.
Merged patches by Eric Marsden and Gerd Moellmann to improve error reporting in several places to be more specific and/or ANSI compliant. The patches have been modified to make use of the new common simple-programm-error function where applicable.
Only create a buffer for streams of type (unsigned-byte 8). Fixes the bug where read-byte from (signed-byte 8) (or less) streams would produce unsigned instead of signed numbers.
Fix some lossage from rev 1.58 causing read-byte on multi-byte element types to fail.
Marco Antoniotti's read-sequence and write-sequence routines that "tries to be more intelligent about a bunch of `commonly' used external format."
From Paul Foley: Implements READ- and WRITE-SEQUENCE on Gray streams, via STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE, and provides a :class keyword to OPEN which lets it return Gray streams classes wrapped around lisp-streams. Load exports.lisp before compiling with this set of changes.
From Eric Marsden: FILE-LENGTH should signal a type-error if arg is not associated with a file.
Change most PROCLAIMs to DECLAIMs.
Do not open /dev/tty when in batch mode.
Backout previous offensive revision.
In stream-init, give *debug-io* its very own stream to tty rather than using *terminal-io*. This lets debugger work even if someone binds *terminal-io* to an output only stream and then enters the debugger.
Rework the code to allow file offsets greater than the most positive fixnum which was only around 500Meg, as noted by Martin Cracauer.
Minor documentation fixes.
Better handle interruption to unix-fast-select calls.
FD-STREAM-READ-N-BYTES was incorrectly returning 0 in the case where the user buffer was bigger than the stream buffer and the eof-error-p argument was NIL.
Backout the explicit check of the external-format argument to open which is handled by the type checking and was being flushed anyway.
Check that the :default external-format is given to open. Based on patches from Peter Van Eynde.
Fixes and improvements to July-14 commit dealing with condition types in calls to error. From Douglas.
This revision merges in many of the fixes for ANSI condition types in various calls to ERROR. Those easily handled by using new condition types simple-file-error and simple-program-error are included. The only functional change here is that the function CHARACTER no longer accepts an integer argument so as to be ANSI compliant. This may break some code.
Gray streams support: * Rename the 'stream structure class to sys:lisp-stream. * Add a new none hierarchical 'stream built-in class which inherits from: instance, t. * Hack in the new stream class as a mixin for the structure base lisp-stream class which now inherits from: stream, structure-object, instance, t. * Add a new 'fundamental-stream standard-class which includes 'stream as a mixin, and add PCL hacks to allow this to be redefined after PCL is loaded to be (defclass fundamental-stream (standard-object stream) ...). * Add appropriate support to the base stream functions to dispatch to the Gray stream functions for the handling of fundamental-streams. Some of the lisp-streams encapsulating CLOS streams still need a little work.
Use mp:process-wait-until-fd-usable with the MP feature to avoid stream input blocking when there are other runnable processes.
There were a the few calls to unix-select that limited the file descriptor to an (unsigned-byte 32) and thus limited this code to file descriptors less than 32, this was probably done to limit consing. Replace these with unix-fast-select, allowing the use of file descriptors upto fd-setsize (doesn't cons). Tested with over 128 FDs running CL-HTTP on FreeBSD.
Be sure to remove any fd-steam-handler on an abort close.
Fix to set the stream element type for :output streams.
Werkowskis source kit 1.03.7
Added a suite of signed byte output routines because the unsigned ones weren't type correct for signed operands, thus didn't consistently work.
Fix headed boilerplate.
Squelch assignment warning on open args (by &aux, YES!)
In OPEN, fixed :direction :io :if-does-not-exist :create to actually create.
Re-frobbed fd-stream-read-n-bytes to preserve the property of returning less than the requested number of bytes when eof-error-p is NIL and that is what unix-read read.
In read-n-bytes, only signal EOF when we read and got 0 bytes, not never read returns less than we wanted. Also, fix the case of small reads with an empty buffer not to leave garbled buffer pointers if we have to do more than one read.
Update to new DEFINE-CONDITION syntax.
Unmade FILE-NAME a misc method, since it needs to work on closed streams.
Changed :FILE-NAME back to a misc method. Added fd-stream-pathname slot to hold the non-unixified argument to open.
Added degenerate versions of stream-external-format, file-string-length and the :external-format argument to open.
Changed stuff to use EOF-OR-LOSE for signalling EOF.
Fixed :clear-input to flush any unread chars.
new structure branch & tuning, see new_struct
Added type decls from efficency notes.
Export FILE-STREAM from LISP as a synonym for FD-STREAM. Add :INTERACTIVE-P misc method.
Removed #+serve-event conditionalation.
Changed all SAP-REF-mumble functions to take the offset in bytes.
Merged new-alien changes onto trunk.
Fixed OPEN to deal with the fact that UNIX-NAMESTRING can return NIL.
Added finalization of opened streams.
Changed BASE-CHARACTER to BASE-CHAR
Added :TIMEOUT argument to MAKE-FD-STREAM. The SYSTEM:IO-TIMEOUT condition is signalled if a timeout is specified and exceeded.
Added many declarations indicated by efficiency notes. Also, now in OPEN, we don't rename files that aren't writable.
Changed FD-STREAM-READ-N-BYTES to block in unix-read rather than select so that it is usable as the CLX BUFFER-READ function (and is also more tense.) Fixed a couple warnings in the misc method.
Added :EOF support in listen method, and fixed a few comments.
Merged with systems-work sources. The only change was to make *standard-output* a two-way stream so that reading *standard-input* will force output on standard output.
New file header with RCS header FILE-COMMENT.
Added a retry case to the permision denied error in open.
Changed predict-name to unix-namestring.
Fixed the clear-input method.
Added :clear-input method. Changed base-character to character in dispatching stuff.
Moved MIPS branch onto trunk; no merge necessary.
.../code/fd-stream.lisp, 08-Mar-90 17:58:17, Edit by Wlott. Yet another attempt at file-position. Forgot to zero both the head and tail of the input buffer when we moved the file pointer. Therefore, UNIX thought that the file pointer was at the beginning of the file, but LISP thought that the file pointer was ibuf-tail bytes in.
Put in fix from wlott for unread-char/read-line interaction lossage.
Changed make-immediate-type of random number to CODE-CHAR.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|