| Commit | Date | |
|---|---|---|
|
[r13122]
by
mikeaubury
REST/JSON services callable from 4GL rest_register / run_rest_server in libaubit4gl (registration from a JSON file found via |
2026-10-04 13:50:31 | Tree |
|
[r13121]
by
mikeaubury
Compiler: completion hooks, #line fixes, NULL lextype, fgllint in default build - 4glc and fcompile can report which tokens the parser accepts at end of input |
2026-10-04 13:50:20 | Tree |
|
[r13120]
by
mikeaubury
odbc: sqlex.c and array.c still passed 32 bit length indicators r13115 fixed the SQLLEN mismatches in sql.c, but the plugin is built from sqlex.c A4GL_odbc_get_blob_data_int SDWORD i -> SQLGetData arg 6 SDWORD is 4 bytes on LP64 while those parameters are SQLLEN *, 8 bytes, so the sqlex.c:780:70: error: passing argument 6 of 'SQLGetData' from incompatible and array.c would have followed with three more at SQLBindCol. Both are now Checked against the unixODBC 2.3.12 headers (unixodbc-dev, Ubuntu 24.04): |
2026-09-24 16:00:35 | Tree |
|
[r13119]
by
mikeaubury
OPEN FORM: pass the FORM variable's member, not the struct A FORM variable is generated as static struct { long objectid ; } list; and OPEN FORM emitted A4GL_open_gui_form(&list,...) against a parameter error: passing argument 1 of 'A4GL_open_gui_form' from incompatible pointer so tools/test/gui/calc.4gl could not be compiled. The member is now passed While there: the name emitted here comes from the command as a plain defprog.4gl calls time() in a CODE block without including <time.h>; it does Checked on the 142-module corpus: 112 compile where 110 did, the two being |
2026-09-21 11:14:47 | Tree |
|
[r13118]
by
mikeaubury
Declare the 4GL-callable builtins where generated code can see them Compiling a 4GL program that calls a4gl_get_ui_mode() fails: error: implicit declaration of function 'aclfgl_a4gl_get_ui_mode'; The function exists (lib/libaubit4gl/fglwrap.c) and is prototyped in a4gl_get_ui_mode was not alone. Every name in lib/generated/std_funcs.c was A4GL_endis_fields goes the same way: the generator emits a call to it for the Signatures were checked against the definitions, not against other headers. Checked on 142 modules from tools/ and the test suite: 110 compile where 108 Not fixed here, found by the same scan and worth a look on their own: |
2026-09-21 10:59:19 | Tree |
|
[r13117]
by
mikeaubury
C back end: make MARK_SCOPE work A4GL_MARK_SCOPE (and MARK_SCOPE_MODULE) prefixes variables with their scope - static long M_dup ; and did not compile. Only the C# back end, which applies the prefix wherever a The declaration and every use now take the name from one function, - system variables (status, sqlca, int_flag...) live in the library and keep - class members and associative arrays keep the plain name: they are declared - simple and object function parameters had no scope recorded at all, so they - a CODE block is hand written C that names variables as the 4GL wrote them, Checked on 142 modules from tools/ and the test suite compiled three ways - no Two things the flag cannot do: C outside the module must use the prefixed name The description of A4GL_MARK_SCOPE said it adds the module name, which is what |
2026-09-21 10:08:40 | Tree |
|
[r13116]
by
mikeaubury
Generated code: do not include <unistd.h> r13105 added <unistd.h> to a4gl_incl_4glhdr.h so that a CODE block calling error: 'dup' redeclared as different kind of symbol Those are ordinary 4GL variable names: such programs compiled in 1.6.3 and up Checked on clean exports of r13115 built with and without the change: configure A variable can still collide with stdio.h, string.h or stdlib.h - index, time |
2026-09-21 10:08:18 | Tree |
|
[r13115]
by
mikeaubury
odbc: stop redefining SQLLEN to a 32 bit type sql.c opened with #ifndef SQLLEN meant as a fallback for header sets that predate SQLLEN. SQLLEN is a That produced 20 errors under gcc 14 (SQLBindCol argument 6, SQLRowCount The fallback now keys off A4GL_ODBC_HEADERS_LACK_SQLLEN, set only by the It moved into a4gl_lib_sql_odbc_int.h because the prototypes there use The declarations that feed ODBC out parameters are corrected to Verified by compiling sql.c against all three header sets: unixODBC |
2026-09-14 18:44:00 | Tree |
|
[r13114]
by
mikeaubury
tools/misql: link with 4glpc, not 4glc misql compiles each module to a .ao and then links the set of them. Both Driving 4glc directly to link .ao files leaves the library link line off, Both rules now use "aubit 4glpc", the documented way to drive the Masked on any tree built before now, because a stale misql.4ae satisfies FGLPCEXEC itself is left alone: other makefiles use it and work, so what |
2026-09-14 18:38:30 | Tree |
|
[r13113]
by
mikeaubury
Fix tools/adbload under gcc 14 Three errors, all of them things gcc used to warn about and now rejects 1. A4GL_init_session, A4GL_init_session_with_sqltype and A4GL_set_conn The C generator emits calls to all three (compile_c_sql.c, for A4GL_close_session and A4GL_set_dialect are left where they are - 2. adbload.4gl assigned a FILE * straight into a 4GL INTEGER inside a Verified by deleting every generated .4ae/.c under tools and compilers - |
2026-09-14 18:34:00 | Tree |