I'm proud to announce the release of Factor 0.92. This release comes two years after the last release, 0.91. Proceed to the Factor website or directly to downloads directory to obtain a copy.
More than 30 developers have contributed code to this release. I would like to thank all of the users and contributors for their efforts; Factor would not be at the stage it is today without your help.
Since there have been so many changes since the last release, the below changelog is only an incomplete summary. In particular, there have been many incompatible syntax and core library changes since the last release.
The next release cycle will not last as long as this one; from this point on, I'm planning on having monthly releases or so. There will be fewer incompatible language changes in the upcoming months; the core language has almost been finalized at this point.
Language improvements
- Static stack effects enforced for all words (Slava Pestov, Daniel Ehrenberg)
- New object system: generic accessors, inheritance replaces delegation, type declarations on slots, read only slots, singletons (Slava Pestov)
- Data flow combinators (Eduardo Cavazos)
- Partial application syntax (Eduardo Cavazos)
- Integers-as-sequences is no longer supported; use the iota virtual sequence instead (Doug Coleman, Slava Pestov)
Notable new libraries
- db: Relational database access library with SQLite and PostgreSQL backends (Doug Coleman)
- furnace: web framework that runs concatenative.org (Slava Pestov)
- io.encodings: Extensive support for I/O encodings. All operations that transform strings to bytes and vice versa now take an encoding parameter (Daniel Ehrenberg)
- unicode: Unicode-aware case conversion, character classes, collation, breaking, and normalization (Daniel Ehrenberg)
- regexp: DFA-based regular expression matching. Supports Unicode and compiles to machine code (Daniel Ehrenberg)
- io.sockets.secure: secure sockets with OpenSSL (Slava Pestov)
- io.files.info, io.monitors: File system metadata and change monitoring (Doug Coleman, Slava Pestov)
- images: loading and displaying BMP, TIFF, PNG, JPEG and GIF images (Doug Coleman, Marc Fauconneau)
- gpu, game: Frameworks for GPU rendering and game development using OpenGL (Joe Groff)
- math.floats.env: advanced IEEE floating point features (Joe Groff)
- math.blas, alien.fortran: bindings to BLAS linear algebra library, built on top of a new Fortran FFI
- math.vectors.simd: high-performance SIMD arithmetic with support for SSE versions up to 4.2 (Joe Groff)
- specialized-arrays, specialized-vectors, classes.struct: high-performance support for unboxed value types (Slava Pestov, Joe Groff)
Implementation improvements
- Thanks to the continuous integration system, binary packages are now available for 13 platforms (Eduardo Cavazos, Slava Pestov)
- The compiler has been rewritten to improve compile time, performance of generated code, and correctness (1, 2, 3, 4, 5, 6) (Slava Pestov)
- Polymorphic inline caching (Slava Pestov)
- The garbage collector has been rewritten. A more precise write barrier speeds up minor collections, and a mark-sweep-compact algorithm is now used for full collections (Slava Pestov)
- The Factor UI now supports Unicode font rendering, and the UI developer tools have all seen significant improvements (Slava Pestov)
Editor integration
- fuel: Factor's Ultimate Emacs Library, a powerful emacs mode for editing Factor code. See
misc/fuel/README
in the Factor download for details (Jose A Ortega)
1 comment:
Well done, Slava!
I love the new generics and the partial application syntax. I find Factor very interesting.
Post a Comment