From e5e0de957c0572e47a386f9e0eea0aaa08199d8d Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Thu, 19 Mar 2026 13:49:56 +0000 Subject: [PATCH] Release 0.0.6! --- docs/Home.md | 2 +- src/init.c | 4 +++- src/version.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/Home.md b/docs/Home.md index b4dfc0e..be2fad6 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -172,7 +172,7 @@ The following functions are provided as of release 0.0.6: | subtract | FUNC | `(- a b)`: Subtracts `b` from `a` and returns the result. Expects both arguments to be numbers. | | throw | FUNC | `(throw message cause)`: Throw an exception with this `message`, and, if specified, this `cause` (which is expected to be an exception but need not be).| | time | FUNC | `(time arg)`: Return a time object. If an `arg` is supplied, it should be an integer which will be interpreted as a number of microseconds since the big bang, which is assumed to have happened 441,806,400,000,000,000 seconds before the UNIX epoch. | -| try | SPFM | `(try forms... (catch symbol forms...))`: Doesn't work yet! | +| try | SPFM | `(try forms... (catch catch-forms...))`: Evaluate `forms` sequentially, and return the value of the last. If an exception is thrown in any, evaluate `catch-forms` sequentially in an environment in which `*exception*` is bound to that exception, and return the value of the last of these. | | type | FUNC | `(type object)`: returns the type of the specified `object`. Currently (0.0.6) the type is returned as a four character string; this may change. | | λ | SPFM | `(lamda arg-list forms...)`: Construct an interpretable λ function. | diff --git a/src/init.c b/src/init.c index b0d18da..0bfec24 100644 --- a/src/init.c +++ b/src/init.c @@ -537,7 +537,9 @@ int main( int argc, char *argv[] ) { bind_special( L"set!", L"`(set! symbol value namespace)`: Binds `symbol` in `namespace` to the value of `value`, altering the namespace in so doing, and returns `value`. If `namespace` is not specified, it defaults to the default namespace.", &lisp_set_shriek ); - bind_special( L"try", L"", &lisp_try ); + bind_special( L"try", + L"`(try forms... (catch catch-forms...))`: Evaluate `forms` sequentially, and return the value of the last. If an exception is thrown in any, evaluate `catch-forms` sequentially in an environment in which `*exception*` is bound to that exception, and return the value of the last of these.", + &lisp_try ); debug_print( L"Initialised oblist\n", DEBUG_BOOTSTRAP ); debug_dump_object( oblist, DEBUG_BOOTSTRAP ); diff --git a/src/version.h b/src/version.h index 462f9be..5638bc6 100644 --- a/src/version.h +++ b/src/version.h @@ -8,4 +8,4 @@ * Licensed under GPL version 2.0, or, at your option, any later version. */ -#define VERSION "0.0.6-SNAPSHOT" +#define VERSION "0.0.6"