1. Phix 1.0.5 uploaded

Added a c_name() function to get the name of whatever c_proc/func() is calling. 
Made the legacy get() and value() cope with backtick strings and (eg) 100'd'. 
get_field_details(id,"") now returns a list of the field names in a C struct. 
demo/xpGUI/gButton.exw: aside: this code will hopefully be gone by 2024 
 (tee hee)  changed to: aside: this code will hopefully be gone by 2025 
Bugfix: couple of sprint() in pDiagN.e still passing maxlen to asChar. 
Added %r and %R to printf()/scanf() to print/parse roman numerals, why not. 
64-bit Linux executable now built properly, so eg PI is much more accurate. 
Bugfix: psym.e/hideNested() was not setting [S_Nlink] to -2, which meant 
        nested functions never got a proper name and diags were garbage. 
added builtins/closures.e, a new autoinclude that implements define_lambda(), 
        set_lambda(), and call_lambda(), see docs. 
deep_copy() now throws an error if passed anything with an active delete_routine(), 
        since cloning such is an almost sure-fire way to be left with a reference 
        to reclaimed memory or a reclaimed slot in some table or other. 
        Took the opportunity to remove the depth and bIfNeeded experimentals. 
        Replaced several offending deep_copy() in bigatom.e wth better code. 
        still_has_delete_routine() now ignores the dummy 1 planted by pEmit2.e 
Bugfix: delete_routine(<int>) had never worked, typically returning #40000000, 
        ie %opDelRtn did raw ref from [res] rather than the contents of [arg]. 
Enhancement: [s]printf(%c) now outputs the integers #80..#10FFFF as UTF-8,  
             previously it was and_bits(ch,#FF) which was less than helpful. 
             No improvement to the Windows console, though docs now say why. 
             Added %O as %o with leading "0o", to match Go, as I was there. 
Meh: Windows consoles now get the chcp 65001 for marginally better unicode 
     display - but be warned it is far from being a staggering improvement. 
    (unicode display still works 1,000,000* better on Linux & in a browser) 
Bugfix: reverted reverse() to a single-parameter function. from_to has gone 
        and there are no equivalents for Euphoria's pFrom and (0-based) pTo: 
        replace "s = reverse(s,{i,j})" with "s[i..j] = reverse(s[i..j])". 
        (my attempts to avoid a pointless deep_copy had left 0s everywhere) 
Bugfix: adjust_timedate() now accepts and normalises nonsensical months such 
        as the 13th or -3rd month, which vastly simplifies many (sane) uses. 
Bugfix: ppf() completely ignored/overrid a previous ppOpt({pp_Nest,10}). It  
        still otherwise pretends, by default, there was a {pp_Nest,-1}. 
Bugfix: is_integer() and to_integer() treating ':' as '3'. 
Bugfix (partial) 29/4/24: nested routines were messing something up royally  
        (ie not resetting something in the main parser) unless declared at the  
        very start of their containing routine, so as a quick fix I simply made 
        that mandatory (see nestedok in pmain.e). I may need to return to that,  
        or I may just leave it like that forever. Note added to docs. It is  
        also fairly likely to be trivial to remove that restriction in 2.0+. 
valid_index() now a standard builtin, as per Euphoria except that it permits 
        negative indices and prohibits fractional indices. Also replaced the 
        "type check failure, ???(symtab[1586][S_name]=0) is 1.3333333333" error 
        with "type check failure, subscript is 1.3333333333", admittedly by 
        assuming anything triggering that abomination must be an anonymous idx 
        expression. Added a note re fractional idx becoming prohibited in 2.x. 
Bugfix: adjust_timedate() now copes properly with timedates with a length < 7. 
        In particular, if you don't provide milliseconds(/day of week), you  
        don't get an error and you don't get that field or owt later back. 
Made broadcast a system-wide WM_SETTINGCHANGE message a separate entry on the 
        dropdown in pdemo.exw, to force a reload of the updated path, etc. 
Suppressed the "function does not return a value" error immediately after an 
        abort(), and made crash() equivalent in that respect to abort(). 
        [rather helpful when seting up the empty templates for exercism] 
Bugfix: (major) assert(fn(),a&b&c) failed while assert(fn(),a&b) worked ok. 
 4/5/24 opConcat was invoking saveFunctionResultVars(opsidx,INTSTOO) whereas 
        opConcatN was calling saveFunctionResultVars(opsidx,NOTINTS), which 
        meant that assert ended up with some garbage eax from opConcatN... 
        They both now use INTSTOO. Trivial fix, once spotted, but that bug 
        has been there since the year dot & could manifest itself *anywhere*. 
Enhancement: added an optional bRaw parameter to command_line(), in this 
        specific case so that test_summary() could suppress any desire to 
        pause when run under "-batch". Erm, make that "-nopause", which in 
        fact itself does almost nothing, but can now be checked for. 
Enh: added an extra "nowait" bit setting (#10) to system_exec() to forego 
        the 0.4s #08 gets. NB very limited testing, especially since in the 
        end I went the other way, and decided to /wait/ for a result... 
Added optional "specifically" parameter to still_has_delete_routine() 
Relaxed plausibility tests for exercism: should a function (in particular) be 
        just crash("please implement xxx") then the return type will be 0. 
        Checking such a 0 for argtype plausibility now just lets it pass. 
        (By "it" there, I mean the compiler's main front-end parser.) 
Enh: permit s.field[idx] = expr in structs/classes. Needed store_field_element() 
        to be added to structs.e, like store_field() but with an index parameter. 
        Note that having a setter method on a private field effectively prohibits  
        this, ie it forces updates to be all-or-nothing. NB single idx only. 
Enhancement: added new_dicts(n) and allowed destroy_dict() to accept a sequence, 
        specifically here to lessen the locking needed when working with threads. 
Enh: extract() can now be forced to return a dword-sequence by specifying (eg) 2 
        in the invert parameter (but must be even to avoid inversion). 
Bugfix: wrong era on e56rocow from pReps.e resulting in a line number of -1. 
        TIP: set with debug/withjs=1 in pHeap.e to debug/OllyDbg a -c'd executable. 
Minor: vslice() now returns "" or {} for those empty sources, ie string vs sequence. 
Whole bunch of piecemeal changes also made to builtins\unit_tests.e for exercism. 
        (there being absolutely no point creating an exercism track pre-1.0.5) 

Usual place: http://phix.x10.mx/download.php (1.0.4 notes: https://openeuphoria.org/forum/138101.wc )

new topic     » topic index » view message » categorize

2. Re: Phix 1.0.5 uploaded


Thank you for your continuous work on phix.

For your information: Just after downloading Phix1.0.5, the zip files. Something strange happened. Microsoft defender has all 32bit copies of phix.exe (i.e. p.exe, pw.exe and in my case pw32.exe). Moved to quarantine as a potential threat. The 64bit versions are not affected. The versions on my computer are Phix 1.0.3, 1.04, 1.05. All exe files (except those of Phix1.0.5) were created here on the computer.

I copied the original .exe's from the zip files back. Then I was able to ignore the warnings for 1.0.3 and 1.0.4 and then to rebuild both 32bit and 64bit and use them without warnings from Microsoft Defender.

For 1.0.5 32bit exe now work but i can't build the 64bit exe. Defender stops the process and put pnew2.exe in quarantine. pnew.exe (64bit) seems to work i can ignore the warning. But not pnew2.exe(64bit).

I have reported this to Microsoft as a false positive. https://www.microsoft.com/en-us/wdsi/filesubmission/ Process is still pending.

Another Day. Phix1.0.5 is completely back in Quarantine and no way to ignore it. Virustotal gives a 10/73 for pw.exe from 1.0.5 ec3a3e7ef059b25b470d3fb621219780e428859aff5ddd97b0b772a8cf68358a

Warnings for 1.0.3 and 1.0.4 are also back. But i can ignore them.But i stopped ignoring them. So at least for me Phix is unusable at the moment.



Gave it another try today. Still nothing really changed. I am sure that everything is false positive. Hopefully it will work again at some point.

(the text probably seems a bit confusing. unfortunately i couldn't post anything in the forum for a few days. and then i kept expanding the text and copying it together.)

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

3. Re: Phix 1.0.5 uploaded

Oh dear, trouble't mill.

I've been suffering a few BSOD of the DPC WATCHDOG VIOLATON variety, which I'd put down to trying to install Docker,
but uninstalling that didn't help so I cannot rule out having picked up something nasty here. One thing I did do is to
intall some Windows 10 update preview, maybe that's why (touch wood) Windows Defender isn't yet giving me any jip.
Much like you, all I can really do is hope enough BSOD info is getting to Microsoft and they roll out a magic fix, soon.

However, there's also trouble at VirusTotal itself:
I uploaded my pw.exe and just like you said, not happy (and apparently 21/95 didn't run).
I re-scanned one of Saturday's submissions and that jumped from 1/95 to 2/95 here.
So I uploaded my pw.exe in a zip file, and that locked on 4/67 (so 28/95 didn't run)...
So I re-uploaded my local copy of Saturday's submision, same SHA-256 so it cannot be "more infected", and that locked on 6/66... (""29/95) here
Without any doubt, there must have been at least two binary identical pw.exe's in that mix. So there's clearly something amiss their end.

I'll keep my eyes peeled.

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

4. Re: Phix 1.0.5 uploaded

Thank you from me, too! On my Win 10 machine (no additional security software installed) I didn't have a problem, using phix.1.0.5.setup.exe - Windows asked me if I really wanted to install such a potentially dangerous software, but when I said yes, I could install the 32 bit version, could build the 64 bit version, and can still use it, without any further troubles, warnings, error messages, or quarantaining.

One unrelated little thing I wanted to mention is that on the "Installation" page - phix.x10.mx/docs/html/installation.htm - you say "On a fresh (win7) machine I normally ..." and "Phix hybrid interpreter/compiler. Version 0.6.4 Copyright Pete Lomax 2006..2014" - this may irritate potential users who are new to Phix, but of course it's not much of an issue.

Best wishes, Robert

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

5. Re: Phix 1.0.5 uploaded

RobertS said...

One unrelated little thing

Thanks, updated ready for the next release.

Fingers crossed and touch wood, it seems my BSOD woes were caused by a dying USB port, now it's fully died and I've plugged my keyboard into a different port it seems instantly much happier.

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

6. Re: Phix 1.0.5 uploaded


I opened GitHub Desktop yesterday and was rather alarmed to see 572 files had changed since 1.0.5 was shipped two weeks ago.
Most of them were exe/dll, which immediately triggered the thought "Oh dear, something has run round infecting them".... but:
a) that's not the behaviour of a "stealth" virus or something that 90%+ of antivirus checkers would miss,
b) on closer inspection they were never being stored in the repository... I think, and which makes some sense.

There was a new version of GitHub Desktop on the 5th that has already downloaded itself here, and has to be a prime suspect.

Does anyone have a local copy of the Phix repository they cloned, ideally 1..5 years ago? Linux perhaps slightly better than Windows.
If so, a) does it have any exe/dll files?, and b) have I mangled the .gitignore file (esp first 50 lines) somehow?

Windows Defender is still giving everything the green light here, not a squeak, and everything else seems fine.

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

7. Re: Phix 1.0.5 uploaded

I found SHA.DLL in \demo\rosetta.
Apart from that neither .exe nor .dll.

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

8. Re: Phix 1.0.5 uploaded

mitgedanken said...

I found SHA.DLL in \demo\rosetta.
Apart from that neither .exe nor .dll.

Thanks, so it was a GitHub Desktop Version 3.4.1 change. I've just pushed 130+ binaries then, since that's what they apparently want, and maybe they'll scan them too...

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


Quick Links

User menu

Not signed in.

Misc Menu