1. Phix 0.8.1 uploaded
- Posted by petelomax Mar 23, 2020
- 2431 views
- Last edited in August
Usual place, http://phix.x10.mx/download.php (0.8.0 notes: https://openeuphoria.org/forum/m/133760.wc )
struct/class, obviously, see http://phix.x10.mx/docs/html/sandc.htm
C_LONG/C_PTR and (new)aliases should now be better, in several/all 32|64 bit, and cross-compilation ways.
days_in_month/include_path/include_file[s]/is_prime/size_of/square_free/get_prime[s]/product/file_size_k/proper/shorten/thread_safe_string/peekns/peeknu/temp_file
builtins/librsvg.e (see http://phix.x10.mx/docs/html/librsvg.htm )
builtins/ordinal.e (see http://phix.x10.mx/docs/html/ordinal.htm )
builtins/pqueue.e now documented (see http://phix.x10.mx/docs/html/pqueue.htm )
builtins/ptypes.e (see http://phix.x10.mx/docs/html/string.htm and http://phix.x10.mx/docs/html/integer.htm )
builtins/punique.e (see http://phix.x10.mx/docs/html/unique.htm )
builtins/sockets.e (not yet documented)
builtins/ubits.e (unsigned and_bits() etc, see http://phix.x10.mx/docs/html/bitlog.htm )
added pipes to system_exec()
allocatew() renamed to allocate_word()
free(NULL) is now quietly ignored
Instead of IupImageA() you should now use IupImage() with an atom third parameter
sqlite3_bind_xxx() can now be passed a string name as well as/instead of an integer from sqlite3_bind_parameter_index().
Unfortunately no real progress on linux (nothing knowingly fixed or broken this release). I have however installed WSL (Windows Subsystem for Linux) and on that at least I get the same segfaults others reported.
My main suspicion is that relocation in non-writable ELF segments is now more strongly policed, but with a completely unfathomable segfault deep within the bowels of the loader. (Nice improvement guys, NOT!)
[I shall also quote this find: note that linux from kernel 2.6.??? needs last segment to be writeable]
I am also considering a KolibriOS port, which may uncover a few things, in a rather more round-about way.
2. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 24, 2020
- 2340 views
Missing file builtins/structs.e!
As a quick fix, grab it from https://bitbucket.org/petelomax/phix/raw/1adf8651161b72a36f907b4e25a03ad4bf719983/builtins/structs.e
3. Re: Phix 0.8.1 uploaded
- Posted by begin Mar 24, 2020
- 2299 views
Thank you so very much for your fantastic work.
I tried to download, but bitdefender and gdata will directly remove the exe files with some virus found message. i reported that as false positives to these companies.
i got it installed now by turning bitdefender completely off and now, i will start checking it out.
Thank you again and i truly think that this is real leap for the language.
Richard
4. Re: Phix 0.8.1 uploaded
- Posted by begin Mar 24, 2020
- 2302 views
Hi Pete,
is there some email i could send some source code to?
Richard
5. Re: Phix 0.8.1 uploaded
- Posted by GreenEuphorian Mar 24, 2020
- 2283 views
Lots of improvements.
Thanks, Pete
6. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 24, 2020
- 2411 views
is there some email i could send some source code to?
If you are not overly worried about anyone else seeing it, you can open a new issue on github ( https://github.com/petelomax/Phix/issues/new ) and attach a file there.
7. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 24, 2020
- 2275 views
Another bug: demo\pGUI\pdemo\installation.e starts with constant setupver = "0.8.0", so it downloads and extracts the wrong zips.
After fixing it you should then be able to re-run ppw.bat or just "p pdemo -settings".
8. Re: Phix 0.8.1 uploaded
- Posted by Icy_Viking Mar 24, 2020
- 2275 views
This looks pretty cool. Especially the struct feature. I hope Euphoria will implement something very similar to the struct feature.
9. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Mar 26, 2020
- 2168 views
Hi Pete
I see you've included Sqlite3 as standard, nice move, but I can't find pSQLite.e in the installation.
Cheers
Chris
10. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 26, 2020
- 2169 views
Hi Pete
I see you've included Sqlite3 as standard, nice move, but I can't find pSQLite.e in the installation.
Cheers
Chris
I put the main one in (note #7 above), but forgot the builtins\pSQLite.e stub which should read
include ../demo/pSQLite/pSQLite.e
Thanks. Note that you are expected to install sqlite3.dll/so manually, but pre-built binaries should be easy to find on the www.sqlite.org site.
11. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Mar 26, 2020
- 2166 views
Hi
../demo/pSQLite/pSQLite.e
Not there
Cheers
Chris
12. Re: Phix 0.8.1 uploaded
- Posted by Icy_Viking Mar 26, 2020
- 2136 views
I've also got some errors with files missing and some directory related issues. However this can usually be easily resolved. Also, I did a quick test using the new struct feature using my EuSDL2 wrapper.
Phix Version
--include machine.e include EuSDL2.ew include flags.e include structs.e atom width = 800, height = 600 atom buffer,format atom x x = SDL_Init(SDL_INIT_EVERYTHING) if x = -1 then puts(1,"Failed to load initialize SDL!\n") abort(0) end if atom win = SDL_CreateWindow("Window Image",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,width,height,SDL_WINDOW_SHOWN) if win = -1 then puts(1,"Failed to create window!\n") abort(0) end if atom surf = SDL_GetWindowSurface(win) atom img = SDL_LoadBMP("SDL.bmp") if img = -1 then puts(1,"Failed to load image!\n") abort(0) end if --Use SDL_UpperBlit to draw to screen --As this replaces SDL_BlitSurface struct _RECT integer x integer y integer w integer h end struct _RECT Rect = new() Rect.x = 10 Rect.y = 10 Rect.w = 100 Rect.h = 100 x = SDL_UpperBlit(img,0,surf,Rect) if x = -1 then puts(1,"Failed to blit image!\n") abort(0) end if integer running = 1 atom key = 0 while running = 1 do SDL_PumpEvents() key = SDL_GetKeyboardState(key) if peek(key+SDL_SCANCODE_ESCAPE) > 0 then running = 0 end if SDL_UpdateWindowSurface(win) end while SDL_FreeSurface(img) SDL_FreeSurface(surf) SDL_DestroyWindow(win) SDL_Quit()
Eu Version
include std/machine.e include EuSDL2.ew include flags.e atom width = 800, height = 600 atom buffer,format atom x x = SDL_Init(SDL_INIT_EVERYTHING) if x = -1 then puts(1,"Failed to load initialize SDL!\n") abort(0) end if atom win = SDL_CreateWindow("Window Image",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,width,height,SDL_WINDOW_SHOWN) if win = -1 then puts(1,"Failed to create window!\n") abort(0) end if atom surf = SDL_GetWindowSurface(win) atom img = SDL_LoadBMP("SDL.bmp") if img = -1 then puts(1,"Failed to load image!\n") abort(0) end if procedure calc_rect(atom rect,integer sx,integer sy,integer tx,integer ty) poke4(rect,sx) poke4(rect+4,sy) poke4(rect+8,tx) poke4(rect+12,ty) end procedure --atom srect = allocate(10) atom drect = allocate(10) --calc_rect(srect,10,10,100,100) calc_rect(drect,width / 2,height / 2,100,100) --Use SDL_UpperBlit to draw to screen --As this replaces SDL_BlitSurface x = SDL_UpperBlit(img,0,surf,drect) if x = -1 then puts(1,"Failed to blit image!\n") abort(0) end if integer running = 1 atom key = 0 while running = 1 do SDL_PumpEvents() key = SDL_GetKeyboardState(key) if peek(key+SDL_SCANCODE_ESCAPE) > 0 then running = 0 end if SDL_UpdateWindowSurface(win) end while SDL_FreeSurface(img) SDL_FreeSurface(surf) SDL_DestroyWindow(win) SDL_Quit()
Thanks to structs, the Phix version is easier to read and is less lines of code.
13. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 26, 2020
- 2143 views
../demo/pSQLite/pSQLite.e
Not there
See post #7 above?
14. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Mar 28, 2020
- 2051 views
Got it, thanks.
Chris
15. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Mar 28, 2020
- 2047 views
Hi
Just run the tests - waited for ages for t64struct test to finish, just sat there on "ok". Thought it was freezing again.
I'm a numpty!
Chris
16. Re: Phix 0.8.1 uploaded
- Posted by lesterb Mar 28, 2020
- 2038 views
Hi Pete,
I've been using a scattergun approach to testing 0.8.1 and I have found a few issues which I have in my local tracker. What follows is a dump of what I have so far.
Les
27-03-2020 Open Error Win32Demo files don't run
None of the win32demo files run. There's a problem with locating the win32lib files. (It's looking for win32lib7) 27-03-2020 @ 17:37:52 INVESTIGATE The library provided is in win32lib6. The win32lib.ew provided in Win32Demo references win32lib7.
I tried changing win32lib.ew so it references win32lib6. The programs I tried then run but there are pages of warnings about struct and class being assumed variables rather than types.
27-03-2020 @ 17:50:05 OPEN
27-03-2020 Open Error Builtin primes.e is missing
Running demo\rosetta\PanDigitalSquares fails because it cannot include builtins\primes.e referenced in mpfr.e. Since primes.e should be a builtin, removing the specific include results in the error.. "Cannot open autoinclude primes.e" in mpfr.e.
27-03-2020 Open Error Help file shows version 0.8.0
The first page of the help file has "Version 0.8.0" on it.
28-03-2020 Investigate Observation Can't run edita.exw
Running edita.exw results in... ...\Phix\demo\edita\src\eafonts.ew:436 in function EnumFontFamExProc() variable SizeList has not been assigned a value. I have an ex.err for this.
I note that SizeList is used in many functions and in all except this case, SizeList is declared local to the function. In this case, it's declared outside the function (EnumFontFamExProc) but eafonts.ew hasn't changed in a long time.
I'm leaving this as an open observation for now as I don't see how edita could NOT work and I haven't used it before, so it might be my problem.
28-03-2020 @ 18:01:06 INVESTIGATE
28-03-2020 Open Error hangman.exw doesn't run
Running ...\demo\hangman.exw results in... ...hangman.exw:129
map wrong_letters = new() ^ a class/struct type must be explicitly specified here.
This has something to do with the addition of class/struct and (I guess) supporting changes.
There's also a warning at hangman line 86 about variable seq assumed to be a variable, not a type. (same reason as above??)
17. Re: Phix 0.8.1 uploaded
- Posted by lesterb Mar 28, 2020
- 2027 views
Sorry, the formatting has gone to rats on my last post. Les
18. Re: Phix 0.8.1 uploaded
- Posted by ghaberek (admin) Mar 28, 2020
- 2037 views
Sorry, the formatting has gone to rats on my last post.
The forum expects posts to be written using Creole syntax. Sequential equal signs indicate heading styles. Single line breaks are collapsed into one line of text. Multiple line breaks separate paragraphs. See CreoleHelp for more info.
-Greg
19. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Mar 29, 2020
- 2011 views
Hi Pete,
I've been using a scattergun approach to testing 0.8.1 and I have found a few issues which I have in my local tracker. What follows is a dump of what I have so far.
Les
27-03-2020 Open Error Win32Demo files don't run
None of the win32demo files run. There's a problem with locating the win32lib files. (It's looking for win32lib7) 27-03-2020 @ 17:37:52 INVESTIGATE The library provided is in win32lib6. The win32lib.ew provided in Win32Demo references win32lib7.
I tried changing win32lib.ew so it references win32lib6. The programs I tried then run but there are pages of warnings about struct and class being assumed variables rather than types.
Hi the win32lib7 files are here - all the demos work for me, I haven't included the IDE yet, as that's still work in progress (though mostly working)
Anyway, it's a bit convoluted to find, so here's the link. Just delete the win32lib6 folder, you won't need it again.
https://app.box.com/v/win32lib7forPhix
Edit : I haven't put this on the wiki, as strictly speaking it conflicts with Euphoria.
20. Re: Phix 0.8.1 uploaded
- Posted by petelomax Mar 29, 2020
- 1936 views
Many thanks for this
It's looking for win32lib7, pages of warnings about struct and class being assumed variables rather than types.
Builtin primes.e is missing
Help file shows version 0.8.0
variable SizeList has not been assigned a value.
hangman.exw doesn't run
map wrong_letters = new() ^ a class/struct type must be explicitly specified here.
I have added win32lib7 and edited 6 and 7 ready for 0.8.2 (basic stuff, eg struct=>pStruct, class=>class_id, etc).
Added primes.e
As well as updating the literal in the help file I've written extra checks to ensure it, pglobals.e, and version() all match, which should help prevent that ever happening again.
Not entirely sure about SizeList either, (maybe you have two eg "courier" fonts installed?), but adding another copy of SizeList = {} on line 555 of eafonts.e some 7 lines earlier cannot exactly hurt, so I've done that too.
The function in map.e has been renamed as new_map(). Surprisingly I couldn't find anywhere other than (the 2 in) hangman.exw that needed changing.
There's also a warning at hangman line 86 about variable seq assumed to be a variable, not a type.
(same reason as above??)
Renamed as s. (Actually that's probably been there a while, seq==sequence was added in 0.7.5)
Will upload 0.8.2 if I don't get any more reports of slips in the next couple of days.
Pete
21. Re: Phix 0.8.1 uploaded
- Posted by lesterb Mar 31, 2020
- 1859 views
Hi Pete,
Here are a few more things I found. (no lazy attempt to paste output this time!)
demo\rosetta\audio_Frequency_generator doesn't run...
There's an extra 'end if' at line 21 of demo\rosetta\audio_frequency_generator.exw
It results in "function does not return a value" at the extra end if. Is this expected?
Removing the end if fixes it.
demo\rosetta\Pascal_triangle_puzzle fails
At line 50 in program, stops with following text...
"pp_strFmt,1 behaves as 3: use pp_StrFmt,3,pp_IntCh,false instead"
demo\rosetta\SierpinskiPentagon doesn't run
At line 134, error "Cannot open builtins\librsvg.e"
The file is indeed not present in builtins.
I'll keep poking about but I'm short of time.
Les
22. Re: Phix 0.8.1 uploaded
- Posted by _tom (admin) Mar 31, 2020
- 1838 views
regex
- off-by-one indexing does not make any sense
- a start argument makes the regex() much more useful
The hacked regex.e file is too big for the pastey.
My hacks look like
-- builtins\regex.e -- ================ -- -- Routines for handling regular expressions. -- --//tom --// around line 160 -- // provide a start argument --// allows easy multiple regex matches --//original integer sp = 1 integer sp = strtndx --// add a start parameter global function regex(sequence re, string s, integer strtndx = 1) -- -- returns {} if no match could be found, otherwise an even-length sequence -- of capture indexes, eg regex(`(a)(b)`,"ab") yields {1,3,1,2,2,3}. --\\tom --\\ this must not be.. -- Note -- that the goup start is the correct index for the first character but the -- end is always <idx of last character>+1. res[1..2] is the capture for the -- entire expression, and subsequent pairs for any () as read left-to-right. -- --// the fix is near roughly line 900 --//tom --// patch return value so there is no off-by-one for i=2 to length(m) by 2 do m[i] := m[i] - 1 end for --//tom return m end function
struct
- only a niggle
regex.e --> is not regexes.e
struct.e --> should not be structs.e
(just some subliminal issue after reading the struct docs...)
- := not recognized
in a struct you use `=` (as expected) but can't use `:=` (as works in the rest of phix)
thanks for your work
_tom
23. Re: Phix 0.8.1 uploaded
- Posted by _tom (admin) Apr 02, 2020
- 1744 views
structs.e does not like ` += ` notation
include builtins/structs.e class Time public: atom hour end class Time t = new( {1} ) t.hour += 3 ? t.hour -- does not like `+=` notation /* C:\Program Files (x86)\Phix\pmain.e:8294 in procedure Assignment() attempt to divide by 0 tidx = 2571 Type = 2420 CompoundAssignment = 1 subscript = 0 sstokline = 13 sstokcol = 143 noofsubscripts = 1 wasMapEndToMinusOne = 0 savetokline = <novalue> savetokcol = <novalue> eqline = 13 eqcol = 148 */
_tom
24. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Apr 07, 2020
- 1579 views
Hi Pete
Trying to run euwingui, interpreted, got this error
Fatal run-time error: C routine Control() needs 6 arguments, not 0
Tried to compile it, got this error
oops, bad IdLinks index, symtab[2198(1305)], line 3432 pEmit2.e oops, bad IdLinks index, symtab[2199(1306)], line 3432 pEmit2.e Fatal run-time error: C routine Control() needs 6 arguments, not 0
This ran with no issues under the previous version, and no modifications (afair) have been made, certainly there is no empty Control() function.
Cheers
Chris
Edit : something odd going on, other programs written with euwingui, using the control function, work fine. Hmmm.
Edit 2: Would this make a difference, Designer.exw has 110 instances of Control(..), whereas the largest of mine (that works) has only 58.
Edit 3 : Nope, that didn't work, I created 120 buttons, worked fine.
Since I don't know where that error occured, it's difficult to pin down any further - any ideas on pinning down the location??
this is the actual function in the wrapper
global function Control(atom controltype, sequence caption, atom posx, atom posy, atom dimx, atom dimy) sgv() return v3_c_func(control,{controltype,caption,posx,posy,dimx,dimy}) end function
25. Re: Phix 0.8.1 uploaded
- Posted by ChrisB (moderator) Apr 07, 2020
- 1551 views
Hi,
What's the difference between "" and {}.
file_exists throws a fit at {}, but is ok with "".
To me they are both empty sequences, but do I now have to check and convert every time before using this, and related functions.
Cheers
Chris
26. Re: Phix 0.8.1 uploaded
- Posted by petelomax Apr 07, 2020
- 1515 views
- Last edited Apr 08, 2020
What's the difference between "" and {}. file_exists throws a fit at {}, but is ok with "".
Not much, except that you can pass a string direct to a c_proc/func, whereas you cannot do that with a dword-sequence.
There is a toString() function, or some variant of it, in builtins\ (at least): pchdir.e, pgetpath.e, pcfunc.e, pfileioN.e, and pFloatN.e
I suppose I should really factor them out, into a new common/auto_include function to_string(), and then also start using that in pfile.e [etc]
I suppose I should also say that (deliberately) trapping non-strings may sometimes help to locate logic errors much quicker.
27. Re: Phix 0.8.1 uploaded
- Posted by petelomax Apr 07, 2020
- 1563 views
Trying to run euwingui, interpreted, got this error
I assume you are running that shipped in demo\tinEWGdemo - everything seems to work fine here.
If the ex.err is not giving enough clues, then you are indeed in trouble.
It can be one hell of a slog cutting down a broken program to the smallest possible (compiled) thing that still goes wrong, in order to get it small enough to even contemplate single-stepping through the machine code. In the (thankfully distant) past I have reluctantly been forced to undertake about a dozen such at 3 or more days a piece.
Some compile-time errors can give you a "Press Enter, or d for diagnostics...". Obviously past that point you are no longer debugging your application but rather the compiler.
Pete
28. Re: Phix 0.8.1 uploaded
- Posted by petelomax Apr 08, 2020
- 1482 views
Audio_Frequency_generator/Pascal_triangle_puzzle/SierpinskiPentagon
Thanks, fixed internally.
29. Re: Phix 0.8.1 uploaded
- Posted by petelomax Apr 08, 2020
- 1571 views
integer strtndx = 1
Added and docs updated
off-by-one indexing does not make any sense
Crikey. I agonised over splitting some internal opcode, just could not see the trivial way to fix it. Added and docs updated
(just some subliminal issue after reading the struct docs...)
Well, it is an auto-include, and maybe regex.e is short for regular_expressions.e ... think I'll pass on that one
- := not recognized
Added the missing code, thanks
structs.e does not like ` += ` notation
Yeah, I've got quite a few of those to wade through.
Thanks,
Pete