JuliaInterop / Cxx.jl

The Julia C++ Interface
Other
755 stars 107 forks source link

Invoking icxx string macro without converting to String crashes Julia on Windows. #457

Open Ismael-VC opened 4 years ago

Ismael-VC commented 4 years ago

This does not happen in Ubuntu:

julia> versioninfo()
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)

(v1.3) pkg> activate slb
Activating environment at `C:\Users\Ismael_Venegas\slb\Project.toml`

(slb) pkg> status
    Status `C:\Users\Ismael_Venegas\slb\Project.toml`
  [a0b5b9ef] Cxx v0.4.0 #master (https://github.com/JuliaInterop/Cxx.jl.git)
  [1f15a43c] CxxWrap v0.8.2

julia> using Cxx

C++ > #include <iostream>
true

C++ > std::cout << "Welcome to Cxx.jl" << std::endl;
Welcome to Cxx.jl

C++ > std::string cxx = "Cxx";

julia> println("Combine Julia and ", String(icxx"cxx;"))
Combine Julia and Cxx

julia> icxx"cxx;"

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x2a6a0a15 -- unknown function (ip: 000000002A6A0A15)
in expression starting at REPL[8]:0
unknown function (ip: 000000002A6A0A14)
unknown function (ip: 000000002A6A08DC)
unknown function (ip: 000000002A6A07ED)
unknown function (ip: 000000002A6A074E)
unknown function (ip: 000000002A6A0713)
macro expansion at C:\Users\Ismael_Venegas\.julia\packages\Cxx\1RaOv\src\cxxstr.jl:516 [inlined]
lambdacall at C:\Users\Ismael_Venegas\.julia\packages\Cxx\1RaOv\src\cxxstr.jl:516 [inlined]
#2 at .\none:2
unknown function (ip: 000000002A69FC3B)
unknown function (ip: 000000002A69FA24)
unknown function (ip: 000000002A69F933)
macro expansion at C:\Users\Ismael_Venegas\.julia\packages\Cxx\1RaOv\src\cxxstr.jl:703 [inlined]
cxxstr_impl at C:\Users\Ismael_Venegas\.julia\packages\Cxx\1RaOv\src\cxxstr.jl:703 [inlined]
#s37#1 at C:\Users\Ismael_Venegas\.julia\packages\Cxx\1RaOv\src\show.jl:25 [inlined]
#s37#1 at .\none:0
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2141 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
GeneratedFunctionStub at .\boot.jl:524
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
jl_apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\julia.h:1631 [inlined]
jl_call_staged at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\method.c:374
jl_code_for_staged at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\method.c:404
get_staged at .\compiler\utilities.jl:92
retrieve_code_info at .\compiler\utilities.jl:103 [inlined]
InferenceState at .\compiler\inferencestate.jl:113
typeinf_edge at .\compiler\typeinfer.jl:479
abstract_call_method at .\compiler\abstractinterpretation.jl:396
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:93
abstract_call at .\compiler\abstractinterpretation.jl:850
abstract_call at .\compiler\abstractinterpretation.jl:636
abstract_eval_call at .\compiler\abstractinterpretation.jl:879
abstract_eval at .\compiler\abstractinterpretation.jl:949
typeinf_local at .\compiler\abstractinterpretation.jl:1208
typeinf_nocycle at .\compiler\abstractinterpretation.jl:1264
typeinf at .\compiler\typeinfer.jl:12
typeinf_ext at .\compiler\typeinfer.jl:574
typeinf_ext at .\compiler\typeinfer.jl:605
jfptr_typeinf_ext_1.clone_1 at C:\Users\Ismael_Venegas\AppData\Local\Julia-1.3.1\lib\julia\sys.dll (unknown line)
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\julia.h:1631 [inlined]
jl_type_infer at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:209
jl_compile_method_internal at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:1879
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2140 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
display at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:132
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
display at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:136
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
display at .\multimedia.jl:323
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
jl_apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\julia.h:1631 [inlined]
jl_f__apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:627
jl_f__apply_latest at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:665
#invokelatest#1 at .\essentials.jl:709 [inlined]
invokelatest at .\essentials.jl:708 [inlined]
print_response at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:156
print_response at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:141
jfptr_print_response_14930.clone_1 at C:\Users\Ismael_Venegas\AppData\Local\Julia-1.3.1\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
do_respond at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:719
jfptr_do_respond_12219.clone_1 at C:\Users\Ismael_Venegas\AppData\Local\Julia-1.3.1\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
jl_apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\julia.h:1631 [inlined]
jl_f__apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:627
jl_f__apply_latest at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:665
#invokelatest#1 at .\essentials.jl:709 [inlined]
invokelatest at .\essentials.jl:708 [inlined]
run_interface at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\LineEdit.jl:2306
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
run_frontend at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:1045
run_repl at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\REPL\src\REPL.jl:201
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
#770 at .\client.jl:382
jfptr_#770_7946.clone_1 at C:\Users\Ismael_Venegas\AppData\Local\Julia-1.3.1\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
jl_apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\julia.h:1631 [inlined]
jl_f__apply at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:627
jl_f__apply_latest at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\builtins.c:665
#invokelatest#1 at .\essentials.jl:709 [inlined]
invokelatest at .\essentials.jl:708 [inlined]
run_main_repl at .\client.jl:366
exec_options at .\client.jl:304
_start at .\client.jl:460
jfptr__start_2086.clone_1 at C:\Users\Ismael_Venegas\AppData\Local\Julia-1.3.1\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2135 [inlined]
jl_apply_generic at /cygdrive/d/buildbot/worker/package_win64/build/src/cygdrive/d/buildbot/worker/package_win64/build/src\gf.c:2305
unknown function (ip: 00000000004017DD)
unknown function (ip: 0000000000401BC5)
unknown function (ip: 00000000004013DE)
unknown function (ip: 000000000040151A)
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
Allocations: 17995188 (Pool: 17991090; Big: 4098); GC: 19

C:\Users\Ismael_Venegas
λ
Gnimuc commented 4 years ago

dup of #456. I think the root cause is the same.