Menu

U++ / News: Recent posts

U++ 2023.2

2023.2 (rev. 17045) (Oct 2023)

Current stable release

This is release is mostly focused on improving TheIDE capabilities.

Core

  • CParser::ReadDoubleNoE (to ignore E part of double)
  • CParser::ReadIdh (with '-' in id)

Draw, CtrlLib

  • StdDisplay (if CtrlLib is present) now supports \1 qtf escape code

RichEdit, RichText

  • "Paste without formatting"
  • Clipboard 'HTML format' support
  • GetPlainText allow_tabs parameter; CtrlLib Prompt now sometimes uses '\t' to separate table cells.
  • EncodeHTML strikeout support
  • ide... read more
Posted by Miroslav Fídler 2023-10-24

U++ 2023.1

2023.1 (May 2023)

Overview
The new release brings some long awaited features. As you might remember for the last release we removed the old deprecated library for code formatting. In the current release formatting is back based on clang-format. Also TheIDE has got a special dialog when you can adjust formatting to your needs. Formatting is available under "Assist" -> "Reformat" menu.
Formatting... read more

Posted by Miroslav Fídler 2023-05-31

U++ 2022.3

2022.3 (December 2022)

Release highlights

  • Homegrown C++ parser in theide is replaced with libclang resulting in new and improved Assist++ features
  • Autocomplete now correctly works in most cases (except in template bodies, which is libclang limitation)
  • Code navigator refactored and improved
  • TheIDE now shows C++ errors while editing sources
  • TheIDE now shows information tips about program symbols when you leave mouse over it (documentation if available, declaration signature if not)
  • New function "Usage" shows all usages of current symbol through all project sources based on C++ analysis. With virtual methods, it shows all overrides of base class method.
  • Memory consumption (esp. sizeof) of widgets greatly reduced (by up to 70%).
  • LabelBox now allows center and right alignment.
  • MacOS version is not released with 2022.3. We hope to provide it again with the 2023.1.
Posted by Miroslav Fídler 2022-12-29

U++ 2022.2

2022.2 (May 2022)

Release highlights

  • Core: IsVoid(String) function to avoid confusion with IsVoid(Value)
  • Core: LoadFile fixed to be work with special files in POSIX /proc/
  • Core: BiVector, BiArray Create with constructor parameters
  • CtrlLib: RichTextView WhenLeftClick, ClearSelection
  • CtrlLib: FileSel::NoExeIcons to suppress loading of icons from .exe files in background
  • ide, CtrlLib: Fixed issues with namespace agnostic layouts
  • ide: git format-patch patch format support
  • Image: Support for >2G pixel images (ImageBuffer::GetLength now returns size_t)
  • Draw: Fixed/optimised FlipImage
  • plugin/tif: Minimal geotiff support via metadata (see reference/geotiff)
Posted by Miroslav Fídler 2022-05-27

U++ 2022.1

2022.1 (April 2022)

Release highlights

  • sizeof(wchar) is changed to 4 (32 bits) to support non BMP unicode characters

This might bring some incompatibilities in the code that expects wchar to be 16 bit, which
escpecially involves dealing with Win32 (and to lesser extend MacOS) APIs, so if your application
is doing that, please check all instances of WCHAR (UniChar on MacOS) or even wchar
especially type casts.... read more

Posted by Miroslav Fídler 2022-04-24

U++ 2021.1

2021.1 (May 2021)

Release highlights

  • New system for 3rd party modules, "UppHub": independently developed U++ modules residing in Git repositories now can be seamlessly integrated, including automatic installation of missing packages if they are in the UppHub.

Core

  • double NAN and INF values are now considered Null (IsNull returns true for them).
  • FileSystemInfo now returns volume names of network drives
  • Improvements in FindFile
  • String middle tier heap handling optimised
  • U++ does not require MemoryFreeThread call at the end of thread (it is now implemented using thread_local destructor)
  • Core/SSH: the underlying libssh2 library is upgraded to v. 1.9.0... read more
Posted by Miroslav Fídler 2021-05-10

U++ 2020.2

2020.2 (October 2020)

Release highlights

  • This release is mostly about optimizations, using SIMD and multithreading

Core

  • memset, memcpy, memeq, memhash SIMD optimized inlined routines ( = 8, 16, 32, 64, 128)
  • String comparison is yet again optimized
  • Using 64 bit hashes on 64 bit CPUs

Draw, Painter

  • SIMD optimizations (Intel SSE2 and ARM NEON) of graphics related routines

ScatterDraw... read more

Posted by Miroslav Fídler 2020-10-21

U++ 2020.1 released

2020.1 (May 2020)

Release highlights

  • gtk3 replaces gtk2 as default linux backend
  • Visual look&feel refactored in Linux and MacOS, improved dark theme support
  • In Win32, PDB debugger now displays various U++ and standard library containers and types nicely
  • Win32 release now ships with CLANG compiler toolchain
  • Posix release archives are reworked to allow easier and faster installation... read more
Posted by Miroslav Fídler 2020-05-08

U++ 2019.2 released

2019.2 (October 2019)

Core

  • Allocator huge block handling optimized, memory consumption improved in specific cases
  • Index refactored to reduce sizeof and improve performance in specific cases
  • Introduced workaround for Mingw TLS performance issue
  • pick/clone semantics refined in several places
  • Random algorithm changed to xoshiro256* *
  • Uuid generation optimized
  • Fast U++ allocator is now used internally where possible even if standard allocator us used for new/delete (with USEMALLOC flag)
  • pick/clone refinements
  • Value::Compare optimized for standard types... read more
Posted by Miroslav Fídler 2019-10-31

U++ 2019.1 released

2019.1 (May 2019)

General improvements

  • MacOS X support
  • Improved support for UHD displays
  • Improved support for dark themes

Core

  • Core/SSH: SSH protocol support
  • XMLRPC improvements (protocol version, support for i8 type)
  • WebSockets improvements
  • ToAscii, ToUpperAscii, ToLowerAscii functions optimized
  • New CoWork variant CoWorkNX solves an compilation problem when using CoWork as member variable
  • DarkTheme function inverts Color luminosity for dark themes support (dark colors become light, light colors dark, but color remains)
  • MakeOne is now changed to function
  • LocalProcess now allows setting current directory for started process... read more
Posted by Miroslav Fídler 2019-05-01

U++ 2018.1 released

2018.1 (rev 11873)

You can learn how to build the standard source code package on your platform (POSIX, Linux, BSD, MacOS) reading the U++ online documentation.

Changelog

Core

  • New low-overhead CoWork parallelization method / pattern - Loop

  • Throughout the Core, many rvalue / universal reference related optimizations

  • CoPartition optimized to perform the work in calling thread if data size is small... read more

Posted by Mirek Fidler 2018-04-02

U++ 2018.1rc1 released

2018.1 (rev 11834) (Dec 2017)

You can learn how to build the standard source code package on your platform (POSIX, Linux, BSD, MacOS) reading the U++ online documentation.

Changelog

Core

  • New low-overhead CoWork parallelization method / pattern - Loop

  • Throughout the Core, many rvalue / universal reference related optimizations

  • CoPartition optimized to perform the work in calling thread if data size is small... read more

Posted by Mirek Fidler 2018-03-14

U++ 2017.2 released

2017.2 (rev 11540) (Dec 2017)

Core
* New AsyncWork class - U++ future-alike tool
* CoWork: Exception propagation from worker threads, job cancellation support.
* Bits class optimized, it is now possible to set multiple bits (count parameter)
* WebSocket refactored for asynchronous operation
* UTF-32 support functions, UnicodeCompose and UnicodeDecompose functions, support for UTF16 surrogate pairs
* DeleteFolderDeep now deletes symlinks
* MakeOne function (alternative to One::Create)
* LoadFromFile, StoreToFile - Event variant
* ReverseRange and SortedRange
* Server Name Indicator support in Socket and HttpRequest
* SSL1.1 API support
* RegisterGlobalSerialize... read more

Posted by Mirek Fidler 2017-12-14

U++ 2017.2rc1 released

2017.2 (rev 11427) (Nov 2017)

U++ now requires C++14 compatible compiler.

Core
* New AsyncWork class - U++ future-alike tool
* CoWork: Exception propagation from worker threads, job cancellation support.
* Bits class optimized, it is now possible to set multiple bits (count parameter)
* WebSocket refactored for asynchronous operation
* UTF-32 support functions, UnicodeCompose and UnicodeDecompose functions, support for UTF16 surrogate pairs
* DeleteFolderDeep now deletes symlinks
* MakeOne function (alternative to One::Create)
* LoadFromFile, StoreToFile - Event variant
* ReverseRange and SortedRange
* Server Name Indicator support in Socket and HttpRequest
* SSL1.1 API support
* RegisterGlobalSerialize... read more

Posted by Mirek Fidler 2017-11-05

U++ 2017.1 released

U++ 2017.1 (rev 10804) (Jan 2017)

This is the first release of U++ that requires C++11 compatible compiler. The main focus was Core, adding many enhancements allowed by C++11 and improving parallel programming support. We, also didn't forget about Android as we ported Core library on that platform.

Changelog

Core

  • Original U++ Callbacks are deprecated and replaced with Function with better lambda support.
    Begin/End methods are now renamed / deprecated in favor of (standard) begin/end.... read more
Posted by Mirek Fidler 2017-01-31

U++ 2015.2 (rev 9251) released

The main focus of this release was C++ parser and Assist++ features and Android applications builder in TheIDE (library does not yet support Android though).

Core

Improved C++11 support.
Leap second of 2015 added to time routines.

GUI programming & graphics

Improved support of UHD displays.
PdfDraw now supports urls (e.g. when converting QTF/RichText to PDF).
RichText/QTF now support round borders for table cells.
ScatterCtrl: new features.... read more

Posted by Mirek Fidler 2015-12-01

U++ 2015.1 (rev 8227) released

U++ is BSD licensed C++ cross-platform rapid application development framework focused on programmers productivity without sacrificing runtime performance.

Overview

New features for release 2015.1 (rev 8227)

Core

  • U++ abandoned "default pick" semantics for containers. The transfer semantics now has to be specified explicitly, either as 'pick' or 'clone' (this is enforced in C++11 mode, in legacy mode old behaviour is maintained and pick/clone are optional).... read more
Posted by Mirek Fidler 2015-03-04

U++ 5485 released

This is hotfix release, fixing several minor issues of 5431.

Posted by Mirek Fidler 2012-10-28

U++ 5431 released

What is new in version 5431:

The focus of this release was server programming. The main new feature is "Skylark", lean and mean U++ based web development framework.

Core
- String class has been further optimized for improved Cat performance.
- Id class was refactored to better support multithreded programming.
- STATIC_ASSERT introduced for compile-time checks.
- TCP/IP and HTTP was refactored and integrated into Core, providing new TcpSocket, IpAddrInfo, HttpHeader and HttpRequest classed (effectively obsoleting Web package).
- Value was refactored and optimized, now using small value optimization technique.
- Value got Xmlize (conversion to/from XML) and Jsonize (conversion to/from JSON) support.
- Date now has operator++/--.
- Exit is now equivalent of C exit function, implemented using exception trow to *_APP_MAIN and C++ friendly.
- Thread now has AtExit support.
- .ini parameters now can be optionally encapsulated using INI_* helpers.
- Sort algorithm was refactored, works about 10% faster.
- LOGHEX and DUMPHEX logging macros provided for logging Strings in hexadecimal form.
- LoadFromJsonFile and StoreToJsonFile jsonize object from/to files.... read more

Posted by Koldo 2012-10-22

U++ 4193 released

What is new in version 4193:

- "Rainbow" technology decouples U++ GUI from host platform. It is now possible to develop new GUI implementation without changing core U++ files. "Framebuffer" package uses Rainbow to implement GUI for trivial RGBA framebuffer (with keyboard and mouse inputs).
- New command line utility "umk" - GUI independent, U++ package builder: umk.
- Docking package was adopted to main source tree.... read more

Posted by Koldo 2011-11-28

U++ 3211 released

What is new in version 3211:

TheIDE
- SSE2 as Option in main config, templates now include SSE2 as default
(RM #9).
- new function - convert selection to ASCII.
- Main package configuration editor shows structured flags accepted by
packages.
- Replaced QuickTabs with TabBar, reorganized Environment dialog.
- Allow conditional breakpoints.
- Support for CLOB columns in .sch file (#14).

Library... read more

Posted by Koldo 2011-02-18

U++ 2791 released

What is new in version 2791:

Core
- There are now new templates Tuple2 - Tuple4.
- Stream class got new methods Peek and PutPtr intended for optional
optimizations.
- In Vector and Array template classes, interface was changed so that all
Add methods are now returning the reference to the element inserted.
- String and WString has new Replace method.

Draw
- plugin/gif now has support for animated gifs, Raster and Raster encoder
have new GetDPI and SetDPI methods. DPI information handling for png, tif
and jpg was fixed.
- AttrText utility class has new NormalInk method and supports conversion
from Value.... read more

Posted by Koldo 2010-10-18

U++ 2467 released

What is new in version 2467:

Core
* [W]String got new variant of ReverseFind method.

CtrlCore
* There is a new static method Ctrl::GetEventId to help identify individual
GUI events, intended for use in caching schemes.

CtrlLib
* Update system was parametrised.
* Handling of active file type in FileSel was improved.
* Splitter now has WhenSplitFinish.

PdfDraw
* Got support for fill patterns. ... read more

Posted by Koldo 2010-06-09

U++ 2361 released

What is new in version 2361:

theide:
* Packages now sorted by directory closeness to main package directory,
names later - puts main package nest or main package subpackages first
in the list

ArrayIndex:
* Added Detach, PopDetach

CtrlLib:
* Added ArrayCtrl WhenScroll
* ColumnList: AutoHideSb
* FileSel: list is autohide
* EditField ReadOnly Ctrl+C fix
* DocEdit: NoEofLine
* RichEdit now supports dropping Image files ... read more

Posted by Koldo 2010-05-04

U++ 2232 released

What is new in version 2232:

theide:
* Sorting of package has been improved, placing project packages first
* Insert menu now has typedef ... CLASSNAME entry.
* FileSel was improved by adding Places with common directories.

Core:
* XmlRpc has improved error handling.
* Xmlize now supports all Core Value types and has got support for Value
serialization.
* XmlParser has got new Peek methods. Socket has new GetPeerAddr method.
* CParser now provides the information about current column.... read more

Posted by Koldo 2010-03-16