phix /

Filename Size Date modified Message
bench
builtins
demo
docs
sfx
std
test
4.2 KB
lnx64 now working (ish), exception handling, declare on multiple assignment, version(), crash_file, get_logical_drives, getd_partial_key, shift_bits,
101 B
init
837 B
init
2.5 KB
init
393 B
0.7.8a
102.5 KB
reflect
19 B
init
p32
2.1 MB
0.7.9
31 B
lnx64 now working (ish), exception handling, declare on multiple assignment, version(), crash_file, get_logical_drives, getd_partial_key, shift_bits,
31 B
lnx64 now working (ish), exception handling, declare on multiple assignment, version(), crash_file, get_logical_drives, getd_partial_key, shift_bits,
186.9 KB
0.7.9
143.0 KB
0.7.2:
928 B
init
27.8 KB
init
95.5 KB
init
55.2 KB
init
29 B
minor updates. setenv, unsetenv, splitany
866 B
init
6.7 KB
64bit, linux
162.1 KB
init
30.5 KB
init
23.1 KB
64bit, linux
51.6 KB
0.7.9
25.7 KB
printf bugfix, setup.reg read
2.1 MB
pad_head and pad_tail docs
4.7 KB
0.7.9
216.8 KB
libcurl docs
734.1 KB
readme.md test, nopoll first draft,
83.8 KB
libcurl docs
74.4 KB
NEWCATCH, MARKTYPES (incomplete), join_by
471.4 KB
0.7.8
26.9 KB
NEWCATCH, MARKTYPES (incomplete), join_by
82.5 KB
NEWCATCH, MARKTYPES (incomplete), join_by
182 B
0.7.7 release
15.3 KB
init
35.5 KB
init
156.7 KB
0.7.9
12.1 KB
task_yield and e_all
25.9 KB
init
93.6 KB
init
99.6 KB
reflect
86.1 KB
reflect
2.4 KB
rand() bugfix, copyable examples
109.6 KB
0.7.8a

Phix is a self-hosted hybrid interpreter/compiler, developed by Pete Lomax. It is very easy to use, and similar to Euphoria.

Official site: http://phix.x10.mx/

A single 16MB download contains a pre-compiled executable, all the sources, and everything needed to recompile them, in about 15 seconds. The download also contains a full-featured programmer's editor and 130+ demo programs.

Perhaps the most striking feature of Phix is that it has just five builtin data types:

    <-------- object --------->
    |                |
    +-atom           +-sequence
      |                |
      +-integer        +-string

Despite such apparent simplicity, or perhaps precisely because of it, Phix programs are pretty fast - not quite achieving the runtime performance of C or assembly, but making up for it with a very fast edit/run cycle and proper human-readable messages should anything go wrong (even in shipped pre-compiled executables). Sequences are the real powerhouse of Phix. The one type covers lists, queues, tables, trees, and arrays, with strings being the subset that is array of character. They can grow and shrink automatically without any memory management overhead. For example if s="food" then s[2..3]="e" makes s "fed", and then s[2..1]="east" makes s "feasted".

Phix applies the principle of least surprise, for instance in some languages myproc(list) or res = myfunc(list) can mangle list, whereas in Phix if you actually want that to happen you would code list = myproc(list) (and myproc would need to become a function) or {res,list} = myfunc(list). Likewise 1/2 is 0.5 (not 0, unless you explicitly ask for the floor()) and 0-1 is -1 (not +MAXINT). A core tenet is that for any line of code there is one and only one possible interpretation of it, and said meaning is utterly intuitive.

The principle goal of Phix is to make debugging easier, a whole subject area that does not seem to get the attention it deserves. Not entirely sure I am succeeding, yet.

Donate

Feel free to donate:

METHOD ADDRESS
Paypal paypal.me/petelomax
Bitcoin 1MqYnKBhvtCnknSi8GK3bnX3n5Yo4WWeDd