Monthly Archives: November 2026

Clarion Unicode – beta refresh (14556)

Clarion · Unicode Preview · Beta Refresh

Refresh build 14556 — a debugger that stops on a condition and lists every breakpoint, ClarionCL built for unattended runs, and a 4 GB IDE

The debugger takes a condition on any breakpoint (Counter = 7, Name = 'Smith') and shows every breakpoint of the program in one window. ClarionCL writes every message to the console and never waits for a click, so a build script can run it overnight and fail the build on an error. ClarionLAA.exe is the same IDE with a 4 GB address space. Import From Application leaves your modules alone, DATESPLIT and TIMESPLIT join the built-in procedures, and the fixes from the beta forum are in: the Window Previewer without .NET 3.5, the Report Writer, #EXPORT of the dictionary, a MARS transaction frame that always begins, a TEXT with 64 KB and more. Already testing? Everything below is new since build 14523.

Debugger conditional breakpoints · Window › Breakpoints · its own help rewritten ClarionCL unattended runs · /log · /stoponerror · every dialog a console line IDE ClarionLAA.exe (4 GB) · Window Previewer without .NET 3.5 · Report Writer Language DATESPLIT · TIMESPLIT · DATE(0, d, y) AppGen and templates Import From Application keeps your modules · #EXPORT(%DictionaryFile) · 700+ table dictionaries Runtime and SQL TEXT with 64 KB+ under PROP:HScroll · a MARS transaction frame always begins

First the two changes every Clarion developer meets — the debugger and the unattended ClarionCL — then the IDE, the language and the fixes of this drop, then the full tester guide, whose “What’s new” section lists everything that changed since you last read it.

●

For every developer: a breakpoint that stops when it matters, and all your breakpoints in one window

On a line that has a breakpoint press Shift+B (or right-click › Breakpoint Condition…) and type variable op literal: Counter = 7, Total >= 1000.5, Name = 'Smith', with op one of = <> < <= > >=. The variable is any number or string in scope at that line (a local, a parameter, a global; a THREADed one reads the running thread’s copy). The program stops only when the condition holds and runs straight on when it does not, so a breakpoint inside a loop or a busy procedure stops on the pass you want to see. The condition is saved with the breakpoint and is back in the next session. Window › Breakpoints lists every breakpoint of the program, Source · Line · Procedure · Condition: Space or a double click goes to the line, Del removes it, Shift+B edits its condition; a breakpoint remembered for a DLL that has not loaded yet shows as (pending) until it does. F1 in the debugger opens its own help, rewritten for the debugger as it is today. From beta requests.

The debugger's Breakpoints window: Source, Line, Procedure and Condition columns, two breakpoints with conditions
Window › Breakpoints: every breakpoint of the program, with its condition.
>_

For every build script: ClarionCL runs unattended

Every message reaches the console and nothing waits for a click. A template #ERROR or #ASSERT during /ag or /aru is an error GENE000 line that names the application, the procedure and the template section; the run goes on and the exit code is the number of errors, so a script can fail the build. /stoponerror ends the run at the first error instead, /log <file> writes everything to a file as well. A dialog the generator would have shown is a warning CLCW005 line with the answer ClarionCL gave, an error box an error CLCE012 line, a utility /aru cannot find a GENE102 with the form it expects, an application that cannot be opened says why before it stops. The one stopper left, a dictionary of an older version, is taken by /au or by the new Dictionary Editor option “Auto-upgrade dictionaries to the current version”. On the Professional Edition a switch that needs the Enterprise Edition says so (CLCE009) instead of “Unknown Switch”, and /ConfigDir refuses a value that is not a folder (CLCE010). From beta reports and a beta request.

4G

ClarionLAA.exe: the same IDE with a 4 GB address space

It sits beside Clarion.exe in the bin folder and shares every DLL, add-in and setting; the one difference is the large-address-aware flag in its header, so a 32-bit IDE session on 64-bit Windows can use 4 GB instead of 2. Start it when add-ins or very large applications run short of memory; Clarion.exe stays the default. For your own programs the equivalent is LARGE_ADDRESS in the .exp file, and the runtime and the TopSpeed driver were verified with every allocation above 2 GB. From a beta request.

≡

AppGen: Import From Application keeps your modules

Application › Import From Application adds the procedures you pick the way File › Import Text does: the existing modules keep their names and numbers, an empty module stays, and a cancelled selection imports nothing. Delete Empty Modules and Renumber Modules remain the explicit commands for that. From a beta report.

⏱

Language: DATESPLIT, TIMESPLIT, and a month of zero

DATESPLIT(date, month, day, year) and TIMESPLIT(time, hours, minutes, seconds, hundredths) return the parts of a date or a time into your variables, the reverse of DATE(m, d, y) and TIME(h, m, s); every part is optional, so TIMESPLIT(Elapsed, , Mins, Secs) reads the way you would say it. DATE(0, 15, 2027) is December 15, 2026: a month of zero or below moves whole years back, the inverse of the month above 12 the function always accepted, so DATE(MONTH(d) - 11, DAY(d), YEAR(d)) is eleven months before d in one call. From beta requests.

▣

IDE: the Window Previewer without .NET 3.5, and the Report Writer

On a Windows 10 or 11 that never had the “.NET Framework 3.5” optional feature turned on, the Window Preview button did nothing; the previewer now uses the .NET 4 assembly like the rest of the IDE, so a plain Windows install is enough. The Report Writer starts again: it is rebuilt together with the IDE now, where build 14523 shipped a September build bound to older IDE assemblies. From a beta report and the beta test.

#

Templates: #EXPORT writes the dictionary, 700-table dictionaries generate

#EXPORT(%DictionaryFile) in a utility template writes the dictionary (a .TXD output receives the TXD script, any other extension the dictionary XML, line for line what ClarionCL /dx produces); it had produced an empty file since Clarion 7. Dictionary › Export Dictionary to Text works while an application that uses the dictionary is open. A dictionary with more than 700 tables generates with “Generate file declarations in modules” checked: the 36th declaration module is named the way build 14000 named it, so the module list has no duplicate. From beta reports.

◆

Runtime and SQL: a TEXT with 64 KB and more, a MARS frame that always begins

?Text{PROP:HScroll} = 0 (or VScroll) on a TEXT whose USE variable holds 65,536 characters or more ended the program with a “System Error” box; the text is now set after the control exists and the scroll-bar properties toggle on a text of any size, narrow or USTRING. On a Multiple Active Result Sets connection to SQL Server, a transaction frame started while a browse over a BLOB column was still reading its page was refused (LOGOUT error 48, or a silent non-transaction without a trace); the MSSQL driver now parks its open cursors before the frame and resumes them after, and a refused start is always reported. From beta reports.

Full tester guide — mental model, conversion rules, DCT import table, screen controls, reports, blobs, SQL / SQLite / text drivers / TopSpeedW / Memory / IP, recipes, the new-language-surface quick reference, and what to focus on when testing. The guide’s “What’s new” section lists everything in this drop, and every section has its task topic in the F1 help’s “How do I …” chapter.

Open the full Unicode Tester Guide

Report tool authors — the wide generator surface (IReportGeneratorW), format detection, the EMF record set, transition paths per integration style, and the PageTextIndexClass text index the previewer searches with:

EMF Page Files — Transition Note

Standalone pages (best full-width). Everything described there is implemented unless marked as a known limitation — if you see something different, the beta forum is the place.