Saturday, September 20, 2008

Mac OS X x86-64 binary package available; Factor now supports 12 platforms!

About a year ago, Daniel Ehrenberg did the initial port of Factor to 64-bit Mac OS X, however the UI did not work. This is because Factor's Cocoa binding used the Objective C 1.0 API, and when Apple introduced Objective C 2.0 in Mac OS X 10.5, they only implemented backwards compatibility for the old API on 32-bit platforms. However, just recently Joe Groff updated our Cocoa binding for the new Objective C 2.0 API, and after I fixed a few bugs in the FFI on x86-64, the Factor UI now works!

I set up one of our build machines to build Mac OS X x86-64 binaries. This brings the total number of fully supported platforms to 12 -- where "fully supported" means that we have a machine in the build farm which loads all libraries, runs unit tests and benchmarks, and uploads binaries if everything passes.

It also means the end of the road as far as OS X 10.4 support is concerned. The Cocoa bridge no longer supports Objective C 1.0. However, due to popular demand we may set up a build machine with OS X 10.4 which will build Factor binaries with the X11 UI.

If you haven't yet, go download Factor and give it a spin. It's fun!

8 comments:

Anonymous said...

Cool. But what about ARM support? It has disappeard from binaries page. Is it dropped forever?

Slava Pestov said...

The ARM compiler backend is still in the repository however I haven't updated it for about a year and it no longer works.

However it is most certainly not gone forever, and hopefully I will find some time to bring it up to date and make some ARM binaries before the year ends.

Anonymous said...

Great! With support for OpenGL ES 2.0 Factor can really kick ass as rapid gamedev language on newer mobile devices.

By the way, on the main page it is mentioned that Factor started as scripting language for java game. I'm really curious, what was this game?

Slava Pestov said...

It was a top-view 2D shooter with some RPG elements. Sort of like Grand Theft Auto 1. I never finished it and it wasn't very revolutionary or anything, just a fun project I worked on for a while. I'm not sure if I'll ever release the unfinished code.

Anonymous said...

How about a good tutorial and documentation in PDF now? The thing that is written inside the GUI is not very helpful at all when you have to fight the interface just to browse it. The best thing would be to start something like www.thefactorbook.com

Slava Pestov said...

What do you mean by "fighting the interface"? I might work on PDF output for the help system at some point, but the UI will always be the primary interface for browsing it.

Anonymous said...

I mean that the moment you open the UI it's not really that apparent how it works.
First of all, the documentation should open as a separate window.
There should a context menu under the right mouse button with options like 'back', 'forward' etc resembling a web browser. The code listings should be highlighted with colors.
When there's no editor available in the OS, there should be an easy way to view the source code inside the UI. The examples in the gray boxes are too squashed inside the paragraphs and there are hard to read.
When I am browsing the vocabularies I want it to be a continuous flow. For example, I enter the csv vocabulary and what do I see? A list of files I need to open in an external editor or type something in the command line. At this point I don't know what. With every vocabulary there should be an example usage which would help a lot. I remember the Perl documentation to be the best because everything had an example. You couldn't speak English and you would figure it out.
Basically, the UI is very simple, crud and hard to start off with. If I just want to read the docs, how can I narrow down or close the bottom parts like Output,Input etc? Is there a way to make the font bigger?
If I find an example, I would like to check the docs for every word in the source code by clicking on that word. When I click on it, it pastes the whole code to the input field.
I understand the authors grew accustomed to it, but for the amateurs like me, it's no walk in the park.
Thank you

Slava Pestov said...

Thanks for the feedback, I'll take it all into consideration when implementing UI improvements.