News:

Download Pelles C here: http://www.pellesc.se

Main Menu

Recent posts

#31
Announcements / Re: Release Candidate #2 for v...
Last post by Pelle - March 31, 2026, 10:06:30 AM
Quote from: John Z on March 30, 2026, 02:36:03 PMTurns out to be more than just the one file.  I checked the Option you mentioned above it was set to UTF-8.  Most files in the program were ANSI, including file.c, a few newer additions were UTF-8.
Sounds like what I stumbled on yesterday, by dumb luck. When debugging a totally unrelated case, the debugger complained about "invalid characters" when trying to load a source file (using the same load function as the source editor). On my machine it boiled down to double quotes (code 34 vs 147).

The revised sequence when loading is now:
1) If the text file begins with a BOM for UTF32LE, UTF32BE, UTF8, UTF16LE, UTF16BE: pass it on as encoded this way (for later processing or "sorry, bad format").
2) If the text file is longer than 32 bytes (for technical reasons), scan the whole file (memory mapped) and check for UTF-8 special encoding. If not invalid, and at least one 'extended' character: pass it on as UTF-8 encoded (no BOM).
3) If "Options" -> "Source editor" -> "Default encoding, source files" is set to UTF-8, scan the whole file (memory mapped) and check for 7-bit ASCII encoding. If not invalid (code above 127, or unwanted control char): pass it on as UTF-8 encoded (no BOM).
4) Pass it on as ANSI encoded (whatever that means, in different parts of the world).

This works on my machine. I really hope this is it, because it's getting complicated...

I don't want to upload yet another Release Candidate just for this. If there is no major breaking bug this will hopefully be in the final version (otherwise Release Candidate 3).
#32
Announcements / Re: Release Candidate #2 for v...
Last post by Vortex - March 30, 2026, 11:25:39 PM
Hi Pelle,

Release Candidate #2 for version 14.00 work on Windows 7 Sp1 64-bit, many thanks.
#33
ARM64 discussions / Re: Not frustrated enough? Too...
Last post by Vortex - March 30, 2026, 09:09:29 PM
Hi Pelle,

Thanks for the ARM64 example. I don't have a computer with an ARM processor, so not easy to the test sample. Thanks for maintaining Poasm. Yes, the C version is shorter and is looking better.
#34
Announcements / Re: Release Candidate #2 for v...
Last post by John Z - March 30, 2026, 02:36:03 PM
Quote from: Pelle on March 30, 2026, 01:36:57 PM2) What is your setting for "Options" -> "Source editor" -> "Default encoding, source files" ?

Turns out to be more than just the one file.  I checked the Option you mentioned above it was set to UTF-8.  Most files in the program were ANSI, including file.c, a few newer additions were UTF-8.  I toggled the default to ANSI and the file(s) loaded into the editor just fine so did all the others I had just found were also indicating error.

I then just toggled the setting back to UTF-8 and everything was still working, even though I did not re-save any file.  But they are all marked UTF-8 (No BOM) now in the editor.

Checked an archived version and it was repeatable.  Easy fix toggle the Option.  Going to check a few older files (ANSI) for this issue.

John Z
#35
Announcements / Re: Release Candidate #2 for v...
Last post by Pelle - March 30, 2026, 01:36:57 PM
Quote from: John Z on March 30, 2026, 12:46:25 PMThe only different thing I see is with a single C file that was 'OK' under V13 but is reported as having illegal character(s) under V14.  I could not find any bad character(s) and other text editors did not show or complain either.  Finally I just used TextPad to re-save the file as UTF-8, with BOM, then it was acceptable to V14, nothing looked different...
1) Can I somehow look at the "broken" file ?
2) What is your setting for "Options" -> "Source editor" -> "Default encoding, source files" ?

Quote from: John Z on March 30, 2026, 12:46:25 PMPerhaps a future enhancement could report the byte position of the 1st offending character so it would be easier to locate and correct.
Properly formed text files should always load. Malformed text files should be uncommon enough that my time is better spent on more important tasks.
#36
Announcements / Re: Release Candidate #2 for v...
Last post by Pelle - March 30, 2026, 01:20:48 PM
Quote from: TimoVJL on March 30, 2026, 11:14:14 AMThanks,
that i can still use my an old PC full of an old C-code for testing new version.
Thanks. No problem.  8)
#37
Announcements / Re: Release Candidate #2 for v...
Last post by John Z - March 30, 2026, 12:46:25 PM
All looking good on my various programs, and other test files.

The only different thing I see is with a single C file that was 'OK' under V13 but is reported as having illegal character(s) under V14.  I could not find any bad character(s) and other text editors did not show or complain either.  Finally I just used TextPad to re-save the file as UTF-8, with BOM, then it was acceptable to V14, nothing looked different...

Perhaps a future enhancement could report the byte position of the 1st offending character so it would be easier to locate and correct.

All good.

John Z

#38
Announcements / Re: Release Candidate #2 for v...
Last post by TimoVJL - March 30, 2026, 11:14:14 AM
Thanks,
that i can still use my an old PC full of an old C-code for testing new version.
#39
ARM64 discussions / Not frustrated enough? Too muc...
Last post by Pelle - March 30, 2026, 10:09:19 AM
Well, why not try writing some ARM64 (RISC) assembly code?

Here is a small example for POASM, displaying a typical "Hello, world" message box:

NULL            equ     0
MB_OK           equ     0
EXIT_SUCCESS    equ     0

                area .rdata, data, readonly

message         dcb     "Hello, Windows on ARM64!", 0
title           dcb     "POASM test", 0

                area .text, code

                export main

                import __imp_ExitProcess
                import __imp_MessageBoxA

main            function

                stp     fp,lr,[sp,#-16]!
                mov     fp,sp

                mov     x0,NULL
                adrp    x1,message
                add     x1,x1,message
                adrp    x2,title
                add     x2,x2,title
                mov     w3,MB_OK
                adrp    x8,__imp_MessageBoxA
                ldr     x8,[x8,__imp_MessageBoxA]
                blr     x8

                mov     w0,EXIT_SUCCESS
                adrp    x8,__imp_ExitProcess
                ldr     x8,[x8,__imp_ExitProcess]
                blr     x8

                ldp     fp,lr,[sp],#16
                ret       

                endfunc

                end

The C version is just a tad shorter:

int main(void) {
  MessageBoxA(NULL, "Hello, Windows on ARM64!", "POASM test", MB_OK);
  ExitProcess(EXIT_SUCCESS);
}
#40
Announcements / Re: Release Candidate #2 for v...
Last post by Pelle - March 30, 2026, 10:03:26 AM
Thanks. Maybe not too many more rounds this time? We'll see...