| Commit | Date | |
|---|---|---|
|
[r13017]
by
mikeaubury
P-code: register struct s_field_name and s_field_name_list Same gap as sDependantTable - these are emitted into generated code for field Found by running the aubit4gltest corpus through the p-code pipeline using each |
2026-08-31 12:51:48 | Tree |
|
[r13016]
by
mikeaubury
Make the P-code compiler and runner work; restore panel/form to the TUI link P-code The runner would not build: compilers/pcode/fgl_calls.h registered Sizes and signs, all 64 bit issues: * a4gl_htonl/a4gl_ntohl returned htonl()'s uint32_t as a long, which zero * The p-code type model said a long and a pointer were 4 bytes while the runner * A string literal's address was cast through (int) in common_eval.c, which The p-code compiler skips every '#' line, so it never sees a #define. NULL, A4GL_push_long and A4GL_push_int were still keyword-bound to constants, but An unspecified array bound is held as -1, which was multiplied into a negative On the generator side, several things emitted only for the C backend are not Suppressing the MAIN prototype means an ordinary "MAIN ... END MAIN" program TUI link Testing r12988 1098 run, 59 skipped, 35 failed The two differences are tests 706 and 1413. Run individually, 706 passes on For reference, with the TUI driver broken these runs managed 283 tests with |
2026-08-31 12:19:27 | Tree |
|
[r13015]
by
mikeaubury
Build warning cleanup, object system fixes, embedded Python Three strands of work. Build warnings Mostly noise (sign-compare, unused-but-set, missing prototypes, dead Also added svn:keywords=Id to the modules that had lost it. 4GL object system * objData->base.objectid is not a 4GL variable, so the root-scanning * Destructors are registered as "<type>.~" but A4GL_destroy_object looked * Class methods pushed a call frame on entry but only popped it on an * castTo could not be reached from 4GL at all. The lookup is a plain * Polymorphic overloads resolved backwards. getSigForTopOfStack built the New samples in tools/test/OO exercising a three-level chain (shape <- Embedded Python define p object(python) Methods: new, import, addpath, available, run, eval, call, set, get, configure detects an embeddable Python (pkg-config python3-embed, then ./configure --with-python / --without-python / (auto by default) With no python3-dev the implementation compiles away, nothing links Documented in docs/README-Python.txt, example in Verified: full build clean in both configurations, tools/test builds, and |
2026-08-30 17:49:50 | Tree |
|
[r13014]
by
mikeaubury
Fix the real bugs behind the remaining compiler warnings These are the ones set aside earlier as "the interesting shortlist" - every Memory: - compilers/4glc/parsehelp.c: malloc(sizeof(expr_str)) followed by memcpy of Logic that never ran, or always ran: - compilers/4glc/lint.c: "whencode & 0x15 == WHEN_CALL" - 0x15 masks off bit 1 Format strings: - compilers/4glc/prototypes.c: three fprintf calls passing arguments to format Left alone deliberately: compile_c.c's "arr_subscripts_len >= 0" was always true |
2026-08-27 12:18:56 | Tree |
|
[r13013]
by
mikeaubury
Drop the Glade IDE from the default build glade/ide and glade/ide/sqleditor are no longer built by "make". They have not Only the ALL list changes. The "glade" target itself is untouched, so "make With this, a full clean build of the default target is free of every diagnostic |
2026-08-27 11:53:46 | Tree |
|
[r13012]
by
mikeaubury
Clear the GCC 14+ errors from the rest of corecompile: adbload2 and runforms Continues r13011. The .warn files that 4glpc writes - which never reach the tools/adbload2 (22 down to 0): - process.ec and jtypes.c call runtime entry points with no prototype in scope. tools/asql/runforms (3 down to 0): - A4GL_isnull, A4GL_read_columns and aclfgl_a4gl_get_info were declared only in Also in lib/libaubit4gl/ui.c: A4GL_open_gui_form declared its last parameter as Not done: glade/ide and glade/ide/sqleditor still have 32, mostly generated 4gl One thing tried and reverted: declaring compat.c's bare trim() in |
2026-08-27 11:38:50 | Tree |
|
[r13011]
by
mikeaubury
Fix the GCC 14+ errors in tools/asql, and a real sqgetdbs/long bug with them Reported building r13010: "Error compiling infx.ec" in tools/asql, with no Three things in there are warnings under GCC 13 and errors from GCC 14 on: - jtypes.c calls isxdigit, isspace, isalnum, isdigit, isalpha, ispunct and Declaring sqgetdbs then exposed a genuine bug at three of its four call sites. Verified by rebuilding tools/asql: infx.warn goes from 10 GCC-14-fatal Note for whoever picks this up next: a sweep of the .warn files this build |
2026-08-27 11:06:19 | Tree |
|
[r13010]
by
mikeaubury
Make bin/aubit POSIX sh, so it no longer depends on bash The wrapper could not be parsed by a POSIX shell at all - dash stopped at line if [ -z "$BASH_VERSION" ]; then which only works where bash exists. That is not everywhere we claim to build: The script turned out to be very close to POSIX already - no [[ ]], no arrays, 118 function NAME () -> NAME () With those gone the re-exec is unnecessary and is removed, and the file gets a Verified rather than assumed: bin/aubit now parses under dash, bash and sh; A full clean build is unaffected: 724 warnings, exit 0. |
2026-08-26 07:59:53 | Tree |
|
[r13009]
by
mikeaubury
Stop using "which" to find commands - it is not guaranteed to exist Follow-on audit after r13008. The flexml failure was one instance of a general "which" is an external program, not a shell builtin, and Debian dropped it from Converted to "command -v", which is POSIX, is built into every shell, and - bin/aubit: 26 call sites - the compiler wrapper's probes for gcc, make, Two things found in passing and deliberately left alone, both worth a look: - bin/aubit line 806 reads x="`command -v $prg >/dev/null 2>&1`" - stdout goes The one remaining "type" probe is PKG_CONFIG_ROOT_CYGPATH in |
2026-08-26 07:47:15 | Tree |
|
[r13008]
by
mikeaubury
Detect optional build tools with "command -v", not "type" Reported building r13007 on Ubuntu 26.04: the build stops in It should never have tried. uilib/Makefile already falls back to the HASFLEXML:=$(shell type flexml 2> /dev/null) but the probe is not safe. "type" is a shell builtin whose behaviour for a $ dash -c 'type flexml 2> /dev/null' "command -v" is the POSIX way to ask this and prints a path on stdout only Fixed in all ten probes of this shape, not just the one that bit: Not reproduced end to end here: this box has bash as /bin/sh and GNU Make 4.3, The warnings quoted alongside the failure - comms.c sign-compare and unused |
2026-08-25 16:10:04 | Tree |