**//LabLISP versions.//** Change log of important versions. Version 1.5.1.4 on 20.01.2025: * 31 real math functions like ''SIN'', ''SQRT'', etc. * updated ''ROUND'' with divisor, and added ''FLOOR'', ''CEILING'', ''TRUNCATE'' * bugfix: CA..DR type functions now know their names * bugfix: function arguments are evaled in the local temporary context Version 1.5.1.0 on 27.08.2024: * LabLispHost added support for extension to LabApps::Device with initSymbols() * LabLispHost can provide optional packages Version 1.5.0.5 on 27.05.2024: * Serious refactoring of c++ code, but no changes in LabLisp * Only new function ''time-stamp'' * For Qt 5.15.2 and c++17, compiles with mingw 8.1 64bit * Separate c++ modules: IDE, ProcessControl and Environment * Now the hosting app just needs to create IDE, thread and window are then included automagically * Simplified attachment of LabLispHost * Interface for hosted functions is streamlined Version 1.3.4.0 on 07.03.2023: * Small polishing of code, shorter waiting time, now 10 ms. * Introduced form and result history symbols ''+'', ''++'', ''+++'', ''*'', etc. ''/'', etc. Version 1.3.3.0 on 05.12.2022: * Big rewrite of Reader, introduces reading modes ''#" "#'', ''#* *#'' and anchor ''#1='' and link ''#1#'' system. * Reader now issues comments on syntax errors, but handles them elegantly. * Reader dot operator ''.'', together with the anchor-link system allows creation of cyclic lists directly from reader. * Although lablisp is safe against cyclic data lists, the eval algorithm itself is not - please do not write cyclic programs. * Special opearator '',.'' aka ''hard-splice''. * Process can be aborted with ''self-kill''. Version 1.3.0.1 on 29.03.2022: * All functions safe against cyclic data lists. * ''proper-list-p'' predicate. * Printing safely cyclic lists, option ''*print-shared*'' for non-cyclic, but shared list structure. * Destruction of dropped cyclic list is still not handled and will leak memory. * Function definitions with ''&optional'' and ''&rest'' parameters, also ''&whole'' and ''&body'' for macros. * List-making functions ''nconc'' and ''append''. * Application functions ''mapcar'', ''maplist'', ''mapcan'', ''mapcon'', ''mapc'' and ''mapl''. * Comments and warnings come with ";" prepended. Version 1.2.8.0 on 07.09.2021 * Major change that introduces multiple values, as in function ''intern'', ''find-symbol'', ''macroexpand''. * Multiple-valued ''round'' and ''values'' functions. * Rewrote the macro system, now local macros are possible with ''macrolet''. * ''macroexpand'' and ''macroexpand-1'' now behave properly. * Introduced setf-able places, and ''setf'' special form. * Accessors ''nthcdr'', ''first'' to ''tenth'', also ''rest''. * Function ''last''. * The setf-able places make it possible to create cyclic lists, and that leads to crashes - don't make cyclic lists! Version 1.2.6.4 on 07.07.2021 * Changes to symbol bindings, allows ''defconstant''. * String functions ''write-to-string'' and ''concatenate''. * Function ''set''. * Integer atom now works with long long integer type. * User accessible flag ''*allow-non-literal-const*''. Version 1.2.6.0 on 14.05.2021 * Small change to the LabLispHost attachment. Polishing the multi-process evaluation algorithms internally. * ''sleep'' special function. * ''dolist'' and ''dotimes'' now accept optional result form. * Special forms ''flet'' and ''labels'' for local function definitions. * ''load'' now has optional argument to make it silent. Version 1.2.5.3 on 20.04.2021 * Applicative functions ''funcall'' and ''apply''. * ''cond'' special operator. * ''setq'' now accepts multiple pairs. Version 1.2.4.7 on 09.04.2021 * Changed the old read/eval mechanism for the expansions of quoting characters, now they are done by reader already. * Split the value and function namespaces. * To that, adding ''boundp'', ''fboundp'', ''symbol-value'', ''symbol-function'', ''functionp'', ''packagep'', ''special-operator-p''. * ''function'' and sharp-quote (''#’'') expansion. Version 1.2.3.7 on 26.01.2021 * Rebuilt LabLispHost attachment mechanics. * Functions ''read'' and particularly ''load''. * Added ''integerp''. * Rebuilt lexical closures, now free variables from closure are evaluated in the dynamic environment. * Introduced ''lambda'' form. Version 1.2.3.0 on 12.12.2020 * Added several functions for packaging: ''make-symbol'', ''intern'', ''import'', ''export'', ''unintern'', ''unexport'', ''package-use-list'', ''package-used-by-list'', ''package-internal-symbols'', ''package-external-symbols'', ''unuse-package''. * Whole packaging system is upgraded to work pretty much as in Common LISP, but still missing shadowing of symbols. * Reader and printer follow the colon and double colon rules for external and internal symbols in packages. * Renamed the predicate functions to be consistent with Common LISP (''symbolp'' instead of ''symbol?'' etc.). * In general, realized that it make sense to stick to Common LISP language. * Corrected some hidden artefacts of quoting. Version 1.2.1.5 on 19.11.2020 * Macro system with ''defmacro'' and ''macroexpand'' function. Version 1.2.0.6 on 04.11.2020 * Fixed the command history and colors in output window. * Generalized the constant function to symbols and lists (constant expressions). * Whole multithreaded processing with ''name-process'' and ''kill'' functions. * Smart ''wait''. * Backquoting, unquoting and splicing. Version 1.1.1.9 was initially deployed in lab on 16.07.2020 * Single LISP expression eval. * Very basic dialect, no macros, no lexical closures, single value and function namespace.