What's new in Factor 0.97
Dec 4, 2014
- HIGHLIGHTS:
- Support for more color spaces including RYB and YUV
- Support for SSL on windows
- Some new checksum implementations and performance improvements
- Cross-platform C library finder
- Client for IMAP protocol
- Support for MessagePack encoding and decoding
- Support for uuencoding and uudecoding
- Support for terminfo database files
- Support for tzinfo files
- Support for in-place sorting (using quicksort)
- Bindings for ZeroMQ and Python
- Runner for Applescript (including definition support)
- Performance improvement to printf and support for vprintf
- Support saving images in GTK, Cocoa, and Windows backends
- Generative Modeling Language
- Lots of documentation added to the compiler
- Many, many improvements to the FUEL emacs mode
- Some possible backwards compatibility issues:
- Fixed mask? in math.bitwise to be more correct
- Fixed bias in Mersenne Twister random number generator
- Better support for shebang (no longer need a space after #!)
- io-error now lives in the libc vocabulary
- sender stubs in cocoa.messages now named by method signature
- filter now allocates length of seq, not exemplar.
- Removed make-assoc in favor of explicit get's.
- Some of the improvements to FUEL, Factor's emacs mode:
- Modernize for emacs 24.3
- Prepare FUEL to be uploaded to MELPA
- Change font locking and syntax highlighting
- Make fuel-help work for vocabularies also
- New minor mode: fuel-autohelp-mode
- Fix word help to use correct vocabulary using list
- Variable controlling whether fuel-mode is loaded automatically
- Fixes to table rendering
- New libraries:
- alien.libraries.finder: cross-platform C library finder
- checksums.fletcher: Fletcher in 16/32/64-bit
- checksums.murmur: MurmurHash3 in 32-bit
- checksums.superfast: SuperFastHash
- checksums.xxhash: xxHash in 32-bit
- cocoa.apple-script: runner for AppleScript
- colors.distances: CIE76, CIE94, CIEDE2000, and CMC l:c color differences
- colors.lab: support for CIE 1976 LAB colors
- colors.lch: support for CIELCH colors
- colors.luv: support for CIE 1976 LUV colors
- colors.ryb: support for RYB colors
- colors.xyy: support for CIE 1931 xyY colors
- colors.xyz: support for CIE 1931 XYZ colors
- colors.yuv: support for YUV colors
- compression.snappy: bindings to snappy compression library
- crypto.aes: lookup-table AES implementation
- cuesheet: parser for CUE files
- curl: bindings for libcurl
- editors.atom: support for Atom text editor
- fftw: bindings to FFTW library
- gml: support for Generative Modeling Language
- grouping.extras: helpful words
- html.entities: escape and unescape HTML5 entities
- imap: client for IMAP servers
- io.encodings.utf7: support for UTF7 encodings
- io.streams.ansi: support for ANSI color streams
- magic: bindings to libmagic
- marvel: support for Marvel.com API
- math.combinators: some convenience words
- matrices.laplace: adding Laplace expansion
- math.unicode: implement unicode math symbols
- pcre: bindings for PCRE
- python: bindings for Python
- random.rdrand: random number generator using RDRAND instruction
- rosetta-code.josephus-problem: solved
- rosetta-code.metronome: solved
- sorting.heap: implement Heapsort
- sorting.quick: implement Quicksort
- spotlight: adding Spotlight search wrapper for Mac OS X
- terminfo: parser for terminfo database files
- tzinfo: parser for timezone files
- tools.dns.public: adding well-known public DNS servers
- uu: support for uuencoding and uudecoding
- yaml: reading and writing the YAML format
- youtube: downloader for youtube.com
- wikipedia: support historical events and article printing
- windows.ntdll: process listing on Windows
- windows.winmm: to play MP3 files
- zeromq: bindings for ZeroMQ
- Improved libraries:
- arrays.shaped: iteration with indices, mapping operations
- bson.reader: support reading sequence of BSON objects from a file
- calendar.format: fix timestamp parsing without a timezone (fixes #861)
- calendar.threads: support M\ timestamp sleep-until
- circular: adding circular-loop
- color-picker: show hex value of color
- combinators.extras: more words
- concurrency.combinators: adding parallel versions of cartesian-{map,each}
- destructors: faster dispose-each
- dlists: adding push-before and push-sorted
- dns: support custom DNS server lookups
- environment: adding with-os-env for using temporary environment variables
- formatting: performance improvements, added vprintf for runtime formatting
- google.translate: adding translate-tts
- graphviz: miscellaneous improvements by @ajvondrak
- grouping.extras: more words
- hash-sets: minor cleanup
- hashtables: minor cleanup
- help.html: use tools.completions for searching
- html.parser.analyzer: make find-between* work on nested tags
- html.parser.printer: better html-text.
- http.client: versions of http-get and friends that don't check response code
- infix: adding INFIX:: word definitions
- interpolate: adding generalized numbered string interpolation
- io.binary: faster le> and signed-be> and signed>
- io.binary.fast: generic be> and le> that try to be fast
- io.directories: adding with-resource-directory
- io.encodings.string: faster decode and encode for ascii and utf8
- io.sockets.secure.openssl: fix subject name checks
- io.streams.byte-array: performance improvements
- io.streams.random: performance improvements
- io.streams.string: performance improvements
- ip-parser: adding ntoa and aton
- math.bitwise: adding bit-length
- math.combinatorics: performance improvements, k-permutations
- math.extras: more words
- math.factorials: adding factorials
- math.functions: implement ldexp
- math.matrices: performance improvements
- math.ranges: implement sum on range objects
- math.statistics: fix out-of-bounds in quantiles, more words
- math.text.english: support ratio, float, complex
- mirrors: strings can be inspected-sequence (fixes #857)
- openal.examples: adding play-waveform and play-sine
- pack: support numbered format strings (e.g., "4ci")
- random: performance improvements
- random.mersenne-twister: bug fixes
- redis: adding hash commands, upgraded to modern protocol
- semantic-versioning: support for Semantic Versioning 2.0.0
- sequences: implement sum on iota-tuple objects
- sequences.extras: more words
- sequences.product: performance improvements
- sequences.windowed: performance improvements
- sets.extras: more words
- sorting.insertion: performance improvements
- spelling: minor fixes and performance improvements
- spider: ignore non-html files
- system-info: implement system-report. on Linux.
- tools.deploy.config: specific deploy-directory
- tools.dns: adding dns-host to lookup from a specific host
- tools.test: allow testing from command-line
- twitter: updates
- units.imperial: more units
- unix.users: add utility word to find a user's home directory
- unix.utmpx: support on Linux and fixes on Mac OS X
- webbrowser: support open-file on pathname objects