* 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.
snobol4.man from vanilla.tar.gz rather than from pm.exe within vanilla.zip;
as vanilla.zip is no longer distributed (and the change between these two
versions is very minimal). Due to distfile and packaging changes bump
PKGREVISION.
The openssl version bundled in the Windows installer has been updated.
A regression in the mimetypes module on Windows has been fixed.
A possible overflow in the buffer type has been fixed.
A bug in the CGIHTTPServer module which allows arbitrary execution of code in the server root has been patched.
A regression in the handling of UNC paths in os.path.join has been fixed
variables become commons and don't get noticed, but on platforms
without commons or with commons disabled, this results in a multiply
defined symbol.
Should fix MacOS build.
or had a namespace pollution issue exposing time.h improperly. Should
fix the MacOS build.
XXX: on MacOS the configure script concludes that stdlib.h, unistd.h,
XXX: and string.h are all missing. I have no idea why this would be
XXX: but someone with access to config.log needs to investigate.
2014.06.05, Version 0.10.29 (Stable)
* openssl: to 1.0.1h (CVE-2014-0224)
* npm: upgrade to 1.4.10
* utf8: Prevent Node from sending invalid UTF-8 (Felix Geisendoerfer)
- *NOTE* this introduces a breaking change, previously you could
construct invalid UTF-8 and invoke an error in a client that was
expecting valid UTF-8, now unmatched surrogate pairs are replaced
with the unknown UTF-8 character. To restore the old functionality
simply have NODE_INVALID_UTF8 environment variable set.
* child_process: do not set args before throwing (Greg Sabia Tucker)
* child_process: spawn() does not throw TypeError (Greg Sabia Tucker)
* constants: export O_NONBLOCK (Fedor Indutny)
* crypto: improve memory usage (Alexis Campailla)
* fs: close file if fstat() fails in readFile() (cjihrig)
* lib: name EventEmitter prototype methods (Ben Noordhuis)
* tls: fix performance issue (Alexis Campailla)
Changes in version 6.0.1
* A new `racket/undefined` library exports `undefined` as the
value currently produced by
(letrec ([x x]) x)
This library anticipates a future where that expression will
raise an exception. The `racket/undefined` library will continue
to offer the `undefined` value as a bridge between versions and
as a last resort.
* The drawing and GUI libraries provide improved support for
high-resolution bitmaps and their use on Retina displays. For
example, `read-bitmap` includes a `#:try-@2x?` option to trigger
substitutions through the usual "@2x" naming convention.
* Check Syntax cooperates with Typed Racket to show arrows and other
Check Syntax highlighting even when there is a type error.
* Functions provided via contract-out that have first-order
contracts perform better.
* The contract boundary between typed/untyped modules is much less
expensive. Typed Racket now avoids generating contracts for
places where contracts failures cannot happen.
* Occurrence typing now works better with when/unless. Example:
(let ((x (read)))
(unless (number? x) (error 'bad-input))
(add1 x))
* Types in Typed Racket are now pretty-printed.
* Function types can now be written in prefix style, which is now
preferred and is used for printing. Infix function types are still
accepted for backwards compatibility.
* A new `->*' type constructor is used for writing types for
functions with optional and keyword arguments. The notation is
similar to the matching contract combinator.
* Typed Racket forms do not have a `:' suffix by default now. For
example, the `struct' form replaces `struct:'. The suffixed
versions are all provided for backwards compatibility.
* Typed Racket now has preliminary support for classes and
objects. However, it is still experimental and the APIs are
subject to change.
* Type aliases in Typed Racket now support recursion and mutual
recursion. For example, `(define-type (MyList X) (U Null (Pair X
(MyList X))))' is now a valid type alias.
* Plot correctly renders intersecting 3D graphs and
non-grid-aligned 3D rectangles.
* Elements in plots output in PDF/PS format have the same relative
scale as in other formats. In particular, it is not necessary to
adjust `plot-font-size` to make PDF plots look the same as PNG.
Changes in version 6.0
Racket 6.0 has a new package system, including a catalog of
hundreds of already-available packages. Please visit
http://pkgs.racket-lang.org/
for an overview of the packages.
Racket versions 5.3.4 through 5.3.6 included "beta" versions of the
package system. Racket version 6.0 incorporates many improvements
suggested by preliminary experiences in those versions:
* A package is treated as a single collection by default, so it is
even easier to use a GitHub repository as a package. Get started
quickly:
http://docs.racket-lang.org/pkg/getting-started.html
* DrRacket includes a new package manager GUI, available via the
File|Package Manager ... menu item. The GUI is also available
as a stand-alone program via the "gui-pkg-manager" package.
* The main Racket distribution has been separated into about 200
packages. The Racket installer combines the core system with
bundled versions of these packages.
Alternatively, you may now install a Minimal Racket distribution
--- which is about 1/10 the size of the main distribution --- and
add only those packages that you need.
* Package installation supports pre-built packages that include
compiled byte code and rendered documentation, meaning packages can
be installed quickly when built versions are available. All
packages in the main distribution are available in pre-built form.
The recent 5.92 and 5.93 releases served as release candidates for 6.0,
and 6.0 includes a few additional repairs related to the package
system.
Further improvements to the package system are in the works, notably
including package documentation on the package-catalog web site.
COMPATIBILITY NOTE: PLaneT, the previous Racket package system, will
remain in place for the foreseeable future, but we expect all package
work to shift to the new system.
Beyond the package system, this release brings a number of other
changes:
* Racket's HTML documentation has a new and improved look, thanks to
Matthew Butterick.
* The documentation includes a style guide, "How to Program Racket"
http://docs.racket-lang.org/style/
* Racket's JIT compiler supports the ARM architecture.
* Racket supports the Mac's Retina display mode.
* The performance of the Typed Racket compiler improved by 50% on
some typed programs.
* The profiler provides a new mode that uses the errortrace library
to produce fine-grained profiles.
* A new contract profiler reports how much time programs spend
checking contracts, and which contracts are most expensive.
* The math/flonum library exports fast 105-bit precision operations.
* Check Syntax handles generated identifiers, especially those
introduced by struct (e.g. field selectors) and Redex (e.g., e_1,
e_2)
* 2htdp/batch-io includes functions for dealing with html/xml in
files and web sites as X-expressions plus conveniences for
web-based graph traversals.
* The `gen:set' generic interface extends set operations to work on
user-defined types that implement set methods, as well as on other
set-like built-in types, such as lists.
* Picts support conversion to SVG format.
* Under unix, Racket provides desktop entries (.desktop files) for
its graphical executables.
Changelog:
From release notes for Oracle JDK 7u60
http://www.oracle.com/technetwork/java/javase/7u60-relnotes-2200106.html .
Java SE Development Kit 7, Update 60 (JDK 7u60)
The full version string for this update release is 1.7.0_60-b19 (where "b" means "build"). The version number is 7u60.
Highlights
This update release contains several enhancements and changes including the following:
Java Mission Control
New Features and Changes
IANA Data 2014b
JDK 7u60 contains IANA time zone data version 2014b. For more information, refer to Timezone Data Versions in the JRE Software.
JavaFX
This JDK release includes JavaFX version 2.2.60.
Java Mission Control
This JDK release includes Java Mission Control(JMC) version 5.3. For more information, see JMC 5.3 Release Notes.
New Features and Changes
Java ignores deployment.expiration.check.enabled property for first launch
If you have an older version of Java and expiration check is turned off through deployment.properties file, Java may ignore this property for first launch.
To ensure that expiration check is disabled, use the following Java Web Start command:
javaws -userConfig deployment.expiration.check.enabled false
If this property is changed in the deployment.properties file, open the Java Control Panel before starting an application to ensure that the native cache is synchronized with the file. For more information, see Deployment Configuration File and Properties.
New flags added to Java Management API
The flags MinHeapFreeRatio and MaxHeapFreeRatio have been made manageable. This means they can be changed at runtime using the management API in Java. Support for these flags have also been added to the ParallelGC as part of the adaptive size policy.
Bug Fixes
For a list of bug fixes included in this release, see JDK 7u60 Bug Fixes page.
The following are some of the notable bug fixes in this release:
Area: security-libs/java.security
Synopsis: Realm.getRealmsList returns realms list in wrong order
Java does not support the [capaths] section in krb5.conf correctly if there are more then one intermediate realm between the client realm and the server realm.
See 8012615.
Fixes the problem where thread safety was not consistent in
the php, ap-php and php-* extension packages, and makes ap-php
adhere to the maintainer-zts option. Bump PKGREVISION.
Tests now work without installing package first.
Changes since previous package:
4.9.0.1
- Runtime library
- C_MINOR_VERSION changed to 9; feature identifier chicken-4.8 => chicken-4.9
4.9.0
- Security fixes
- CVE-2014-3776: read-u8vector! no longer reads beyond its buffer when
length is #f (thanks to Seth Alves).
- CVE-2013-4385: read-string! no longer reads beyond its buffer when
length is #f.
- CVE-2013-1874: ./.csirc is no longer loaded from the current directory
upon startup of csi, which could lead to untrusted code execution.
(thanks to Florian Zumbiehl)
- CVE-2013-2024: On *nix, the qs procedure now single-quotes everything
instead of relying on a blacklist of shell characters to be escaped.
On Windows, it properly duplicates double-quote characters. (thanks
to Florian Zumbiehl)
- CVE-2013-2075: Use POSIX poll() in other places where select() was
still being used. (thanks to Florian Zumbiehl and Joerg Wittenberger)
- CVE-2012-6122: Use POSIX poll() on systems where available. This avoids a
design flaw in select(); it supports no more than FD_SETSIZE descriptors.
- Core libraries
- Fix subvector when the TO optional argument equals the given vector
length (#1097)
- Unit extras now implicitly depends on ports. ports no longer
implicitly depends on extras. This may break programs which don't
use modules and forgot to require ports but use procedures from it.
- Support has been added for the space-safe R7RS macro "delay-force".
- Export file-type from the posix unit (thanks to Alan Post).
- SRFI-4 s8vectors now work correctly in compiled code on PowerPC and ARM.
- thread-join! now works correctly even if the waiting thread was
prematurely woken up by a signal.
- unsetenv has been fixed on Windows.
- The process procedure has been fixed on Windows.
- Nonblocking behaviour on sockets has been fixed on Windows.
- Possible race condition while handling TCP errors has been fixed.
- The posix unit will no longer hang upon any error in Windows.
- resize-vector no longer crashes when reducing the size of the vector.
- Distinct types for boolean true and false have been added to the
scrutinizer.
- Fixed bugs in string-trim-right, string-index-right and
string-skip-right, from SRFI-13
- read-line no longer returns trailing CRs in rare cases on TCP ports (#568)
- write and pp now correctly use escape sequences for control characters
(thanks to Florian Zumbiehl)
- posix: memory-mapped file support for Windows (thanks to "rivo")
- posix: find-file's test argument now also accepts SRE forms.
- numerator and denominator now accept inexact numbers, as per R5RS
(reported by John Cowan).
- Implicit $VAR- and ~-expansion in pathnames have been deprecated (#1001)
- Fixed EINTR handling in process-wait and when reading from file ports.
- Irregex is updated to 0.9.2, which includes bugfixes and faster submatches.
- Compile-time expansions for "[sf]printf" are slightly more efficient.
- Removed the deprecated "always?", "never?", "shuffle" and "none?" procedures.
- Fixed problem "make-pathname" that returned an absolute path if given
a relative one without a directory argument.
- The implementation of promises has been made more efficient.
- Removed the deprecated "c-runtime", "null-pointer?" and "pointer-offset"
procedures.
- The deprecated alias "mutate-procedure" for "mutate-procedure!" has
been removed.
- On 64-bit systems the feature identifier "64bit" is registered.
- "process-fork" accepts an optional argument that specifies
wether other threads should be terminated in the child process.
- The "signal/bus" signal identifier was missing.
- Added setter-procedure for "signal-mask".
- Added "recursive-hash-max-length" and "recursive-hash-max-depth"
parameters (srfi-69).
- Platform support
- CHICKEN can now be built on AIX (contributed by Erik Falor)
- CHICKEN can now be built on GNU Hurd (contributed by Christian Kellermann)
- Basic support has been added for building Android and iOS binaries (see
the "README" file for caveats and pitfalls) (contributed by Felix Winkelmann
from bevuta IT GmbH)
- Added support for 64-bit Windows (consult the "README" file for more
information).
- Runtime system
- finalizers on constants are ignored in compiled code because compiled
constants are never GCed (before, the finalizer would be incorrectly
invoked after the first GC). (Reported by "Pluijzer")
- The call trace buffer is now also resizable at runtime via ##sys#resize-trace-buffer.
- C_zap_strings and ##sys#zap-strings (undocumented) have been deprecated.
- Special events in poll() are now handled, avoiding hangs in threaded apps.
- When invoking procedures with many rest arguments directly (not via APPLY),
raise an error when argument count limit was reached instead of crashing.
- When the maximum allowed heap size is reached, panic instead of crashing.
- The code generated for mutating data destructively is partially inlined
and thus slightly more efficient.
- Fixed incorrect code in the foreign argument conversion for
"unsigned-integer64" (#955). For unsigned-integer, integer64 and
unsigned-integer64, disallow floating-point numbers. Fix behavior
on 32-bit systems.
- On systems that provide sigprocmask(2), segmentation violations, illegal
instruction signals, bus errors and floating-point exceptions are now caught
and trigger normal error-processing (including a backtrace). The handling
of these so called "serious" signals can be disabled by passing the
"-:S" runtime option to executables.
- Reclamation of unused interned symbols (enabled with the "-:w" runtime option)
works much better now.
- Build system
- The tests can now be run without having to first install CHICKEN.
- Fixed a dependency problem that made it impossible to build the distribution
tarball on Windows with the mingw compiler.
- Increased the "binary compatibility version" to 7.
- Tools
- "csc"
- "-z origin" is now passed as a linker option on FreeBSD when
compiling for deployment (thanks to Jules Altfas & Vitaly Magerya)
- "-deploy" works now on FreeBSD (thanks to Jules Altfas and
Vitaly Magerya), OpenBSD and NetBSD (see README for NetBSD).
- added "-oi"/"-ot" options as alternatives to "-emit-inline-file"
and "-emit-type-file", respectively; "-n" has been deprecated.
- .c/.o files are no longer overwritten when they have the same basename
as a Scheme source file (i.e. "csc foo.scm foo.c -o foo" works now).
- "chicken-install"
- "-deploy" now correctly installs dependencies of
deployed eggs under the deployment directory instead of globally.
- Full URI syntax is now supported for proxy environment variables
(thanks to Michele La Monaca)
- "chicken-status"
- Added -eggs command line option to list installed eggs
- misc
- Removed the deprecated "-v" options (use "-version" instead) in various
core programs.
- The runtime linker path for compiled executables was not set correctly
on FreeBSD systems. This has now been fixed.
- Removed the deprecated "make" and "make/proc" facility from the
"setup-api" module; also removed the deprecated "required-extension-version"
and "required-chicken-version" procedures.
- Syntax
- Added the aliases "&optional" and "&rest" as alternatives to "#!optional"
and "#!rest" in type-declarations (suggested by Joerg Wittenberger).
- Vectors, SRFI-4 number vectors and blobs are now self-evaluating for
R7RS compatibility. Being literal constants, they are implicitly quoted.
- For R7RS compatibility, named character literals #\escape and #\null are
supported as aliases for #\esc and #\nul. WRITE will output R7RS names.
- The CASE form accepts => proc syntax, like COND (as specified by R7RS).
- letrec* was added for R7RS compatibility. Plain letrec no longer behaves
like letrec*.
- Compiler
- the "inline" declaration does not force inlining anymore as recursive
inlining could lead to non-termination of the compiler (thanks to
Andrei Barbu).
- Type-analysis ("scrutiny") is enabled by default now, unless
"-optimize-level 0" or "-no-usual-integrations" is given.
- The "-scrutinize" compiler option has been deprecated.
- A new lightweight flow-analysis pass ("lfa2") has been added.
Enable by passing the "-lfa2" option to the compiler.
- The deprecated options "-disable-warning", "-heap-growth", "-heap-shrinkage"
and "-heap-initial-size" have been removed.
- Removed the deprecated "constant" declaration.
- Removed the deprecated "-lambda-lift" and "-unboxing" compiler options.
- Removed the deprecated "-V" compiler option.
- Generated names for formal parameters of foreign functions are slightly
more informative.
- Unused references to variables that name intrinsics can be removed.
- In the flow-analysis pass, matching of combinations of "list"/"list-of" and
"or" types with has been made more reliable.
- Fixed various bugs in the type database.
- Syntax expander
- added "require-extension-for-syntax" and "use-for-syntax".
- Extended syntactic definitions are now available by default in all
evaluated code, particularly in code evaluated at runtime in compiled
applications.
- Removed the deprecated variant "(define-compiler-syntax (NAME . LLIST) BODY ...)"
of "define-compiler-syntax".
- C API
- Deprecated C_get_argument[_2] and C_get_environment_variable[_2] functions.
- Removed the deprecated "__byte_vector" type.