| Commit | Date | |
|---|---|---|
|
[r13084]
by
mikeaubury
C# back end: resolve decode_cmd_type locally libLEX_CSNEW.so shipped with an unresolved symbol. decode_cmd_type is only libLEX_CSNEW.so: undefined symbol: decode_cmd_type leaving a half written output file behind. fgl_enums.c and fgl_enums.h are copied here from lex_esqlc rather than linked |
2026-09-05 12:31:55 | Tree |
|
[r13083]
by
mikeaubury
Bound the prototype parameter and return lists add_bolton splits a prototype's parameter and return lists into char *p_params[200]; with no bounds check, so a prototypes file listing more than 200 of either *** stack smashing detected *** : terminated A prototypes file is input data. No input should be able to smash the Prototype for <name> has more than 199 return values - ignoring the rest |
2026-09-05 12:31:40 | Tree |
|
[r13082]
by
mikeaubury
Coerce SMALLINT properly, and let make_cast be forced ensure_smint tested for DTYPE_SMINT and then cast to DTYPE_INT. It was the only Also: 4GL says SMALLINT minus a literal is still SMALLINT, so no conversion was make_cast took a "force" flag and never consulted it, so a cast that is a no-op No change to the C back end's output on the example suite. |
2026-09-05 12:31:28 | Tree |
|
[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 |