Commit graph

16 commits

Author SHA1 Message Date
jperkin
730f01bdc2 Pass --mandir. Fixes PKGMANDIR. 2016-04-01 16:22:15 +00:00
dholland
41c6e246f4 Add patch comments. 2015-12-29 23:34:43 +00:00
agc
54622f28e2 Add SHA512 digests for distfiles for lang category
Problems found with existing digests:
	Package nhc98 distfile nhc98src-1.22.tar.gz
	a8adc8f22371998ee0657bc0e01058a57d876abc [recorded]
	81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated]

Problems found locating distfiles:
	Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2
	Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2
	Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz
	Package icc11: missing distfile l_cproc_p_11.1.080.tgz
	Package jini: missing distfile jini-1_2_1_001-src.zip
	Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk7: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
	Package openjdk8: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
	Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz
	Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz
	Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz
	Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin
	Package sun-jdk6: missing distfile jdk-6u45-solaris-i586.sh
	Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz
	Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz
	Package sun-jre6: missing distfile jce_policy-6.zip
	Package sun-jre6: missing distfile jre-6u45-linux-x64.bin
	Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh
	Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz
	Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
2015-11-03 22:50:31 +00:00
joerg
2746a473c1 Fix readline detection and use. 2015-06-10 14:59:43 +00:00
ryoon
d4c209b4e7 The symlink to java is not needed anymore. 2014-07-07 14:41:09 +00:00
ryoon
18fde647fb 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.
2014-07-07 14:25:31 +00:00
ryoon
dca2b36e68 Update to 10.5.4
Changelog:
10.5.4
   3.7 newlispdoc cleanup ";; *" regex

   New FFI ffi.h include directory in makefile_linux* when installing libffi

   Fix for last list element optimization in push, pop and pop-assoc when
   popping and inserting last element

   Accessing a deleted context will never hang but give an error message

   Some changes in nl-filesys.c for AIX and new makefile for AIX ILP32

   On Windows: a fix for correctly closing logfiles initiated by newlisp -l or
   newlisp -L and for closing files created by the HTTP PUT operation.

   Two sample 't-test' when variances are different (independent samples) with
   new syntax:
        (t-test <list-vector-A> <list-vector-B> <float-probabilty>)
   When <float-probabilty> is specified, an internal F-test for variance
   equality in data A and B is performed. If the probablity of F is
   smaller than <float-probabilty>, then Welch's variant of the t-test for
   independent samples is performed. Using 1.0 <float-probabilty>, Welch
   can be forced even when variances are not significantly different.

   One sample 't-test' using new syntax pattern:
        (t-test <list-vector-data> <float-value>)
   Gives the two-tailed probability that observed mean is differs from <float-value>
   Instead of sdev for second list-vector the standard error for the observed mean
   is reported.

   Some cleanup and changes in scripts (makefiles) for binary installers
2013-10-12 10:30:40 +00:00
joerg
f06bdd6780 Fix build with editline. 2013-07-18 12:03:52 +00:00
ryoon
f8e628f818 * .include "../../devel/readline/buildlink3.mk" with USE_GNU_READLINE=yes
are replaced with .include "../../devel/readline/buildlink3.mk", and
  USE_GNU_READLINE are removed,

* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
  are replaced with .include "../../mk/readline.buildlink3.mk".
2013-07-15 02:02:17 +00:00
ryoon
ba831d600b Update to 10.5.3
Changelog:
newLISP® v.10.5.3 Stable Release 2013-07-10

This release fixes bugs in the new, unlimited precision, integer arithmetic and JSON subsystems and introduces functions for KMEANS data clustering.
New Features

    New cluster analysis functions kmeans-train and kmeans-query (v.10.5.2).

Bug fixes

    Big integer division had problems with embedded, aligned big int sized zeros and trailing zeros in results. On Linux, compiler optmizations in big integer division code caused problems and are disabled now with no decrease in performance (v.10.5.1).
    The bigint function now accepts integers in strings with trailing non-digit characters and floats in simple dot-decimal notation (v.10.5.1).
    After Java update 7u21, install directory names could not have spaces. This has been fixed (v.10.5.2).
    Escaped " quote and \ backslash characters in json-parse strings are now handled correctly (v.10.5.2/3).

Compatibility with previous versions

This version is compatible with the previous versions in the 10.5.x series.
2013-07-12 13:37:38 +00:00
ryoon
7ebbd31670 Update to 10.5.0
Changelog:
10.4.7
     Eliminate unused JSON error message.

     Elminated usage of $0 in replace on lists (no regular expressions). The count
     of replacements now is contained in the new $count system var, not $0. The usage
     of $0 - $15 now is strictly for regular expressions. This also speeds up replace.

     read-expr now uses $count instead of $0 for the number of characters processed.

     Eliminated undocumented usage of $0 for found elements in find-all on lists.
     Only $it is used. $0 only on find-all on strings with regular expressions.
     The system variable $count is updated for all forms of find-all, ref-all and
     set-ref-all.

     Link feature now built in with comandline flag -x for all OS flavors:
        newlisp -x <source-file> <executable-file>
     The file util/link.lsp is not required anymore but has been included and
     adapted to changes for the -x linkage. The file illustrates the internals
     of the linkage process when using the -x option.

     An additional true flag in the real-path function allows finding the executable
     path of executables - similar to the "which" utility on UNIX. This is a by-
     product of fixing the link.lsp feature for UNIX. The additional flag works
     on all platforms. 'real-path' on Windows and BSD now also veryfies that path
     and file are valid, as it already did on non-BSD Unix (OSX, Linux).

     Enforce MAX_SYMBOL for tags in xml-parse and symbol creation using sym.

     Security fixes for strncpy and strncat.

     Windows CGI server mode was broken in development version 10.4.6 (isDir()).

     Preparation for 64-bit Windows (in early summer).

10.4.8
    Cleanup of the factor function.

    Like date-parse, date-value will produce negative values for dates before 1970-1-1
    til 1901-12-14.

    The function 'flat' now can take an optioal depth parameter to limit flattening
    a list up to certain level: (flat <list> [<level>])

        (flat '(1 2 (3 4 (5 6)) (7 8 (9 10)))  ) => (1 2 3 4 5 6 7 8 9 10)
        (flat '(1 2 (3 4 (5 6)) (7 8 (9 10))) 1) => (1 2 3 4 (5 6) 7 8 (9 10))
        (flat '(1 2 (3 4 (5 6)) (7 8 (9 10))) 2) => (1 2 3 4 5 6 7 8 9 10)

    A fix for 'extend' when passing wrong type to unitialized symbol.

    A fix in the parser to accept -.9 as -0.9 or +.9 as +0.9

    =, +, -, *, /, %, ++, --, >, <, <=, >=, !=  operators and the functions 'abs',
    'even?', 'odd?', 'length', 'number?' and 'zero?' are all working on big-integers
    of unlimited size. 'float' and 'int' convert bigints into double floats and
    64-bit integers and the function 'bigint' converts integers and floats to big
    integers. See the section "Big integer, unlimited precision arithmetik" in
    chapter 8. of the Users Manual for more information.

    Extended commandline buffer to 1024 bytes.

    The "debug" option in: (get-url "http://newlisp.org" "header debug") will now also
    output the status header line of the server response in the console.

10.5.0 Stable Release May 21st, 2013
    Further speed improvements on big integer multiplication and division/modulus.

    Check for division by zero in big integer division/modulus.

    Memory fix for ++, -- on big integers.

    The OSX Intel version is now 64-bit by default.
2013-06-02 11:24:56 +00:00
ryoon
74459e5973 Update to 10.4.5
Changelog:
2012-11-21
# Changes and additions
* On Windows, process now returns real process ids as in UNIX, not Windows process handles.
* The cgi.lsp module now handles multiform data in POST requests.
* Two new make files for compiling RedHat Fedora and CentOS distributions. The configure utility called by make will handle these two subflavors of RedHat Linux automatically.

# Bug fixes
* Memory overrun of invalid UTF8 strings now causes an error message "invalid UTF8 string".
* The function ref did sometimes not handle correctly multiple, nested matching expressions.
* The float function did sometimes not work correctly when used on list members.
* OpenBSD did not load .init.lsp.

# Compatibility with previous versions
* This version is compatible with previous versions in the 10.4 series of newLISP.
2012-11-22 18:54:06 +00:00
ryoon
cfc8c4beff Update to 10.4.4
Changelog:
10.4.1 Development release April 3rd, 2012
     The day-of-year value in 'date-list' now also starts with 1, like in 'now'.

     Added CELL_IMPORT_FFI to various output functions (source, save etc.).

     Added UTF-8 meta tag to newlispdoc HTML output.

     Protect internally variable $x used in 'curry' and predefined 'module'.

     When extended 'import' FFI is compiled, show 'libffi' in banner.

     Added new function 'union' (composed of (unique (append ...))).

     New functions 'odd?' and 'even?'

     Fixed unix.lsp for new overwrite protection of imported symbols in ffilib version

     An additional 'true' flag in (char str idx true) returns the byte value instead
     of the UTF-8 character value at index idx in the string.

     Handle probablilities less 0.5 in crit-z.

     New 'prob-t', 'crit-t', 'prob-f', 'crit-f' for Student's t and F statistic.
     'crit-chi2' redone for extreme values. All report small, significant
     one-tailed probabilities for higher values of t, or F.

     Adjustments in 'normal' for better fit.

     Optional 'true' flag in 'file?' lets it return filename string.

     Windows version should cut off trailing CR-LFs in string passed to 'command-event'.

10.4.2 stable  maintenance release May 2nd, 2012
     In extended ffi "char*" will now only accept strings not integer addresses to
     string buffers. For passing integer addresses use "void*" - internally libffi
     treats them as the same, but the new approach gives automatic type-checking
     at the newLISP level without causing a segfault. Already for return values
     "char*" always returns a newLISP string and "void*" an integer address.

     A fix for 'pack' when packing structures made with 'struct' in 64-bit newLISP.

     In 'import' for OSX/Linux/Unix allow libraries to be opened without importing
     functions. This is necessary if an imported library refers to another one, e.g.:
        (import "libgslcblas.dylib")

     New module gsl.lsp with SVD, QR and Cholesky decompositions.

     Added  'corr', 't-test' and 'stats' statistical functions.

     New standard module gsl.lsp for SDV, QR and Cholesky decomp. and solver routines.

     Updated plot.lsp with line and XY plot now a standard module.

10.4.3 stable maintenance release May 7th, 2012
     (seek <file-handle>) after (read-line <file-handle>) was broken in 10.4.0 when
     introducing faster file stream reading on 'read-line' and file closing could
     leak memory.

10.4.4
     Eliminated getFloatFromCell() and replaced by getDirectFloat() in nl-math.c

     Fixed error message for missing [/text] -tag when loading source from file.

     read-file, write-file, append-file, delete-file when used with http:// URLs will
     now return nil under error conditions instead of throwing an error. This is
     consistent with error behavior on local files.  When nil is returned, net-error
     gives more error information. For remote server-side errors on URLs the server
     HTTP error page is returned.

     Check for UTF8 string validity in functions which are UTF8 sensitive.
     An error message "invalid UTF8 string" is issued for invalid UTF8 strings.

     Several - and continuing - manual updates, most of them also going into current
     online version of manual.

     guiserver.jar 1.47 fixes getting text from an empty gs:text-field.

     Binary number format can be used with either 0b or 0B as prefix to up to 64
     1's and 0's, e.g. 0b101010 for the  number 42.

     A 'true' flag as optional parameter in base64-enc will force the empty string
     to be translated as "" instead of "====". Both cases translate correctly to
     the empty string when fed into base64-dec.

     Fixed a result stack overflow problem on callback's.

     On OSX Mountain Lion 10.8.0 compiles also using clang instead of gcc.
2012-10-06 10:49:41 +00:00
asau
88feb4ac62 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-02 20:11:34 +00:00
ryoon
e696b25e94 Update to 10.4.0
Changelog:
10.3.4
     Reworked 'send'/'receive' message API is multiple times faster and has
     more consistent performance on different platforms. Better on BSDs
     than on Linux. The channel for each child is now a dual read/write
     message queue. In previous version only one message could be written
     to the queue with send, now mutiple message can be send on the same
     channel and retrieved on the receiving side with multiple 'receive'
     until returning 'nil'.

     In the new syntax of 'receive' the <message> parameter is optional:

        (receive <pid>) ; returns the message or nil
        (receive <pid> <message>) ; returns true or nil

     Both 'send' and 'receive' now have syntax to return a list of all
     ready child channels using either (send) to get a list of child
     pid's ready to receive data or (receive) to get a list od child
     pid's ready to be read. This greatly speeds up asyncrounous
     messaging, where multiple child processes, but not all, have sent
     messages. Previously:

        (dolist (p (sync)) (until (receive p msg))) ; (sync) -> child pids

     Now using only a ready subset, 'receive' can be used non-blocking
     and only a subset of all child pids is iterated through:

        (dolist (p (receive)) (receive p msg))

     Now, when a 'spawn'ed child process ends abormally the variable in the
     spawn command will contain an error message and a result number,
     e.g. '9' from a kill signal sent by an external process.

     Fixed longstanding bug for list-mode 'net-select'. Now returns
     socket numbers in the ready list not 0's.

     Documention for the messaging API has been updated in the reference
     manual and code patterns documents.

10.3.5
     'invert' over-allocated memory

     Fixed a crash bug in purgeSpawnList()

     icmp6.h include for cygwin in nl-sock.c (thanks KOSH)

     The creation of a communications channel between and parent process
     and 'spawn'ed child processes for usage with the message API  of
     'send' and 'receive', is now optional:

         (spawn <sym-variable> <child-process> [true])

     If the'send' or 'receive' is used on the child process spawned, the
     optional flag must be set to 'true'.

     The fakes versions on 'spawn', 'sync' and 'abort' in Win32 have been
     taken out.

     The newLISP shell "newlisp-x.x.x/util/nls" now works on MS Windows too.

     The link feature using util/link.lsp did no works with 64-bit versions
     of newLISP.

     In the MinGW compile of nl-sock.c the include file wspapi.h has been
     replaced with ws2spi.h. This file is part of the normal MinGW install.

     newlisp.dll now lives in NEWLISPDIR again as it did before 10.3.3

10.3.6 development release November 18th, 2011

     Speedup of string stream conversion for 'format', 'string'.

     A bug fix in 'spawn' when aborting child processes

     Preparations for expanded FFI (grep for FFI in all files)

10.3.7 development release

     Fix in printing FFI primitives (FFI is disabled by default)

     Updated newlispdoc now all tags (including custom) are title-case'ed

     Simple ffi calls working on Mac OSX, UBUNTU Linux (Intel) and Win32
     three (and more) new ffi makfiles:
        makefile_darwin_utf8_ffi  # std OSX install has libs and headers
        makefile_linux_utf8_ffi   # must install package libffi-dev
        makefile_mingw_ffi        # must install libffi.a library for build

     New qa-specific-tests/qa-ffi for ffi API testing

     The new ffi extension work with the existing 'import' functon:
        (import "libc.dylib" "atof" "double" "char*")
        (atof "123.456") => 123.456

     No "cdecl" or "stdcall" mustbe specified. The parameter after
     the function name is the return type. The remaining parameters
     are the function arguments.

     As before, the imported function can be renamed:

        (set 'strtof (import "libc.dylib" "atof" "double" "char*"))
        (strtof "123.456") => 123.456

     The followong types are implemented for LP64, LLP64 and ILP32

         "byte"
         "char"
         "short int"
         "unsigned short int"
         "unsigned int"
         "int"
         "long long"
         "float"
         "double"
         "char*"
         "void*"

      For pointer return values "char*" and "void*", the address
      is returned as a number. Use 'get-string' or 'unpack' to
      retrieve contents. This method allows returning binary info.
      THIS IS CHANGED IN 10.3.9 where "char*" returns a string
      directly and "void*" a number

10.3.8
      Make sure FFIMPORT struct memory gets freed when doing multiple
      'import' of the same function or deleting the func symbol.

      When using 'configure' and 'make' FFI will be chosen by
      default on Mac OSX, Linux and Windows (MinGW)

      Both "char*" and "void*" accept either a  newLISP string buffer or an
      address number as input. On return "char*" will return a newLISP
      string buffer and "void*" will return an address number.

      Comprehensive qa-specific-tests/qa-ffitest compiles util/ffitest.c
      on the current platform then tests all data types.

      Now ffi checks for nummber of arguments matching call pattern.

      The opengl-demo-ffi.lsp now runs on both 32-bit and 64-bit newLISP
      and libraries. On Windows glut32.dll is required. On Mac OSX everything
      is installed by default.

      ffi callback (ffi closure) working now on Mac OS X, Win32 and UBUNTU Linux
      with standard installed libraries. Only for compiling/linking
      libfffi-dev is necessary on UBUNTU linux.

      The extended 'callback' API will not work on 64-bit Mac OSX newLISP,
      but there is no problem to mix extended 'import' and simple 'callback' API
      (see examples/opengl-demo.lsp)

      Bit 11 for 0x400 in the last field of 'sys-info' is set for extended ffi
      enabled versions requiring ffilib.
            (not (zero? (& 0x400 (sys-info -1)))) => true for FFI support

      Avoid passing on list or string references in primitives taking strings
      or lists but creating new objects.  This caused an error when doing
      (inc (char str)) when str is protected. symbolCheck = NULL only neccessary
      if not set to NULL by previous evaluateExprtession() to non-string/list.
      Fixed on selected primitives.

      qa-ffi and qa-libffi are now part of 'make testall'. They will not be
      executed on versions not compiled for libffi based FFI.

10.3.9 development release December 21st 2011
     'struct' function for extended FFI usage now working for 32 and 64 bit
        (struct 'foo "char" "int" "short int")
     Foo can now be used as a data type in the extended FFI API:
        (import "thelib" "afunc" "foo" "foo") ; takes ans returns a struct foo
     (unpack foo (afunc (pack foo 1 2 3))) => returns a list with 3 numbers
     The additional syntax forms of 'pack' and 'unpack' take care for packing
     and unpacking wirth the correct number of pad bytes to make align
     structures on different Architectures.

     See qa-special-tests/qa-libffi for an example.

     Accept data lists in struct packing just like in traditional 'pack':
        (struct 'pair "int" "int") => pair
        (pack pair 1 2)    => "\001\000\000\000\002\000\000\000"
        (pack pair '(1 2)) => "\001\000\000\000\002\000\000\000"

     Nested structure now can be packed:
        (struct 'pair "char" "char") => pair
        (struct 'comp "pair" "short int") => comp
        (pack comp (pack pair 1 2) 3) => "\001\002\003\000"

     Sub-structures are unpacked manually (may be changed):
        (unpack comp (pack comp (pack pair 1 2) 3)) => ("\001\002" 3)
        (set 'p (first (unpack comp (pack comp (pack pair 1 2) 3))))
        (unpack pair p) => (1 2)

     Because of memory management issues with cells in FFI symbols
     extended ffi functions, structs and callbacks can only be defined
     once. Subsequent definitions return nil and the existing definition
     stays untouched.

     Miscellanous fixes for 64-bit newLISP and ffilib usage.

     Added custom ffi_type ffi_type_charpointer for displayable strings
     now 'unpack' unpacks strings for "char*", not address numbers.

     On Mac OSX 64-bits extended callback (ffi closure) does now work.

     SHA256 crypto algorithm has been added to the module crypto.lsp.
     Thanks to Marc Hildman for this contribution.

10.3.10 Development release Janaury 10th, 2012
     Repeating ffi 'callback' with the same symbol will just return the old
     address but not redefine the callback or return nil (as in 10.3.9).

     examples/opengl-demo-ffi.lsp now also working with extended callback API
     on 32-bit and 64-bit.

     Huge speed improvement in 'read-line' with file handle parameter,
     now as fast as STDIN. For file and pipe operations.

     'struct's returned by the extended FFI will now be unpacked automatically.
     Nested structures will be unpacked recursively too:

         (struct 'pair "char" "char") -> pair
         (struct 'comp "pair" "int") => comp
         (pack comp (pack pair 1 2) 3) => "\001\002\000\000\003\000\000\000"
         (unpack comp "\001\002\000\000\003\000\000\000") => ((1 2) 3)

     Imported functions can now be default functors:
        (define myprintf:myprintf (import "libc.dylib" "printf"))
        (myprintf "%s %d" "hello world" 123)

     All makefile_mingwdll* tweaked for MinGW gcc 4.6.2. But binaries are still
     delivered compiled on gcc 4.4.0 and made on Windows XP SP2, run fine on
     Windows 7. 10.3.6 to 10.3.9 had newlisp.dll compiled for cdecl now in
     10.3.10 newlisp.dll calling conventations are back to stdcall.

10.4.0
     UCT offset minutes as reported by the 'now' function now have reversed the
     sign conform to ISO 8601. Positive for locations east of UCT and negative
     for locations west of the UCT meridian (formerly GMT). Days of the year are
     now reported from 1 - 365 (366 in leap years) instead of starting with
     offset 0.

     'read-char' w/o file handle reads from the current I/O device.

     New version Guiserver 1.45 avoids error loops when midi system is unavailable.

     In 'unify' the underscore symbol '_' matches any atom or list or variable.

     Two new make files for the Raspberry PI development VM from:
         http://russelldavis.org/2012/01/20/new-raspberry-pi-development-vm-v0-2/
     These makefikes don't need the readline library, although it could be installed
     as shown here:
         http://russelldavis.org/2012/01/23/building-newlisp-for-the-raspberry-pi-using-the-development-vm/

     newlisp.dll now also on Winsock version 2.2 (like the main executable since 10.2.10)
2012-02-15 03:51:51 +00:00
ryoon
69cb28b82c Import newlisp-10.3.3 as lang/newlisp from wip/newlisp.
newLISP is a Lisp-like, general-purpose scripting language. It is
especially well-suited for applications in AI, web search, natural
language processing, and machine learning. Because of its small
resource requirements, newLISP is also excellent for embedded
systems applications. Most of the functions you will ever need are
already built in. This includes networking functions, support for
distributed and parallel processing, and Bayesian statistics.
2011-10-11 13:03:18 +00:00