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.
/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.
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.
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:
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.