New release of Phix

new topic     » topic index » view thread      » older message » newer message

This is the first release with the completely rewritten backend, offering a single 5MB download which should contain pretty much everything needed to develop applications, and even recompile the compiler itself (in about 15 seconds).

This is a windows-32-bit-only release, hopefully the last one ever. Currently trying to "go live" with this, and I want/need to get going on multithreading, but after all that 64-bit and linux versions beckon. Should anyone with the requisite assembly/low-level debugging skills want a bash, it should be just a matter of format PE64/ELF32/ELF64 at the start of all tests/demos, and eventually (a renamed copy of) Phix itself - and then watch everything break. If you want an idea of what you are up against and what is already available, check out demo\arwendemo\filedumpN.exw, which should work for any PE/ELF/32/64 file (edit the mess that is main() before running it). Lookout for a red "Not Phix" tab if it is really messing things up. I have managed several PE64 tests but only got a single trivial ELF32 to work, so far. If you get a "pop al" error it means that the code for that target is missing (a quick search just revealed 80 occurrences over 8 files). I have no idea whether it will be fine on wine, but equally no reason to suspect it will not.

The source code of Phix contains much of the old and new backends (controlled by the flag "newEmit", which now defaults to 1) and needs some quite serious cleanup.

I expect many errors to be poorly reported (on line "-1", variable "??? -1 ???", etc) - and obviously to fix those sort of things the smaller the code snippet the better. All errors show additional low-level diagnostic info that may not interest you, eg:

    error code 2, or_era=#0053774F, or_ebp=#00773AD0, or_esp=#000CFF8C 
    stack(#000CFF8C): 759A337A, 7EFDE000, 000CFFD4, 77E892E2 
    stack(#000CFF9C): 7EFDE000, 3BD0A955, 00000000, 00000000 
    stack(#000CFFAC): 7EFDE000, 00000000, 00000000, 00000000 
    stack(#000CFFBC): 000CFFA0, 00000000, FFFFFFFF, 77EC1A05 
 
    N=19, rtn=3356, from=#005ABCDD, ret=#005ABD05, prevebp=#00773A68, ebproot=#0077386C 
    or_ecx=#00773AD0, or_edx=#00000000, or_esi=#00773AEC, or_edi=#00000064 
    vsb_prev=#0, vsb_next=#0, vsb_magic=40565342 ("@VSB") 
Such gibberish is not intended to be permanent, and does not appear in the ex.err file, which should appear much more normal. I would estimate that better than 90% of common errors are (if you skip the above) caught correctly, however less than 20% of all possible errors are, eg position("it","there") can die with a #C0000003 rather than something human readable. It is simply a matter of adding hundreds of more test cases to test/terror.exw, which may yet take quite some time, before it is cost effective (for me) to remove the above. If you want, edit the first two constants in builtins\VM\pDiagN.e to 0 and remove the call :lowlevel -- (temp) in pFEH.e (but not the "(not temp)" one) and rebuild with p -cp.

I am still getting plenty of win32:Evo-gen false positives from Avast, especially for the smaller programs, which tend to go away if I bolt a copy of test\t02parms.exw on the end: otherwise all I can do is keep on submitting these things.

A new version of Edita is also included, re-housed in Phix\demo\edita. The most important improvements are unicode support, reindent html, intellisense, and tooltips. Note that the latter two are strongly Phix-biased and will not work on OE4 code that Phix does not yet support. There are also 49 new entries in the readme.txt covering minor bugfixes, etc.

See Phix\docs\phix\Phix.chm for the latest documentation. Files can be extracted from the supplied windows installer using 7-Zip, if you prefer.

What should work "out of the box": pw pgui and ~130 demo programs that can be run from pgui. Also, "pw edita" and of course "p -c p" and "p -test". I know that arwenpcomdemo\browser.exw and win32demo\lvdemo.exw are broken.

Download from http://phix.is-great.org/download.php (5MB, and an optional repackaged MSDN of 48MB)

Enjoy,
Pete

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu