Posted
almost 3 years
ago
by
Miroslav Fídler
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
... [More]
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
CtrlCore
New C++ style for iteration of widget children now possible for(Ctrl& q : widget)
Pen support (pressure, tilt etc...)
RichText, RichEdit
1.15 line spacing support
JPEG raw image data is now exported to PDF as JPEG (instead of recoding)
TheIDE
Context goto now support AK_ key definitions
TheIDE now contains credentials manager for git and svn (including github tokens)
Various improvements to text comparison dialogs - ability to copy and delete individual lines between versions, filtering by file time (for directory comparison).
Repo history of .upp files directly available via package context menu
Open package dialog filtering options redesigned
New function to copy positions as text to clipboard (e.g. "RichEdit/Modify.cpp:27") and go to such position based on clipboard content. Useful for communication between developers.
Some common nest root files like README.md or LICENSE are now directly accessible through pseudo-package.
TheIDE/umk build flags MAKE_LIB and MAKE_MLIB force generation of library instead of executable.
New "Merge nests" function (in Package organizer) copies all used packages that are not in the first nest of assembly into the first nest. In U++, first nest usually contains the application code whole while other nests contain libraries (U++ or 3rd party libraries). This function is intended to "freeze" the non-application code before releasing / tagging / branching to reduce the chance that a change of that code does not break the application.
TheIDE now can "Open terminal" at various directories (output directory, package directory, source file directory etc...), with PATH augmented with current build executable directories.
Support for .md (markdown) format
Improved debugger threads tab
Support for override in virtual methods dialog
Ctrl+Shift+Up/Down now moving the line or block of text up/down
Win32
Now ships with minimal git (mingit) implementation
CLANG now at version 11.0.0
[Less]
|
Posted
over 3 years
ago
by
Miroslav Fídler
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
... [More]
optimized
Using 64 bit hashes on 64 bit CPUs
Draw, Painter
SIMD optimizations (Intel SSE2 and ARM NEON) of graphics related routines
ScatterDraw
Added SetDataSourceInternal() to internally host data
ScatterCtrl
Added ScatterWindowPool
Ide/umk - Android
Removed depricated Android standard libraries (now select c++-static, c++_shared, system and none are supported)
Remove depricated Android platforms (now armabi-v7, arm64-v8a, x86 and x86-64 are supported)
Core/SSH
Fized a truncation issue with SshExec. It can now handle large outputs up to 2 GiB.
Turtle
Refactored to use VirtualGui
Ide/umk
C++ Assist parser in TheIDE is now multithreaded and some parts run in background
Navigator now can search for files too
The errors now can be directly googled
ide/umk now can be configured for cross-compilation (e.g. compile Win32 application in Linux)
Direct help button in "Select main package" window
Additional tooltips in various places for better user experience
Simplified project toolbar
Improved documentation
uppsrc
Improved support for OpenSolaris derived systems, FreeBSD and OpenBSD
upgrades of 3d party code
OpenSSL (in Win32 release) to 1.1.1g
plugin/jpg to 9d
plugin/tif to 4.1.0
plugin/lz4 to 1.9.2
plugin/zstd to 1.4.5
plugin/pcre to 8.44
plugin/sqlite3 to 3.33
plugin/glew to 2.2.0
plugin/Eigen to master branch commit C1D944DD (9/May/2020)
[Less]
|
Posted
almost 4 years
ago
by
Miroslav Fídler
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
... [More]
types nicely
Win32 release now ships with CLANG compiler toolchain
Posix release archives are reworked to allow easier and faster installation
Core
SshExec improvements
ConditionVariable and Semaphore now have Wait variant with timeout
IsDoubleWidth function to detect double-width UNICODE glyphs
MacOS is now using fast U++ heap when possible (not for new/delete)
U++ now using ~/.config and ~/.cache folders to store things
Draw
GaussianBlur function added
CtrlCore
Ctrl::GetAscendant utility method to get parent based on its type
Dark mode is now enabled by default, CtrlLib: classic skin improvements
MacOS multimonitor support and other fixes
CtrlLib
Modernized widgets look in layout designer
Added some less often used widgets like ColorPusher, TreeCtrl or ColumnList that were not previously directly supported in layout designer
FileSel support of .lnk files in Win32
Host native file selecteor, FileSelector, is now renamed to FileSelNative and is now available in MacOS too (in addition to Win32 and gtk3)
GLCtrl in OpenGL/X11 refactored
Ide
umk now implements use target directory flag (thanks Novo)
Context goto (Alt+J) now able to detect files / links (and open the file / link in browser)
Gdb frontend now can better handle executables without debug info
Icon designer now can show synthetised UHD/Dark images
New Insert file/clipboard as.. function allows insertion of clipboard or files directly to the text in various formats (C string, Base64 encode, raw byte values, * compressed byte values using LZ4 or Zlib or LZMA).
Move/Copy package function
Find in files now has 3 output panes
Painter
GetSVGPathBoundingBox function that gets bounding box of SVG path
Xform2D::Map function creates matrix for affinity triangle->triangle mapping
SQL
PGSQL now can escape ? as ?? or use NoQuestionParams method to avoid interpreting ? as parameter holder
SQL_RENAME .sch 'command' can be used to have different name of column in DB and code.
uppsrc
In POSIX, external library dependencies are now refactored with pkg-config
[Less]
|
Posted
over 4 years
ago
by
Miroslav Fídler
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
... [More]
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
Core/SSH
A synchronization issue is fixed with socket waits.
3 new fingerprint methods are added (md5, sha1, sha256).
Password change request and event is implemented.
authentiaction-less connection is now possible.
SshShell can now set terminal modes.
Graphics
SVG parser improvements
GLCtrl new method ExecuteGL to execute code with correct GL context
Font metrics optimized for MingW with TLS optimization workaround
CtrlLib
ArrayCtrl sorting improved
CtrlMapper small helper class
DropList supports Add with initializer_list
FileSelButton WhenSelected Event
FileSel has now more sorting options, PreSelect now supports Save As too
Ide
Console output now supports search
Font settings 'set to defaults' button
Debugger now has arrow buttons to change frame without dropping the list
New GUI patch tool
GDB debugger frontend now has memory tab
Icon designer export to .png now exports uhd/dark variants too
Main config dialog now can drag/drop (or move) lines
Run options dialog got new buttons to insert file path / directory path into commandline args
pkg-config support
[Less]
|
Posted
almost 5 years
ago
by
Miroslav Fídler
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
... [More]
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
Ide
Various improvements of Image designer
'Disable UHD mode' option for testing applications
GDB interface improvements: Now possible to stop running application and to set breakpoints while application runs
Compare with clipboard function
Initial setup improved
New dialog for setting up project assemblies
PDB debugger improvements: now displays INF and NAN for floats, fixed termination issues
Selfupgrade feature (ide compiles itself and replaces the binary)
Other
Improved jpeg EXIF support
RichText now suggests corrections for misspelled words.
RichText now supports .svg images
GLCtrl refactored, changed to use single context per application (allows sharing resources, e.g. textures, between widgets), support for GTK fixed, MSAA supported in Win32
VirtualGui is a new package to implement working 'fullscreen' GUI by implementing a SystemDraw and a dozen of virtual methods, intended for use with e.g. games. VirtualGUI/SDL2GL is an implementation with SDL2.
Painter is heavily optimized for multithreaded rendering.
PostgreSQL now supports RETURNING clause in SqlExp.
New plugin/tess2 package (tesselation) and plugin/glm (OpenGL maths support).
Release
U++ now ships with speller files for multiple languages
Win32 Release
Now ships with SDL2, MySQL and PostgreSQL client libraries
mingw64 upgraded to 8.1.0
mingw64 now using lld linker - link times with mingw are now practically zero
OpenSSL updated 1.0.2r
plugin/jpg updated to 9c
plugin/tif updated to 4.0.10
plugin/lz4 updated to 1.8.3
plugin/zstd updated to 1.3.8
plugin/lzma updated to 19.0
plugin/pcre updated to 8.43
plugin/sqlite3 updated to 3.27.2
[Less]
|
Posted
about 6 years
ago
by
Mirek Fidler
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
... [More]
Throughout the Core, many rvalue / universal reference related optimizations
CoPartition optimized to perform the work in calling thread if data size is small
SeedRandom without parameter now reseeds the random with host entropy
Array/Vector new Get/Set methods
New features for WebSocket client mode
plugin/bz2: Streaming support
Painter
Co Option to run parallel
BufferPainter::PreClipDashed
PdfDraw
PdfDraw: DrawJPEG to directly embed JPEG compressed images into PDF
GUI programming
In Windows, owned windows now have minimize box disabled (as minimizing of owned windows leads to strange behaviour)
LineEdit::WhenScroll event
New OptionBox widget (Option with LabelBox like graphics, also able to automatically enable/disable contained widgets)
FileSel now has option to add widgets into the dialog (e.g. to specify save format)
TheIDE
Very long files (>400MB) are now opened for view rather than edit.
Some trivial merge conflict helper tools
IconDes improvements
Esc scripting language now has 'continue' statement
[Less]
|
Posted
about 6 years
ago
by
Mirek Fidler
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 -
... [More]
Loop
Throughout the Core, many rvalue / universal reference related optimizations
CoPartition optimized to perform the work in calling thread if data size is small
SeedRandom without parameter now reseeds the random with host entropy
Array/Vector new Get/Set methods
New features for WebSocket client mode
plugin/bz2: Streaming support
Painter
Co Option to run parallel
BufferPainter::PreClipDashed
PdfDraw
PdfDraw: DrawJPEG to directly embed JPEG compressed images into PDF
GUI programming
In Windows, owned windows now have minimize box disabled (as minimizing of owned windows leads to strange behaviour)
LineEdit::WhenScroll event
New OptionBox widget (Option with LabelBox like graphics, also able to automatically enable/disable contained widgets)
FileSel now has option to add widgets into the dialog (e.g. to specify save format)
TheIDE
Very long files (>400MB) are now opened for view rather than edit.
Some trivial merge conflict helper tools
IconDes improvements
Esc scripting language now has 'continue' statement
[Less]
|
Posted
over 6 years
ago
by
Mirek Fidler
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
... [More]
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
GUI programming
ArrayCtrl: Improvements in sorting, new public GetCellRect, GetCellRectM, GetSelKeys, SetRowDisplay, SetColumnDisplay, AcceptRow methods
Button NakedStyle style.
WithDropChoice: Set/Remove entry in drop-down list
TextCtrl::Load refactored, now can break very long (>1MB) lines
TreeCtrl: GetOpenIds, OpenIds
IdCtrls, SqlCtrls refactored, improved
Option: SetColor
Edit...Spin: RoundFromMin modifier method
ColorPopup now has button to enter the color as text
New features in ScatterDraw, ScatterCtrl
Header / Footer can now be changed using paragraph properties
QTFDisplay now ignores text color / paper if style is not normal
TheIDE
Improved debugging of console applications with MinGW
MacroManager
Explicit Go to line.. operation (in addition to Navigator)
BRC now supports LZ4, LZMA and Zstd compression
File comparison tool improved
Directory comparison now can show/filter new/modified/removed files
Dark theme highlighting
Duplicate package function
FindAll button in normal Search (finds all occurences in current file)
HexView now remembers position
Selection can be interpreted as error list
now shows the number of selected characters
tab size now possible on per-file basis
Repository synchronize refactored, now supports both svn and git
Layout visgen improvements
theide now supports Visual Studio 2017 C++ compiler auto setup
* MS build tools autosetup
3rd party modules
MinGW 64 updated to GCC-7.2.0
OpenSSL for VC++ updated to 1.0.2l
plugin/lz4: lz4 updated to 1.7.3
plugin/bz2: updated to 1.0.6
plugin/jpg: updated to version 9b
plugin/pcre: updated to 8.41
plugin/png: updated to 1.2.57
plugin/sqlite3: updated to 3.17.9
plugin/z: Updated to 1.2.11
plugin/Eigen: Updated to version 3.3.4
[Less]
|
Posted
over 6 years
ago
by
Mirek Fidler
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
... [More]
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
GUI programming
ArrayCtrl: Improvements in sorting, new public GetCellRect, GetCellRectM, GetSelKeys, SetRowDisplay, SetColumnDisplay, AcceptRow methods
Button NakedStyle style.
WithDropChoice: Set/Remove entry in drop-down list
TextCtrl::Load refactored, now can break very long (>1MB) lines
TreeCtrl: GetOpenIds, OpenIds
IdCtrls, SqlCtrls refactored, improved
Option: SetColor
Edit...Spin: RoundFromMin modifier method
ColorPopup now has button to enter the color as text
New features in ScatterDraw, ScatterCtrl
Header / Footer can now be changed using paragraph properties
QTFDisplay now ignores text color / paper if style is not normal
TheIDE
Improved debugging of console applications with MinGW
MacroManager
Explicit Go to line.. operation (in addition to Navigator)
BRC now supports LZ4, LZMA and Zstd compression
File comparison tool improved
Directory comparison now can show/filter new/modified/removed files
Dark theme highlighting
Duplicate package function
FindAll button in normal Search (finds all occurences in current file)
HexView now remembers position
Selection can be interpreted as error list
now shows the number of selected characters
tab size now possible on per-file basis
Repository synchronize refactored, now supports both svn and git
Layout visgen improvements
theide now supports Visual Studio 2017 C++ compiler auto setup
* MS build tools autosetup
3rd party modules
MinGW 64 updated to GCC-7.2.0
OpenSSL for VC++ updated to 1.0.2l
plugin/lz4: lz4 updated to 1.7.3
plugin/bz2: updated to 1.0.6
plugin/jpg: updated to version 9b
plugin/pcre: updated to 8.41
plugin/png: updated to 1.2.57
plugin/sqlite3: updated to 3.17.9
plugin/z: Updated to 1.2.11
plugin/Eigen: Updated to version 3.3.4
[Less]
|
Posted
about 7 years
ago
by
Mirek Fidler
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
... [More]
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.
U++ algorithms now primarily work on ranges, besides container SubRange, ConstRange and ViewRange are now provided.
Initial round of optimizations for ARM architecture.
U++ allocator optimized once again, locking is reduced in inter-thread deallocations, allocator now returns blocks always 16 bytes aligned (simplifies SSE2 code).
General cleanup of U++ algorithms, redundant algorithms removed, new Count and CountIf algorithms
Improvements in Core/RPC
CoWork::FinLock now provides 'free of charge' mutex at the end of worker jobs.
CoWorkerResources class now provides 'per worker thread' context.
CoPartition algorithm useful for partitioning array for parallel programming.
Where it makes sense, U++ algorithms now have parallel variant.
String further optimized, new TrimLast, TrimStart, TrimEnd, FindAfter, ReverseFindAfter
FastCompress (currently using LZ4) for internal program compression.
Core can be compiled on Android and major of features are currently ported.
xxHash - fast non-cryptographic hash - now part of Core.
SHA256 code now part of the Core.
plugin/pcre updated to the latest pcre version.
plugin/zstd now provides zstd compression (with multithreaded option).
plugin/lz4 now can multithreaded.
GUI programming & graphics
PdfDraw and RichText now support PDF signatures.
RichText now can change header/footer within document.
ArrayCtrl got SetLineColor and GetCellRect methods.
TheIDE
Comments now can be spell checked and there is comment word wrap and reformatting operation.
New functions / icons that search the web (launch the browser) for text selected or current identifier.
Optimal compilation mode is removed as confusing, it is now always either debug or release mode, release mode being configured for speed.
When comparing files, differences within single lines are now shown.
Most U++ designers now support drag&drop to reorganize lists.
Find File window was remastered.
New dialog for creating package file.
Android application can be directly launch on emulator from TheIDE.
Clang is now default compiler for native Android applications.
C++14 is now default standard for all Android builds.
Various android builder improvements.
ESC
New math functions like sin, cos, tg, pow etc.
New replace in string function.
General
Significantly improved the process of building TheIDE and UMK from tarball (POSIX environment). Compilation on multiple cores is possible with "-j" option.
Documentation improvements.
Bug fixes in various areas.
Files
Source
upp-x11-src-10804.tar.gz - U++ source code distribution
Windows
upp-mingw-10804.7z - U++ for Windows with MinGW-w64 toolchain
upp-win-10804.7z - U++ for Windows without toolchain
Linux (rpm based distributions)
rpm/upp-devel-10804-1.fc25.x86_64.rpm - U++ Fedora 25 x86_64 rpm package
rpm/upp-devel-10804-1.el7.centos.x86_64.rpm - U++ Centos 7 x86_64 rpm package
rpm/upp-devel-10804-1.os1302.x86_64.rpm - U++ OpenSuse 13.2 x86_64 rpm package
rpm/upp-devel-10804-1.src.rpm - U++ generic rpm source code package
Ubuntu, Gentoo and Arch Linux
If you use Ubuntu based GNU/Linux distributions, Gentoo or Arch Linux, you can download stable packages and nightly builds on U++ download page.
You can learn how to build the standard source code package on your platform (POSIX, Linux, BSD, MacOS, Windows and more) reading the U++ online documentation.
[Less]
|