| Commit | Date | |
|---|---|---|
|
[r13081]
by
mikeaubury
Fix INTERVAL YEAR TO MONTH arithmetic Two bugs in the same function, both of which threw away the month part of a v1 = data_a[0] + data_a[1] / 12; data_a is an int array, so dividing by an int truncated - every YEAR TO MONTH double yd, md; y is declared, initialised to zero and never assigned; the months are what is Together these make subtraction correct where the result is positive and |
2026-09-05 12:30:53 | Tree |
|
[r13080]
by
mikeaubury
Fix variable substitution inside SQL subqueries A 4GL variable used inside a subquery was never replaced by a placeholder and Assertion failed: These should all have been removed by now... (sqlexpr.c) and the statement could not be compiled at all. make_list_item_list_from_select collects a statement's expressions so the back The text writer already read both sides, so the collector was simply out of step SELECT COUNT(*) INTO n FROM t WHERE k IN (SELECT a.k FROM u a WHERE a.c = v) A constant in place of v compiled; a variable did not. |
2026-09-05 12:30:37 | Tree |
|
[r13079]
by
mikeaubury
dotnet: qualify the builtins, so a program may reuse their names Every builtin that can be static now lives on the static Fgl class and The point is namespace: a builtin on the module base class reserves that Most of it went into map_fname's table, which is where a 4GL name is The reservation that remains is deliberate and small. It is worth On the large application this is 99 errors down to 94 - the qualifying |
2026-09-04 20:16:33 | Tree |
|
[r13078]
by
mikeaubury
dotnet: BEFORE/AFTER INPUT, GET_FLDBUF, and variadic C-function stubs 164 compile errors down to 99 on the large application. INPUT gained BEFORE INPUT and AFTER INPUT, which bracket the dialog as The unimplemented client/server entry points now take params object?[] That prototype gap is worth stating plainly, because it is not visible 203 runtime tests pass; the six end-to-end programs and the UI message |
2026-09-04 20:07:24 | Tree |
|
[r13077]
by
mikeaubury
dotnet: DATETIME fetches, SQLCA as 4GL names it, and CURRENT Continuing to work through what a large real application needs. This DATETIME and INTERVAL fetches carry their qualifiers - 99 of the errors. SQLCA answers to its 4GL spelling. Generated code writes sqlca.sqlcode, CURRENT comes in two shapes. Bare, it is a value - so a property, using INT_FLAG and QUIT_FLAG are int? rather than int. They are INTEGER One thing worth recording, because it will happen again: adding Current 203 runtime tests pass and all six end-to-end programs still agree with |
2026-09-04 20:04:52 | Tree |
|
[r13076]
by
mikeaubury
lex_cs/runtime: the 4GL builtins the generator emits unqualified Running a large real 4GL application through the C# generator turned up They compile into Aubit4GL.Runtime rather than forming an assembly of FglStrings GetSubstring, WriteSubstring, SwitchTrim The substring pair carries the semantics that are easy to get wrong: The client/server call layer - create_named_socket, connect_to_server, Also fixes ASqlReportError, which was mine: r13063 retargeted And the end-to-end probe now builds the runtime once before its loop. Fidelity: 27 semantics, 9 UI messages, 30 USING, the 66-line report and |
2026-09-04 19:52:29 | Tree |
|
[r13075]
by
mikeaubury
dotnet: fglproto takes module names, and it is already documented I had the README telling people to pass .dat files and to filter the Verified both forms produce the same prototypes.unl, on a two-module Also says where this comes from, since it is reasonable to wonder. The The end-to-end probe was already using the documented form; only the |
2026-09-04 14:53:25 | Tree |
|
[r13074]
by
mikeaubury
dotnet: answer the fglproto question in the README Records what the prototype pass is actually for, since it is the first Also adds the two things the new arithmetic probe turned up to the list |
2026-09-03 07:38:20 | Tree |
|
[r13073]
by
mikeaubury
dotnet: 4GL division does not truncate Found while answering whether the C# backend still needs fglproto: a 4GL division never truncates. 7/2 is 3.5 whatever the operands are dec 7/2 = 3.5000 The generator emitted a bare C# "/", which truncates at the division Two things fell out of fixing it: assign_wrapper had no case for FLOAT or SMALLFLOAT, so assigning any DISPLAY of a MONEY lost its currency symbol. MONEY and DECIMAL are New end-to-end probe arith.4gl covers all of it: division into DECIMAL, Every result in it is assigned to a declared variable before being Fidelity: 27 semantics, 9 UI messages, 30 USING, the 66-line report and |
2026-09-03 07:37:53 | Tree |
|
[r13072]
by
mikeaubury
etc/containers: check the installed tree, not just the build Every install bug of the last few days - the missing aubitrc, the So the container check now has two phases: in-tree compile and run a 4GL program from the source tree The second phase does not trust the exit status. It checks that 4glc, The container-side half moved into its own checks.sh, since it had Both negative-tested by reintroducing a bug in a scratch export and dropping json.h from the header list dropping SQL_pg8 from the install list In both, the in-tree phase still passed - which is the whole point. Clean tree passes on both images. |
2026-09-03 07:19:19 | Tree |