HaxeFoundation / haxe

Haxe - The Cross-Platform Toolkit
https://haxe.org
6.17k stars 654 forks source link

[cpp] IntMap/StringMap compilation fails with Haxe 4.3.0-rc #10966

Closed sebthom closed 1 year ago

sebthom commented 1 year ago

Haxe Version: 4.3.0-rc.1+a985681

StringMap@Linux:

haxelib run hxcpp Build.xml haxe -Ddebug -Dansi="1.0.0" -Ddump="pretty" -Dhaxe="4.3.0-rc.1" -Dhaxe3="1" -Dhaxe4="1" -Dhaxe_ver="4.300" -Dhscript="2.5.0" -Dhx3compat="1.0.4" -Dhxcpp_api_level="430" -Dhxcpp_smart_strings="1" -Dmconsole="1.6.0" -Dmcover="2.2.2" -Dmlib="2.0.3" -Dmunit="2.3.5" -Dpure="1" -Dsource_header="Generated by Haxe 4.3.0-rc.1+a985681" -Dstatic="1" -Dtarget.atomics="1" -Dtarget.name="cpp" -Dtarget.static="1" -Dtarget.sys="1" -Dtarget.threaded="1" -Dtarget.unicode="1" -Dtarget.utf16="1" -Dtink_core="2.0.2" -Dtink_macro="1.0.0" -Dtink_streams="0.4.0" -Dtink_testrunner="0.9.0" -Dutest="1.13.2" -Dutf16="1" -I/opt/hostedtoolcache/haxe/lib/tink_streams/0,4,0/src/ -I/opt/hostedtoolcache/haxe/lib/tink_core/2,0,2/src/ -I/opt/hostedtoolcache/haxe/lib/tink_macro/1,0,0/src/ -I/opt/hostedtoolcache/haxe/lib/ansi/1,0,0/src/ -I/opt/hostedtoolcache/haxe/lib/tink_testrunner/0,9,0/src/ -I/opt/hostedtoolcache/haxe/lib/utest/1,13,2/src/ -I/opt/hostedtoolcache/haxe/lib/mlib/2,0,3/ -I/opt/hostedtoolcache/haxe/lib/mconsole/1,6,0/ -I/opt/hostedtoolcache/haxe/lib/mcover/2,2,2/ -I/opt/hostedtoolcache/haxe/lib/munit/2,3,5/ -I/opt/hostedtoolcache/haxe/lib/hx3compat/1,0,4/std/ -I/opt/hostedtoolcache/haxe/lib/hscript/2,5,0/ -Itest/ -Isrc/ -I -I/opt/hostedtoolcache/haxe/latest/x64/std/cpp/_std/ -I/opt/hostedtoolcache/haxe/latest/x64/std/
Creating /home/runner/work/haxe-doctest/haxe-doctest/target/cpp/obj/linux64-debug/__pch/haxe/hxcpp.h.gch...

Compiling group: haxe
g++ -Iinclude -c -fvisibility=hidden -g -fpic -fPIC -Wno-overflow -DHX_LINUX -DHXCPP_DEBUG -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS(haxe) -DHX_SMART_STRINGS(haxe) -DHXCPP_API_LEVEL=430(haxe) -m64 -DHXCPP_M64 -I/opt/hostedtoolcache/haxe/lib/hxcpp/4,2,1/include ... tags=[haxe,static]
 - src/hx/doctest/DocTestResults.cpp 
 - src/Sys.cpp 
 - src/utest/ui/common/ResultAggregator.cpp 
 - src/mconsole/Style.cpp 
 - src/sys/FileSystem.cpp 
 - src/haxe/io/Output.cpp 
 - src/massive/munit/client/ExternalPrintClient.cpp 
 - src/haxe/ds/StringMap.cpp 
 - src/haxe/ValueException.cpp 
Error: In file included from ./src/haxe/ds/StringMap.cpp:8:
include/haxe/ds/StringMap.h: In member function ‘void haxe::ds::StringMap_obj::set(String, cpp::Int64)’:
include/haxe/ds/StringMap.h:79:51: error: ‘__string_hash_set_int64’ was not declared in this scope; did you mean ‘__string_hash_set_int’?
   79 |   inline void set(String key, cpp::Int64 value) { __string_hash_set_int64(HX_MAP_THIS,key,value); }
      |                                                   ^~~~~~~~~~~~~~~~~~~~~~~
      |                                                   __string_hash_set_int
include/haxe/ds/StringMap.h: In member function ‘cpp::Int64 haxe::ds::StringMap_obj::get_int64(String)’:
include/haxe/ds/StringMap.h:95:52: error: ‘__string_hash_get_int64’ was not declared in this scope; did you mean ‘__string_hash_get_int’?
   95 |   inline cpp::Int64 get_int64(String key) { return __string_hash_get_int64(h,key); }
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~
      |                                                    __string_hash_get_int
Error: Build failed

StringMap@Windows:

haxelib run hxcpp Build.xml haxe -Ddebug -Dansi="1.0.0" -Ddump="pretty" -Dhaxe="4.3.0-rc.1" -Dhaxe3="1" -Dhaxe4="1" -Dhaxe_ver="4.300" -Dhscript="2.5.0" -Dhx3compat="1.0.4" -Dhxcpp_api_level="430" -Dhxcpp_smart_strings="1" -Dmconsole="1.6.0" -Dmcover="2.2.2" -Dmlib="2.0.3" -Dmunit="2.3.5" -Dpure="1" -Dsource_header="Generated by Haxe 4.3.0-rc.1+a985681" -Dstatic="1" -Dtarget.atomics="1" -Dtarget.name="cpp" -Dtarget.static="1" -Dtarget.sys="1" -Dtarget.threaded="1" -Dtarget.unicode="1" -Dtarget.utf16="1" -Dtink_core="2.0.2" -Dtink_macro="1.0.0" -Dtink_streams="0.4.0" -Dtink_testrunner="0.9.0" -Dutest="1.13.2" -Dutf16="1" -IC:/hostedtoolcache/windows/haxe/lib/tink_streams/0,4,0/src/ -IC:/hostedtoolcache/windows/haxe/lib/tink_core/2,0,2/src/ -IC:/hostedtoolcache/windows/haxe/lib/tink_macro/1,0,0/src/ -IC:/hostedtoolcache/windows/haxe/lib/ansi/1,0,0/src/ -IC:/hostedtoolcache/windows/haxe/lib/tink_testrunner/0,9,0/src/ -IC:/hostedtoolcache/windows/haxe/lib/utest/1,13,2/src/ -IC:/hostedtoolcache/windows/haxe/lib/mlib/2,0,3/ -IC:/hostedtoolcache/windows/haxe/lib/mconsole/1,6,0/ -IC:/hostedtoolcache/windows/haxe/lib/mcover/2,2,2/ -IC:/hostedtoolcache/windows/haxe/lib/munit/2,3,5/ -IC:/hostedtoolcache/windows/haxe/lib/hx3compat/1,0,4/std/ -IC:/hostedtoolcache/windows/haxe/lib/hscript/2,5,0/ -Itest/ -Isrc/ -I -IC:\\hostedtoolcache\\windows\\haxe\\latest\\x64\\std/cpp/_std/ -IC:\\hostedtoolcache\\windows\\haxe\\latest\\x64\\std/
Creating D:/a/haxe-doctest/haxe-doctest/target/cpp/obj/msvc19-debugxp/__pch/haxe/hxcpp.pch...
hxcpp.cpp

Compiling group: haxe
cl.exe -Iinclude -nologo /WX- /fp:precise -DHX_WINDOWS -GR -Od(optim-std) -Zi(optim-std) -FdD:\a\haxe-doctest\haxe-doctest\target\cpp\obj/msvc19-debugxp/vc.pdb(optim-std) -Zi(debug) -FdD:\a\haxe-doctest\haxe-doctest\target\cpp\obj/msvc19-debugxp/vc.pdb(debug) -Od(debug) -O2(release) -bigobj -Os(optim-size) -FS -Oy- -c -EHs -GS- -arch:SSE2 -IC:/hostedtoolcache/windows/haxe/lib/hxcpp/4,2,1/include -DHXCPP_DEBUG -DHXCPP_VISIT_ALLOCS(haxe) -DHX_SMART_STRINGS(haxe) -DHXCPP_API_LEVEL=430(haxe) -D_CRT_SECURE_NO_DEPRECATE -D_ALLOW_MSC_VER_MISMATCH -D_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH -wd4996 ... tags=[haxe,static]
 - src/hx/doctest/DocTestResults.cpp 
 - src/Sys.cpp 
 - src/utest/ui/common/ResultAggregator.cpp 
 - src/mconsole/Style.cpp 
 - src/sys/FileSystem.cpp 
 - src/haxe/io/Output.cpp 
 - src/massive/munit/client/ExternalPrintClient.cpp 
 - src/haxe/ds/StringMap.cpp 
 - src/haxe/ValueException.cpp 
 - src/massive/munit/ICoverageTestResultClient.cpp 
 - src/massive/munit/UnhandledException.cpp 
Error: StringMap.cpp
D:\a\haxe-doctest\haxe-doctest\target\cpp\include\haxe/ds/StringMap.h(79): error C3861: '__string_hash_set_int64': identifier not found
D:\a\haxe-doctest\haxe-doctest\target\cpp\include\haxe/ds/StringMap.h(95): error C3861: '__string_hash_get_int64': identifier not found

StringMap@MacOS:

haxelib run hxcpp Build.xml haxe -Ddebug -Dansi="1.0.0" -Ddump="pretty" -Dhaxe="4.3.0-rc.1" -Dhaxe3="1" -Dhaxe4="1" -Dhaxe_ver="4.300" -Dhscript="2.5.0" -Dhx3compat="1.0.4" -Dhxcpp_api_level="430" -Dhxcpp_smart_strings="1" -Dmconsole="1.6.0" -Dmcover="2.2.2" -Dmlib="2.0.3" -Dmunit="2.3.5" -Dpure="1" -Dsource_header="Generated by Haxe 4.3.0-rc.1+a985681" -Dstatic="1" -Dtarget.atomics="1" -Dtarget.name="cpp" -Dtarget.static="1" -Dtarget.sys="1" -Dtarget.threaded="1" -Dtarget.unicode="1" -Dtarget.utf16="1" -Dtink_core="2.0.2" -Dtink_macro="1.0.0" -Dtink_streams="0.4.0" -Dtink_testrunner="0.9.0" -Dutest="1.13.2" -Dutf16="1" -I/Users/runner/hostedtoolcache/haxe/lib/tink_streams/0,4,0/src/ -I/Users/runner/hostedtoolcache/haxe/lib/tink_core/2,0,2/src/ -I/Users/runner/hostedtoolcache/haxe/lib/tink_macro/1,0,0/src/ -I/Users/runner/hostedtoolcache/haxe/lib/ansi/1,0,0/src/ -I/Users/runner/hostedtoolcache/haxe/lib/tink_testrunner/0,9,0/src/ -I/Users/runner/hostedtoolcache/haxe/lib/utest/1,13,2/src/ -I/Users/runner/hostedtoolcache/haxe/lib/mlib/2,0,3/ -I/Users/runner/hostedtoolcache/haxe/lib/mconsole/1,6,0/ -I/Users/runner/hostedtoolcache/haxe/lib/mcover/2,2,2/ -I/Users/runner/hostedtoolcache/haxe/lib/munit/2,3,5/ -I/Users/runner/hostedtoolcache/haxe/lib/hx3compat/1,0,4/std/ -I/Users/runner/hostedtoolcache/haxe/lib/hscript/2,5,0/ -Itest/ -Isrc/ -I -I/Users/runner/hostedtoolcache/haxe/latest/x64/std/cpp/_std/ -I/Users/runner/hostedtoolcache/haxe/latest/x64/std/
Creating /Users/runner/work/haxe-doctest/haxe-doctest/target/cpp/obj/darwin64-debug/__pch/haxe/hxcpp.h.gch...

Compiling group: haxe
g++ -Iinclude -c -fvisibility=hidden -stdlib=libc++ -isysroot /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -g -I/Users/runner/hostedtoolcache/haxe/lib/hxcpp/4,2,1/include -DHX_MACOS -m64 -Wno-parentheses -Wno-unused-value -Wno-format-extra-args -Wno-overflow -DHXCPP_DEBUG -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS(haxe) -DHX_SMART_STRINGS(haxe) -DHXCPP_API_LEVEL=430(haxe) ... tags=[haxe,static]
 - src/Sys.cpp 
 - src/hx/doctest/DocTestResults.cpp 
 - src/utest/ui/common/ResultAggregator.cpp 
 - src/mconsole/Style.cpp 
 - src/sys/FileSystem.cpp 
 - src/haxe/io/Output.cpp 
 - src/massive/munit/client/ExternalPrintClient.cpp 
 - src/haxe/ds/StringMap.cpp 
 - src/haxe/ValueException.cpp 
 - src/massive/munit/ICoverageTestResultClient.cpp 
Error: In file included from ./src/haxe/ds/StringMap.cpp:8:
include/haxe/ds/StringMap.h:79:51: error: use of undeclared identifier '__string_hash_set_int64'; did you mean '__string_hash_set_int'?
  inline void set(String key, cpp::Int64 value) { __string_hash_set_int64(HX_MAP_THIS,key,value); }
                                                  ^~~~~~~~~~~~~~~~~~~~~~~
                                                  __string_hash_set_int
/Users/runner/hostedtoolcache/haxe/lib/hxcpp/4,2,1/include/hx/StdLibs.h:191:45: note: '__string_hash_set_int' declared here
HXCPP_EXTERN_CLASS_ATTRIBUTES void          __string_hash_set_int(HX_MAP_THIS_ARG,String inKey,int inValue);
                                            ^
In file included from ./src/haxe/ds/StringMap.cpp:8:
include/haxe/ds/StringMap.h:95:52: error: use of undeclared identifier '__string_hash_get_int64'; did you mean '__string_hash_get_int'?
  inline cpp::Int64 get_int64(String key) { return __string_hash_get_int64(h,key); }
                                                   ^~~~~~~~~~~~~~~~~~~~~~~
                                                   __string_hash_get_int
/Users/runner/hostedtoolcache/haxe/lib/hxcpp/4,2,1/include/hx/StdLibs.h:201:45: note: '__string_hash_get_int' declared here
HXCPP_EXTERN_CLASS_ATTRIBUTES int           __string_hash_get_int(Dynamic inHash,String inKey);
                                            ^
2 errors generated.

IntMap@Linux:

| haxelib run hxcpp Build.xml haxe -Ddebug -Dansi="1.0.0" -Ddump="pretty" -Dhaxe="4.3.0-rc.1" -Dhaxe3="1" -Dhaxe4="1" -Dhaxe_ver="4.300" -Dhscript="2.5.0" -Dhx3compat="1.0.4" -Dhxcpp_api_level="430" -Dhxcpp_smart_strings="1" -Dmconsole="1.6.0" -Dmcover="2.2.2" -Dmlib="2.0.3" -Dmunit="2.3.5" -Dpure="1" -Dsource_header="Generated by Haxe 4.3.0-rc.1+a985681" -Dstatic="1" -Dtarget.atomics="1" -Dtarget.name="cpp" -Dtarget.static="1" -Dtarget.sys="1" -Dtarget.threaded="1" -Dtarget.unicode="1" -Dtarget.utf16="1" -Dtink_core="2.0.2" -Dtink_macro="1.0.0" -Dtink_streams="0.4.0" -Dtink_testrunner="0.9.0" -Dutest="1.13.2" -Dutf16="1" -I/opt/hostedtoolcache/haxe/lib/tink_streams/0,4,0/src/ -I/opt/hostedtoolcache/haxe/lib/tink_core/2,0,2/src/ -I/opt/hostedtoolcache/haxe/lib/tink_macro/1,0,0/src/ -I/opt/hostedtoolcache/haxe/lib/ansi/1,0,0/src/ -I/opt/hostedtoolcache/haxe/lib/tink_testrunner/0,9,0/src/ -I/opt/hostedtoolcache/haxe/lib/utest/1,13,2/src/ -I/opt/hostedtoolcache/haxe/lib/mlib/2,0,3/ -I/opt/hostedtoolcache/haxe/lib/mconsole/1,6,0/ -I/opt/hostedtoolcache/haxe/lib/mcover/2,2,2/ -I/opt/hostedtoolcache/haxe/lib/munit/2,3,5/ -I/opt/hostedtoolcache/haxe/lib/hx3compat/1,0,4/std/ -I/opt/hostedtoolcache/haxe/lib/hscript/2,5,0/ -Itest/ -Isrc/ -I -I/opt/hostedtoolcache/haxe/latest/x64/std/cpp/_std/ -I/opt/hostedtoolcache/haxe/latest/x64/std/
| Creating /mnt/d/workspaces/projects-haxe/haxe-doctest/target/cpp/obj/linux64-debug/__pch/haxe/hxcpp.h.gch...
|
| Compiling group: haxe
| g++ -Iinclude -c -fvisibility=hidden -g -fpic -fPIC -Wno-overflow -DHX_LINUX -DHXCPP_DEBUG -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS(haxe) -DHX_SMART_STRINGS(haxe) -DHXCPP_API_LEVEL=430(haxe) -m64 -DHXCPP_M64 -I/opt/hostedtoolcache/haxe/lib/hxcpp/4,2,1/include ... tags=[haxe,static]
|  - src/haxe/NativeStackTrace.cpp
|  - src/Sys.cpp
|  - src/hx/doctest/DocTestResults.cpp
|  - src/hx/doctest/tests/DocTestTest.cpp
|  - src/sys/thread/_EventLoop/RegularEvent.cpp
|  - src/haxe/io/Encoding.cpp
|  - src/EReg.cpp
|  - src/hx/doctest/internal/Level.cpp
|  - src/hx/doctest/DefaultDocTestResults.cpp
|  - src/haxe/io/Output.cpp
|  - src/haxe/Exception.cpp
| Error: In file included from ./src/hx/doctest/tests/DocTestTest.cpp:14:
| include/haxe/ds/IntMap.h: In member function ‘void haxe::ds::IntMap_obj::set(int, cpp::Int64)’:
| include/haxe/ds/IntMap.h:76:48: error: ‘__int_hash_set_int64’ was not declared in this scope; did you mean ‘__int_hash_set_int’?
|    76 |   inline void set(int key, cpp::Int64 value) { __int_hash_set_int64(HX_MAP_THIS,key,value); }
|       |                                                ^~~~~~~~~~~~~~~~~~~~
|       |                                                __int_hash_set_int
| include/haxe/ds/IntMap.h: In member function ‘cpp::Int64 haxe::ds::IntMap_obj::get_int64(int)’:
| include/haxe/ds/IntMap.h:92:49: error: ‘__int_hash_get_int64’ was not declared in this scope; did you mean ‘__int_hash_get_int’?
|    92 |   inline cpp::Int64 get_int64(int key) { return __int_hash_get_int64(h,key); }
|       |                                                 ^~~~~~~~~~~~~~~~~~~~
|       |                                                 __int_hash_get_int
| Error: Build failed
sebthom commented 1 year ago

Solved it installing hxcpp from git:

haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp.git
cd $(haxelib config)/hxcpp/git/tools/hxcpp
haxe compile.hxml