Saturday, April 20, 2013

Factor 0.96 now available

"You're smart too late and old too soon." - Mike Tyson

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

OS/CPUWindowsMac OS XLinux

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


LAMike said...

Is there a HelloWorld demo I could try out?

Anonymous said...;a=blob;f=extra/hello-world/hello-world.factor;hb=HEAD

Unknown said...

Congrats on the release!

Unknown said...

Congrats on the release! Looks like some real speed improvements.

Where is Factor's roadmap? Everyone is working towards a 1.0 release, but what would constitute a 1.0 release? With each release, Slava would update the roadmap and set the next goals.

I realize I'm that guy right now, but I'm just wondering where everything is headed.

Unknown said...

so you dont want to support non-x86 platform? i got a arm chromebook really want to run factor on it

mrjbq7 said...

We do want to support ARM, and hope to include it in the next release -- the ARM backend is not quite finished yet.

Steve Tsai said...

Is there any way to increase the font size in the listener?

Steve Tsai said...
This comment has been removed by the author.
mrjbq7 said...

Hi Steve,

We haven't exposed it in the UI yet, but you can run this in the listener to increase the fonts:

"monospace" 18 set-listener-font

In the history browser, you can just do Cmd-+.

Steve Tsai said...


Fonts became bigger now. However, Chinese characters become ? mark in box.
How should I fix it?

Steve Tsai

mrjbq7 said...

Perhaps you're system font is different by default, how about:

get-listener input>> font>> name>> 18 set-listener-font

Steve Tsai said...


After changing my Win7 locale (language for non-Unicode programs) to Chinese. Both instructions you provided work. Now I can input and output Chinese in listener.

Another question: how can I continue to use Chinese if I want to keep my locale in English instead of Chinese.


mrjbq7 said...

Not sure what you mean, we've had really strong unicode support since 2009, what behavior are you seeing?

Steve Tsai said...

if you paste "中文" (Chinese characters) to the listener, you will see the question marks in Windows 7. You need to change your Win7 locale to Chinese to see Chinese characters in the listener.