The 807 beta-c zip install packages for windows/linux/macos are available.
This establishes the base for an exciting year.
The initial step was taken many years ago when the noun header was
allocated with a pointer to the ravel of its data rather than having to be
contiguous. This work was done by Roger Hui to facilitate the
implementation of mapped files (the cornerstone for Jd). We knew at the
time that this opened up great opportunities.
Henry's new work means that J can create nouns that use data that already
exists in another noun. He calls memory that is shared between multiple
nouns 'virtual'. A second area of work has been to make better use of cache
memory (cache is much faster than ram).
This can allow some J expressions to work with less data movement and this
can significantly improve performance.
The following is paraphrased from Henry:
***
The only operations currently supported virtually are (x }. y) and (x {. y).
ts=: 6!:2, 7!:2@]
a =. i. 1e6
ts '+/ 1000 {. 2000 }. a'
On my system 807 is 1000 times faster and takes 4000 times less space!
Another example is:
ts '+/@(1&}. - _1&}.) a'
The 2.6 times speedup in this second example is instructive. It saves two
copies of the argument, but it still has to pass through the argument twice
to read it, then write the result and read it back to sum. Why is it so
much faster, since it seems to save only 1/3 of the memory traffic and
nothing computationally? Answer: better cache coherence, because the two
reads of the subtraction operands are brought into cache at the same time.
***
Probably too early to start using betas for production work, but please
start now for less critical work. It is stable, but we need your help to
end up with the best final release possible.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm