Releases: cosmos72/schemesh
Releases · cosmos72/schemesh
Version 0.8.0
New features:
- add function
(sh-expr)
to create shell jobs that execute arbitrary Scheme code, and the corresponding macro(shell-expr)
- implement job control also on arbitrary Scheme code running inside a
(shell-expr)
- update both shell parser and Scheme parser to expand
$( )
to(shell-expr ( ))
Improvements:
- ignore newlines at the beginning of shell syntax: allows writing Scheme code in a new line under the REPL prompt
- ignore newlines after shell syntax tokens
{
[
!
;
&
&&
||
|
|&
<
<>
>
>>
<&
>&
- in most cases, this removes the need to end a line with\
for continuing a shell command in the next line - always queue job status change notifications for later displaying them, instead of sometimes displaying them immediately
Removed features:
- remove function
(sh-resume)
and subsume it into(sh-wait)
- rename shell builtin
expr
->value
- remove function
(sh-bool)
Version 0.7.7
Fixes:
- fix
(charhistory-save-to-path)
not to raise exceptions: it was preventing schemesh
from exiting if~/.cache/schemesh/
directory does not exist or is not writable
Version 0.7.6
New features:
- add new syntax for shell command substitution
$[ ]
and deprecate the old syntax$( )
- add shell builtin
cd-
changes current directory of parent job to its previous value - add shell builtin
parent
executes another builtin in parent's environment and current directory
If used multiple times, asparent parent command ls
, effects are cumulative - add string-related functions
(string-any) (string-contains) (string-count) (string-every) (string-index) (string-index-right) (string-join) (string-map) (string-replace-all) (string-replace-prefix) (string-replace-suffix) (string-prefix?) (string-suffix?)
- export existing string-related functions
(in-string) (string-fill-range!) (string-is-unsigned-base10-integer?) (string-is-signed-base10-integer?) (string-iterate) (string-list?) (string-list-split-after-nuls) (string-prefix/char?) (string-range-count=) (string-range=?) (string-range<?) (string-replace/char!) (string-rtrim-newlines!) (string-split) (string-split-after-nuls) (string-suffix/char?) (string-trim-split-at-blanks)
- add functions
(delete-directory) (delete-file) (file-directory?) (file-exists?) (file-regular?) (file-symbolic-link?)
they intentionally replace Chez Scheme functions with the same names, adding support for file and directory names that are not valid UTF-8 - add functions
(in-exact-range) (ok?)
Fixes:
- fix parsing character
\
followed by newline inside Scheme strings - fix parsing character
\
followed by newline in shell syntax - fix bugs in
(on-list)
and(in-fixnum-range)
- propagate tty configuration from each command execution to the following ones
Improvements:
- automatically
(import (schemesh))
at REPL - rename existing functions to better follow r7rs naming conventions
- rename shell builtin
test
->expr
and rename macro(shell-test)
->(shell-expr)
- improve function
(in-range)
to dispatch to one of the optimized implementations(in-fixnum-range) (in-exact-range) (in-flonum-range)
Version 0.7.5
Fixes:
- fix
utils/find_chez_scheme_dir.sh
for Alpine linux - fix a pair of bugged assertions that were triggered by valid code
{echo $A=}
- fix support for Chez Scheme down to 9.5.8
Improvements:
- rename shell builtin "error" -> "test"
- add command line option
--load-file FILE
and support for loading compiled Scheme libraries *.so - add functions
(alist->eq-hashtable)
(alist->eqv-hashtable)
(alist->hashtable)
(file-rename)
(in-bytevector)
(in-bytespan)
(in-chargbuffer)
(in-charline)
(in-charlines)
(in-charspan)
(in-gbuffer)
(in-hashtable)
(in-list)
(in-span)
(in-string)
(in-vector)
(in-fixnum-range)
(in-flonum-range)
(in-range)
(on-list)
(sh-bool)
(sh-run/string-split-after-nuls)
(sh-version)
(string-replace)
- add macros
(for)
(for*)
(library-reexport)
(shell-test)
- add Fedora Linux build instructions to README.md
- add "Troubleshooting" section to README.md
- add more examples to README.md
Version 0.7.4
Minor improvements:
- update Makefile to follow GNU Makefile conventions - fixes issue #1
- add builtins "help copyright" and "help warranty"
- add more examples to README.md and mention more job-related Scheme functions
- sort the queued notifications about job status changes before displaying them
Version 0.7.3
Schemesh version 0.7.3
First stable release