mach icon indicating copy to clipboard operation
mach copied to clipboard

sysgpu: Shader compiler doesn't handle hexadecimal numbers with [eEfF] correctly

Open msg-programs opened this issue 11 months ago • 0 comments

Uppercase Fs in a hex number cause an error.

null:4:26 error: expected ';', but found 'an identifier'
4 │     let x: u32 = 1234 & 0xFF;
                              ^~

Lowercase fs cause a different issue:

null:4:24 error: hexadecimal float literals not implemented
4 │     let x: u32 = 1234 & 0xff;
                            ^~~~      

The same error occurs with hex numbers containing a singular e/E:

null:4:28 error: hexadecimal float literals not implemented
4 │     let x: u32 = 1234 & 0x0E;
                            ^~~~
null:4:28 error: hexadecimal float literals not implemented
4 │     let x: u32 = 1234 & 0x0e;
                            ^~~~

Finally, numbers containing two es/Es also cause an error:

null:4:24 error: duplicate exponent 'E'
4 │     let x: u32 = 123 & 0xEE;
                           ^~~~

Putting other digits between two es doesn't change this:

null:4:24 error: duplicate exponent 'e'
4 │     let x: u32 = 123 & 0xe123e;
                           ^~~~~~~

msg-programs avatar Jan 29 '25 10:01 msg-programs