diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-04-25 18:38:56 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-04-25 18:38:56 -0700 |
commit | 180ddff09533320cad4f90429950935f37c9932d (patch) | |
tree | 69dda5727cd6dd1621f67840af7ba9605666db08 /txr.1 | |
parent | 0221c15789fc87dc41c48598c772a947a0a5620d (diff) | |
download | txr-180ddff09533320cad4f90429950935f37c9932d.tar.gz txr-180ddff09533320cad4f90429950935f37c9932d.tar.bz2 txr-180ddff09533320cad4f90429950935f37c9932d.zip |
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.
Diffstat (limited to 'txr.1')
-rw-r--r-- | txr.1 | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -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. |