{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/25221","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/25221/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/25221/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/25221/events","html_url":"https://github.com/JuliaLang/julia/issues/25221","id":283791355,"number":25221,"title":"Infinite loop in inference","user":{"login":"nalimilan","id":1120448,"avatar_url":"https://avatars3.githubusercontent.com/u/1120448?v=4","gravatar_id":"","url":"https://api.github.com/users/nalimilan","html_url":"https://github.com/nalimilan","followers_url":"https://api.github.com/users/nalimilan/followers","following_url":"https://api.github.com/users/nalimilan/following{/other_user}","gists_url":"https://api.github.com/users/nalimilan/gists{/gist_id}","starred_url":"https://api.github.com/users/nalimilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nalimilan/subscriptions","organizations_url":"https://api.github.com/users/nalimilan/orgs","repos_url":"https://api.github.com/users/nalimilan/repos","events_url":"https://api.github.com/users/nalimilan/events{/privacy}","received_events_url":"https://api.github.com/users/nalimilan/received_events","type":"User","site_admin":false},"labels":[{"id":421532175,"url":"https://api.github.com/repos/JuliaLang/julia/labels/inference","name":"inference","color":"bfdadc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-12-21T07:08:31Z","updated_at":"2018-02-07T20:33:28Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"With branch `nl/hash` (https://github.com/JuliaLang/julia/pull/16401), calling `x = Complex{Rational}(1//3 + 1//4*im); x^x` makes Julia enter an infinite loop. The top of the trace looks like this:\r\n\r\n```\r\n#2900 0x00007fffe617bd50 in japi1_abstract_call_method_1315 ()\r\n    at inference.jl:2189\r\n#2901 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2902 jl_call_method_internal (nargs=5, args=0x7fffffffb288, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2903 jl_apply_generic (args=0x7fffffffb288, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2904 0x00007fffe617af97 in japi1_abstract_call_gf_by_type_1071 ()\r\n    at inference.jl:1955\r\n#2905 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2906 jl_call_method_internal (nargs=5, args=0x7fffffffb460, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2907 jl_apply_generic (args=0x7fffffffb460, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2908 0x00007fffe616bca0 in japi1_abstract_call_1007 () at inference.jl:2640\r\n#2909 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2910 jl_call_method_internal (nargs=6, args=0x7fffffffb670, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2911 jl_apply_generic (args=0x7fffffffb670, nargs=6)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2912 0x00007fffe6164d99 in japi1_abstract_eval_call_982 ()\r\n    at inference.jl:2670\r\n#2913 0x00007fffe6165325 in japi1_abstract_eval_977 () at inference.jl:2693\r\n#2914 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2915 jl_call_method_internal (nargs=4, args=0x7fffffffb920, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2916 jl_apply_generic (args=0x7fffffffb920, nargs=4)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2917 0x00007fffe61662b2 in japi1_abstract_interpret_976 ()\r\n    at inference.jl:2838\r\n#2918 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2919 jl_call_method_internal (nargs=4, args=0x7fffffffba50, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2920 jl_apply_generic (args=0x7fffffffba50, nargs=4)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2921 0x00007fffe61330cd in julia_typeinf_work_43 () at inference.jl:3491\r\n#2922 0x00007fffe6160d2f in japi1_typeinf_40 () at inference.jl:3622\r\n#2923 0x00007fffe617d40f in japi1_typeinf_edge_1325 () at inference.jl:3353\r\n#2924 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2925 jl_call_method_internal (nargs=5, args=0x7fffffffbdf0, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2926 jl_apply_generic (args=0x7fffffffbdf0, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2927 0x00007fffe617bd50 in japi1_abstract_call_method_1315 ()\r\n    at inference.jl:2189\r\n#2928 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2929 jl_call_method_internal (nargs=5, args=0x7fffffffbf88, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2930 jl_apply_generic (args=0x7fffffffbf88, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2931 0x00007fffe617af97 in japi1_abstract_call_gf_by_type_1071 ()\r\n    at inference.jl:1955\r\n#2932 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2933 jl_call_method_internal (nargs=5, args=0x7fffffffc160, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2934 jl_apply_generic (args=0x7fffffffc160, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2935 0x00007fffe616bca0 in japi1_abstract_call_1007 () at inference.jl:2640\r\n#2936 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2937 jl_call_method_internal (nargs=6, args=0x7fffffffc370, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2938 jl_apply_generic (args=0x7fffffffc370, nargs=6)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2939 0x00007fffe6164d99 in japi1_abstract_eval_call_982 ()\r\n    at inference.jl:2670\r\n#2940 0x00007fffe6165325 in japi1_abstract_eval_977 () at inference.jl:2693\r\n#2941 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2942 jl_call_method_internal (nargs=4, args=0x7fffffffc620, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2943 jl_apply_generic (args=0x7fffffffc620, nargs=4)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2944 0x00007fffe61662b2 in japi1_abstract_interpret_976 ()\r\n    at inference.jl:2838\r\n#2945 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2946 jl_call_method_internal (nargs=4, args=0x7fffffffc750, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2947 jl_apply_generic (args=0x7fffffffc750, nargs=4)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2948 0x00007fffe61330cd in julia_typeinf_work_43 () at inference.jl:3491\r\n#2949 0x00007fffe6160d2f in japi1_typeinf_40 () at inference.jl:3622\r\n#2950 0x00007fffe616d1d1 in typeinf_frame () at inference.jl:3312\r\n#2951 julia_typeinf_code_1084 () at inference.jl:3405\r\n#2952 0x00007fffe616d46b in jlcall_typeinf_code_1083 ()\r\n   from /home/milan/Dev/julia/usr/lib/julia/sys.so\r\n#2953 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2954 jl_call_method_internal (nargs=5, args=0x7fffffffcb48, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2955 jl_apply_generic (args=0x7fffffffcb48, nargs=5)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n\r\n#2956 0x00007fffe6161560 in julia_typeinf_ext_1 () at inference.jl:3447\r\n#2957 0x00007fffe6161a50 in jlcall_typeinf_ext_0 ()\r\n   from /home/milan/Dev/julia/usr/lib/julia/sys.so\r\n#2958 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2959 jl_call_method_internal (nargs=3, args=0x7fffffffce80, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2960 jl_apply_generic (args=args@entry=0x7fffffffce80, nargs=nargs@entry=3)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2961 0x00007ffff772e7e7 in jl_apply (nargs=3, args=0x7fffffffce80)\r\n    at /home/milan/Dev/julia/src/julia.h:1474\r\n#2962 jl_apply_with_saved_exception_state (args=args@entry=0x7fffffffce80, \r\n    nargs=nargs@entry=3, drop_exceptions=drop_exceptions@entry=0)\r\n    at /home/milan/Dev/julia/src/rtutils.c:257\r\n#2963 0x00007ffff76bf3bb in jl_type_infer (pli=pli@entry=0x7fffffffcf90, \r\n    world=world@entry=25047, force=force@entry=0)\r\n    at /home/milan/Dev/julia/src/gf.c:263\r\n#2964 0x00007ffff76c1df7 in jl_compile_for_dispatch (\r\n    pli=pli@entry=0x7fffffffcf90, world=world@entry=25047)\r\n    at /home/milan/Dev/julia/src/gf.c:1705\r\n\r\n#2965 0x00007ffff76c3538 in jl_compile_method_internal (\r\n    meth=<optimized out>, fptr=<synthetic pointer>)\r\n    at /home/milan/Dev/julia/src/julia_internal.h:348\r\n#2966 jl_call_method_internal (nargs=3, args=0x7fffffffd000, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:395\r\n#2967 jl_apply_generic (args=args@entry=0x7fffffffd000, \r\n    nargs=<optimized out>) at /home/milan/Dev/julia/src/gf.c:2011\r\n#2968 0x00007ffff781865e in do_call (args=args@entry=0x7fffe3eec980, \r\n    nargs=nargs@entry=3, s=s@entry=0x7fffffffd480)\r\n    at /home/milan/Dev/julia/src/interpreter.c:323\r\n#2969 0x00007ffff78190be in eval_value (e=0x7fffe37be830, s=0x7fffffffd480)\r\n    at /home/milan/Dev/julia/src/interpreter.c:395\r\n#2970 0x00007ffff781a151 in eval_body (stmts=0x7fffe21ddc90, \r\n    s=0x7fffffffd480, start=<optimized out>, toplevel=1)\r\n    at /home/milan/Dev/julia/src/interpreter.c:509\r\n#2971 0x00007ffff781a74f in jl_interpret_toplevel_thunk_callback (\r\n    s=0x7fffffffd480, vargs=0x7fffffffd4d0)\r\n    at /home/milan/Dev/julia/src/interpreter.c:720\r\n#2972 0x00007ffff76d863c in Lenter_interpreter_frame_start_val ()\r\n   from /home/milan/Dev/julia/usr/bin/../lib/libjulia.so.0.7\r\n\r\n#2973 0x00007ffff781b2dd in jl_interpret_toplevel_thunk (\r\n    m=m@entry=0x7fffe6994910 <jl_system_image_data+10960>, \r\n    src=0x7fffe2f02250) at /home/milan/Dev/julia/src/interpreter.c:729\r\n#2974 0x00007ffff76f8709 in jl_toplevel_eval_flex (\r\n    m=m@entry=0x7fffe6994910 <jl_system_image_data+10960>, \r\n    e=e@entry=0x7fffe37bdfd0, fast=fast@entry=1, expanded=expanded@entry=0)\r\n    at /home/milan/Dev/julia/src/toplevel.c:721\r\n#2975 0x00007ffff76f8509 in jl_toplevel_eval (\r\n\r\n    m=m@entry=0x7fffe6994910 <jl_system_image_data+10960>, \r\n    v=v@entry=0x7fffe37bdfd0) at /home/milan/Dev/julia/src/toplevel.c:734\r\n#2976 0x00007ffff76d3938 in jl_toplevel_eval_in (\r\n    m=0x7fffe6994910 <jl_system_image_data+10960>, ex=0x7fffe37bdfd0)\r\n    at /home/milan/Dev/julia/src/builtins.c:626\r\n#2977 0x00007fffe041a2d8 in eval () at boot.jl:289\r\n#2978 japi1_eval_56311 () at repl/REPL.jl:3\r\n#2979 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2980 jl_call_method_internal (nargs=3, args=0x7fffffffd7e8, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n\r\n#2981 jl_apply_generic (args=0x7fffffffd7e8, nargs=3)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2982 0x00007fffe63b6534 in japi1_eval_user_input_12663 () at repl/REPL.jl:70\r\n#2983 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2984 jl_call_method_internal (nargs=3, args=0x7fffffffda78, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2985 jl_apply_generic (args=0x7fffffffda78, nargs=3)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2986 0x00007fffe04148bc in macro expansion () at repl/REPL.jl:101\r\n#2987 japi1_#1_56263 () at event.jl:92\r\n#2988 0x00007ffff76c314a in jl_call_fptr_internal (fptr=<optimized out>, \r\n    fptr=<optimized out>, nargs=<optimized out>, args=<optimized out>, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:380\r\n#2989 jl_call_method_internal (nargs=1, args=0x7fffe22f9558, \r\n    meth=<optimized out>) at /home/milan/Dev/julia/src/julia_internal.h:399\r\n#2990 jl_apply_generic (args=args@entry=0x7fffe22f9558, nargs=nargs@entry=1)\r\n    at /home/milan/Dev/julia/src/gf.c:2011\r\n#2991 0x00007ffff76de5cb in jl_apply (nargs=1, args=0x7fffe22f9558)\r\n    at /home/milan/Dev/julia/src/julia.h:1474\r\n#2992 start_task () at /home/milan/Dev/julia/src/task.c:268\r\n#2993 0x0000000000000000 in ?? ()\r\n```"},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/363901323","html_url":"https://github.com/JuliaLang/julia/issues/25221#issuecomment-363901323","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/25221","id":363901323,"user":{"login":"vtjnash","id":330950,"avatar_url":"https://avatars1.githubusercontent.com/u/330950?v=4","gravatar_id":"","url":"https://api.github.com/users/vtjnash","html_url":"https://github.com/vtjnash","followers_url":"https://api.github.com/users/vtjnash/followers","following_url":"https://api.github.com/users/vtjnash/following{/other_user}","gists_url":"https://api.github.com/users/vtjnash/gists{/gist_id}","starred_url":"https://api.github.com/users/vtjnash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vtjnash/subscriptions","organizations_url":"https://api.github.com/users/vtjnash/orgs","repos_url":"https://api.github.com/users/vtjnash/repos","events_url":"https://api.github.com/users/vtjnash/events{/privacy}","received_events_url":"https://api.github.com/users/vtjnash/received_events","type":"User","site_admin":false},"created_at":"2018-02-07T20:33:28Z","updated_at":"2018-02-07T20:33:28Z","author_association":"MEMBER","body":"Is this still broken? The code above seems to work for me on master."}}
{"actor":{"display_login":"vtjnash"}}