Path to this page:
Subject: CVS commit: pkgsrc/lang/newlisp
From: Ryo ONODERA
Date: 2014-07-07 16:25:32
Message id: 20140707142532.193A896@cvs.netbsd.org
Log Message:
Update to 10.6.0 from 10.5.4
* Add Java dependency, it is used with GUI server.
Changelog:
10.5.5 2013 November 20th, development release
Allow trailing , (comma) in JSON arrays. The new JSON ECMA-404 seems not
to allow it but the JavaScript standard ECMA-262 and many browsers do.
Added makefile_linux_openwrt for for TP-link TL-WR703N travel router
contributed by Dexter.
In arithmetik big integer operations + - * / % more than two operands
are allowed as in normal precision integer operations.
On Windows support UNIX conventions for formatting 64-bit integers.
I.e.: %lld %llu %llx %llX additionally to %I64d %I64u %I64x %I64X
Added ++, -- to qa-bigint. Fixed sign change on second operand of
bigint -- when second operand was negative.
Some cleanup in Cilk API when releasing resources.
The 'gcd' function now also works on big integers and > 2 operands.
On UBUNTU Linux decimal numbers can be formatted using a GNU extension
in libc, e.g: (format "%'d" 12345) => 12,345
The optional ' (single quote) after the % character causes thousands
to be separated with the appropiate character for the current locale.
Fixed a cell leak introduced in 10.5.5 when deleting contexts.
The default pretty-print float setting has been changed to "%1.15g".
'reset' now also cancels command line parameter processing.
A fix in 'round' when number is exacty 0.5.
'map', 'apply', 'stats', 'corr', 't-test' now also can take arrays
'bayes-query' with Fisher's Chi2 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. 'bayes-query' calculating
probabilities with the Chain Bayesian method - using the true flag -
was not affected.
Many documentation changes and corrections.
10.5.6 December 10th, 2013, development release
Since OSX 10.9 Maverick (format "%'d" 12345) => 12,345 will work too.
Will not work on any locale but works on en_US.UTF-8.
Fixed 'apply' for arrays introduced in 10.5.5 for a cell/memory leak.
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 be 'nil' in order for the hash
statement syntax for namespaces to work.
When copying symbols from a source context to a target contest using '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))
Many document changes, additions and corrections.
'int' can convert binarys numbers like (int "0b11111") => 31
This format is recognized by the code reader/loader since v.10.4.4.
Integers are accepted as hash keys. This allows creating sparse vectors:
(new Tree 'V)
(V 123 "hello")
(V 123) => "hello"
'reverse' can be used on arrays.
Anaphoric system variable $it is now set to the value of the conditional
expression in 'if'.
Speed improvements in evaluateExpression(). For this The -pendatic option
has been turned off in Linux to avoid ISO C90 mixed declaration warnings.
'length' on integers will return the number of digits, just like it already
does on bigint numbers, on floats returns the number of decimal digits before
the decimal separator.
10.5.7
Fixes for deprecated CYGWIN compile. See also makefile_cygwin for more info.
Clear potential error condition when doing 'import'.
In guiserver.jar: When adding columns with empty string headers, this will not
any more put the column number as header. This allows to add columns to
headerless tables, as possible when supplying empty string headers in the
initial gs:table statement.
Debugger will now always highlight the correct expression, not highlight
the first one if multiple instances exist.
Eliminated strncat() for BSD and better speed with memcpy() in most places.
Delay signal-behavior change in spawn after getting parameters. Makes better
error recovery.
In guiserver.jar: New table functions. Thanks to Ferry de Bruin.
gs:table-remove-row, gs:table-set-column-name and gs:table-set-row-count.
To avoid API naming confusions, 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. Three new optional parameters for
'gs:scroll-pane' can specify colun header, row headers and a widget
for the top left corner of a table used in the scroll pane.
'find-all' should return an empty list as documented when nothing is found
on strings too.
Some renaming of functions and constants for better code readability and
some small refactoring in several files.
qa-bench has been redone with changes for Emscripten compiled newLISP.
Now calibrates for comparison with Mac OSX 9.1 on 2.3GHz Intel Core i5.
Fixed a crash bug when colon operator has missing or wrong-type args
on 64-bit compiles.
newLISP compiled to JavaSript with Emscripten
---------------------------------------------
Added makefile_emscripten_lib_utf8. For this
Must download and install the Emscripten-SDK from here:
https://github.com/kripken/emscripten/wiki/Emscripten-SDK
Tested on OSX 10.9 installing emsdk-portable.tar.gz v.1.7.8
The newlisp-js-lib.js is made using makefile_emscripten_lib_utf8.
The new function 'eval-string-js' takes a JavaSript string.
New 'display-html' can either replace the current page or display
a page in a new tab of the host browser. 'display-html' must be
defined in Emscripten appplication .html
Some functions (filter, index, clean, exists, forl-all) will not show
error messages under certain circumstanmces in the monitor, although
newLISP behaves correctly throwing the exception (setjmp/longjmp), they
just don't reach the Emscripten console (log). In this case, if the error
is not 'catch'ed newLISP exits without advising why. This problem goes away
when compiling with Emscriptem without any optimizations, but slows
everything down by a factor of 40 to 50. Normal performance is around
1.5 of native on Mac OSX when excluding all time/date related functions
and a few other outliers. Including outliers about 2.65.
See also here: https://github.com/kripken/emscripten/issues/810
(volatile declaration did not help)
All file and directory functions work (almost all did all the time),
but changes are lost after leaving the page or reloading the page.
Storage is 'session storage' only. No URLs are in allowed in file
functions as is on native compiled newLISP.
As editor, CodeMirror from codemirror.net is used and mode/newlisp.js
was created for syntax high-lighting.
10.5.8
'macro' is now a built-in primitive function working exactly as described
in the macro.lsp module, which is now obsolete. Macros cannot be redefined
using 'macro'. Macros can be nested. A symbol used as a macro can only be
used as a macro, even if changing the definition of it.
Another speed improvement for 'read-line' on file handles (the first speed
improvement happend in 10.3.10).
10.6.0
Eliminated emscripten-lib.c, gets handled by unix-lib.c.
A fix for 'file?' and 'directory?' predicates when applied to root
directories on Windows.
Updated examples/udp-server.lsp to nmake it work on Windows.
Files: