diff --git a/Makefile b/Makefile index 0c76ceb..4b5b6b7 100644 --- a/Makefile +++ b/Makefile @@ -22,21 +22,22 @@ minilang/lib/libminilang.a: minilang/Makefile minilang/src/*.c minilang/src/*.h radb/libradb.a: radb/Makefile radb/*.c radb/*.h $(MAKE) -C radb PLATFORM=$(PLATFORM) libradb.a RADB_MEM=GC -obj/%_init.c: src/%.c | obj src/*.h - echo "" > $@ - cc -E -P -DGENERATE_INIT $(CFLAGS) $< | sed -f sed.txt | grep -o 'INIT_CODE .*);' | sed 's/INIT_CODE //g' > $@.tmp - mv $@.tmp $@ - -obj/rabs.o: obj/rabs_init.c src/*.h -obj/context.o: obj/context_init.c src/*.h -obj/target.o: obj/target_init.c src/*.h -obj/target_expr.o: obj/target_expr_init.c src/*.h -obj/target_file.o: obj/target_file_init.c src/*.h -obj/target_scan.o: obj/target_scan_init.c src/*.h -obj/target_meta.o: obj/target_meta_init.c src/*.h -obj/target_symb.o: obj/target_symb_init.c src/*.h -obj/targetset.o: obj/targetset_init.c src/*.h -obj/library.o: obj/library_init.c src/*.h +obj/%_init.done: src/%.c | obj src/*.h + echo "" > obj/$*_init.c + cc -E -P -DGENERATE_INIT $(CFLAGS) $< | sed -f sed.txt | grep -o 'INIT_CODE .*);' | sed 's/INIT_CODE //g' > obj/$*_init.tmp + mv obj/$*_init.tmp obj/$*_init.c + touch obj/$*_init.done + +obj/rabs.o: obj/rabs_init.done src/*.h +obj/context.o: obj/context_init.done src/*.h +obj/target.o: obj/target_init.done src/*.h +obj/target_expr.o: obj/target_expr_init.done src/*.h +obj/target_file.o: obj/target_file_init.done src/*.h +obj/target_scan.o: obj/target_scan_init.done src/*.h +obj/target_meta.o: obj/target_meta_init.done src/*.h +obj/target_symb.o: obj/target_symb_init.done src/*.h +obj/targetset.o: obj/targetset_init.done src/*.h +obj/library.o: obj/library_init.done src/*.h objects = \ obj/cache.o \ diff --git a/debian/changelog b/debian/changelog index 69fe8a6..31f251d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -rabs (2.31.0) UNRELEASED; urgency=medium +rabs (2.32.0) UNRELEASED; urgency=medium * Updates. * Updates. @@ -66,5 +66,7 @@ rabs (2.31.0) UNRELEASED; urgency=medium * Updates. * Updates. * Updates. + * Updates. + * Updates. - -- Raja Mukherji Wed, 31 Jul 2024 08:38:18 +0100 + -- Raja Mukherji Wed, 28 Aug 2024 21:16:10 +0100 diff --git a/docs/_util/minilang.py b/docs/_util/minilang.py index 5462a9b..9b73f7a 100644 --- a/docs/_util/minilang.py +++ b/docs/_util/minilang.py @@ -37,21 +37,21 @@ class MinilangLexer(RegexLexer): (r'-?\.[0-9]+((e|E)-?[0-9]+)?', Number), ('\"', String, 'string'), ('\'', String, 'string2'), - ('\(', Operator, 'brackets'), - ('\{', Operator, 'braces'), + (r'\(', Operator, 'brackets'), + (r'\{', Operator, 'braces'), (r'::[A-Za-z_][A-Za-z0-9_]*', Name.Attribute), (r':[A-Za-z_][A-Za-z0-9_]*', Name.Function), (':\"', Name.Function, 'method'), (r':>.*\n', Comment), (':<', Comment.Multiline, 'comment'), (r'\s+', Text), - (r'[A-Za-z_]\w*', Text), + (r'[A-Za-z_](\w|[₊₋₌₍₎⁰¹²³⁴⁵⁶⁷⁸⁹₀₁₂₃₄₅₆₇₈₉])*', Text), (':=', Operator), (',', Operator), (';', Operator), (':', Operator), - (']', Operator), - ('\[', Operator), + (r'\]', Operator), + (r'\[', Operator), (r'[!@#$%^&*+=|\\~`/?<>.-]+', Operator) ], 'string': [ @@ -62,7 +62,7 @@ class MinilangLexer(RegexLexer): 'string2': [ ('\'', String, '#pop'), (r'\\.', String.Escape), - ('{', Operator, 'braces'), + (r'\{', Operator, 'braces'), (r'.', String) ], 'method': [ @@ -71,11 +71,11 @@ class MinilangLexer(RegexLexer): (r'.', Name.Function) ], 'braces': [ - ('}', Operator, '#pop'), + (r'\}', Operator, '#pop'), include('root') ], 'brackets': [ - ('\)', Operator, '#pop'), + (r'\)', Operator, '#pop'), include('root') ], 'comment': [ diff --git a/docs/library/target.rst b/docs/library/target.rst index 863dddd..eb577b3 100644 --- a/docs/library/target.rst +++ b/docs/library/target.rst @@ -41,6 +41,10 @@ target Sets the build function for :mini:`Target` to :mini:`Function` and returns :mini:`Target`. The current context is also captured. +:mini:`meth (Target: target):cached_depends: targetset` + Returns the set of dependencies of :mini:`Target`. + + :mini:`meth (Target: target):context: context | nil` Returns the build context of :mini:`Target` if one has been set, otherwise returns :mini:`nil`. diff --git a/minilang b/minilang index 906f4d5..593f281 160000 --- a/minilang +++ b/minilang @@ -1 +1 @@ -Subproject commit 906f4d5051e6005c4707759a33b9be092c9f1eb1 +Subproject commit 593f2815fe3ad31b00594b088921c02500a66dce diff --git a/src/rabs.c b/src/rabs.c index 49b6cd0..bb9f6c5 100644 --- a/src/rabs.c +++ b/src/rabs.c @@ -192,9 +192,9 @@ static ml_value_t *load_file(const char *FileName) { load_file_state_t State[1]; State->Base.run = (void *)load_file_loaded; - State->Base.Context = &MLRootContext; + State->Base.Context = MLRootContext; State->Result = MLNil; - mlc_expr_t *Expr = ml_accept_file(Preprocessor->Parser); + const mlc_expr_t *Expr = ml_accept_file(Preprocessor->Parser); if (!Expr) { return ml_parser_value(Preprocessor->Parser) ?: ml_error("FileError", "Error loading file %s", FileName); } @@ -1117,7 +1117,7 @@ int main(int Argc, char **Argv) { } if (InteractiveMode) { target_interactive_start(NumThreads); - ml_console(&MLRootContext, rabs_ml_global, Globals, "--> ", "... "); + ml_console(MLRootContext, rabs_ml_global, Globals, "--> ", "... "); } else if (WatchMode) { #ifdef Linux targetwatch_wait(restart); diff --git a/src/rabs.h b/src/rabs.h index 88496c3..201f528 100644 --- a/src/rabs.h +++ b/src/rabs.h @@ -30,7 +30,7 @@ extern __thread target_t *CurrentTarget; ml_value_t *rabs_global(const char *Name); ml_value_t *rabs_ml_global(void *Data, const char *Name, const char *Source, int Line, int Mode); -#define CURRENT_VERSION 2, 31, 0 +#define CURRENT_VERSION 2, 32, 0 #define MINIMAL_VERSION 2, 10, 0 #endif