U++: Issueshttps://www.ultimatepp.org/redmine/https://www.ultimatepp.org/redmine/redmine/favicon.ico2022-03-16T16:17:35ZRedmine
Redmine Bug #2241 (Approved): TheIDE: Some editor settings aren't saved on exithttps://www.ultimatepp.org/redmine/issues/22412022-03-16T16:17:35ZSender Ghost
<p>The changes for "Find picks selection", "Find picks selection or text", "Save file on TheIde window deativation" options in the editor settings aren't saved on TheIDE exit.</p>
<p>Patch attached.</p> Bug #2042 (Approved): Core: Fix build for uppsrc/Core/Cpu.cpp on FreeBSD (after 14570 revision)https://www.ultimatepp.org/redmine/issues/20422020-06-13T00:48:40ZSender Ghost
<p>There is following compiler error on FreeBSD after <a href="https://github.com/ultimatepp/ultimatepp/commit/f6f7919742faa47ef3697744f42152ac49c3d244" class="external">14570</a> revision:<br /><pre>
<..>/uppsrc/Core/Cpu.cpp:182:20: error: variable has incomplete type 'struct vmtotal'
struct vmtotal vmt;
^
<..>/uppsrc/Core/Cpu.cpp:182:12: note: forward declaration of 'vmtotal'
struct vmtotal vmt;
^
1 error generated.
</pre></p>
<p>I found, that "struct vmtotal" defined in <a href="https://github.com/freebsd/freebsd/blob/094736f08fd51603780e5ea50393882f72b54b65/sys/sys/vmmeter.h#L44" class="external">sys/vmmeter.h</a> file.</p>
<p>Patch attached.</p> Feature #2041 (Rejected): UMK: Add "target platform" optionhttps://www.ultimatepp.org/redmine/issues/20412020-06-04T03:01:39ZSender Ghost
<p>I propose to implement "target platform" (-t) option for umk, as suggested by <a href="https://www.ultimatepp.org/forums/index.php?t=usrinfo&id=269" class="external">Novo</a> on the <a href="https://www.ultimatepp.org/forums/index.php?t=msg&th=11023&goto=54136#msg_54136" class="external">forum</a></p>
<p>Also propose to revert <a href="https://github.com/ultimatepp/ultimatepp/commit/3dcac3670f99a70b6a52b82defa329a5c3e4f181#diff-25dcbcf92403ab309bfe1d4bbc552ad7R261" class="external">changes</a> for "[-options]" in usage description.</p>
<p>Patch attached.</p> Bug #2012 (Patch ready): Remove more than one inclusion of header file(s)https://www.ultimatepp.org/redmine/issues/20122020-01-29T22:58:01ZSender Ghost
<p>There are cases with more than one inclusion of header file(s):<br />- time.h in uppsrc/Core/Core.h file (<a href="https://github.com/ultimatepp/ultimatepp/blob/8577fcf8a5ab417b0e5d9a7e978e8fa328cb20a9/uppsrc/Core/Core.h#L76" class="external">1</a>, <a href="https://github.com/ultimatepp/ultimatepp/blob/8577fcf8a5ab417b0e5d9a7e978e8fa328cb20a9/uppsrc/Core/Core.h#L95" class="external">2</a>).<br />- Core.h in <a href="https://github.com/ultimatepp/ultimatepp/blob/06b67c51e5ed436d5e39782ffca389b41c7d6f1b/uppsrc/Core/Path.cpp#L1-L2" class="external">uppsrc/Core/Path.cpp</a> file.<br />- CtrlLib.h in <a href="https://github.com/ultimatepp/ultimatepp/blob/90752f380c6bbe4f3d6edcc3f028217f40b73bdc/uppsrc/CtrlLib/ArrayCtrl.cpp#L1-L2" class="external">uppsrc/CtrlLib/ArrayCtrl.cpp</a> file.<br />- Painter.h in <a href="https://github.com/ultimatepp/ultimatepp/blob/dac1f1ea87d4750593c45c47aae4d49d02b89e1c/uppsrc/Painter/SvgParser.cpp#L1-L2" class="external">uppsrc/Painter/SvgParser.cpp</a> file.<br />- RichText.h in uppsrc/RichText/TablePaint.cpp file (<a href="https://github.com/ultimatepp/ultimatepp/blob/9140f26522388f9717a26d1eb4ff2b7b54191a54/uppsrc/RichText/TablePaint.cpp#L1" class="external">1</a>, <a href="https://github.com/ultimatepp/ultimatepp/blob/9140f26522388f9717a26d1eb4ff2b7b54191a54/uppsrc/RichText/TablePaint.cpp#L16" class="external">2</a>).<br />- ide.h in <a href="https://github.com/ultimatepp/ultimatepp/blob/4487e67407ead363ce6406083e11899534cdfb01/uppsrc/ide/FindInFiles.cpp#L1-L2" class="external">uppsrc/ide/FindInFiles.cpp</a> and <a href="https://github.com/ultimatepp/ultimatepp/blob/4487e67407ead363ce6406083e11899534cdfb01/uppsrc/ide/idewin.cpp#L1-L2" class="external">uppsrc/ide/idewin.cpp</a> files.</p> Bug #2007 (Patch ready): Minimal set for pkg-config dependencies in uppsrc/CtrlCore and uppsrc/Dr...https://www.ultimatepp.org/redmine/issues/20072020-01-21T11:48:45ZSender Ghost
<p>Possible to create minimal set of pkg-config dependencies for uppsrc/CtrlCore and uppsrc/Draw packages.<br />Also possible to extend checks for other platforms (e.g. DRAGONFLY, NETBSD, OPENBSD, OSX11, SOLARIS).</p>
<p>Tested build on FreeBSD 10.4 (for examples/AddressBook and reference/ConsoleDraw packages, but also for uppsrc/ide, etc.) for GUI and GUI X11 cases.</p>
<p>For possible reference:<br />DragonFlyBSD:<br /><a class="external" href="https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libX11">https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libX11</a><br /><a class="external" href="https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libXinerama">https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libXinerama</a><br /><a class="external" href="https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libXrender">https://github.com/DragonFlyBSD/DPorts/tree/master/x11/libXrender</a></p>
<p>NetBSD:<br /><a class="external" href="https://www.pkgsrc.org/#index5h1">https://www.pkgsrc.org/#index5h1</a><br /><a class="external" href="http://pkgsrc.se/x11/libX11">http://pkgsrc.se/x11/libX11</a><br /><a class="external" href="http://pkgsrc.se/x11/libXinerama">http://pkgsrc.se/x11/libXinerama</a><br /><a class="external" href="http://pkgsrc.se/x11/libXrender">http://pkgsrc.se/x11/libXrender</a></p>
<p>OpenBSD:<br /><a class="external" href="https://github.com/openbsd/xenocara/blob/master/lib/libX11/x11.pc.in">https://github.com/openbsd/xenocara/blob/master/lib/libX11/x11.pc.in</a><br /><a class="external" href="https://github.com/openbsd/xenocara/blob/master/lib/libXinerama/xinerama.pc.in">https://github.com/openbsd/xenocara/blob/master/lib/libXinerama/xinerama.pc.in</a><br /><a class="external" href="https://github.com/openbsd/xenocara/blob/master/lib/libXrender/xrender.pc.in">https://github.com/openbsd/xenocara/blob/master/lib/libXrender/xrender.pc.in</a></p>
<p>Solaris:<br /><a class="external" href="https://www.opencsw.org/package/pkgconfig/">https://www.opencsw.org/package/pkgconfig/</a><br /><a class="external" href="https://github.com/oracle/solaris-userland/tree/master/components/pkg-config">https://github.com/oracle/solaris-userland/tree/master/components/pkg-config</a><br /><a class="external" href="https://github.com/oracle/solaris-userland/tree/master/components/x11/xserver/xorg">https://github.com/oracle/solaris-userland/tree/master/components/x11/xserver/xorg</a></p>
<p>Proposed patch attached. Also simplified check for uppsrc/CtrlLib package.</p> Bug #1995 (Rejected): Draw: The xcb library dependency is not required for uppsrc/Draw package on...https://www.ultimatepp.org/redmine/issues/19952019-10-16T19:22:54ZSender Ghost
<p>The xcb library dependency was added for uppsrc/Draw package at <a href="https://github.com/ultimatepp/mirror/commit/e5a9d0dd6f6aff87990d2a6d53e453e101896d38#diff-b63cd2ebd95b8597d87d678b54272970R27" class="external">1254</a> svn revision. But xcb library dependency wasn't removed after <a href="https://github.com/ultimatepp/mirror/commit/ec8c9eed2c9eaebf53f5ad96d4cd781a115ea5c6#diff-b63cd2ebd95b8597d87d678b54272970L19" class="external">1436</a> svn revision when 'library(BSD) "X11 Xau Xdmcp";' line was removed from uppsrc/Draw/Draw.upp file. The Xau and Xdmcp are library dependencies for xcb library:<br /><pre>
% ldd -a /usr/local/lib/libxcb.so | sed -e 's/ (.*)$//'
/usr/local/lib/libxcb.so:
libXau.so.6 => /usr/local/lib/libXau.so.6
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libthr.so.3 => /lib/libthr.so.3
libc.so.7 => /lib/libc.so.7
/usr/local/lib/libXau.so.6:
libc.so.7 => /lib/libc.so.7
/usr/local/lib/libXdmcp.so.6:
libc.so.7 => /lib/libc.so.7
/lib/libthr.so.3:
libc.so.7 => /lib/libc.so.7
</pre></p>
<p>The examples/AddressBook and reference/ConsoleDraw packages builds ok on FreeBSD, if remove "library(FREEBSD) xcb;" line from uppsrc/Draw/Draw.upp file.</p>
<p>For example, (filtered) ldd output for ConsoleDraw executable:<br /><pre>
% ldd -a ./ConsoleDraw | sed 's/ (.*)$// ; s|^/.*/||' | head -15
ConsoleDraw:
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6
libexpat.so.1 => /usr/local/lib/libexpat.so.1
libpng16.so.16 => /usr/local/lib/libpng16.so.16
libthr.so.3 => /lib/libthr.so.3
librt.so.1 => /usr/lib/librt.so.1
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1
libz.so.6 => /lib/libz.so.6
libc++.so.1 => /usr/lib/libc++.so.1
libcxxrt.so.1 => /lib/libcxxrt.so.1
libm.so.5 => /lib/libm.so.5
libgcc_s.so.1 => /lib/libgcc_s.so.1
libc.so.7 => /lib/libc.so.7
libfontconfig.so.1:
</pre></p>
<p>There is xcb library dependency in <a href="https://github.com/ultimatepp/mirror/blob/20e10b326f4d867da916ac94a6ce0b2113722468/uppsrc/CtrlCore/CtrlCore.upp#L29" class="external">uppsrc/CtrlCore</a> package for examples/AddressBook case.</p>
<p>Patch attached.</p> Bug #1994 (Rejected): CtrlCore: Xinerama library dependency required for "GUI .NOGTK" on FreeBSDhttps://www.ultimatepp.org/redmine/issues/19942019-10-16T18:31:02ZSender Ghost
<p>There is following linking error, if build examples/AddressBook package with using "GUI .NOGTK" main package configuration on FreeBSD operating system:<br /><pre>
Linking...
<...>/CtrlCore/CLANG.Gui.Nogtk.Shared/CtrlCore.a(X11App.o): In function `Upp::FindScreensResolutions()':
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x2c): undefined reference to `XineramaQueryExtension'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x40): undefined reference to `XineramaIsActive'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x5f): undefined reference to `XineramaQueryScreens'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
</pre></p>
<p>With following (filtered) ldd output for AddressBook executable (after applied patch):<br /><pre>
% ldd -a AddressBook | sed 's/ (.*)$// ; s|^/.*/||' | head -22
AddressBook:
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXft.so.2 => /usr/local/lib/libXft.so.2
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6
libexpat.so.1 => /usr/local/lib/libexpat.so.1
libxcb.so.1 => /usr/local/lib/libxcb.so.1
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1
libthr.so.3 => /lib/libthr.so.3
librt.so.1 => /usr/lib/librt.so.1
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1
libz.so.6 => /lib/libz.so.6
libpng16.so.16 => /usr/local/lib/libpng16.so.16
libc++.so.1 => /usr/lib/libc++.so.1
libcxxrt.so.1 => /lib/libcxxrt.so.1
libm.so.5 => /lib/libm.so.5
libgcc_s.so.1 => /lib/libgcc_s.so.1
libc.so.7 => /lib/libc.so.7
libX11.so.6:
</pre></p>
<p>Patch attached. But I guess, possible to simplify many Xinerama library dependency cases for uppsrc/CtrlCore package.</p> Feature #1993 (Patch ready): Ide/Builders: U++ builder for clang-tidyhttps://www.ultimatepp.org/redmine/issues/19932019-10-15T11:36:58ZSender Ghost
<p>There is <a href="https://clang.llvm.org/extra/clang-tidy/" class="external">clang-tidy</a> tool available as part of LLVM/Clang.</p>
<p>The clang-tidy has following usage format (for advanced use):<br /><pre>clang-tidy [options] <source0> [... <sourceN>] [-- [compiler options]]</pre><br />Where "options" is clang-tidy options, "source0" is some C/C++ source code file(s), "--" is some delimiter between clang-tidy and compiler options, such as includes (-I) and defines (-D).</p>
<p>For example:<br /><pre>clang-tidy --quiet -header-filter=".*" -checks="-*,modernize-use-override" test.cpp</pre><br />may use <a href="https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html" class="external">modernize-use-override</a> checker for test.cpp file.<br />Possible to apply available fixes with using "-fix" clang-tidy option:<br /><pre>clang-tidy --quiet -header-filter=".*" -checks="-*,modernize-use-override" -fix test.cpp</pre></p>
<p>Some command to get list of available checkers:<br /><pre>clang-tidy -list-checks -checks="*"</pre></p>
<p>Possible to use SCRIPT builder for some build method for clang-tidy.<br />But also possible to implement this as some kind of U++ builder (which also may support BLITZ build).</p>
<p>Therefore, I propose to create U++ builder for clang-tidy.</p>
<p>Some patch attached. Based on GccBuilder::BuildPackage method.<br />The clang-tidy options possible to use as part of "Compiler name" for build method. So, I also extended width of EditString for compiler variable in BuildMethodsDefaultBuilderSetupLayout layout for uppsrc/ide/ide.lay file.</p> Bug #1805 (Rejected): Core: The Clang 3.4 compiler supports std::decay_t template with using -std...https://www.ultimatepp.org/redmine/issues/18052017-11-07T23:12:56ZSender Ghost
<p>The <a href="https://github.com/ultimatepp/mirror/commit/eaf0af02668d290759436a031b4d21ffb741e5f2" class="external">11438</a> revision added restrictions for Clang 3.4 compiler in <a href="https://github.com/ultimatepp/mirror/blob/eaf0af02668d290759436a031b4d21ffb741e5f2/uppsrc/Core/CoWork.h#L158" class="external">uppsrc/Core/CoWork.h</a> file.<br />I propose to remove such restriction and take informative approach instead, because possible to use other -std value (e.g. -std=c++11) for more modern compiler with the same "not compiled" effect.</p>
<p>Some links for reference:<br /><a class="external" href="http://clang.llvm.org/cxx_status.html#cxx14">http://clang.llvm.org/cxx_status.html#cxx14</a><br /><a class="external" href="https://github.com/llvm-mirror/libcxx/blob/c3f25abd635423dcaad2efc4db13ab5264e8393c/include/__config#L916-L926">https://github.com/llvm-mirror/libcxx/blob/c3f25abd635423dcaad2efc4db13ab5264e8393c/include/__config#L916-L926</a><br /><a class="external" href="https://github.com/llvm-mirror/libcxx/blob/f2c4a96359e4cbf7fa575f27d7e94248e5fd84b8/include/type_traits#L1308-L1310">https://github.com/llvm-mirror/libcxx/blob/f2c4a96359e4cbf7fa575f27d7e94248e5fd84b8/include/type_traits#L1308-L1310</a></p> Bug #1649 (New): CtrlCore: 'CurrentTime' macro redefined in GtkX11Util.cpp filehttps://www.ultimatepp.org/redmine/issues/16492017-02-23T12:52:27ZSender Ghost
<p>The following warning was found on FreeBSD 10.3 (GTK+ 2.24.29, libX11 1.6.4, xproto 7.0.31) with using LLVM/Clang 3.4.1 (and 3.9.1) compiler:<br /><pre>In file included from <...>/uppsrc/CtrlCore/GtkX11Util.cpp:15:
In file included from /usr/local/include/gtk-2.0/gdk/gdkx.h:32:
In file included from /usr/local/include/X11/Xlib.h:44:
/usr/local/include/X11/X.h:139:9: warning: 'CurrentTime' macro redefined
#define CurrentTime 0L /* special Time */
^
<...>/uppsrc/CtrlCore/GtkX11Util.cpp:13:9: note: previous definition is here
#define CurrentTime XCurrentTime
^
1 warning generated.</pre></p>
<p>Reference links:<br /><a class="external" href="https://github.com/ultimatepp/mirror/blob/2b60bd8e064361c4470c6c2d881b3b82a8f38835/uppsrc/CtrlCore/GtkX11Util.cpp#L15">https://github.com/ultimatepp/mirror/blob/2b60bd8e064361c4470c6c2d881b3b82a8f38835/uppsrc/CtrlCore/GtkX11Util.cpp#L15</a><br /><a class="external" href="https://git.gnome.org/browse/gtk+/tree/gdk/x11/gdkx.h?h=2.24.29#n32">https://git.gnome.org/browse/gtk+/tree/gdk/x11/gdkx.h?h=2.24.29#n32</a><br /><a class="external" href="https://cgit.freedesktop.org/xorg/lib/libX11/tree/include/X11/Xlib.h?id=libX11-1.6.4#n44">https://cgit.freedesktop.org/xorg/lib/libX11/tree/include/X11/Xlib.h?id=libX11-1.6.4#n44</a><br /><a class="external" href="https://cgit.freedesktop.org/xorg/proto/xproto/tree/X.h?id=xproto-7.0.31#n139">https://cgit.freedesktop.org/xorg/proto/xproto/tree/X.h?id=xproto-7.0.31#n139</a><br /><a class="external" href="https://github.com/ultimatepp/mirror/blob/2b60bd8e064361c4470c6c2d881b3b82a8f38835/uppsrc/CtrlCore/GtkX11Util.cpp#L13">https://github.com/ultimatepp/mirror/blob/2b60bd8e064361c4470c6c2d881b3b82a8f38835/uppsrc/CtrlCore/GtkX11Util.cpp#L13</a></p> Task #1648 (Approved): uppsrc/plugin/z: Update to 1.2.11 versionhttps://www.ultimatepp.org/redmine/issues/16482017-02-23T10:14:20ZSender Ghost
<p>Task to update z plugin from 1.2.8 to 1.2.11 version.</p>
<p>Look following link for changes:<br /><a class="external" href="http://zlib.net/ChangeLog.txt">http://zlib.net/ChangeLog.txt</a></p>
<p>Based on following archive file:<br /><a class="external" href="http://zlib.net/zlib-1.2.11.tar.gz">http://zlib.net/zlib-1.2.11.tar.gz</a></p> Task #1647 (Approved): uppsrc/plugin/sqlite3: Update to 3.17.0 versionhttps://www.ultimatepp.org/redmine/issues/16472017-02-23T09:43:35ZSender Ghost
<p>Task to update sqlite3 plugin from 3.16.2 to 3.17.0 version.</p>
<p>Look following link for changes:<br /><a class="external" href="https://www.sqlite.org/releaselog/3_17_0.html">https://www.sqlite.org/releaselog/3_17_0.html</a></p>
<p>Based on following archive file:<br /><a class="external" href="https://www.sqlite.org/2017/sqlite-amalgamation-3170000.zip">https://www.sqlite.org/2017/sqlite-amalgamation-3170000.zip</a></p> Bug #1007 (Approved): The IsNaN and IsInf function implementations on PLATFORM_BSDhttps://www.ultimatepp.org/redmine/issues/10072015-03-07T11:24:15ZSender Ghost
<p>There is a possibility to build U++ packages with using modern GCC compilers on FreeBSD (with appropriate builder configuration, e.g. "-Wl,-rpath=/usr/local/lib/gcc48" for Release link options, or USE_GCC=yes inside of /etc/make.conf, when used inside port's system), but there are issues with IsNaN and IsInf function implementations.<br />Some time ago, there was applied a patch for DragonFly operating system for the same issue, where GCC v5.0 might be used. I tested GCC 4.7 and 4.8 versions on FreeBSD, which has mentioned issue also. Since DragonFly and FreeBSD have the same PLATFORM_BSD define, it could be used as a general solution, but I'm not sure about exact (lower bound) GCC version. So, current attached patch might be related for other BSD operating systems, including FreeBSD.</p>
<p>By the way, the LLVM/Clang reported GCC_VERSION == 40201, even for 3.6 version.</p> Feature #935 (Approved): TheIDE: Generate command line options for buildinghttps://www.ultimatepp.org/redmine/issues/9352014-11-23T19:38:11ZSender Ghost
<p>It's possible to generate command line options to use with theide or umk executables.<br />Currently, there are minor differences between them, like no selectable threading options for theide or showing message box, if build fails for umk.</p>
<p>Reference for request:<br /><a class="external" href="http://www.ultimatepp.org/forums/index.php?t=msg&th=9024">http://www.ultimatepp.org/forums/index.php?t=msg&th=9024</a></p>
<p>The proposed patch attached.</p> Bug #491 (Approved): CtrlLib: EditNumber functions on MinGW GCChttps://www.ultimatepp.org/redmine/issues/4912013-07-13T23:16:57ZSender Ghost
<p>The double version of <a href="http://www.ultimatepp.org/redmine/projects/upp/repository/revisions/6183/entry/trunk/uppsrc/CtrlLib/CtrlUtil.h#L13" class="external">EditNumber</a> function uses <strong>DBL_MIN</strong> and <strong>DBL_MAX</strong> defines from float.h header file. There are such includes for MSC compiler on <a href="http://www.ultimatepp.org/redmine/projects/upp/repository/revisions/6186/entry/trunk/uppsrc/Core/Core.h#L157" class="external">Windows</a> and GCC compiler on <a href="http://www.ultimatepp.org/redmine/projects/upp/repository/revisions/6186/entry/trunk/uppsrc/Core/Core.h#L73" class="external">Posix</a>, but not for MinGW GCC on Windows.<br />Also, double version of <strong>EditNumber</strong> function is not implemented, because of <strong>int</strong> type <a href="http://www.ultimatepp.org/redmine/projects/upp/repository/revisions/6183/entry/trunk/uppsrc/CtrlLib/CtrlUtil.cpp#L189" class="external">mistake</a>, instead of <strong>double</strong>.</p>