1. New release of Phix

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 message » categorize

2. Re: New release of Phix

Hello Pete.

Pleased to see u still at it. Not like a lot of us who have thrown Euphoria aside for now. Hope Phix goes well for you. Is there a drag and drop in Phix ? I will certainly be using Edita.

Hope for d'n'd .

Cheers. Selgor.

new topic     » goto parent     » topic index » view message » categorize

3. Re: New release of Phix

Hello Selgor.

Selgor said...

Is there a drag and drop in Phix ?

Erm, Yes and No. The included demo\arwendemo\demo_treeview.exw has some drag and drop functionality. However the term "drag and drop" covers a very wide range: from dragging files like in Explorer to blocks of text like in Word to reordering listview column headers and so on. See http://www.catch22.net/tuts/drag-and-drop-introduction (7-part series) and http://blogs.msdn.com/b/oldnewthing/archive/tags/what+a+drag/ (8-part series). Hence I cannot in all honesty reply with an unqualified "yes". Some of that stuff (iirc) requires threads and/or COM, both of which I have started work on. I am planning to implement some (more of) of the stuff in those two links fairly soonish. There is also a huge difference between drag and drop within an application and drag and drop between applications. Most of the former and some of the latter is quite trivial, for example I have just dragged "switch.txt" from Windows Explorer onto the title bar of Edita and it worked exactly as it should. Equally some of it is nightmarish - one app I worked on (in C++) 3 years or so ago required a minimum of 51 separate new routines (!!) before you could test the very first thing. I also clearly remember the supplied framework (Embarcadero) made all sorts of claims about drag and drop and how easy it was but none of the provided routines proved to be of any use at all, at best they could do some within application stuff but anything between applications basically just hung.

Perhaps if you specify precisely the bits you are after I could focus on that/whip up a quick demo. Or maybe it will just be a matter of documenting the bits I already have working properly.

Regards,
Pete

new topic     » goto parent     » topic index » view message » categorize

4. Re: New release of Phix

Looks like the latest release was April 8, 2015.

heheh tongue

new topic     » goto parent     » topic index » view message » categorize

5. Re: New release of Phix

euphoric said...

Looks like the latest release was April 8, 2015.

It now says 4th Aug, happy?

new topic     » goto parent     » topic index » view message » categorize

6. Re: New release of Phix

Hi Pete,

With the brand new Windows 10 64 bits, there is a crash during installation.

C:\Program Files (x86)\Phix\demo\arwendemo\pgui\pgsetup.ew:265 in function KeyValue2() 
attempt to divide by 0 
    key = "HKEY_CURRENT_USER\\" 
    key_id = 2147483649.0 
    SubKey = "Environment" 
    Value = 39807340 
    RRF_TYPE = 2 
    res = 234'ê' 
    data_len = 36'$' 
    lpData = 34655248 
    data = 0 

HKEY_CURRENT_USER\Environment contains following:

Value 0 
  Name:            TEMP 
  Type :            REG_EXPAND_SZ 
  Data :            %USERPROFILE%\AppData\Local\Temp 
 
Value 1 
  Name:            TMP 
  Type :            REG_EXPAND_SZ 
  Data :            %USERPROFILE%\AppData\Local\Temp 
 
Value 2 
  Name:            PATH 
  Type :            REG_EXPAND_SZ 
  Data :            c:\Euphoria4\bin;C:\gtk+_win32\bin; 

Regards

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

7. Re: New release of Phix

Hi there,

jmduro said...

With the brand new Windows 10 64 bits, there is a crash during installation.

C:\Program Files (x86)\Phix\demo\arwendemo\pgui\pgsetup.ew:265 in function KeyValue2() 
attempt to divide by 0 
    key = "HKEY_CURRENT_USER\\" 
    key_id = 2147483649.0 
    SubKey = "Environment" 
    Value = 39807340 
    RRF_TYPE = 2 
    res = 234'ê' 
    data_len = 36'$' 
    lpData = 34655248 
    data = 0 

HKEY_CURRENT_USER\Environment contains following:

... 
  Name:            PATH 
  Type :            REG_EXPAND_SZ 
  Data :             
c:\Euphoria4\bin;C:\gtk+_win32\bin; 
123456789012345678901234567890123456 

Hmm. So as below I've asked RegGetValueA how much space I need and it says 36, which seems to match what is in PATH, but when I actually ask for it, it slings back an ERROR_MORE_DATA...

I might have more luck and less trouble if I started using the WideString versions of these routines I suppose... but that's a fair bit more work.

Perhaps you could try the following? (insert the "if 0 then", the "else..end if", and the final re-peek4u, obviously in C:\Program Files (x86)\Phix\demo\arwendemo\pgui\pgsetup.ew line 265)

    res = c_func(RegGetValueA,{key_id,allocate_StringZ(SubKey),Value,RRF_TYPE,NULL,NULL,lpcbData}) 
    if res=0 then 
        -- then get actual data 
        data_len = peek4u(lpcbData) 
if 0 then -- replaced 5/8/15 
        lpData = allocate(data_len) 
--      res = c_func(RegGetValueA,{key_id,SubKey,Value,RRF_TYPE,NULL,lpData,lpcbData}) 
        res = c_func(RegGetValueA,{key_id,allocate_StringZ(SubKey),Value,RRF_TYPE,NULL,lpData,lpcbData}) 
else 
        while 1 do 
            lpData = allocate(data_len) 
            res = c_func(RegGetValueA,{key_id,allocate_StringZ(SubKey),Value,RRF_TYPE,NULL,lpData,lpcbData}) 
            if res!=ERROR_MORE_DATA then exit end if 
            free(lpData) 
            data_len += 100 
            poke4(lpcbData,data_len) 
        end while 
end if 
        if res!=0 then ?9/0 end if  -- (it failed on this) 
        data_len = peek4u(lpcbData) 

I've only given it a quick test here, on Windows 7.

I assume it crashed before the window appeared and hence before you could read the help. I can assure you it will not do anything until you decide to hit the OK button.

If this ran as part of installation, you'll need to run pw pgui and select the Settings tab.

Thanks, Pete

EDIT: sorry, I somehow omitted the poke4

new topic     » goto parent     » topic index » view message » categorize

8. Re: New release of Phix

Thanks Pete,

I unzipped Phix.exe with 7-Zip, modified the program as you wrote and ran phixzip.bat.

Then I ran phix.exe in sfx folder and installation ran without any error.

Regards

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu