Petr Ledvina
Petr Ledvina
``` SQL CREATE OR REPLACE FUNCTION test_case(text) RETURNS text LANGUAGE internal IMMUTABLE AS $function$upper$function$ ``` This causes problem in Migra. It is trivial to avoid (use 'LANGUAGE SQL' function for...
There are some possible optimizations (at least for ARM CPU): Only 4 arguments are passed in registers, remaining arguments has to be pushed on stack and stack frame may be...
There is minor problem with `%g` specifier: from https://www.gnu.org/software/libc/manual/html_node/Floating_002dPoint-Conversions.html#Floating_002dPoint-Conversions > The ‘%g’ and ‘%G’ conversions print the argument in the style of ‘%e’ or ‘%E’ (respectively) if the exponent would...
In this case (and wider precision) octal zero should be included in padding instead of adding it ``` printf("%#.5o", 06143) expected: 06143 got: 006143 printf("%#.6o", 06143) expected: 006143 got: 0006143...
``` printf("%g", 0.0001) : expected: "0.0001" got: "0.000100000" printf("%g", 0.00001) : expected: "1e-05" got : "1.000000e-05"
For consideration: Maybe it would be useful to change %p format to be compatible with libc: > In the GNU C Library, non-null pointers are printed as unsigned integers, as...
When printing "%e" or "%g" with zero as argument, 0e-308 is assumed instead of zero ``` printf("%e", 0): expected: "0.000000e+00" got: "0.000000e-308" printf("%g", 0): expected: "0" got: "0.000000e-308"
Build printf using C Convert most tests in test_suite to use macro Fix catch2 New tests use CHECK now, but it may be reverted easily back to REQUIRE.
This is work in progress, needs BIG cleanup. It's here only for discussion Rough overview of changes: - use `struct printf_state` to pass around % specifier info. Mostly it seems...
Apply some changes to existing code. Split into separate commits with comments