Re: Factor

Factor: the language, the theory, and the practice.

Factor 0.96 now available

Saturday, April 20, 2013


“You’re smart too late and old too soon.” - Mike Tyson

I’m very pleased to announce the release of Factor 0.96!

OS/CPU Windows Mac OS Linux
x86 0.96 0.96 0.96
x86-64 0.96 0.96 0.96

Source code: 0.96

This release is brought to you with over 1100 commits by the following individuals:

Alex Vondrak, Benjamin Pollack, Daniel Nagel, Doug Coleman, John Benediktsson, Jon Harper, Michael T. Richter, and @PGGB.

Aside from bug fixes and various library improvements, I want to highlight the following changes:

  • Major compiler improvements (thanks Alex Vondrak!):
    • Global Value Numbering (disabled currently by default)
    • Parallel-Copy Semantics
  • Performance improvements to hashtables, hash-sets, heaps, and bloom-filters.
  • Support for Retina Displays on OS X
  • Greatly improved table gadget performance
  • PDF streams (and related PDF documentation)!
  • Speed up math comparisons
  • Support resize-window (thanks Jon Harper!)
  • New logo and icons for Factor
  • Added editor support for Textadept, Sublime Text, Geany, BBEdit, and XCode.

Some possible backwards compatibility issues:

  • Changed <groups>, <clumps>, and <circular-clumps> to use slices.
  • Removed <slicing-groups>, <slicing-clumps>, <slicing-circular-clumps>.
  • Renamed editors.notepadpp to editors.notepad++.

Since quite a few performance improvements have been made, I thought I would highlight some improvements using our benchmarks against version 0.95. The chart below shows benchmark time in 0.96 as a percent of the time it took in 0.95, lower is better:

What is Factor

Factor is a concatenative, stack-based programming language with high-level features including dynamic types, extensible syntax, macros, and garbage collection. On a practical side, Factor has a full-featured library, supports many different platforms, and has been extensively documented.

The implementation is fully compiled for performance, while still supporting interactive development. Factor applications are portable between all common platforms. Factor can deploy stand-alone applications on all platforms. Full source code for the Factor project is available under a BSD license.

New Libraries