newLISP Changelog

New in version 10.6.1

September 17th, 2014
  • Development release v.10.6.1 makes additions and improvements in several areas and fixes bugs.

New in version 10.6.0 (September 17th, 2014)

  • Stable release 10.6.0 now has a native expansion macro function and adds many other improvements in several areas.

New in version 10.5.7 (February 19th, 2014)

  • Additions and changes:
  • In json-parse the last element in JSON arrays may inow have a trailing comma.
  • In arithmetic big integer operators: + - * / %, now more than two operands are allowed as in normal precision integer operations.
  • The gcd function now supports big integer operations.
  • On Windows format now supports UNIX format characters for 64-bit integers, i.e.: %lld %llu %llx %llX, additionally to: %I64d %I64u %I64x %I64X.
  • The pretty-print default float setting has been changed to "%1.15g".
  • On Linux and MacOS X 10.9+ the % format character can be followed by a single quote ' when using the format function. This causes thousand's separators to be inserted in decimal integer and floating point number formats, e.g.: (format "%'d" 12345) ;=> 12,345. Not working on all locale settings.
  • reset now also cancels command line parameter processing.
  • apply, corr, map, reverse, stats and t-test can now be used on arrays.
  • When making hash trees using the predefined context Tree, the default symbol in the new context is protected as is Tree:Tree. Default symbols in hash trees must always be nil for the hash statement syntax for namespaces to work.
  • When copying symbols with new or def-new, the protected? property is copied too.
  • An empty list as index vector for a list or array yields the original list or array as return value:
  • (set 'L '(1 2 (3 4)))
  • (L '()) => (1 2 (3 4))
  • (nth '() L) => (1 2 (3 4))
  • The int function handles binary numbers in strings as in "0b101010" for the number 42. This number format was introduced in v.10.4.4.
  • Integers are accepted as hash keys. This allows creating sparse vectors:
  • (new Tree 'V)
  • (V 123 "hello")
  • (V 123) => "hello"
  • Anaphoric system variable $it is now also set to the value of the conditional expression in if.
  • length now returns the number of digits when used on integers as it does already on big integers. On floats the number of digits before the decimal separator is returned.
  • newLISP can now be compiled to JavaScript and run in a web browser. The compile is done using the Emscripten tool set. A complete package to run newLISP in a web browser will be released.
  • Changes and additions in Guiserver:
  • New table functions: gs:table-remove-row, gs:table-set-column-name and gs:table-set-row-count. To avoid API naming confusion, the naming of old gs:table-set-row-number is deprecated and should be called as gs:table-show-row-number. The old naming will continue to work. Thanks to Ferry de Bruin for implementing the new functions.
  • When creating a table using gs:table, a headerless table can be created by specifying empty strings "" for all column headers. The function gs:table-add-column will work accordingly.
  • Three new optional parameters for gs:scroll-pane can specify column headers, row headers and a widget for the top left corner of a table used in the scroll pane.
  • Bug fixes:
  • The big integer version of the -- (decrement) operator left the sign of the second operand changed.
  • bayes-query with Fisher's inverse ChiĀ² method calculated wrong probabilities when training in more than two categories. When training in two categories, the result probabilities were swapped, reporting the probability for the second category first. When using the Chain Bayesian method, results were always correct.
  • Fixed a cell leak introduced in version 10.5.4 when deleting contexts.
  • A fix in round when the value is 0.5.
  • The debugger will now always highlight the correct expression, not highlight the first of multiple instances.
  • find-all in string mode now returns the empty list () instead of nil when nothing is found and as described in the manual.
  • Fixed a crash bug when the colon operator has missing or wrong-type args on 64-bit compiles.
  • Other changes:
  • Documentarion changes.
  • Additions and changes to qa scripts.

New in version 10.5.6 (November 23rd, 2013)

  • This development release has small improvements and bugfixes in several areas.

New in version 10.5.5 (November 21st, 2013)

  • This development release has small improvements and bug fixes in several areas.

New in version 10.5.4 (October 3rd, 2013)

  • This stable release fixes bugs and adds two new call patterns to the t-test function.

New in version 10.5.3 (July 11th, 2013)

  • This version fixes bugs and adds functions for KMEANS cluster analysis.

New in version 10.5.2 (June 26th, 2013)

  • This development release fixes bugs and introduces functions for kmeans cluster analysis.

New in version 10.5.1 (June 5th, 2013)

  • This version fixes division for unlimited precision integers.
  • Normal 64-bit arithmetic was not affected.