Raymond Toy pushed to branch master at cmucl / cmucl
Commits: a773ea60 by Raymond Toy at 2016-09-26T19:50:47-07:00 Add documentation for run-program
* Document :input and :output behavior when they are string streams. * Document :element-type and :external-format
- - - - - 48c1dd59 by Raymond Toy at 2016-09-26T19:51:12-07:00 Update the date
Prepare for release 21b.
- - - - - 1b8f72ed by Raymond Toy at 2016-09-26T20:03:24-07:00 Update from logs
Fix some typos too.
- - - - -
3 changed files:
- src/docs/cmu-user/cmu-user.tex - src/docs/cmu-user/extensions.tex - src/general-info/release-21b.txt
Changes:
===================================== src/docs/cmu-user/cmu-user.tex ===================================== --- a/src/docs/cmu-user/cmu-user.tex +++ b/src/docs/cmu-user/cmu-user.tex @@ -48,7 +48,7 @@ \newcommand{\keywords}{lisp, Common Lisp, manual, compiler, programming language implementation, programming environment}
-\date{October 2014 \ 20f} +\date{October 2016 \ 21b}
\begin{document}
===================================== src/docs/cmu-user/extensions.tex ===================================== --- a/src/docs/cmu-user/extensions.tex +++ b/src/docs/cmu-user/extensions.tex @@ -1099,7 +1099,8 @@ It is possible to run programs from Lisp by using the following function. \morekeys{\kwd{if-input-does-not-exist}} \yetmorekeys{\kwd{output} \kwd{if-output-exists}} \yetmorekeys{\kwd{error} \kwd{if-error-exists}} - \yetmorekeys{\kwd{status-hook}}}} + \yetmorekeys{\kwd{status-hook} \kwd{external-format}} + \yetmorekeys{\kwd{element-type}}}}
\code{run-program} runs \var{program} in a child process. \var{Program} should be a pathname or string naming the program. @@ -1154,6 +1155,11 @@ It is possible to run programs from Lisp by using the following function. already contains all the input for the process. In this case \code{run-program} reads all the input from this stream before returning, so this cannot be used to interact with the process. + If \kwd{input} is a string stream, it is up to the caller to call + \code{string-encode} or other function to convert the string to + the appropriate encoding. In either case, the least significant 8 + bits of the \code{char-code} of each \code{character} is + sent to the program.
\item[\kwd{if-input-does-not-exist}] This specifies what to do if the input file does not exist. The following values are valid: @@ -1172,7 +1178,10 @@ It is possible to run programs from Lisp by using the following function. \code{process-output} slot contains an input stream from which you can read the program's output. \kwd{output} can also be a stream in which case all output from the process is written to this - stream. + stream. If \kwd{output} is a string-stream, each octet read from + the program is converted to a character using \code{code-char}. + It is up to the caller to convert this using the appropriate + external format to create the desired encoded string.
\item[\kwd{if-output-exists}] This specifies what to do if the output file already exists. The following values are valid: @@ -1197,6 +1206,15 @@ It is possible to run programs from Lisp by using the following function. the process changes status. This is especially useful when specifying \kwd{wait} as \nil. The function takes the process as a required argument. + + \item[\kwd{external-format}] This specifies the external format to + use for streams created for \code{run-program}. This does not + apply to string streams passed in as \kwd{input} or \kwd{output} + parameters. + + \item[\kwd{element-type}] If streams are created \code{run-program}, + use this as the \kwd{element-type} for the stream. Defaults to + \code{BASE-CHAR}.
% \item[\kwd{before-execve}] This specifies a function to run in the % child process before it becomes the program to run. This is
===================================== src/general-info/release-21b.txt ===================================== --- a/src/general-info/release-21b.txt +++ b/src/general-info/release-21b.txt @@ -48,7 +48,7 @@ New in this release: WITH-FLOAT-TRAPS-MASKED. * (EXPT 0 power) doesn't throw INTEXP-LIMIT-ERROR anymore for any integer value of power. - * Starting cmucl with "-dyanmic-space-size 0" means using the + * Starting cmucl with "-dynamic-space-size 0" means using the maximum possible heap size for the platform. * More descriptive docstring for * *environment-list* @@ -56,16 +56,21 @@ New in this release: * Maximum dynamic-space-size on Linux reduced to 1530 MB because that's the largest available space on 32-bit Ubuntu 11.10. * For linux, darwin, and solaris/sparc, the binding stack and - control stack are now mapped into memory whereever the OS wishes + control stack are now mapped into memory wherever the OS wishes to place them instead of being mapped into a fixed location. This is indicated by new feature :relocatable-stacks.
* ANSI compliance fixes: * PATHNAME-MATCH-P did not accept search-lists. + * (compile 'foo) returns the compiled function if foo is already + compiled. (See Ticket #24). This is a change in behavior for + developers where foo would be recompiled if the source was + available. Developers might want to investigate uncompile + combined with compile to get the old behavior back.
- * Bugfixes: + * Bug fixes: * Linux was missing unix-setitimer which prevented saving cores. - * Generate inxact exceptions more carefully. + * Generate inexact exceptions more carefully. * Fix FP issue when building with Xcode 7.2 (and newer versions of clang). (See ticket #12.) * Cleanups in handling floating-point exceptions. See Tickets #15 @@ -94,8 +99,13 @@ New in this release: * Ticket #27 fixed: Regression: ASDF test failures * Ticket #28 fixed: Recursive function definition during cross-compile + * Ticket #30 fixed: Compilation of (describe 'foo) + * Ticket #31 fixed: (compile #'foo) fails + * Ticket #24 fixed: Compilation of (compile 'foo) + * Ticket #32 fixed: doc fix: ext:run-program has no before-execve option
* Other changes: + * Update user manual.
* Improvements to the PCL implementation of CLOS:
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/compare/9fe2a7d9699b1a60d874868cc...