U++ framework
Do not panic. Ask here before giving up.

Home » Community » U++ community news and announcements » 32 bit wchar - for now in branch
32 bit wchar - for now in branch [message #57636] Tue, 19 October 2021 20:22 Go to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Recently I am transitioning wchar to 32 bit for improved unicode support. This is the first for the full Unicode support - at this phase, I do not yet expect advanced text shaping to be used, just to allow codepoints outside of basic plane (codepoints > 65536).

Today I have reached the milestone when I have finally displayed some emoji characters in UWord in Win32, so maybe this is time to announce the existence of 'wchar' branch on github - that is the one with sizeof(wchar) == 4 so that maybe you can start testing this too.

So far I am only supporting Win32.

There was quite a lot things to fix in uppsrc (unexpectly so). The fact that WCHAR is not the same as wchar caused some probles as well as '2' instead of 'sizeof(wchar)' in some places (yep, thats bad coding 10 years ago, shame on me). So I recommend to do "Find all" "WCHAR" and "wchar" in your code just to check all is OK...

(Note that I am regularly rebasing 'wchar' branch, which unfortunately means force pushes and rewriting 'wchar' history...)
Re: 32 bit wchar - for now in branch [message #57642 is a reply to message #57636] Sat, 30 October 2021 17:41 Go to previous messageGo to next message
zsolt is currently offline  zsolt
Messages: 702
Registered: December 2005
Location: Budapest, Hungary
Contributor
Thanks!
Re: 32 bit wchar - for now in branch [message #57648 is a reply to message #57642] Sat, 06 November 2021 16:38 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
It now works on all platforms, the merge is imminent...
Re: 32 bit wchar - for now in branch [message #57663 is a reply to message #57648] Mon, 15 November 2021 11:59 Go to previous messageGo to next message
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 #57664 is a reply to message #57663] Mon, 15 November 2021 15:28 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Mon, 15 November 2021 11:59
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.


Thank you! Fixes pushed. Let me know....
Re: 32 bit wchar - for now in branch [message #57665 is a reply to message #57664] Mon, 15 November 2021 15:55 Go to previous messageGo to next message
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 #57666 is a reply to message #57665] Mon, 15 November 2021 19:27 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tried to fix that as well (although I am not getting warnings there).

Mirek
Re: 32 bit wchar - for now in branch [message #57668 is a reply to message #57666] Tue, 16 November 2021 08:28 Go to previous messageGo to next message
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 Go to previous messageGo to next message
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 Go to previous messageGo to next message
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 #57677 is a reply to message #57670] Wed, 17 November 2021 10:22 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Tue, 16 November 2021 09:05
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.


I am a bit confused by EDIT....

What do you mean by "current git version"? wchar head or master head?
Re: 32 bit wchar - for now in branch [message #57678 is a reply to message #57677] Wed, 17 November 2021 11:09 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
Hi Mirek,

I mean the master head. So master works, but wchar does not. Sorry about the unclear edit...

Best regards,

Tom
Re: 32 bit wchar - for now in branch [message #57679 is a reply to message #57678] Wed, 17 November 2021 11:12 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Hopefully fixed. Thanks for spotting this.
Re: 32 bit wchar - for now in branch [message #57680 is a reply to message #57679] Wed, 17 November 2021 12:48 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
Mirek,

Thanks! It's all good now: CLANG, CLANGx64, MSBT17, MSBT17x64, MSBT19 and MSBT19x64.

Also, GLCtrl works properly again.

Best regards,

Tom
Re: 32 bit wchar - for now in branch [message #57682 is a reply to message #57680] Wed, 17 November 2021 13:27 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Please keep testing, this is most valuable!

Mirek
Re: 32 bit wchar - for now in branch [message #57683 is a reply to message #57682] Wed, 17 November 2021 14:37 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
I'm working on it... Smile

Best regards,

Tom
Re: 32 bit wchar - for now in branch [message #57687 is a reply to message #57683] Fri, 19 November 2021 09:26 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Wed, 17 November 2021 14:37
I'm working on it... Smile

Best regards,

Tom


I would like to merge asap, probably today. Do you think it is OK?
Re: 32 bit wchar - for now in branch [message #57688 is a reply to message #57687] Fri, 19 November 2021 10:48 Go to previous messageGo to next message
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 #57689 is a reply to message #57688] Sat, 20 November 2021 10:17 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Fri, 19 November 2021 10:48
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


Hopefully fixed.
Re: 32 bit wchar - for now in branch [message #57690 is a reply to message #57689] Sat, 20 November 2021 11:31 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
I am now experiencing two minor issues with wchar32 theide which I am not sure whether are releated to wchar32 or perhaps some changes in windows:

- sometimes dropping the droplist (e.g. switching the build method) seems delayed or does not happen at all.
- After building, there is "Gathering files" progress; this should basically just check for changed files (by file stamps) and as far as I remember, was quick. Sometimes this now takes longer time than I would like, which does not really make sense at all (because those timestamps should be read from OS cache).

If you are running wchar32 theide, have seen these? (If not, I would appreciate you compiled and used it.)
Re: 32 bit wchar - for now in branch [message #57691 is a reply to message #57690] Sat, 20 November 2021 17:04 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
Hi,

Thanks! It compiles OK now on Linux. Smile

Just re-compiled TheIDE on MSBT19x64. I do not notice any slowdown when changing BM or ending build. (BM changes in about 1-2 seconds, and ending the build is just a flash.) This is the case when I'm working on a local SSD (M.2, ~3 GB/s).

However, when my project sources are on a local NAS behind a 1Gb LAN connection, the situation is different: Changing BM takes like 5-7 seconds and starting a build has a start-up lag of 7-12 seconds when nothing seems to happen. At the end of build there is not any significant delay though. Anyway, this is not any different to how it has been at 2021.1 release.

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 Go to previous messageGo to next message
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 #57701 is a reply to message #57699] Wed, 24 November 2021 14:02 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
I am trying to figure out those weird delays in theide first...

Mirek
Re: 32 bit wchar - for now in branch [message #57709 is a reply to message #57701] Wed, 01 December 2021 14:02 Go to previous messageGo to next message
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 Go to previous messageGo to next message
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 #57713 is a reply to message #57710] Wed, 01 December 2021 17:02 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Wed, 01 December 2021 14:54
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


Hopefully fixed.
Re: 32 bit wchar - for now in branch [message #57714 is a reply to message #57709] Wed, 01 December 2021 17:03 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Wed, 01 December 2021 14:02
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


I am really confused with this report Smile

In any case, does not seem like this should be related to wchar32?
Re: 32 bit wchar - for now in branch [message #57715 is a reply to message #57714] Wed, 01 December 2021 17:39 Go to previous messageGo to next message
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 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
mirek wrote on Wed, 01 December 2021 18:02
Tom1 wrote on Wed, 01 December 2021 14:54
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


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 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
mirek wrote on Wed, 01 December 2021 18:03
Tom1 wrote on Wed, 01 December 2021 14:02
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


I am really confused with this report Smile

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 Go to previous messageGo to next message
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 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Tom1 wrote on Thu, 02 December 2021 09:26
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.


Thank you!

Hopefully fixed, please check.
Re: 32 bit wchar - for now in branch [message #57723 is a reply to message #57722] Thu, 02 December 2021 11:47 Go to previous messageGo to next message
Tom1
Messages: 1319
Registered: March 2007
Ultimate Contributor
Mirek,

It all seems to work just fine now! Thanks! Smile

Maybe you could clean up the reference/OpenGL by removing CodeEditor and adding CtrlLib:

https://www.ultimatepp.org/forums/index.php?t=msg&th=116 65&goto=57699&#msg_57699

Best regards,

Tom
Re: 32 bit wchar - for now in branch [message #57725 is a reply to message #57723] Thu, 02 December 2021 12:05 Go to previous message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Merged to master...
Previous Topic: text<->double conversions refactored
Next Topic: ide: Ctrl+D - duplicate - now works on selection too
Goto Forum:
  


Current Time: Sat May 23 15:11:25 GMT+2 2026

Total time taken to generate the page: 0.00840 seconds