From 180ddff09533320cad4f90429950935f37c9932d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 25 Apr 2015 18:38:56 -0700 Subject: Allow (force ...) to be an assignable place. This allows mlet variables to be assignable. * eval.c (force_s): New global variable. (op_modplace): Handle force form. (me_mlet): Use force_s symbol. (force_l): New static function. (eval_init): Initialize force_s variable. Use it in registration of force function. * txr.1: Remove text in mlet definition that variables are not assignable. Replace with note about an unspecified behavior. --- txr.1 | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'txr.1') diff --git a/txr.1 b/txr.1 index 0c9109d3..5c1ddf71 100644 --- a/txr.1 +++ b/txr.1 @@ -15570,14 +15570,11 @@ construct, then its .meta init-form is never evaluated. -Any -.meta sym -which has no initializer is an ordinary variable. It is initialized -immediately with the value -.code nil -and may be assigned. Those -.metn sym -s -which have initializers may not be assigned. +The bound variables may be assigned. If, before initialization, a variable is +updated in such a way that its prior value is not needed, it is unspecified +whether initialization takes place, and thus whether its +.meta init-form +is evaluated. Direct circular references erroneous and are diagnosed. -- cgit v1.2.3