Lots of changes:
Core
- New module system. (Eduardo Cavazos)
 - Tuple constructors are defined differently now.
 - Mixin classes implemented; these are essentially extensible unions.
 - New float-array data type implements a space-efficient sequence of floats.
 - Moved <file-appender>, delete-file, make-directory, delete-directory words from libs/io into the core, and fixed them to work on more platforms.
 - New host-name word.
 - The directory word now outputs an array of pairs, with the second element of each pair indicating if that entry is a subdirectory. This saves an unnecessary stat call when traversing directory hierarchies, which speeds things up.
 - IPv6 is now supported, along with Unix domain sockets (the latter on Unix systems only). The stack effects of <client> and <server> have changed, since they now take generic address specifiers; see Networking.
 - The stage 2 bootstrap process is more flexible, and various subsystems such as help, tools and the UI can be omitted by supplying command line switches; see Command line switches for bootstrap.
 - The -shell command line switch has been replaced by a -run command line switch; see Command line switches for general usage.
 - Variable usage inference has been removed; the infer word no longer reports this information.
 
- Stand-alone image deployment in tools.deploy vocabulary .
 - Stand-alone application bundle deployment on Mac OS X in tools.deploy.app vocabulary.
 - New vocabulary browser tool in the UI.
 - New profiler tool in the UI.
 
-  Most existing libraries were improved when ported to the new module system; the most notable changes include: 
 - asn1: ASN1 parser and writer. (Elie Chaftari)
 - benchmarks: new set of benchmarks.
 - cfdg: Context-free design grammar implementation; see http://www.chriscoyne.com/cfdg/. (Eduardo Cavazos)
 - cryptlib: Cryptlib library binding. (Elie Chaftari)
 - cryptlib.streams: Streams which perform SSL encryption and decryption. (Matthew Willis)
 - hints: Give type specialization hints to the compiler.
 - inverse: Invertible computation and concatenative pattern matching. (Daniel Ehrenberg)
 - ldap: OpenLDAP library binding. (Elie Chaftari)
 - locals: Efficient lexically scoped locals, closures, and local words.
 - mortar: Experimental message-passing object system. (Eduardo Cavazos)
 - openssl: OpenSSL library binding. (Elie Chaftari)
 - pack: Utility for reading and writing binary data. (Doug Coleman)
 - pdf: Haru PDF library binding. (Elie Chaftari)
 - qualified: Refer to words from another vocabulary without adding the entire vocabulary to the search path. (Daniel Ehrenberg)
 - roman: Reading and writing Roman numerals. (Doug Coleman)
 - scite: SciTE editor integration. (Clemens Hofreither)
 - smtp: SMTP client with support for CRAM-MD5 authentication. (Elie Chaftari, Dirk Vleugels)
 - tuple-arrays: Space-efficient packed tuple arrays. (Daniel Ehrenberg)
 - unicode: major new functionality added. (Daniel Ehrenberg)
 
Performance
- The curry word now runs in constant time, and curried quotations can be called from compiled code; this allows for abstractions and idioms which were previously impractical due to performance issues. In particular, words such as each-with and map-with are gone; each-with can now be written as curry* each, and similarly for other -with combinators.
 - Improved generational promotion strategy in garbage collector reduces the amount of junk which makes its way into tenured space, which in turn reduces the frequency of full garbage collections.
 - Faster generic word dispatch and union membership testing.
 - Alien memory accessors are compiled as intrinsics where possible, which improves performance in code which iteroperates with C libraries.
 
- Networking support added for Windows CE. (Doug Coleman)
 - UDP/IP networking support added for all Windows platforms. (Doug Coleman)
 - Solaris/x86 fixes. (Samuel Tardieu)
 - Linux/AMD64 port works again.
 
A big thank you to all the contributors and testers who made this release possible.
No comments:
Post a Comment