Home » Community » U++ community news and announcements » 32 bit wchar - for now in branch
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57663 is a reply to message #57648] |
Mon, 15 November 2021 11:59   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
Before merge... It seems there are issues with MSBT19x64 compilation here:
C:\upp-16111\ultimatepp-wchar\uppsrc\Draw\FontWin32.cpp(157): error C2446: ':': no conversion from 'int' to 'Upp::Vector<Upp::char16>'
C:\upp-16111\ultimatepp-wchar\uppsrc\Draw\FontWin32.cpp(157): note: Constructor for class 'Upp::Vector<Upp::char16>' is declared 'explicit'
C:\upp-16111\ultimatepp-wchar\uppsrc\Draw\FontWin32.cpp(157): error C2660: 'EnumFontFamiliesW': function does not take 3 arguments
And here:
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\LocalProcess.cpp(85): error C2446: ':': no conversion from 'int' to 'Upp::Vector<Upp::char16>'
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\LocalProcess.cpp(85): note: Constructor for class 'Upp::Vector<Upp::char16>' is declared 'explicit'
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\LocalProcess.cpp(85): error C2660: 'CreateProcessW': function does not take 9 arguments
Additionally, there are a whole bunch of warnings on MSBT19x64. I did not try MSBT19x32 yet...
Best regards,
Tom
EDIT: PS. I updated to current git source today before testing.
[Updated on: Mon, 15 November 2021 12:01] Report message to a moderator
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57665 is a reply to message #57664] |
Mon, 15 November 2021 15:55   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
Thanks! Now it compiles without any errors. Just some warnings left with MSBT19x64 and MSBT19:
Utf.cpp
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\Utf.cpp(136): warning C4927: illegal conversion; more than one user-defined conversion has been implicitly applied
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\Utf.cpp(136): note: while calling the constructor 'Upp::WString::WString(const Upp::wchar *)'
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\String.h(831): note: see declaration of 'Upp::WString::WString'
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\Utf.cpp(156): warning C4927: illegal conversion; more than one user-defined conversion has been implicitly applied
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\Utf.cpp(156): note: while calling the constructor 'Upp::WString::WString(const Upp::wchar *)'
C:\upp-16111\ultimatepp-wchar\uppsrc\Core\String.h(831): note: see declaration of 'Upp::WString::WString'
I will run some more tests tomorrow.
Best regards,
Tom
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57668 is a reply to message #57666] |
Tue, 16 November 2021 08:28   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
Success there: Now MSBT19x64 and MSBT19 compile without errors and warnings. (The difference between our compiler environments may be that I just updated my MSBT yesterday to its latest version.)
Is MSBT17x64 and MSBT17 still relevant? If so, there are errors.
The 32-bit CLANG compilation on Windows fails with this error:
----- ide/Java ( GUI CLANG BLITZ WIN32 ) (17 / 42)
BLITZ: JavaVersion.cpp Java.cpp Jdk.cpp
In file included from C:/upp-16111/out/uppsrc/ide/Debuggers/CLANG.Blitz.Gui\ide/Debuggers$blitz.cpp:84:
c:\upp-16111\ultimatepp-wchar\uppsrc\ide\Debuggers\Sym.cpp:446:3: error: no matching function for call to 'SymEnumTypes'
SymEnumTypes(hProcess, current_modbase, [](PSYMBOL_INFO pSym, ULONG SymbolSize, PVOID UserContext)->int {
^~~~~~~~~~~~
C:\upp-16111\bin\clang\include\psdk_inc/_dbg_common.h:1005:20: note: candidate function not viable: no known conversion from '(lambda at c:\upp-16111\ultimatepp-wchar\uppsrc\ide\Debuggers\Sym.cpp:446:43)' to 'PSYM_ENUMERATESYMBOLS_CALLBACK' (
aka 'int (*)(_SYMBOL_INFO *, unsigned long, void *) __attribute__((stdcall))') for 3rd argument
WINBOOL IMAGEAPI SymEnumTypes(HANDLE hProcess,ULONG64 BaseOfDll,PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
^
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57669 is a reply to message #57668] |
Tue, 16 November 2021 08:35   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
In more detail, MSBT17 builds OK but MSBT17x64 fails on:
c:\upp-16111\ultimatepp-wchar\uppsrc\core\SIMD_SSE2.h(8): error C2668: 'Upp::_mm_storeu_ps': ambiguous call to overloaded function
c:/program files (x86)/microsoft visual studio/2017/buildtools/vc/tools/msvc/14.16.27023/include\intrin.h(853): note: could be 'void Upp::_mm_storeu_ps(float *,__m128)'
c:/program files (x86)/microsoft visual studio/2017/buildtools/vc/tools/msvc/14.16.27023/include\xmmintrin.h(345): note: or 'void _mm_storeu_ps(float *,__m128)' [found using argument-dependent lookup]
c:\upp-16111\ultimatepp-wchar\uppsrc\core\SIMD_SSE2.h(8): note: while trying to match the argument list '(float *, __m128)'
c:\upp-16111\ultimatepp-wchar\uppsrc\core\SIMD_SSE2.h(9): error C2668: 'Upp::_mm_store_sd': ambiguous call to overloaded function
c:/program files (x86)/microsoft visual studio/2017/buildtools/vc/tools/msvc/14.16.27023/include\intrin.h(842): note: could be 'void Upp::_mm_store_sd(double *,__m128d)'
c:/program files (x86)/microsoft visual studio/2017/buildtools/vc/tools/msvc/14.16.27023/include\emmintrin.h(203): note: or 'void _mm_store_sd(double *,__m128d)' [found using argument-dependent lookup]
c:\upp-16111\ultimatepp-wchar\uppsrc\core\SIMD_SSE2.h(9): note: while trying to match the argument list '(double *, __m128d)'
...
And there are quite a few of these places in SIMD_SSE2.h with MSBT17x64. The same issue was present with MSBT19x64 until I updated the compiler, so this must be a compiler bug that needs bypassing.
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57670 is a reply to message #57669] |
Tue, 16 November 2021 09:05   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Another strange thing happened: OpenGL has stopped working. E.g. reference/OpenGL no longer works with this, while at 16111 it was still fine.
Best regards,
Tom
EDIT: The current git version works too. It's just this wchar version that does not show OpenGL content.
[Updated on: Tue, 16 November 2021 09:25] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57688 is a reply to message #57687] |
Fri, 19 November 2021 10:48   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
I have (mostly) tested my programs here. Everything compiles and everything at least seems to work just like they did before on Windows side.
However, on Linux Mint I just tried to compile reference/OpenGL and it failed with the following error:1 error generated.
In file included from /home/tom/ultimatepp-wchar/uppsrc/CtrlCore/CtrlCoreInit.cpp:1:
In file included from /home/tom/ultimatepp-wchar/uppsrc/CtrlCore/CtrlCore.h:4:
In file included from /home/tom/ultimatepp-wchar/uppsrc/RichText/RichText.h:4:
In file included from /home/tom/ultimatepp-wchar/uppsrc/Draw/Draw.h:6:
In file included from /home/tom/ultimatepp-wchar/uppsrc/Core/Core.h:66:
/usr/lib/llvm-10/lib/clang/10.0.0/include/intrin.h:12:15: fatal error: 'intrin.h' file not found
#include_next <intrin.h>
^~~~~~~~~~
Best regards,
Tom
|
|
|
|
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57699 is a reply to message #57691] |
Tue, 23 November 2021 09:55   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Mirek,
While testing with reference/OpenGL, i noticed that OpenGL.upp strangely pulls in CodeEditor package instead of CtrlLib. I think it should be should be:
description "GLCtrl widget example\377";
uses
GLCtrl,
CtrlLib;
file
main.cpp;
mainconfig
"" = "GUI",
"" = "GUI X11";
Are you close to merging wchar branch to master?
Best regards,
Tom
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57709 is a reply to message #57701] |
Wed, 01 December 2021 14:02   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi Mirek,
It seems that occasionally the lower item list in Navigator Bar periodically re-adjusts its vertical position even while I'm dragging the 'elevator'.
I can stop this behavior by first clicking outside of theide window on the desktop and then clicking back in theide window. After this the 'elevator' works again normally.
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57710 is a reply to message #57709] |
Wed, 01 December 2021 14:54   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Another issue: When calling ToUtf16(const char *s) with s=0, it crashes. (This does work correctly with 2021.1, i.e. without crashes.)
Here's the place in Core/Charset.h:
inline Vector<char16> ToUtf16(const char *s) { return ToUtf16(s, (int)strlen(s)); }
It would work with:
inline Vector<char16> ToUtf16(const char *s) { return ToUtf16(s, s?(int)strlen(s):0); }
Best regards,
Tom
|
|
|
|
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57715 is a reply to message #57714] |
Wed, 01 December 2021 17:39   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
Hi,
It is something that occured with latest wchar, but not with 2021.1. I need to pick up current master and check if it shows the same behavior. That's tomorrow then.
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57717 is a reply to message #57713] |
Thu, 02 December 2021 08:42   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Wed, 01 December 2021 18:02Tom1 wrote on Wed, 01 December 2021 14:54Another issue: When calling ToUtf16(const char *s) with s=0, it crashes. (This does work correctly with 2021.1, i.e. without crashes.)
Here's the place in Core/Charset.h:
inline Vector<char16> ToUtf16(const char *s) { return ToUtf16(s, (int)strlen(s)); }
It would work with:
inline Vector<char16> ToUtf16(const char *s) { return ToUtf16(s, s?(int)strlen(s):0); }
Best regards,
Tom
Hopefully fixed.
Hi,
Now it freezes entirely, as:
inline int strlen8(const char *s) { return s ? (int)strlen8(s) : 0; } goes into an eternal recursion.
It should be:
inline int strlen8(const char *s) { return s ? (int)strlen(s) : 0; }
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57718 is a reply to message #57714] |
Thu, 02 December 2021 08:56   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
mirek wrote on Wed, 01 December 2021 18:03Tom1 wrote on Wed, 01 December 2021 14:02Hi Mirek,
It seems that occasionally the lower item list in Navigator Bar periodically re-adjusts its vertical position even while I'm dragging the 'elevator'.
I can stop this behavior by first clicking outside of theide window on the desktop and then clicking back in theide window. After this the 'elevator' works again normally.
Best regards,
Tom
I am really confused with this report 
In any case, does not seem like this should be related to wchar32?
Hi,
While 2021.1 was OK, I just tried to see if this behovior exists with current master, but it seems that I cannot link theide with current master (on MSBT19x64). Here's the trouble:
Linking...
Creating library C:\upp-16111\theide.exe.lib and object C:\upp-16111\theide.exe.exp
Draw.lib(FontWin32.obj) : error LNK2019: unresolved external symbol ScriptFreeCache referenced in function "struct Upp::GlyphInfo __cdecl Upp::GetUnicodeGlyphInfo(class Upp::Font,unsigned long)" (?GetUnicodeGlyphInfo@Upp@@YA?AUGlyphInfo@1@VFo
nt@1@K@Z)
Draw.lib(FontWin32.obj) : error LNK2019: unresolved external symbol ScriptItemize referenced in function "struct Upp::GlyphInfo __cdecl Upp::GetUnicodeGlyphInfo(class Upp::Font,unsigned long)" (?GetUnicodeGlyphInfo@Upp@@YA?AUGlyphInfo@1@VFont
@1@K@Z)
Draw.lib(FontWin32.obj) : error LNK2019: unresolved external symbol ScriptShape referenced in function "struct Upp::GlyphInfo __cdecl Upp::GetUnicodeGlyphInfo(class Upp::Font,unsigned long)" (?GetUnicodeGlyphInfo@Upp@@YA?AUGlyphInfo@1@VFont@1
@K@Z)
Draw.lib(FontWin32.obj) : error LNK2019: unresolved external symbol ScriptGetGlyphABCWidth referenced in function "struct Upp::GlyphInfo __cdecl Upp::GetUnicodeGlyphInfo(class Upp::Font,unsigned long)" (?GetUnicodeGlyphInfo@Upp@@YA?AUGlyphInf
o@1@VFont@1@K@Z)
Draw.lib(FontWin32.obj) : error LNK2019: unresolved external symbol ScriptGetFontProperties referenced in function "struct Upp::GlyphInfo __cdecl Upp::GetUnicodeGlyphInfo(class Upp::Font,unsigned long)" (?GetUnicodeGlyphInfo@Upp@@YA?AUGlyphIn
fo@1@VFont@1@K@Z)
C:\upp-16111\theide.exe.new : fatal error LNK1120: 5 unresolved externals
There were errors. (0:01.65)
Best regards,
Tom
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57719 is a reply to message #57718] |
Thu, 02 December 2021 09:26   |
Tom1
Messages: 1319 Registered: March 2007
|
Ultimate Contributor |
|
|
OK, while I could not test this with MSBT19x64, I could do it with CLANGx64.
I can now confirm that it is only wchar branch having this issue. In order to reproduce the strange behavior, open theide (wchar) and therein select ide main package. Then open ide.h and select some item in the middle of the Navigator bar lower list. Now, if you start editing the file (e.g. just add one linefeed), and then grab the vertical scroll bar ('elevator') and drag it up or down. Within a second or so, the 'elevator' jumps back into the original 'floor', where your editing was started, and prevents reaching further items in the list.
Best regards,
Tom
EDIT: This also happens on Linux and CLANG. Additionally, I noticed that the Navigator bar lower list keeps refreshing/re-sorting its contents once per second. Discovered that the enumerated items BERRORS, BCALC, ... etc. keep jumping to different order every second.
[Updated on: Thu, 02 December 2021 10:00] Report message to a moderator
|
|
|
|
| Re: 32 bit wchar - for now in branch [message #57722 is a reply to message #57719] |
Thu, 02 December 2021 10:20   |
 |
mirek
Messages: 14291 Registered: November 2005
|
Ultimate Member |
|
|
Tom1 wrote on Thu, 02 December 2021 09:26OK, while I could not test this with MSBT19x64, I could do it with CLANGx64.
I can now confirm that it is only wchar branch having this issue. In order to reproduce the strange behavior, open theide (wchar) and therein select ide main package. Then open ide.h and select some item in the middle of the Navigator bar lower list. Now, if you start editing the file (e.g. just add one linefeed), and then grab the vertical scroll bar ('elevator') and drag it up or down. Within a second or so, the 'elevator' jumps back into the original 'floor', where your editing was started, and prevents reaching further items in the list.
Best regards,
Tom
EDIT: This also happens on Linux and CLANG. Additionally, I noticed that the Navigator bar lower list keeps refreshing/re-sorting its contents once per second. Discovered that the enumerated items BERRORS, BCALC, ... etc. keep jumping to different order every second.
Thank you!
Hopefully fixed, please check.
|
|
|
|
|
|
|
|
Goto Forum:
Current Time: Sat May 23 23:31:03 GMT+2 2026
Total time taken to generate the page: 0.01318 seconds
|