| Commit | Date | |
|---|---|---|
|
[r13098]
by
mikeaubury
C# back end: restore three fixes lost to a revert These were committed in r13095 and then reverted out of the working copy while - a struct with a field initialiser needs an explicit parameterless The lesson is narrower than it looks: revert takes the whole file, so undoing |
2026-09-06 13:47:01 | Tree |
|
[r13097]
by
mikeaubury
C# back end: type a function from its widest RETURN A function not covered by the prototypes has its signature worked out by It now keeps the RETURN that yields the most values, matching how the compiler |
2026-09-06 13:16:19 | Tree |
|
[r13096]
by
mikeaubury
Choose deliberately between a function's return shapes A 4GL function may return different things on different paths - a value on one The widest now wins: a function returning SMALLINT on one path and DECIMAL on Ordering is SMALLINT < INTEGER < INT8 < DECIMAL < FLOAT < CHAR, comparing at No change to the C back end's output on the example suite - it accepts either |
2026-09-06 13:08:55 | Tree |
|
[r13095]
by
mikeaubury
C# back end: make ORDER BY reports compile The ordered report path was almost complete - it creates the temp table, - the reread cursor was used and never declared. Ordinary cursors become A4GL_cs_module_prefix exports that prefix for compile_cs_sql.c, which generates A report with an ORDER BY now compiles. Whether its rows come back sorted has |
2026-09-06 13:03:59 | Tree |
|
[r13094]
by
mikeaubury
C# runtime: date arithmetic, blob fetch, and two missing entry points DateAdd and DateDiff. A DATE is a day count in 4GL - day 0 is 31 December 1899 GetData(out byte[]?, int) for BYTE and TEXT columns. The generator used to pass UI.ClearWindow: the protocol message existed and the entry point did not. A report's COLUMN takes whatever the 4GL gave it, commonly a SMALLINT, rather |
2026-09-05 22:00:36 | Tree |
|
[r13093]
by
mikeaubury
C# back end: report generation fixes A report is emitted as a nested class, so the module's own members are not in startReportOrdered and finishReportReordered were called by the ORDER BY path outputMode was assigned unqualified in one place when it is a field on the "while (1)" is not a condition in C#. Note: r13092 carried more than its message describes. Besides the RUN ... |
2026-09-05 21:59:56 | Tree |
|
[r13092]
by
mikeaubury
C# back end: close the wrapper on RUN ... RETURNING decode_varbind in 'w' mode opens a conversion around an assignment target - L_stat = AsSmallInt(Fgl.ExecuteCmd(L_cmd); That is a parse error, so it took the whole module's diagnostics with it and |
2026-09-05 21:59:13 | Tree |
|
[r13091]
by
mikeaubury
Fix INTERVAL addition and negative results Two faults in the year-month branch of A4GL_in_in_ops, which is where interval Addition wrote the total as a float and handed that to the parser: SPRINTF1 (buff_3, "%f", d_i1); /* "68.000000" */ which cannot be read as a year-month interval, so every addition of two That shared formatting was itself wrong for a negative total: it wrote each The day-time class was already correct; it goes through the seconds path. The interval fidelity probe now covers subtraction, addition and a subtraction Note that A4GL_op_ival in lib/libaubit4gl/interval.c, corrected in r13081, has |
2026-09-05 12:45:20 | Tree |
|
[r13090]
by
mikeaubury
Add an INTERVAL fidelity probe Checks INTERVAL qualifiers against the C runtime, and in particular what the Three INTERVAL cases are deliberately left out because the C runtime is wrong run.sh no longer writes its own entry point: the generator emits a static Main |
2026-09-05 12:35:31 | Tree |
|
[r13089]
by
mikeaubury
C# runtime: INTERVAL qualifiers, LOAD/UNLOAD, PUT, and missing builtins INTERVAL now carries its qualifier as a value. FglIntervalQualifier holds the Also on the temporal types: arithmetic on DATETIME and INTERVAL, DATE plus or LOAD and UNLOAD are implemented, following Informix's delimited format - one Missing builtins added: writeln, FGL_LASTKEY and FGL_KEYVAL (using the STATUS is assignable, routed through a setter that keeps the status fields The client/server call layer still throws, but with the signatures its |
2026-09-05 12:35:17 | Tree |