Releases: hymkor/smake
Releases · hymkor/smake
v0.8.0
Changes in v0.8.0 (English)
- Changed the output destination of messages from
(sh),(make),(chdir), and(touch)from os.Stderr to the stream returned by(error-output). - Implemented
(lookpath), which returns the full path of the first executable found in the directories listed in thePATHenvironment variable. (Written in Go, so it's faster than the Lisp version(which), but only returns the first match.) - Added the
-poption to the executable to print the result of the last evaluated expression. - Update gmnlisp to v0.7.19
Changes in v0.8.0 (Japanese)
- os.Stderr となっていた
(sh),(make),(chdir),(touch)のメッセージの出力先を(error-output)の設定先とした。 - 環境変数 PATH のディレクトリリストを検索して最初に見付かった実行ファイルのフルパスを得る
(lookpath)を実装した ( Go製なので、Lisp版の(which)より速いが、最初に見付かったものしか列挙しない) - 最後に評価した値を表示するオプション
-pを追加 - gmplisp を v0.7.19 へ更新
v0.7.0
Changes in v0.7.0 (English)
- Support specifying multiple rule files with -f option (comma-separated). The first existing file is used. Defaults to "Makefile.lsp,smake.lsp".
- Added
(executable-not-found-p),(exit-error-p), and(exit-code)to inspect conditions raised by(spawn ...). - Implement
(ansi-to-utf8) - Make
(spawn)and(sh)redirect their stdout and stderr to(standard-output)and (error-output) respectively - Reimplement
(q),(shell)and(sh-ignore-error)in Lisp instead of Go - Refactor
(file-for-each),(which),(updatep)and(probe-directory) - Add
*discard*as a global output stream that silently ignores all writes - Update gmnlisp to v0.7.17
Changes in v0.7.0 (Japanese)
-fオプションでカンマで区切った複数のルールファイルの指定をサポート. デフォルトは"Makefile.lsp,smake.lsp"(spawn ...)によって発生した状態を識別するための関数(executable-not-found-p),(exit-error-p),(exit-code)を追加(ansi-to-utf8)を実装(spawn)や(sh)で標準出力や標準エラー出力を(standard-output)や(error-output)へリダイレクトするようにした- Go で実装していた
(q),(shell),(sh-ignore-error)を Lisp で作り直した (file-for-each),(which),(updatep),(probe-directory)の実装を改善- すべての書き込みを破棄するグローバルな出力ストリーム出力先として
*discard*を実装 - gmnlisp を v0.7.17 へ更新
v0.6.0
Changes in v0.6.0 (English)
- Update gmnlisp to v0.7.16
- Added
import _ "github.com/hymkor/gmnlisp/eval"to enable optional(eval)and(load)functions in gmnlisp v0.7.15. *executable-name*is set to the path of executable (Compatible with lispect )- Added
(if-some),(when-some)and(cond-let)macros for optional value binding and conditional execution. - Implemented (which), a function similar to the Unix which command, that looks for executables in the system PATH.
(spawn)and(sh)now flush standard-output and error-output before execution.
Changes in v0.6.0 (Japanese)
- gmnlisp を v0.7.16 へ更新
- gmnlisp v0.7.15 でオプションになった
(eval)と(load)を有効にするため、import _ "github.com/hymkor/gmnlisp/eval"を追加した *executable-name*にsmake の実行ファイルのパスを設定するようにした (lispect と互換)- 条件分岐と let を組み合わせたマクロ
(if-some),(when-some),(cond-let)を追加 - 環境変数PATHで指定されるディレクトリリストから実行ファイルを検索する関数
(which)を追加 (spawn),(sh): 実行前に標準出力、標準エラー出力を Flush するようにした
v0.5.1
v0.5.0
- Added
*windows*, which evaluates toTwhen(getenv "OS")equals"Windows_NT". - Added
*dev-null*, which expands to"NUL"on Windows and"/dev/null"otherwise. - Added
*exe-suffix*, which expands to".exe"on Windows and an empty string otherwise. - Added
*path-separator*and*path-list-separator*for OS-specific path handling. - Added
spawn, implemented in Go, and reimplementedx,spawnlp, andspawnvpin Lisp. - Added
probe-directory. - Added
join-pathas a clearer replacement for the previously usedjoinpathandpathjoin. - Added
sh-ignore-error, which behaves like the deprecated(sh-). - Deprecated
joinpath,pathjoin, and(sh-), but kept them for backward compatibility. - Updated gmnlisp engine to version 0.7.11.
v0.4.3
v0.4.2
v0.4.1
v0.4.0
- Implement (string-fields "S")
- (wildcard) accepts N-arguments (N>=0)
- Update gmnlisp to v0.7.0
(apply #'make)can NOT be available now
- Implement
(updatep OBJ SRC*)which returns the newer files inSRCthanOBJ - Implement
-versionoption