Back to Blog

Version 10.9 Now Released

Published on October 12, 2026 | By Development Team

Sunbelt PL/B Version 10.9 is here, with new language features, expanded REST and web capabilities, and improvements throughout the compiler, runtimes, and Sunbelt IDE. Highlights include a new REGEX object, SWAP and MATCHLIST instructions, and convenient string concatenation in expressions.

New REGEX Object: Pattern Matching and Text Processing

The new REGEX object adds compiled regular-expression support for searching, matching, counting, replacing, and splitting text. It offers methods including Compile, IsMatch, Match, MatchAll, Count, Replace, ReplaceAll, ReplaceEx, Search, Split, and Test.

These operations can help with input validation, extracting structured information, and processing text within PL/B applications. A new PLBREGEX.INC file provides REGEX filtering patterns.

New SWAP and MATCHLIST Instructions

SWAP exchanges the contents of compatible variables. It supports character, national character, and numeric variables, along with RECORD and VARLIST operands. Variables must meet compatibility requirements such as type, size, and relevant attributes.

A       DIM       10
B       DIM       10
        MOVE      "Hello",A
        MOVE      "World",B
        SWAP      A,B


MATCHLIST compares corresponding members of two RECORD or VARLIST operands in one instruction. It handles nested RECORDs and array elements, and sets the ZERO flag when all tested values match. If the lists have different lengths, comparison stops when the shorter list is exhausted or a mismatch is found.

        MATCHLIST Rec1,Rec2
        IF EQUAL
          DISPLAY "Records Match"
        ELSE
          DISPLAY "Records Different"
        ENDIF

Simpler String Expressions

PL/B 10.9 adds the + operator to concatenate strings within supported string expressions, including expressions used with IF, MOVE, APPEND, PACK, ERASE, and various file instructions.

A       INIT      "a"
B       INIT      "b"
AB      INIT      "ab"
        IF ((A + B) == AB)
          DISPLAY "Strings Match"
        ENDIF

The APPEND instruction also gains a three-operand form that combines two sources and places the result in a separate destination.

REST Services with PLBREST

The new plbrest.exe runtime is designed for REST services run by the PL/B Web Server (plbwebsrv.exe). It uses PLBWEBSRV licensing for REST requests and has PLBWIN language capabilities, but can only be invoked through PLBWEBSRV.

Configuration requires Version 10.9 of both components, with plbrest.exe in the same folder as plbwebsrv.exe. The REST command-line setting must begin with plbrest without a path. Release notes include examples for standard REST and FastCGI configurations.

TLS Client Certificates and Email Enhancements

  • PLB_SSL_CERTFILE and PLB_SSL_KEYFILE identify PEM client certificate and private key files for TLS client authentication.
  • The HTTP flag $HTTP_FLAG_USE_CERT_KEY_FILE (0x8000) enables those settings for an HTTP operation; without the flag they are ignored.
  • MAILSEND supports *CLIENTID={domain} to set the SMTP EHLO argument used to identify the sending client.

More HTMLCONTROL and Web Features

New HTMLCONTROL methods make it easier to work with HTML elements from PL/B, including GetChecked, GetClass, GetHTML, GetText, GetValue, and corresponding setter methods. The release also introduces LoadHTML and SetAsClient, plus RUNTIME.SetWebStartUrl.

For Linux/Unix PLBWEBSRV, LISTVIEW and DATATABLE now support LoadCSVFile and SaveCSVFile.

IDE, Compiler, and Debugging Improvements

  • The compiler now provides program-label reference counts in PLBM reflection output for display in Sunbelt IDE. The new ZK option disables reference counting.
  • The IDE adds better reference browsing, bookmark sorting, error bookmarks, breakpoint tracking, and Find in Files behavior.
  • The PL/B AI Assistant tab can be promoted to an independent window; the IDE remembers its independent-window state.
  • The Designer receives improvements to IDE integration, bookmarks, and breakpoint updates.
  • The Profiler adds an OpTime (ms) column showing accumulated execution time per instruction opcode.

Runtime Fixes and Compatibility Updates

  • Corrected an issue in which EXECUTE destroyed certain runtime objects, including PLBOBJECT, DATASET, XDATA, DATETIME, FTP, DATATABLE, JSONDATA, and AIOBJECT.
  • PDF output has been updated to PDF version 1.7; readers must support version 1.7 or later.
  • The POWER instruction now reports additional F19 errors for mathematical failures.
  • Windows GUI fixes address ChooseFont behavior at higher display scaling and handling of Windows system-color changes.

Updated Sample Programs

The Sunbelt PL/B samples repository has been updated with Google Calendar samples, additional introductory examples, AI and Gemini examples, an OpenAI Responses API sample, DATASET examples, PowerShell scripts, and a Linux shared-library checking script.

Explore PL/B 10.9

From REGEX and structured-variable operations to REST processing, TLS support, and IDE improvements, Version 10.9 brings useful new capabilities to the PL/B development toolkit. Review the full release notes and updated documentation before deploying to production, especially where new runtime components or configuration keywords are involved.