/[cmucl]/src/code/fd-stream.lisp
ViewVC logotype

Log of /src/code/fd-stream.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Links to cross-sol-x86-base: (view) (annotate)
Sticky Tag:

Revision 1.122 - (view) (annotate) - [select for diffs]
Wed Oct 13 18:00:44 2010 UTC (3 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02
Branch point for: cross-sol-x86-branch, cross-sparc-branch
Changes since 1.121: +6 -9 lines
Diff to previous 1.121
Some changes to replace calls to gettext with _"" or _N"" for things
compiled with and without Unicode.  This is needed so that the pot
files have the same content for both unicode and non-unicode builds.
(The _"" and _N"" are handled by the reader, so things that are
conditionalized out still get processed, unlike using gettext.)

Revision 1.121 - (view) (annotate) - [select for diffs]
Tue Oct 12 21:52:44 2010 UTC (3 years, 6 months ago) by rtoy
Branch: MAIN
Changes since 1.120: +43 -18 lines
Diff to previous 1.120
Make read-char and read-byte signal errors when given the wrong kind
of streams.  This is a change from current 20a and 20b behavior which
didn't signal errors, but matches the behavior for releases 19f and
earlier.

But allow them to work on binary-text-streams.  This is the same
behavior as before for binary-text-stream streams.

However, read-sequence no longer allows reading from streams into
arbitrary objects, unless the stream is a binary-text-stream stream.

code/fd-stream-extfmt.lisp:
o In %SET-FD-STREAM-EXTERNAL-FORMAT, only update
  fd-stream-in/fd-stream-out if we have a character or
  binary-text-stream stream.
o Don't update the fd-stream-string-buffer or lisp-stream-in-buffer if
  we have a binary-text-stream because that will mess up how
  fast-read-char and fast-read-byte dispatch to do the right thing for
  binary-text-stream streams.

code/fd-stream.lisp:
o Set the fd-stream-in and fd-stream-bin slots appropriately depending
  on whether we have a character, binary, or binary-text-stream
  stream.
o Only create the lisp-stream-in-buffer if we do NOT have a
  binary-text-stream.  (Binary streams didn't use the
  lisp-stream-buffer previously, so no change there.  Character
  streams use the lisp-stream-buffer and/or lisp-string-buffer.)
o Set the fd-stream-flags appropriately for the kind of stream this
  is.  Checking a fixnum is faster than checking the type of a stream.

code/struct.lisp:
o Add FLAGS slot to LISP-STREAM so we can tell what kind of stream
  (character, binary, binary-text-stream) we have.

code/sysmacs.lisp:
o Change FAST-READ-CHAR so that if we have a have a binary or
  binary-text-stream stream, we dispatch to the fast-read-char methods
  to do the right thing, including signaling an error for the wrong
  kind of stream.
o Change FAST-READ-BYTE so that if we do not have a binary stream, we
  dispatch to the fast-read-char method to do the right thing.

compiler/dump.lisp:
o With the above changes, we can no longer write characters to a
  binary stream, like a FASL file.  Make the fasl file a
  binary-text-stream so that we can.  (Alternatively, we could create
  the FASL header as a string, convert to octets and dump the octest
  to the file.  This is easier, and should still be fast for writing
  fasls.)

Revision 1.120 - (view) (annotate) - [select for diffs]
Wed Sep 15 11:32:49 2010 UTC (3 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.119: +15 -4 lines
Diff to previous 1.119
Fix FD-STREAM-FILE-POSITION, which was returning the wrong thing for
streams with a string-buffer (all external formats except ISO-8859-1)
and for streams without a string-buffer but with an in-buffer
(ISO-8859-1).  This caused source location information to be totally
wrong.

Revision 1.119 - (view) (annotate) - [select for diffs]
Wed Sep 8 03:04:54 2010 UTC (3 years, 7 months ago) by rtoy
Branch: MAIN
Changes since 1.118: +1 -5 lines
Diff to previous 1.118
Clean up how (setf stream-external-format) works.  This change
requires a cross-compile using the default cross-compile script.

fd-stream.lisp:
o Remove the SAVED-OC-STATE slot from an FD-STREAM because we don't
  need it anymore since we have the OCTET-COUNT slot.

stream.lisp:
o Don't need to copy the current OC-STATE to SAVED-OC-STATE.  Remove
  code and update comments.

fd-stream-extfmt.lisp:
o Use the OCTET-COUNT slot to figure out how many octets have been
  consumed so far to produce the characters that have already been
  read.  Don't need to do the re-conversion anymore, so we don't need
  the SAVED-OC-STATE anymore.
o Add support for the case where we were using the ISO8859-1 external
  format and are now switching to another external format that
  requires the string-buffer.

Revision 1.118 - (view) (annotate) - [select for diffs]
Wed Aug 18 16:42:06 2010 UTC (3 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.117: +4 -3 lines
Diff to previous 1.117
Oops.  The upper limit for the octet-count array is one less than the
string-buffer-len because the string buffer has an extra element at
the beginning (for unread-char).

Revision 1.117 - (view) (annotate) - [select for diffs]
Sun Aug 15 13:03:43 2010 UTC (3 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.116: +9 -2 lines
Diff to previous 1.116
When decoding-error is T, use a question mark for non-unicode builds
instead of the (invalid) Unicode replacement character.

Revision 1.116 - (view) (annotate) - [select for diffs]
Sun Aug 15 12:04:43 2010 UTC (3 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.115: +15 -8 lines
Diff to previous 1.115
Fix file-position bug in trac #36.  We add an array to keep track of
the octets consumed for each character.  This array is used to figure
out the file position.  Some tests comparing this scheme indicates a
very small slowdown of about 1%, so this seems not to hurt.

Use a cross-compile using the 2010-07 snapshot to build this.  (Same
procedure as used to build the 20b-pre1 release.)

struct.lisp:
o Add new slot OCTET-COUNT to LISP-STREAM to hold the array of octets
  per character.

extfmts.lisp:
o Add OCTETS-TO-STRING-COUNTED, which is like OCTETS-TO-STRING, except
  we need an array in which to store the number of octets consumed for
  each character processed.

fd-stream.lisp:
o Create the octet-count array creating the lisp stream string buffer.
o In FD-STREAM-FILE-POSITION, use the octet count to count the number
  of octets that have been read but not yet returned to the user.

stream.lisp:
o Use OCTETS-TO-STRING-COUNTED instead of OCTETS-TO-STRING so we keep
  track of octet length of each character processed.

Revision 1.115 - (view) (annotate) - [select for diffs]
Wed Aug 4 03:37:51 2010 UTC (3 years, 8 months ago) by rtoy
Branch: MAIN
Changes since 1.114: +17 -9 lines
Diff to previous 1.114
Correct the docstring for OPEN for the :ENCODING-ERROR and
:DECODING-ERROR arguments.

Revision 1.114 - (view) (annotate) - [select for diffs]
Tue Jul 20 22:53:11 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: release-20b-pre1, snapshot-2010-08
Branch point for: RELEASE-20B-BRANCH
Changes since 1.113: +6 -10 lines
Diff to previous 1.113
Enable support for external-format errors for non-unicode builds too.
A normal build can be used, but you'll have to select the clobber-it
restart each time you're asked during the normal build.

Revision 1.113 - (view) (annotate) - [select for diffs]
Mon Jul 19 23:41:56 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.112: +8 -6 lines
Diff to previous 1.112
Fix code so it will compile on 8-bit versions.  Basically, don't
reference fd-stream-char-to-octets-error and don't call
%make-fd-stream with :char-to-octets-error and :octets-to-char-error
since these don't exist without unicode.

Revision 1.112 - (view) (annotate) - [select for diffs]
Mon Jul 5 15:52:47 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base
Branch point for: sparc-tramp-assem-branch
Changes since 1.111: +3 -3 lines
Diff to previous 1.111
extfmts.lisp:
o Revert previous incompatible change to STRING-DECODE and
  STRING-ENCODE.  Change the keyword parameters back to optional
  parameters, and make the error parameter the last one.

fd-stream.lisp:
o Update use of STRING-ENCODE.

Revision 1.111 - (view) (annotate) - [select for diffs]
Mon Jul 5 03:11:08 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.110: +3 -3 lines
Diff to previous 1.110
Oops.  STRING-ENCODE now takes keyword args instead of optional args,
so update code.

Revision 1.110 - (view) (annotate) - [select for diffs]
Sat Jul 3 16:44:37 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.109: +19 -5 lines
Diff to previous 1.109
extfmts.lisp:
o Update comments for the various slots in DEFINE-EXTERNAL-FORMAT.

fd-stream.lisp:
o Declare the types for the CHAR-TO-OCTETS-ERROR and
  OCTETS-TO-CHAR-ERROR slots in FD-STREAM.
o Update docstrings for MAKE-FD-STREAM and OPEN for :DECODING-ERROR
  and :ENCODING-ERROR parameters.

Revision 1.109 - (view) (annotate) - [select for diffs]
Sat Jul 3 15:20:25 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.108: +5 -5 lines
Diff to previous 1.108
Fix some compiler notes by adding declarations and removing one
variable that was shadowing another.

Revision 1.108 - (view) (annotate) - [select for diffs]
Sat Jul 3 14:10:40 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.107: +17 -7 lines
Diff to previous 1.107
In EF-FLUSH, we need to handle bare surrogates ourselves for the case
where the external format does not have a flush-state method.

Revision 1.107 - (view) (annotate) - [select for diffs]
Sat Jul 3 13:39:20 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.106: +17 -11 lines
Diff to previous 1.106
code/extfmts.lisp:
o Add error parameter to flush-state in external format definition so
  we can handle errors when flushing the state to a stream.
o Add optional error parameter to flush-state macro.

code/fd-stream.lisp:
o For the case where an external format has flush method, EF-FLUSH was
  not calling it correctly.  Update so the output function actuall
  works.
o Add error handler to call to flush-state.
o For the case where an external format does not have a flush method,
  output the state value instead of a replacement character so the
  external format can handle any errors.

Revision 1.106 - (view) (annotate) - [select for diffs]
Fri Jul 2 23:06:26 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.105: +29 -14 lines
Diff to previous 1.105
code/extfmts.lisp:
o Pass the error handler on for composed external formats.

code/fd-stream.lisp:
o Forgot to pass the error-handler to char-to-octets in EF-COUT.
o In MAKE-FD-STREAM slightly change handling of encoding-error and
  decoding-error:
  - If :encoding-error is a character, then the external format will
    use that character whenever an encoding error happens instead of
    the default (internally specified by the external format).
  - If :decoding-error is a character, then the external format will
    use that character whenever an encoding error happens instead of
    the default (internally specified by the external format).  If
    :decoding-error is T, then a cerror is signaled; if continued, the
    Unicode replacement character (#\U+FFFD) is used.
o Fix bug in OPEN:  The :decoding-error and :encoding-error keyword
  parameter was placed in the &aux section by mistake.

Revision 1.105 - (view) (annotate) - [select for diffs]
Fri Jul 2 16:29:55 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.104: +9 -9 lines
Diff to previous 1.104
code/extfmts.lisp:
o The optional error parameter doesn't need to be optional in
  DEFINE-EXTERNAL-FORMAT, EF-STRING-TO-OCTETS, EF-OCTETS-TO-STRING,
  EF-ENCODE and EF-DECODE.

code/fd-stream.lisp:
o Update comments for char-to-octets-error and octets-to-char-error.
o Forgot to pass the error handler to char-to-octets in EF-SOUT and
  EF-STRLEN.

Revision 1.104 - (view) (annotate) - [select for diffs]
Fri Jul 2 11:57:53 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.103: +2 -2 lines
Diff to previous 1.103
Oops.  Remove stray character.

Revision 1.103 - (view) (annotate) - [select for diffs]
Fri Jul 2 02:50:35 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.102: +26 -10 lines
Diff to previous 1.102
Implement more of the external format error handlers.

code/extfmts.lisp
o Call the error handler for iso8859-1 output.
o In OCTETS-TO-CODEPOINT and CODEPOINT-TO-OCTETS, call the external
  format with the error argument.
o In OCTETS-TO-CHAR
  - Call OCTETS-TO-CODEPOINT with the error handler.
  - For all of the error conditions, call the error handler if
    defined.
o Add error parameter to EF-STRING-TO-OCTETS and EF-ENCODE so we can
  handle errors.  Call CHAR-TO-OCTETS with the error handler.
o Add error parameter to STRING-TO-OCTETS and use it.
o Add error parameter to EF-OCTETS-TO-STRING and EF-DECODE so we can
  handle errors.  Call OCTETS-TO-CHAR with the error handler.
o Add error parameter to OCTETS-TO-STRING and use it.
o In STRING-ENCODE and STRING-DECODE, call the ef function with the
  error handler.
o Change STRING-ENCODE to use keyword args instead of optional args.
  Add error parameter and use it.

code/fd-stream-extfmt.lisp:
o Tell OCTETS-TO-STRING about the error handler stored in the
  fd-stream.

code/fd-stream.lisp:
o OPEN, MAKE-FD-STREAM, and OPEN-FD-STREAM get DECODING-ERROR and
  ENCODING-ERROR keyword arguments for specifying how to handle
  decoding and encoding errors in external formats.

code/stream.lisp:
o Make sure the error handler is called in
  FAST-READ-CHAR-STRING-REFILL.

pcl/simple-streams/external-formats/utf-8.lisp:
o Initial cut at calling the error handler for the various possible
  invalid octet streams for a utf-8 encoding.

Revision 1.102 - (view) (annotate) - [select for diffs]
Wed Jun 30 00:52:15 2010 UTC (3 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2010-07
Changes since 1.101: +15 -2 lines
Diff to previous 1.101
Add two more slots to an fd-stream to indicate how to handle errors
when converting octets to characters or characters to octets.  These
aren't currently being used, but will be.

A basic cross-compile is needed.  When CMUCL asks about incompatible
structures, select the CLOBBER-IT restart in all cases.

Revision 1.101 - (view) (annotate) - [select for diffs]
Mon Jun 7 22:10:11 2010 UTC (3 years, 10 months ago) by rtoy
Branch: MAIN
Changes since 1.100: +2 -2 lines
Diff to previous 1.100
code/fd-stream.lisp:
o OPEN merges the filename with *DEFAULT-PATHNAME-DEFAULTS*, as
  required by CLHS sec 19.2.3.

code/filesys.lisp:
o DELETE-FILE, ENSURE-DIRECTORIES-EXIST, and FILE-AUTHOR merge the
  filename with *DEFAULT-PATHNAME-DEFAULTS*, as required by CLHS sec
  19.2.3.

general-info/release-20b.txt:
o Update.

Revision 1.100 - (view) (annotate) - [select for diffs]
Tue Apr 20 17:57:44 2010 UTC (4 years ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2010-05, snapshot-2010-06
Changes since 1.99: +43 -43 lines
Diff to previous 1.99
Change uses of _"foo" to (intl:gettext "foo").  This is because slime
may get confused with source locations if the reader macros are
installed.

Revision 1.99 - (view) (annotate) - [select for diffs]
Mon Apr 19 02:18:03 2010 UTC (4 years ago) by rtoy
Branch: MAIN
Changes since 1.98: +16 -16 lines
Diff to previous 1.98
Remove _N"" reader macro from docstrings when possible.

Revision 1.98 - (view) (annotate) - [select for diffs]
Fri Mar 19 15:18:59 2010 UTC (4 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: post-merge-intl-branch, snapshot-2010-04
Changes since 1.97: +66 -58 lines
Diff to previous 1.97
Merge intl-branch 2010-03-18 to HEAD.  To build, you need to use
boot-2010-02-1 as the bootstrap file.  You should probably also use
the new -P option for build.sh to generate and update the po files
while building.

Revision 1.97 - (view) (annotate) - [select for diffs]
Mon Jan 25 13:58:01 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: intl-2-branch-base, intl-branch-base, pre-merge-intl-branch, snapshot-2010-02, snapshot-2010-03
Branch point for: intl-2-branch, intl-branch
Changes since 1.96: +6 -6 lines
Diff to previous 1.96
STRING-ENCODE has start and end indices.  Use them instead of consing
up another string.

Revision 1.96 - (view) (annotate) - [select for diffs]
Sat Jan 23 18:02:05 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.95: +2 -3 lines
Diff to previous 1.95
Oops.  Last change to fd-stream doesn't actually compile because no
everything is defined yet.  Hence, add dummy
%SET-FD-STREAM-EXTERNAL-FORMAT and move the real one to
fd-stream-extfmt.lisp.  This builds.

code/fd-stream.lisp:
o Always call %SET-FD-STREAM-EXTERNAL-FORMAT, even if
  LISP::*ENABLE-STREAM-BUFFER-P* is NIL.

code/stream.lisp:
o Move %SET-FD-STREAM-EXTERNAL-FORMAT to fd-stream-extfmt.lisp.
o Add dummy implementation of %SET-FD-STREAM-EXTERNAL-FORMAT.

code/fd-stream-extfmt.lisp:
o %SET-FD-STREAM-EXTERNAL-FORMAT moved here.

Revision 1.95 - (view) (annotate) - [select for diffs]
Sat Jan 23 03:00:07 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.94: +2 -3 lines
Diff to previous 1.94
Always set the external format for the stream after calling
set-routines so that the stream has the specified external format.

Revision 1.94 - (view) (annotate) - [select for diffs]
Fri Jan 22 13:28:26 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.93: +12 -4 lines
Diff to previous 1.93
Oops.  The string buffer contains characters, so to get the correct
file position, we need to convert what's left in the buffer into
octets to figure out how many octets haven't been delivered yet.

Revision 1.93 - (view) (annotate) - [select for diffs]
Fri Jan 22 06:14:19 2010 UTC (4 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.92: +13 -2 lines
Diff to previous 1.92
Fix FILE-POSITION for fd-streams with a string buffer.  It was
inadvertently broken when the fast external format work was done.  The
position did not take into account the number of octets that had been
read in but not yet processed.

Revision 1.92 - (view) (annotate) - [select for diffs]
Sun Oct 18 14:21:24 2009 UTC (4 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: amd64-dd-start, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01
Branch point for: amd64-dd-branch
Changes since 1.91: +54 -14 lines
Diff to previous 1.91
Merge changes from unicode-string-buffer-impl-branch which gives
faster reads on external-formats.  This is done by adding an
additional buffer to streams so we can convert the entire in-buffer
into characters all at once.

To build this change, you need to do a cross-compile using
boot-2009-10-1-cross.lisp.  Using that build, do a normal build with
these sources.

For a non-unicode build use boot-2009-10-01.lisp with a 20a
non-unicode build.

code/extfmts.lisp:
o Add another slot to the extfmts for copying the state.
o Modify EF-OCTETS-TO-STRING and OCTETS-TO-STRING to support the
  necesssary changes for fast formats.  This is incompatible with the
  previous version because the string is not grown if needed.

code/fd-stream-extfmt.lisp:
o Set *enable-stream-buffer-p* to T so we have fast streams.

code/fd-stream.lisp:
o Add new slots to support fast strams.
o In SET-ROUTINES, initialize the new slots appropriately.
o Update UNREAD-CHAR to be able to back up in the string buffer to
  unread.
o Add implementation to copy the state of an external format.

code/stream.lisp:
o Change %SET-FD-STREAM-EXTERNAL-FORMAT to be able to change formats
  even if we've already converted the buffer with a different format.
  We reconvert the buffer with the old format until we reach the
  current character.  Then the remaining octets are converted using
  the new format and stored in the string buffer.
o Add FAST-READ-CHAR-STRING-REFILL to refill the string buffer, like
  FAST-READ-CHAR-REFILL does for the octet in-buffer.

code/struct.lisp:
o Add new slots to hold the string buffer, the current index, and
  length.  These are needed for the fast formats.

code/sysmacs.lisp:
o Update PREPARE-FOR-FAST-READ-CHAR, DONE-WITH-FAST-READ-CHAR, and
  FAST-READ-CHAR to support the string buffer.

code/string.lisp:
o Microoptimization of SURROGATEP to reduce the number of branchs.

general-info/release-20b.txt:
o Update with these changes

pcl/simple-streams/external-formats/utf-16-be.lisp:
pcl/simple-streams/external-formats/utf-16-le.lisp:
pcl/simple-streams/external-formats/utf-16.lisp:
o These formats actually have state, so update them to take a handle
  an initial state.  These are needed if the string buffer ends with a
  leading surrogate and the next string buffer starts with a trailing
  surrogate.  The conversion needs to combine the surrogates together.

Revision 1.91 - (view) (annotate) - [select for diffs]
Wed Sep 9 15:51:27 2009 UTC (4 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: unicode-string-buffer-base
Branch point for: unicode-string-buffer-branch
Changes since 1.90: +52 -37 lines
Diff to previous 1.90
Merge changes from 20a-pre1 (tag release-20a-pre1) to trunk.

Revision 1.90 - (view) (annotate) - [select for diffs]
Wed Aug 26 16:25:41 2009 UTC (4 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: release-20a-base
Branch point for: RELEASE-20A-BRANCH
Changes since 1.89: +49 -2 lines
Diff to previous 1.89
Add support for flushing out any state in an external format when
closing an output stream.  This causes things like

(with-open-file (s "foo" :direction :output :external-format :utf-8)
  (write-char #\u+d800 s))

to output the replacement character instead of creating an empty file.

code/extfmts.lisp:
o Add new slot to efx structure to hold the function to flush the
  state in an external format.
o Add accessor for the flush-state slot.
o Update DEFINE-EXTERNAL-FORMAT to allow specifying the flush
  function.
o Add macro to call the flush-state function.
o Added +EF-FLUSH+
o Use vm::defenum to name the constants instead of the hand-written
  values.
o Export +REPLACEMENT-CHARACTER-CODE+
o Document the slots in an efx stucture.

code/fd-stream.lisp:
o Add ef-flush def-ef-macro to flush the state of an external format
  when closing an output file.  If ef-flush-state is NIL, we just call
  EF-COUT to send out the replacement character.  Otherwise, the
  flush-state function is called to handle it.
o When closing an output character stream, call ef-flush to flush any
  state before flushing the buffers of the stream.
o Document the unicode slots in an fd-stream.

code/exports.lisp:
o Export +REPLACEMENT-CHARACTER-CODE+

Revision 1.89 - (view) (annotate) - [select for diffs]
Mon Aug 10 16:47:41 2009 UTC (4 years, 8 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2009-08
Changes since 1.88: +83 -81 lines
Diff to previous 1.88
Fixes from Paul Foley:

o Standard streams no longer change formats when
  *default-external-format* changes.  Use
  stream:set-system-external-format instead, or (setf
  external-format).
o char-to-octets properly handles surrogate characters being written.
o Makes simple-streams work again.

This change needs to be cross-compiled.  2009-07 binaries work for
cross-compiling using the 19e/boot-2008-05-cross-unicode-*.lisp
cross-compile script.

Revision 1.88 - (view) (annotate) - [select for diffs]
Thu Jun 25 01:48:59 2009 UTC (4 years, 9 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2009-07
Changes since 1.87: +20 -11 lines
Diff to previous 1.87
o Fix typo (extraneous backquote).
o Handle the surrogate pairs in our UTF-16 strings.

Revision 1.87 - (view) (annotate) - [select for diffs]
Wed Jun 24 16:46:18 2009 UTC (4 years, 9 months ago) by rtoy
Branch: MAIN
Changes since 1.86: +36 -5 lines
Diff to previous 1.86
Fix FILE-STRING-LENGTH to handle unicode streams.  From Paul.

Revision 1.86 - (view) (annotate) - [select for diffs]
Thu Jun 11 16:03:57 2009 UTC (4 years, 10 months ago) by rtoy
Branch: MAIN
CVS Tags: merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16
Branch point for: portable-clx-branch
Changes since 1.85: +279 -36 lines
Diff to previous 1.85
Merge Unicode work to trunk.  From label
unicode-utf16-extfmt-2009-06-11.

Revision 1.85 - (view) (annotate) - [select for diffs]
Mon Nov 5 15:25:03 2007 UTC (6 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: RELEASE_19f, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, release-19f-base, release-19f-pre1, snapshot-2007-12, snapshot-2008-01, snapshot-2008-02, snapshot-2008-03, snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, sse2-base, sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base, unicode-utf16-base
Branch point for: RELEASE-19F-BRANCH, release-19e-branch, sse2-branch, sse2-packed-branch, unicode-utf16-branch
Changes since 1.84: +78 -1 lines
Diff to previous 1.84
This removes some code duplication by moving bref, etc. (accessors for
simple-streams buffers) into LISP and removes them from simple-streams
(and from EXT).

Use boot-2007-11-1.lisp to bootstrap the necessary symbol changes.

Patch from Paul Foley.

Revision 1.84 - (view) (annotate) - [select for diffs]
Mon Feb 27 16:06:34 2006 UTC (8 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, pre-telent-clx, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19d-branch
Changes since 1.83: +6 -10 lines
Diff to previous 1.83
When reverting a file, don't delete the file if there was no
original.  This is the solution from Carl, for a bug reported by
Madhu, cmucl-imp, 2006-02-19.

Revision 1.83 - (view) (annotate) - [select for diffs]
Mon Apr 4 14:33:17 2005 UTC (9 years ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-base, release-19b-pre1, release-19b-pre2, release-19c, release-19c-base, release-19c-pre1, snapshot-2005-04, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12, snapshot-2006-01, snapshot-2006-02
Branch point for: release-19b-branch, release-19c-branch
Changes since 1.82: +51 -21 lines
Diff to previous 1.82
Change how the CMUCL extension enabling both character and binary I/O
is done, based on a suggestion from Lynn Quam.

o Add BINARY-TEXT-STREAM structure for streams that support binary and
  character I/O.  This is basically an FD-STREAM.
o Export BINARY-TEXT-STREAM from the EXTENSIONS package.
o OPEN will recognize :class 'ext:binary-text-stream to enable such
  streams.
o Removed *FD-STREAM-ENABLE-CHARACTER-AND-BINARY-INPUT*, since we use
  OPEN to specify that now.

Use boot-2005-03-2.lisp to bootstrap this change.

Revision 1.82 - (view) (annotate) - [select for diffs]
Mon Feb 21 17:14:28 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-03
Changes since 1.81: +19 -6 lines
Diff to previous 1.81
Apply Lynn Quam's proposed enhancements to fd-streams allowing input
streams opened with element-type (unsigned-byte 8) to be also opened
for character input.  This gives simple-streams semantics to
fd-streams.

* code/fd-stream.lisp
  o Make FD-STREAM-IN use PICK-INPUT-ROUTINE to select the correct
    type of input.
  o Add *FD-STREAM-ENABLE-CHARACTER-AND-BINARY-INPUT* to allow binary
    and character input.  Currently defaults to NIL, but will change
    to T.

* code/stream.lisp
  o New READ-INTO-SIMPLE-STRING to allow stream element-type of
    (unsigned-byte 8).
  o Support reading and writing simple arrays of single-float and
    double-float.
  o Strings can be written to streams of element-type '(unsigned-byte
    8).

* tools/worldcom.lisp
  o Compile stream-vector-io.lisp.

* tools/worldload.lisp
  o Load stream-vector-io.

* code/stream-vector-io.lisp
  o New file implementing READ-VECTOR and WRITE-VECTOR.

Revision 1.81 - (view) (annotate) - [select for diffs]
Thu Feb 10 17:49:46 2005 UTC (9 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: ppc_gencgc_snap_2005-05-14
Branch point for: ppc_gencgc_branch
Changes since 1.80: +19 -12 lines
Diff to previous 1.80
Signal a socket-error instead of a general error when a socket
connection is reset.  Based on code from Scott Burson, cmucl-imp,
2005-01-31.

Revision 1.80 - (view) (annotate) - [select for diffs]
Thu Sep 23 22:04:34 2004 UTC (9 years, 6 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02
Changes since 1.79: +4 -2 lines
Diff to previous 1.79
PICK-INPUT-ROUTINE was not correctly reading in positive bytes because
it always DPB'ed the result into -1, which always results in a
negative number.  We need to check the most significant bit to decide
what to do.

Revision 1.79 - (view) (annotate) - [select for diffs]
Fri Apr 23 15:08:15 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
CVS Tags: amd64-merge-start, prm-before-macosx-merge-tag, release-19a, release-19a-base, release-19a-pre1, release-19a-pre2, release-19a-pre3, snapshot-2004-05, snapshot-2004-06, snapshot-2004-07, snapshot-2004-08, snapshot-2004-09
Branch point for: release-19a-branch
Changes since 1.78: +119 -8 lines
Diff to previous 1.78
Enhance PICK-OUTPUT-ROUTINE and PICK-INPUT-ROUTINE to support byte
sizes up to MAX-STREAM-ELEMENT-SIZE (currently 1024).

Ported from SBCL, with minor changes.

Revision 1.78 - (view) (annotate) - [select for diffs]
Fri Apr 23 03:26:44 2004 UTC (9 years, 11 months ago) by rtoy
Branch: MAIN
Changes since 1.77: +5 -1 lines
Diff to previous 1.77
The CLHS says OPEN should signal a FILE-ERROR if the pathname is
WILD-PATHNAME-P.

Revision 1.77 - (view) (annotate) - [select for diffs]
Thu Apr 15 01:34:20 2004 UTC (10 years ago) by rtoy
Branch: MAIN
Changes since 1.76: +5 -2 lines
Diff to previous 1.76
More ANSI test fixes:

o FILE-STRING-LENGTH can be used on BROADCAST-STREAM's where the
  result is 1.
o Graphic characters are not printed using the character name (hence
  #\space is printed #\ )
o Make INPUT-STREAM-P and OUTPUT-STREAM-P work correctly on synonym
  streams.
o MAKE-STRING-INPUT-STREAM was not accepting NIL for the optional END
  argument.
o Close string-input streams.  (We weren't before.)

Revision 1.76 - (view) (annotate) - [select for diffs]
Tue Apr 6 08:43:29 2004 UTC (10 years ago) by emarsden
Branch: MAIN
Changes since 1.75: +31 -31 lines
Diff to previous 1.75
  - fix defaulting behaviour of :if-not-exist in OPEN when used with
    :direction :io. Corrects a number of the OPEN.IO.* ANSI compliance tests.

Revision 1.75 - (view) (annotate) - [select for diffs]
Fri Mar 26 18:22:54 2004 UTC (10 years ago) by emarsden
Branch: MAIN
CVS Tags: mod-arith-base, snapshot-2004-04
Branch point for: mod-arith-branch
Changes since 1.74: +5 -3 lines
Diff to previous 1.74
 - add a SIMPLE-STREAM-ERROR class, and use it when signaling errors from
   fd-streams DO-OUTPUT (noted by Matthew Danish)

 - fix bug in fd-stream error handling (patch from Ole Rohne)

Revision 1.74 - (view) (annotate) - [select for diffs]
Wed Nov 5 16:47:18 2003 UTC (10 years, 5 months ago) by gerd
Branch: MAIN
CVS Tags: snapshot-2003-12
Changes since 1.73: +8 -1 lines
Diff to previous 1.73
	* src/code/fd-stream.lisp (output-raw-bytes): Same theme
	as last change, which fixed write-char etc. only.

Revision 1.73 - (view) (annotate) - [select for diffs]
Mon Nov 3 16:50:28 2003 UTC (10 years, 5 months ago) by gerd
Branch: MAIN
Changes since 1.72: +9 -1 lines
Diff to previous 1.72
	(with-open-file (stream "test.123" :direction :output
	                        :if-exists :supersede)
	  (format stream "~S ~S ~S~%" 'these 'are 'symbols))

	(with-open-file (stream "test.123" :direction :io
	                        :if-exists :overwrite)
	  (read stream) (prin1 'insert stream))

	(with-open-file (stream "test.123")
	  (loop for line = (read-line stream nil)
	        until (null line) do (write-line line)))

	Output should be "these insertmbols"
	Output is "these are symbols\ninsert"

	* src/code/fd-stream.lisp (def-output-routines): If there is any
	input read from UNIX but not supplied to the user of the stream,
	reposition to the real file position as seen from Lisp.
	Reported by Adam Warner.

Revision 1.72 - (view) (annotate) - [select for diffs]
Tue Aug 19 09:26:57 2003 UTC (10 years, 8 months ago) by gerd
Branch: MAIN
CVS Tags: lisp-executable-base, snapshot-2003-10, snapshot-2003-11, sparc_gencgc_merge
Branch point for: lisp-executable
Changes since 1.71: +15 -1 lines
Diff to previous 1.71
	* src/code/fd-stream.lisp (fd-stream-read-n-bytes): Take unread
	into account.

Revision 1.71 - (view) (annotate) - [select for diffs]
Tue Aug 5 11:00:49 2003 UTC (10 years, 8 months ago) by emarsden
Branch: MAIN
CVS Tags: dynamic-extent-base, sparc_gencgc
Branch point for: dynamic-extent, sparc_gencgc_branch
Changes since 1.70: +2 -2 lines
Diff to previous 1.70
Fix typos.

Revision 1.70 - (view) (annotate) - [select for diffs]
Thu Jun 26 13:27:42 2003 UTC (10 years, 9 months ago) by toy
Branch: MAIN
Changes since 1.69: +13 -11 lines
Diff to previous 1.69
From Paul Foley:

Non-simple-streams-related changes:

* Stop commands which go through invoke-command-interactive from
  affecting the history variables.

* Fix some typos in comments

* When the GC closes a lost stream, revert to original contents

* Replace #+nil with #+(or) in unix*.lisp
  [NIL is a potentially valid feature name]


Simple-streams-related changes:

* Teach reader to handle simple-streams

* Add missing package prefixes in OPEN

* Add unix:unix-msync for force-output on mmapped files

* Add placeholder documentation

* Numerous changes in simple-streams implementation

* Add "external-formats" directory for external formats


Note: :BIG-ENDIAN or :LITTLE-ENDIAN should be put on *features*

Revision 1.69 - (view) (annotate) - [select for diffs]
Wed Jun 11 13:00:17 2003 UTC (10 years, 10 months ago) by emarsden
Branch: MAIN
Changes since 1.68: +2 -2 lines
Diff to previous 1.68
Fix typo in DELETE-ORIGINAL.

Revision 1.68 - (view) (annotate) - [select for diffs]
Tue Jun 10 16:52:36 2003 UTC (10 years, 10 months ago) by toy
Branch: MAIN
Changes since 1.67: +4 -4 lines
Diff to previous 1.67
Some changes from Paul Foley:

o Fix a number of spelling errors.
o Add EXT:PURGE-FILES (hmm, should that be renamed to
  purge-backup-files?) to delete old versions of files.
o Opening a file with :if-exists :append shouldn't set the Unix append
  flag, else you can't seek back to a point before you started
  appending. (Actually from Rudi Schlatte.)
o Fix a bug in logical pathname parsing.
o Fix FASL-file versioning so we don't create versioned fasl files.

Revision 1.67 - (view) (annotate) - [select for diffs]
Sat Jun 7 17:56:28 2003 UTC (10 years, 10 months ago) by toy
Branch: MAIN
Changes since 1.66: +11 -8 lines
Diff to previous 1.66
More simple-streams updates from Paul Foley:

o An update to fix Gerd's complaint about :simple-streams being on
  *features*
o Corrects a few bugs
o Renames all the strategy functions
o Gets rid of DEVICE-EXTEND (Duane Rettig tells me it's going away in
  the next ACL release)
o A start on getting stream& composition working.

Revision 1.66 - (view) (annotate) - [select for diffs]
Fri Jun 6 16:23:45 2003 UTC (10 years, 10 months ago) by toy
Branch: MAIN
Changes since 1.65: +315 -241 lines
Diff to previous 1.65
Initial import of Paul Foley's simple-streams implmentation.  Some
functionality is still missing, but Lisp streams and Gray streams
should behave unchanged.

Revision 1.65 - (view) (annotate) - [select for diffs]
Thu Jun 5 14:34:22 2003 UTC (10 years, 10 months ago) by toy
Branch: MAIN
Changes since 1.64: +38 -6 lines
Diff to previous 1.64
Creating new files with :if-exists :new-version wasn't creating a new
version.  Bug noted by Paul Foley, who supplied this fix.

Revision 1.64 - (view) (annotate) - [select for diffs]
Mon Jun 2 14:42:50 2003 UTC (10 years, 10 months ago) by toy
Branch: MAIN
Changes since 1.63: +2 -2 lines
Diff to previous 1.63
file-length returns two values instead of one, as required.  Bug and
solution from Wolfhard Buss.

Revision 1.63 - (view) (annotate) - [select for diffs]
Thu Dec 12 19:11:11 2002 UTC (11 years, 4 months ago) by moore
Branch: MAIN
CVS Tags: cold-pcl-base, release-18e, release-18e-base, release-18e-pre1, release-18e-pre2, remove_negative_zero_not_zero
Branch point for: cold-pcl, release-18e-branch
Changes since 1.62: +1 -3 lines
Diff to previous 1.62
Remove cruft from last checkin.

Revision 1.62 - (view) (annotate) - [select for diffs]
Thu Dec 12 19:09:45 2002 UTC (11 years, 4 months ago) by moore
Branch: MAIN
Changes since 1.61: +9 -2 lines
Diff to previous 1.61
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.

Revision 1.61 - (view) (annotate) - [select for diffs]
Fri Aug 23 18:31:05 2002 UTC (11 years, 7 months ago) by pmai
Branch: MAIN
CVS Tags: LINKAGE_TABLE, PRE_LINKAGE_TABLE, UNICODE-BASE
Branch point for: UNICODE-BRANCH
Changes since 1.60: +11 -9 lines
Diff to previous 1.60
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.

Revision 1.60 - (view) (annotate) - [select for diffs]
Fri Aug 2 14:43:08 2002 UTC (11 years, 8 months ago) by toy
Branch: MAIN
Changes since 1.59: +8 -2 lines
Diff to previous 1.59
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.

Revision 1.59 - (view) (annotate) - [select for diffs]
Wed Apr 3 18:30:40 2002 UTC (12 years ago) by pw
Branch: MAIN
Changes since 1.58: +2 -2 lines
Diff to previous 1.58
Fix some lossage from rev 1.58 causing read-byte on multi-byte element
types to fail.

Revision 1.58 - (view) (annotate) - [select for diffs]
Mon Feb 4 17:22:14 2002 UTC (12 years, 2 months ago) by toy
Branch: MAIN
Changes since 1.57: +5 -2 lines
Diff to previous 1.57
Marco Antoniotti's read-sequence and write-sequence routines that
"tries to be more intelligent about a bunch of `commonly' used
external format."

Revision 1.57 - (view) (annotate) - [select for diffs]
Sun Jul 8 17:37:52 2001 UTC (12 years, 9 months ago) by pw
Branch: MAIN
Changes since 1.56: +13 -2 lines
Diff to previous 1.56
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.

Revision 1.56 - (view) (annotate) - [select for diffs]
Sun Jun 17 19:06:58 2001 UTC (12 years, 10 months ago) by pw
Branch: MAIN
Changes since 1.55: +7 -1 lines
Diff to previous 1.55
From Eric Marsden:

FILE-LENGTH should signal a type-error if arg is not associated with a file.

Revision 1.55 - (view) (annotate) - [select for diffs]
Sun Mar 4 20:12:35 2001 UTC (13 years, 1 month ago) by pw
Branch: MAIN
Changes since 1.54: +2 -2 lines
Diff to previous 1.54
Change most PROCLAIMs to DECLAIMs.

Revision 1.54 - (view) (annotate) - [select for diffs]
Mon Oct 16 17:30:34 2000 UTC (13 years, 6 months ago) by dtc
Branch: MAIN
Changes since 1.53: +7 -6 lines
Diff to previous 1.53
Do not open /dev/tty when in batch mode.

Revision 1.53 - (view) (annotate) - [select for diffs]
Fri Aug 25 09:53:47 2000 UTC (13 years, 7 months ago) by pw
Branch: MAIN
Changes since 1.52: +2 -2 lines
Diff to previous 1.52
Backout previous offensive revision.

Revision 1.52 - (view) (annotate) - [select for diffs]
Thu Aug 24 14:56:17 2000 UTC (13 years, 7 months ago) by pw
Branch: MAIN
Changes since 1.51: +2 -2 lines
Diff to previous 1.51
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.

Revision 1.51 - (view) (annotate) - [select for diffs]
Mon Jun 19 16:08:38 2000 UTC (13 years, 10 months ago) by dtc
Branch: MAIN
Changes since 1.50: +20 -18 lines
Diff to previous 1.50
Rework the code to allow file offsets greater than the most positive
fixnum which was only around 500Meg, as noted by Martin Cracauer.

Revision 1.50 - (view) (annotate) - [select for diffs]
Sat Dec 4 16:02:34 1999 UTC (14 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.49: +8 -7 lines
Diff to previous 1.49
Minor documentation fixes.

Revision 1.49 - (view) (annotate) - [select for diffs]
Sat Sep 4 19:44:09 1999 UTC (14 years, 7 months ago) by dtc
Branch: MAIN
Changes since 1.48: +17 -19 lines
Diff to previous 1.48
Better handle interruption to unix-fast-select calls.

Revision 1.48 - (view) (annotate) - [select for diffs]
Fri Jan 22 16:51:58 1999 UTC (15 years, 3 months ago) by pw
Branch: MAIN
Changes since 1.47: +2 -2 lines
Diff to previous 1.47
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.

Revision 1.47 - (view) (annotate) - [select for diffs]
Fri Jan 15 09:27:35 1999 UTC (15 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.46: +2 -4 lines
Diff to previous 1.46
Backout the explicit check of the external-format argument to open
which is handled by the type checking and was being flushed anyway.

Revision 1.46 - (view) (annotate) - [select for diffs]
Sat Dec 19 16:02:24 1998 UTC (15 years, 4 months ago) by dtc
Branch: MAIN
Changes since 1.45: +4 -2 lines
Diff to previous 1.45
Check that the :default external-format is given to open.
Based on patches from Peter Van Eynde.

Revision 1.45 - (view) (annotate) - [select for diffs]
Thu Jul 16 13:30:45 1998 UTC (15 years, 9 months ago) by pw
Branch: MAIN
Changes since 1.44: +1 -3 lines
Diff to previous 1.44
Fixes and improvements to July-14 commit dealing with condition types
in calls to error. From Douglas.

Revision 1.44 - (view) (annotate) - [select for diffs]
Tue Jul 14 18:12:15 1998 UTC (15 years, 9 months ago) by pw
Branch: MAIN
Changes since 1.43: +14 -8 lines
Diff to previous 1.43
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.

Revision 1.43 - (view) (annotate) - [select for diffs]
Mon May 4 01:27:13 1998 UTC (15 years, 11 months ago) by dtc
Branch: MAIN
Changes since 1.42: +3 -3 lines
Diff to previous 1.42
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.

Revision 1.42 - (view) (annotate) - [select for diffs]
Sun Jan 4 22:46:41 1998 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.41: +10 -6 lines
Diff to previous 1.41
Use mp:process-wait-until-fd-usable with the MP feature to avoid
stream input blocking when there are other runnable processes.

Revision 1.41 - (view) (annotate) - [select for diffs]
Sat Dec 27 12:33:07 1997 UTC (16 years, 3 months ago) by dtc
Branch: MAIN
Changes since 1.40: +18 -13 lines
Diff to previous 1.40
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.

Revision 1.40 - (view) (annotate) - [select for diffs]
Tue Mar 25 17:07:31 1997 UTC (17 years ago) by dtc
Branch: MAIN
CVS Tags: RELEASE_18a
Branch point for: RELENG_18
Changes since 1.39: +4 -1 lines
Diff to previous 1.39
Be sure to remove any fd-steam-handler on an abort close.

Revision 1.39 - (view) (annotate) - [select for diffs]
Tue Feb 25 19:47:40 1997 UTC (17 years, 1 month ago) by dtc
Branch: MAIN
Changes since 1.38: +6 -2 lines
Diff to previous 1.38
Fix to set the stream element type for :output streams.

Revision 1.38 - (view) (annotate) - [select for diffs]
Sat Jan 18 14:31:02 1997 UTC (17 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.37: +13 -12 lines
Diff to previous 1.37
Werkowskis source kit 1.03.7

Revision 1.37 - (view) (annotate) - [select for diffs]
Tue May 7 20:47:10 1996 UTC (17 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.36: +36 -17 lines
Diff to previous 1.36
Added a suite of signed byte output routines because the unsigned ones weren't
type correct for signed operands, thus didn't consistently work.

Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Oct 31 04:11:27 1994 UTC (19 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.35: +1 -3 lines
Diff to previous 1.35
Fix headed boilerplate.

Revision 1.35 - (view) (annotate) - [select for diffs]
Sun Oct 2 22:43:26 1994 UTC (19 years, 6 months ago) by ram
Branch: MAIN
Changes since 1.34: +6 -2 lines
Diff to previous 1.34
Squelch assignment warning on open args (by &aux, YES!)

Revision 1.34 - (view) (annotate) - [select for diffs]
Tue Aug 23 18:31:59 1994 UTC (19 years, 8 months ago) by ram
Branch: MAIN
Changes since 1.33: +8 -8 lines
Diff to previous 1.33
In OPEN, fixed :direction :io :if-does-not-exist :create to actually create.

Revision 1.33 - (view) (annotate) - [select for diffs]
Sat Jan 8 18:42:47 1994 UTC (20 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.32: +10 -9 lines
Diff to previous 1.32
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.

Revision 1.32 - (view) (annotate) - [select for diffs]
Thu Jan 6 19:50:20 1994 UTC (20 years, 3 months ago) by ram
Branch: MAIN
Changes since 1.31: +17 -6 lines
Diff to previous 1.31
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.

Revision 1.31 - (view) (annotate) - [select for diffs]
Mon Aug 30 21:19:53 1993 UTC (20 years, 7 months ago) by ram
Branch: MAIN
Changes since 1.30: +3 -2 lines
Diff to previous 1.30
Update to new DEFINE-CONDITION syntax.

Revision 1.30 - (view) (annotate) - [select for diffs]
Wed Aug 4 12:26:25 1993 UTC (20 years, 8 months ago) by ram
Branch: MAIN
Changes since 1.29: +5 -4 lines
Diff to previous 1.29
Fix stuff.

Revision 1.29 - (view) (annotate) - [select for diffs]
Wed Aug 4 12:23:30 1993 UTC (20 years, 8 months ago) by ram
Branch: MAIN
Changes since 1.28: +10 -10 lines
Diff to previous 1.28
Unmade FILE-NAME a misc method, since it needs to work on closed streams.

Revision 1.28 - (view) (annotate) - [select for diffs]
Wed Aug 4 10:39:03 1993 UTC (20 years, 8 months ago) by ram
Branch: MAIN
Changes since 1.27: +24 -10 lines
Diff to previous 1.27
Changed :FILE-NAME back to a misc method.  Added fd-stream-pathname slot to
hold the non-unixified argument to open.

Revision 1.27 - (view) (annotate) - [select for diffs]
Thu Jun 24 13:58:09 1993 UTC (20 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.26: +25 -3 lines
Diff to previous 1.26
Added degenerate versions of stream-external-format, file-string-length and the
:external-format argument to open.

Revision 1.26 - (view) (annotate) - [select for diffs]
Thu Jun 24 13:48:47 1993 UTC (20 years, 10 months ago) by ram
Branch: MAIN
Changes since 1.25: +22 -35 lines
Diff to previous 1.25
Changed stuff to use EOF-OR-LOSE for signalling EOF.

Revision 1.25 - (view) (annotate) - [select for diffs]
Tue Jun 8 11:20:31 1993 UTC (20 years, 10 months ago) by wlott
Branch: MAIN
Changes since 1.24: +2 -1 lines
Diff to previous 1.24
Fixed :clear-input to flush any unread chars.

Revision 1.24 - (view) (annotate) - [select for diffs]
Fri Feb 26 08:25:27 1993 UTC (21 years, 1 month ago) by ram
Branch: MAIN
Changes since 1.23: +40 -105 lines
Diff to previous 1.23
new structure branch & tuning, see new_struct

Revision 1.23 - (view) (annotate) - [select for diffs]
Wed Feb 17 16:30:39 1993 UTC (21 years, 2 months ago) by ram
Branch: MAIN
Branch point for: new_struct
Changes since 1.22: +16 -10 lines
Diff to previous 1.22
Added type decls from efficency notes.

Revision 1.22 - (view) (annotate) - [select for diffs]
Thu Dec 10 01:09:52 1992 UTC (21 years, 4 months ago) by ram
Branch: MAIN
Changes since 1.21: +6 -1 lines
Diff to previous 1.21
Export FILE-STREAM from LISP as a synonym for FD-STREAM.  Add :INTERACTIVE-P
misc method.

Revision 1.21 - (view) (annotate) - [select for diffs]
Mon Mar 9 20:17:39 1992 UTC (22 years, 1 month ago) by wlott
Branch: MAIN
Changes since 1.20: +10 -13 lines
Diff to previous 1.20
Removed #+serve-event conditionalation.

Revision 1.20 - (view) (annotate) - [select for diffs]
Fri Feb 21 21:59:52 1992 UTC (22 years, 2 months ago) by wlott
Branch: MAIN
Branch point for: miles_hack
Changes since 1.19: +7 -9 lines
Diff to previous 1.19
Changed all SAP-REF-mumble functions to take the offset in bytes.

Revision 1.19 - (view) (annotate) - [select for diffs]
Fri Feb 14 23:44:45 1992 UTC (22 years, 2 months ago) by wlott
Branch: MAIN
Changes since 1.18: +65 -65 lines
Diff to previous 1.18
Merged new-alien changes onto trunk.

Revision 1.18 - (view) (annotate) - [select for diffs]
Mon Dec 16 12:48:45 1991 UTC (22 years, 4 months ago) by wlott
Branch: MAIN
Changes since 1.17: +13 -8 lines
Diff to previous 1.17
Fixed OPEN to deal with the fact that UNIX-NAMESTRING can return NIL.

Revision 1.17 - (view) (annotate) - [select for diffs]
Sat Dec 7 00:56:04 1991 UTC (22 years, 4 months ago) by wlott
Branch: MAIN
Changes since 1.16: +14 -4 lines
Diff to previous 1.16
Added finalization of opened streams.

Revision 1.16 - (view) (annotate) - [select for diffs]
Sat Nov 9 02:47:09 1991 UTC (22 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.15: +6 -6 lines
Diff to previous 1.15
Changed BASE-CHARACTER to BASE-CHAR

Revision 1.15 - (view) (annotate) - [select for diffs]
Fri May 24 17:02:25 1991 UTC (22 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.14: +35 -14 lines
Diff to previous 1.14
Added :TIMEOUT argument to MAKE-FD-STREAM.  The SYSTEM:IO-TIMEOUT condition is
signalled if a timeout is specified and exceeded.

Revision 1.14 - (view) (annotate) - [select for diffs]
Tue May 21 22:22:34 1991 UTC (22 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.13: +108 -77 lines
Diff to previous 1.13
Added many declarations indicated by efficiency notes.
Also, now in OPEN, we don't rename files that aren't writable.

Revision 1.13 - (view) (annotate) - [select for diffs]
Tue May 21 18:37:34 1991 UTC (22 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.12: +124 -11 lines
Diff to previous 1.12
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.

Revision 1.12 - (view) (annotate) - [select for diffs]
Sat May 18 19:06:01 1991 UTC (22 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.11: +7 -5 lines
Diff to previous 1.11
Added :EOF support in listen method, and fixed a few comments.

Revision 1.11 - (view) (annotate) - [select for diffs]
Sat May 18 13:38:36 1991 UTC (22 years, 11 months ago) by ram
Branch: MAIN
Changes since 1.10: +5 -6 lines
Diff to previous 1.10
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.

Revision 1.10 - (view) (annotate) - [select for diffs]
Fri Feb 8 13:32:31 1991 UTC (23 years, 2 months ago) by ram
Branch: MAIN
Changes since 1.9: +9 -5 lines
Diff to previous 1.9
New file header with RCS header FILE-COMMENT.

Revision 1.9 - (view) (annotate) - [select for diffs]
Sun Jan 13 00:52:08 1991 UTC (23 years, 3 months ago) by wlott
Branch: MAIN
Changes since 1.8: +49 -42 lines
Diff to previous 1.8
Added a retry case to the permision denied error in open.

Revision 1.8 - (view) (annotate) - [select for diffs]
Sat Nov 3 00:26:39 1990 UTC (23 years, 5 months ago) by wlott
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7
Changed predict-name to unix-namestring.

Revision 1.7 - (view) (annotate) - [select for diffs]
Mon Sep 24 17:22:32 1990 UTC (23 years, 7 months ago) by wlott
Branch: MAIN
Changes since 1.6: +4 -2 lines
Diff to previous 1.6
Fixed the clear-input method.

Revision 1.6 - (view) (annotate) - [select for diffs]
Thu Sep 6 19:40:38 1990 UTC (23 years, 7 months ago) by wlott
Branch: MAIN
Changes since 1.5: +20 -8 lines
Diff to previous 1.5
Added :clear-input method.  Changed base-character to character in
dispatching stuff.

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Aug 24 18:10:52 1990 UTC (23 years, 8 months ago) by wlott
Branch: MAIN
Changes since 1.4: +173 -169 lines
Diff to previous 1.4
Moved MIPS branch onto trunk; no merge necessary.

Revision 1.4 - (view) (annotate) - [select for diffs]
Fri Mar 16 15:26:37 1990 UTC (24 years, 1 month ago) by ram
Branch: MAIN
Changes since 1.3: +6 -0 lines
Diff to previous 1.3
.../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.

Revision 1.3 - (view) (annotate) - [select for diffs]
Thu Mar 8 16:23:09 1990 UTC (24 years, 1 month ago) by ram
Branch: MAIN
Changes since 1.2: +6 -6 lines
Diff to previous 1.2
Put in fix from wlott for unread-char/read-line interaction lossage.
 

Revision 1.2 - (view) (annotate) - [select for diffs]
Thu Mar 8 11:04:53 1990 UTC (24 years, 1 month ago) by ram
Branch: MAIN
Changes since 1.1: +1 -4 lines
Diff to previous 1.1
Changed make-immediate-type of random number to CODE-CHAR.

Revision 1.1 - (view) (annotate) - [select for diffs]
Thu Feb 22 11:54:29 1990 UTC (24 years, 2 months ago) by ram
Branch: MAIN
Initial revision

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5