From: Daniel Kochmański Date: Mon, 17 Aug 2015 11:40:08 +0000 (+0200) Subject: doc: Add section describing last changes X-Git-Tag: ECL-16.0.0~1^2~38 X-Git-Url: http://git.pulsar-zone.net/?a=commitdiff_plain;h=b706775d39be821476552d9845d346151e2b7f45;p=ecl.git doc: Add section describing last changes Signed-off-by: Daniel Kochmański --- diff --git a/doc/ansi_data_flow.xml b/doc/ansi_data_flow.xml index 8419160..939baa0 100644 --- a/doc/ansi_data_flow.xml +++ b/doc/ansi_data_flow.xml @@ -7,6 +7,39 @@ Data and control flow +
+ <function>LET</function>, <function>FLET</function>, + <function>LABELS</function> and <emphasis>lambda list</emphasis> + &ANSI; addendum + + &ANSI; doesn't specify what should happen if any of the + LET, FLET and + LABELS blocks contain many + bindings (or functions) + sharing the same name. Because the behavior varies between the + implementations and the programmer can't rely on the spec, &ECL; + signals an error if such situation + occurs. This is also very unlikely, that programmer does that + intentionally, since there is no valid use-case for it. + + + Moreover, while &ANSI; defines lambda + list parameters in the terms of + LET*, programmer can't provide an + initialization forms for required parameters. If required + parameters share the same name error is + signalled. + + + Described behavior is present in &ECL; since version + 16.0.0. Previously the + LET operator were using first binding, while + lambda lists used last occurrence. Both + FLET and LABELS were + singalling an error if C compiler was used and used last binding as + visible one when bytecmp was used. +
+
Minimal compilation