hare

The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

commit 85f1c204e87fc848c33746bbe207505c50c27431
parent bb4ef4f3180dcd8408b9ade0552ad3e11af97970
Author: Drew DeVault <sir@cmpwn.com>
Date:   Tue,  2 Mar 2021 15:07:39 -0500

stdlib: add dirs module

Diffstat:
Mgen-stdlib | 10+++++++++-
Mmk/stdlib.mk | 30++++++++++++++++++++++++++++--
2 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/gen-stdlib b/gen-stdlib @@ -155,6 +155,13 @@ crypto_sha256() { fi } +dirs() { + printf '# dirs\n' + gen_srcs dirs \ + xdg.ha + gen_ssa dirs fs os path +} + encoding_hex() { printf '# encoding::hex\n' gen_srcs encoding::hex \ @@ -239,7 +246,7 @@ hare_module() { scan.ha gen_ssa hare::module \ hare::ast hare::lex hare::parse strio fs io strings hash \ - crypto::sha256 + crypto::sha256 dirs } gensrcs_hare_parse() { @@ -441,6 +448,7 @@ bytes crypto_math crypto_random crypto_sha256 +dirs encoding_hex encoding_utf8 endian diff --git a/mk/stdlib.mk b/mk/stdlib.mk @@ -78,6 +78,9 @@ hare_stdlib_deps+=$(stdlib_crypto_random) stdlib_crypto_sha256=$(HARECACHE)/crypto/sha256/crypto.sha256.o hare_stdlib_deps+=$(stdlib_crypto_sha256) +stdlib_dirs=$(HARECACHE)/dirs/dirs.o +hare_stdlib_deps+=$(stdlib_dirs) + stdlib_encoding_hex=$(HARECACHE)/encoding/hex/encoding.hex.o hare_stdlib_deps+=$(stdlib_encoding_hex) @@ -212,6 +215,16 @@ $(HARECACHE)/crypto/sha256/crypto.sha256.ssa: $(stdlib_crypto_sha256_srcs) $(std @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ncrypto::sha256 \ -t$(HARECACHE)/crypto/sha256/crypto.sha256.td $(stdlib_crypto_sha256_srcs) +# dirs +stdlib_dirs_srcs= \ + $(STDLIB)/dirs/xdg.ha + +$(HARECACHE)/dirs/dirs.ssa: $(stdlib_dirs_srcs) $(stdlib_rt) $(stdlib_fs) $(stdlib_os) $(stdlib_path) + @printf 'HAREC \t$@\n' + @mkdir -p $(HARECACHE)/dirs + @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Ndirs \ + -t$(HARECACHE)/dirs/dirs.td $(stdlib_dirs_srcs) + # encoding::hex stdlib_encoding_hex_srcs= \ $(STDLIB)/encoding/hex/hex.ha @@ -306,7 +319,7 @@ stdlib_hare_module_srcs= \ $(STDLIB)/hare/module/context.ha \ $(STDLIB)/hare/module/scan.ha -$(HARECACHE)/hare/module/hare.module.ssa: $(stdlib_hare_module_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_parse) $(stdlib_strio) $(stdlib_fs) $(stdlib_io) $(stdlib_strings) $(stdlib_hash) $(stdlib_crypto_sha256) +$(HARECACHE)/hare/module/hare.module.ssa: $(stdlib_hare_module_srcs) $(stdlib_rt) $(stdlib_hare_ast) $(stdlib_hare_lex) $(stdlib_hare_parse) $(stdlib_strio) $(stdlib_fs) $(stdlib_io) $(stdlib_strings) $(stdlib_hash) $(stdlib_crypto_sha256) $(stdlib_dirs) @printf 'HAREC \t$@\n' @mkdir -p $(HARECACHE)/hare/module @HARECACHE=$(HARECACHE) $(HAREC) $(HAREFLAGS) -o $@ -Nhare::module \ @@ -565,6 +578,9 @@ hare_testlib_deps+=$(testlib_crypto_random) testlib_crypto_sha256=$(TESTCACHE)/crypto/sha256/crypto.sha256.o hare_testlib_deps+=$(testlib_crypto_sha256) +testlib_dirs=$(TESTCACHE)/dirs/dirs.o +hare_testlib_deps+=$(testlib_dirs) + testlib_encoding_hex=$(TESTCACHE)/encoding/hex/encoding.hex.o hare_testlib_deps+=$(testlib_encoding_hex) @@ -700,6 +716,16 @@ $(TESTCACHE)/crypto/sha256/crypto.sha256.ssa: $(testlib_crypto_sha256_srcs) $(te @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ncrypto::sha256 \ -t$(TESTCACHE)/crypto/sha256/crypto.sha256.td $(testlib_crypto_sha256_srcs) +# dirs +testlib_dirs_srcs= \ + $(STDLIB)/dirs/xdg.ha + +$(TESTCACHE)/dirs/dirs.ssa: $(testlib_dirs_srcs) $(testlib_rt) $(testlib_fs) $(testlib_os) $(testlib_path) + @printf 'HAREC \t$@\n' + @mkdir -p $(TESTCACHE)/dirs + @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Ndirs \ + -t$(TESTCACHE)/dirs/dirs.td $(testlib_dirs_srcs) + # encoding::hex testlib_encoding_hex_srcs= \ $(STDLIB)/encoding/hex/hex.ha @@ -795,7 +821,7 @@ testlib_hare_module_srcs= \ $(STDLIB)/hare/module/context.ha \ $(STDLIB)/hare/module/scan.ha -$(TESTCACHE)/hare/module/hare.module.ssa: $(testlib_hare_module_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_parse) $(testlib_strio) $(testlib_fs) $(testlib_io) $(testlib_strings) $(testlib_hash) $(testlib_crypto_sha256) +$(TESTCACHE)/hare/module/hare.module.ssa: $(testlib_hare_module_srcs) $(testlib_rt) $(testlib_hare_ast) $(testlib_hare_lex) $(testlib_hare_parse) $(testlib_strio) $(testlib_fs) $(testlib_io) $(testlib_strings) $(testlib_hash) $(testlib_crypto_sha256) $(testlib_dirs) @printf 'HAREC \t$@\n' @mkdir -p $(TESTCACHE)/hare/module @HARECACHE=$(TESTCACHE) $(HAREC) $(TESTHAREFLAGS) -o $@ -Nhare::module \