Release notes for TUF-PL Version 0.8.24 2020-10-02 +++++++++++++++++ - Function templates extendend revision, removed many one-word functions. Many deprecated still active. - Fixed bug in string () split by () if sep is single string - grouping of integer numbers - fix math int count - Statistics show MPZ usage (approx.) - integer arbitrary roots Version 0.8.23 2020-09-02 ++++++++++++++++++++++++++ - Allow keywords if, while, ... by pragma \C - exended power operator and cube root - short stack trace if stack overflow - enhance boot on new machine (e.g. testing for libraries) Version 0,8.18 2020-01-16 +++++++++++++++++++ - Allow '$' as context variable - Unification of templates Version 0,8 2020-01-16 +++++++++++++++++++ - Unification of templates, e.g. 'map m give ...' instead of 'give map m ...' - Attributes use ':' instead of point '.' for fields, but the compiler still supports field notation - Global literals (# = 33) available - Lists, but no list assignments - boolean expressions in assignments and returns - no anonymous functions - no bunch functions etc - local (:) and external (:+) functions - Exponentiation operator fully available - set if void operator '=~' works - still no else-if ('|?') - Map and row access overrides Version 2020-01-27 ++++++++++++++++++ - no global literals (#xx = 33) - No constraints - No bunch functions, no constructors and destructors, no attribute change callbacks - No lists and list assignments - Rationals have only 32 bit for both parts - no boolean expressions for assignments or returns, but a function may return ?+ or ?- - no anonymous functions - functions as items: rudimentary, no call syntax (as of ':('), use a library function - Variable can have only one variant like field, attribute, row or array index, i.e. not x.fld.fld nor x.fld[3] nor x[3].fld etc Assign to variable, then use. - No differentiation in local (:) and external (:+) functions; all are external - Exponentiation operator (^) only for floats - No literals with expontents, also not 3.5E6, must write 3.5*10.0^6.0 or x =: float from string '3.5E-6' - Internally no rational literals, just the expression a/b is evaluated. - No condensed notation - no void statements (single underscore or void () as only line contents - no conditional pragma - compile time error messagaes are not very specific - no pragma \^ or \? - neither continuation '..' nor auto-continuation - no error guards, neither blocks with ?? etc, nor function call :! and assignment =! - IMPORTANT: To check for stack overflow, there is no mechanism in C known to me; thus none for TUF-PL. Just a memory access error (Speicherzugriffsfehler) without any diagnostics occurs. - no weak vs strong assertions - row and array scans do not assert the reference is unchanged - no multiline strings (here documents) - Entities &thisline; and &callline; are not provided - no undersocres in variables or other words - set if not void assignment '=~' not implemented - no 'else-if', i.e. '|?' - no multilevel break and repeat - no comma separated lists in assertions - dependent blocks for assertions