Freeputer ( ) [ ] { } forever free
Freeputer is a free computer. Free as in freedom.
Freeputer is a tiny virtual machine easily ported to most modern architectures, including bare metal, and requiring neither file system nor operating system. This offers extreme portability and the freedom to use software forever without designed obsolescence.
Freeputer is brand new. It was released on 8 August 2015.
Freeputer and Freelang are the product of several years of independent research by Robert Gollagher. Although the current implementation is brand new, the general design concept has been well proven by earlier prototypes. The Freelang language is stable and productive.
For the latest news see Milestones below.
Here is the output from a simple Freeputer program:
Hello from Freeputer
As you can see, the program greets the user in Chinese and English.
The compiled program is 276 bytes in size. It requires neither an operating system nor a file system. It was written in Freelang, a stack-oriented, concatenative, compiled language for Freeputer. The Freelang compiler (known as flc) is self-hosted; that is, it is written in Freelang, runs on the FVM and can compile itself.
You can create, edit, compile and run programs on Freeputer instances. For example, the FreeLine text editor is written in Freelang and runs on Freeputer. It is accessed from a terminal emulator.
Here is FreeLine being used to edit the source code for itself:
The Freelang source code for FreeLine, viewed in FreeLine
For comparison, here's the same code in gedit:
The Freelang source code for FreeLine, viewed in gedit
Freeputer and Freelang are free and extensible.
What will you make with Freeputer?
Please visit the Freeputer project on GitHub or Bitbucket.
New platform added: Java
FVM 1.0 implementation for Java 6, Java 7, Java 8
0.1.0.0 version of FVM.java alpha
See: dev/fvm/java/src/com/freeputer/FVM.java
Known to run on Java 8 for x86 Linux (desktop), ARM Linux (Raspberry Pi), Windows 8 (tablet)
Known to run on Java 6 for x86 Linux (desktop)
Should also run on numerous devices that support Java 6 or higher
Should also run on OS X and other popular operating systems
Should also run on embedded devices that support Java
15 September 2015
New platform added: C
FVM 1.0 implementation for gcc
Portable 0.1.0.0 version of fvm.c alpha
See: dev/fvm/c/src/fvm.c
and Makefile
Known to run on x86 Linux (desktop), ARM Linux (Raspberry Pi) and Windows 8 (tablet)
Should also run on numerous devices that gcc can target
Should also run on OS X and other popular operating systems
Should also run on microcontrollers
Should also run on bare metal
13 September 2015
First public release of Freeputer 1.0.0.0
FVM 1.0 implementation in x86 assembly language for 32-bit Linux
1.0.0.0 version of fvm.s (the reference implementation of the FVM 1.0) beta
See: dev/fvm/x86/src/fvm.s
and subdirectories of dev/freelang
and dev/xcompiler
1.0.0.0 versions of flc, fld, fvmtest and FreeLine (in Freelang) beta
1.0.0.0 versions of flx (in Ruby) beta
8 August 2015
Copyright © Robert Gollagher 2015
This document was written by Robert Gollagher.
This document was first published on 7 August 2015.
This document was last updated on 15 September 2015 at 15:12.
This document is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
The official Freeputer website is freeputer.net.
Robert Gollagher may be reached at