xturn

Build log

host

xturn 2.0.0 · fail · run xturn-2.0.0-1791161131478
756 of 756 lines
1Resolving Hex dependencies...2Resolution completed in 0.43s3Unchanged:4  circular_buffer 1.1.05  cowboy 2.19.06  cowboy_telemetry 0.4.07  cowlib 2.20.0 VULNERABLE!8    EEF-CVE-2026-43966 (MEDIUM)9    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c10    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/211    https://osv.dev/vulnerability/EEF-CVE-2026-439661213    EEF-CVE-2026-43969 (LOW)14    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5615    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/116    https://osv.dev/vulnerability/EEF-CVE-2026-4396917  datastructures 0.2.818  elixir_make 0.6.319  exts 0.3.420  interactive_cmd 0.1.421  jason 1.4.522  maru 0.13.223  mime 2.0.724  nerves 2.0.0-pre.225  nerves_discovery 0.1.526  nerves_logging 0.2.427  nerves_runtime 0.13.1328  nerves_system_bbb 2.30.229  nerves_system_br 1.34.430  nerves_system_mangopi_mq_pro 0.17.231  nerves_system_qemu_aarch64 0.4.232  nerves_system_rpi0 2.1.233  nerves_system_rpi4 2.1.234  nerves_system_rpi5 2.1.235  nerves_system_trellis 0.5.036  nerves_system_x86_64 1.34.237  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.138  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.139  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.140  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.141  nerves_toolchain_x86_64_nerves_linux_musl 15.3.142  nerves_uevent 0.1.743  plug 1.20.344  plug_cowboy 2.9.045  plug_crypto 2.2.046  property_table 0.3.447  ranch 2.3.048  ring_logger 0.11.749  skex 0.1.250  tablet 0.3.351  telemetry 1.4.252  toolshed 0.5.053  uboot_env 1.0.254  xmedialib 0.3.055  xsockets 1.0.056  xturn 2.0.057  xturn_plugin_api 0.1.158Found packages with security advisories, see above for details59All dependencies have been fetched60==> xturn_plugin_api61Compiling 3 files (.ex)62Generated xturn_plugin_api app63==> xsockets64Compiling 38 files (.ex)65     warning: ExSCTP.new/0 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)66     │67 149 │       ref: ExSCTP.new(),68     │                   ~69     │70     └─ lib/xsockets/sctp/association.ex:149:19: XSockets.Sctp.Association.new/17172     warning: ExSCTP.connect/1 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)73     │74 165 │     :ok = ExSCTP.connect(assoc.ref)75     │                  ~76     │77     └─ lib/xsockets/sctp/association.ex:165:18: XSockets.Sctp.Association.connect/17879     warning: ExSCTP.handle_data/2 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)80     │81 181 │     :ok = ExSCTP.handle_data(assoc.ref, data)82     │                  ~83     │84     └─ lib/xsockets/sctp/association.ex:181:18: XSockets.Sctp.Association.handle_packet/28586     warning: ExSCTP.handle_timeout/1 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)87     │88 194 │     _ = ExSCTP.handle_timeout(assoc.ref)89     │                ~90     │91     └─ lib/xsockets/sctp/association.ex:194:16: XSockets.Sctp.Association.handle_timeout/19293     warning: ExSCTP.send/4 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)94     │95 214 │         :ok = ExSCTP.send(assoc.ref, id, ppi, payload)96     │                      ~97     │98     └─ lib/xsockets/sctp/association.ex:214:22: XSockets.Sctp.Association.send/499     └─ lib/xsockets/sctp/association.ex:262:22: XSockets.Sctp.Association.open_channel/3100     └─ lib/xsockets/sctp/association.ex:382:20: XSockets.Sctp.Association.handle_dcep/3101102     warning: ExSCTP.open_stream/2 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)103     │104 251 │     case ExSCTP.open_stream(assoc.ref, id) do105     │                 ~106     │107     └─ lib/xsockets/sctp/association.ex:251:17: XSockets.Sctp.Association.open_channel/3108109     warning: ExSCTP.poll/1 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)110     │111 308 │     case handle_ex_event(assoc, ExSCTP.poll(assoc.ref)) do112     │                                        ~113     │114     └─ lib/xsockets/sctp/association.ex:308:40: XSockets.Sctp.Association.drain/2115116     warning: ExSCTP.close_stream/2 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)117     │118 363 │         _ = ExSCTP.close_stream(assoc.ref, id)119     │                    ~120     │121     └─ lib/xsockets/sctp/association.ex:363:20: XSockets.Sctp.Association.handle_ex_event/2122123     warning: ExSCTP.configure_stream/5 is undefined (module ExSCTP is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)124     │125 400 │       case ExSCTP.configure_stream(assoc.ref, id, channel.ordered, reliability, param) do126     │                   ~127     │128     └─ lib/xsockets/sctp/association.ex:400:19: XSockets.Sctp.Association.handle_dcep/3129130Generated xsockets app131==> maru132Compiling 58 files (.ex)133    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead134    │135 60 │   json_library = Application.get_env(:maru, :json_library, Jason)136    │                              ~137    │138    └─ lib/maru.ex:60:30: Maru (module)139140    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead141    │142 63 │     Logger.warn(143    │            ~144    │145    └─ lib/maru.ex:63:12: Maru (module)14614714800:46:12.706 [warning] Json library Elixir.Jason is not loaded, add your json library to deps and config with `config :maru, :json_library, Elixir.Jason`149    warning: the variable "size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator150    │151 36 │            <<"vnd.", ^vendor::binary-size(size), "-", vsn::binary>> <- s do152    │                                           ~153    │154    └─ lib/maru/plugs/version.ex:36:43: Maru.Plugs.GetVersion.call/2155156    warning: using single-quoted strings to represent charlists is deprecated.157    Use ~c"" if you indeed want a charlist or use "" instead.158    You may run "mix format --migrate" to change all single-quoted159    strings to use the ~c sigil and fix this warning.160    │161 14 │     'Elixir.' ++ _ = Atom.to_charlist(module)162    │     ~163    │164    └─ lib/maru/resource/extend.ex:14:5165166    warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead167    │168 30 │         Logger.warn "Start server by maru supervisor is deprecated, in favor of Maru.Server."169    │                ~170    │171    └─ lib/maru/supervisor.ex:30:16: Maru.Supervisor.init/1172173     warning: module attribute @since was set but never used174     │175 122 │   @since "0.13.2"176     │   ~~~~~~~~~~~~~~~177     │178     └─ lib/maru/server.ex:122: Maru.Server (module)179180    warning: using single-quoted strings to represent charlists is deprecated.181    Use ~c"" if you indeed want a charlist or use "" instead.182    You may run "mix format --migrate" to change all single-quoted183    strings to use the ~c sigil and fix this warning.184    │185  8 │     s in [nil, "", '', %{}]186    │                    ~187    │188    └─ lib/maru/utils.ex:8:20189190    warning: Jason.decode!/1 is undefined (module Jason is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)191    │192 11 │     json_library.decode!(input)193    │                  ~194    │195    └─ lib/maru/types/json.ex:11:18: Maru.Types.Json.parse/2196197    warning: Jason.decode!/1 is undefined (module Jason is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)198    │199 99 │     Jason.decode!(conn.resp_body)200    │           ~201    │202    └─ lib/maru/test.ex:99:11: Maru.Test.json_response/1203204    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead205    │206 34 │     |> supervise(strategy: :one_for_one)207    │        ~208    │209    └─ lib/maru/supervisor.ex:34:8: Maru.Supervisor.init/1210211    warning: Plug.Adapters.Cowboy2.child_spec/1 is undefined (module Plug.Adapters.Cowboy2 is not available or is yet to be defined)212    │213 57 │       Plug.Adapters.Cowboy2.child_spec(args)214    │                             ~215    │216    └─ lib/maru/supervisor.ex:57:29: Maru.Supervisor.endpoint_spec/3217218    warning: Plug.Adapters.Cowboy.child_spec/1 is deprecated. Use Plug.Cowboy.child_spec/1 instead219    │220 59 │       Plug.Adapters.Cowboy.child_spec(args)221    │                            ~222    │223    └─ lib/maru/supervisor.ex:59:28: Maru.Supervisor.endpoint_spec/3224225    warning: Jason.encode_to_iodata!/1 is undefined (module Jason is not available or is yet to be defined). Make sure the module name is correct and has been specified in full (or that an alias has been defined)226    │227 47 │     |> Plug.Conn.send_resp(conn.status || 200, json_library.encode_to_iodata!(data))228    │                                                             ~229    │230    └─ lib/maru/response.ex:47:61: Maru.Response.json/2231232    warning: expected a map or struct when accessing .__routes__ in expression:233234        module.__routes__235236    where "module" was given the type:237238        # type: dynamic(atom())239        # from: lib/maru/resource/extend.ex:14:27240        Atom.to_charlist(module)241242    hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()243244    type warning found at:245    │246 20 │     module.__routes__247    │            ~248    │249    └─ lib/maru/resource/extend.ex:20:12: Maru.Resource.Extend.take_extended/2250251    warning: Module.eval_quoted/2 is deprecated. Use Code.eval_quoted/3 instead252    │253 96 │     Module.eval_quoted(env, quoted)254    │            ~255    │256    └─ lib/maru/builder/parameter.ex:96:12: Maru.Builder.Parameter.before_compile_helper/1257258     warning: expected a map or struct when accessing .arguments in expression:259260         module.arguments261262     where "module" was given the type:263264         # type: dynamic(atom())265         # from: lib/maru/builder/parameter/helper.ex:201:12266         module = Maru.Utils.make_type(type)267268     hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()269270     type warning found at:271     │272 202 │     [{:module, module, module.arguments}]273     │                               ~274     │275     └─ lib/maru/builder/parameter/helper.ex:202:31: Maru.Builder.Parameter.Helper.do_parse_type/1276277Generated maru app278==> datastructures279Compiling 30 files (.ex)280warning: first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it281  lib/data/protocol/sequence.ex:54: Data.Protocol.Sequence.Range.first/1282283warning: _.._ inside match is deprecated, you must always match on the step: _.._//var or _.._//_ if you want to ignore it284  lib/data/protocol/sequence.ex:58: Data.Protocol.Sequence.Range.first/1285286warning: first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it287  lib/data/protocol/sequence.ex:62: Data.Protocol.Sequence.Range.next/1288289warning: first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it290  lib/data/protocol/sequence.ex:66: Data.Protocol.Sequence.Range.next/1291292warning: first..last inside match is deprecated, you must always match on the step: first..last//var or first..last//_ if you want to ignore it293  lib/data/protocol/sequence.ex:70: Data.Protocol.Sequence.Range.next/1294295     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Stack.Simple)296     │297 222 │   defimpl Enumerable do298     │   ~~~~~~~~~~~~~~~~~~~~~299     │300     └─ lib/data/stack/simple.ex:222: Enumerable.Data.Stack.Simple (module)301302     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Set.Standard)303     │304 166 │   defimpl Enumerable do305     │   ~~~~~~~~~~~~~~~~~~~~~306     │307     └─ lib/data/set/standard.ex:166: Enumerable.Data.Set.Standard (module)308309     warning: the 1st pattern in clause will never match:310311         nil312313     because it is expected to receive type:314315         dynamic(%Data.Stack.Simple{})316317     hint: defimpl for Data.Stack.Simple requires its callbacks to match exclusively on %Data.Stack.Simple{}318319     type warning found at:320     │321 223 │     use Data.Enumerable322     │     ~~~~~~~~~~~~~~~~~~~323     │324     └─ lib/data/stack/simple.ex:223: Enumerable.Data.Stack.Simple.reduce/3325326     warning: the 1st pattern in clause will never match:327328         nil329330     because it is expected to receive type:331332         dynamic(%Data.Set.Standard{})333334     hint: defimpl for Data.Set.Standard requires its callbacks to match exclusively on %Data.Set.Standard{}335336     type warning found at:337     │338 167 │     use Data.Enumerable339     │     ~~~~~~~~~~~~~~~~~~~340     │341     └─ lib/data/set/standard.ex:167: Enumerable.Data.Set.Standard.reduce/3342343     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Set.BalancedTree)344     │345 170 │   defimpl Enumerable do346     │   ~~~~~~~~~~~~~~~~~~~~~347     │348     └─ lib/data/set/balanced_tree.ex:170: Enumerable.Data.Set.BalancedTree (module)349350     warning: the 1st pattern in clause will never match:351352         nil353354     because it is expected to receive type:355356         dynamic(%Data.Set.BalancedTree{})357358     hint: defimpl for Data.Set.BalancedTree requires its callbacks to match exclusively on %Data.Set.BalancedTree{}359360     type warning found at:361     │362 171 │     use Data.Enumerable363     │     ~~~~~~~~~~~~~~~~~~~364     │365     └─ lib/data/set/balanced_tree.ex:171: Enumerable.Data.Set.BalancedTree.reduce/3366367     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Queue.Standard)368     │369 154 │   defimpl Enumerable do370     │   ~~~~~~~~~~~~~~~~~~~~~371     │372     └─ lib/data/queue/standard.ex:154: Enumerable.Data.Queue.Standard (module)373374     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Queue.Simple)375     │376 244 │   defimpl Enumerable do377     │   ~~~~~~~~~~~~~~~~~~~~~378     │379     └─ lib/data/queue/simple.ex:244: Enumerable.Data.Queue.Simple (module)380381     warning: the 1st pattern in clause will never match:382383         nil384385     because it is expected to receive type:386387         dynamic(%Data.Queue.Simple{})388389     hint: defimpl for Data.Queue.Simple requires its callbacks to match exclusively on %Data.Queue.Simple{}390391     type warning found at:392     │393 245 │     use Data.Enumerable394     │     ~~~~~~~~~~~~~~~~~~~395     │396     └─ lib/data/queue/simple.ex:245: Enumerable.Data.Queue.Simple.reduce/3397398     warning: the 1st pattern in clause will never match:399400         nil401402     because it is expected to receive type:403404         dynamic(%Data.Queue.Standard{})405406     hint: defimpl for Data.Queue.Standard requires its callbacks to match exclusively on %Data.Queue.Standard{}407408     type warning found at:409     │410 155 │     use Data.Enumerable411     │     ~~~~~~~~~~~~~~~~~~~412     │413     └─ lib/data/queue/standard.ex:155: Enumerable.Data.Queue.Standard.reduce/3414415     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Dictionary.Standard)416     │417 148 │   defimpl Enumerable do418     │   ~~~~~~~~~~~~~~~~~~~~~419     │420     └─ lib/data/dictionary/standard.ex:148: Enumerable.Data.Dictionary.Standard (module)421422     warning: the 1st pattern in clause will never match:423424         nil425426     because it is expected to receive type:427428         dynamic(%Data.Dictionary.Standard{})429430     hint: defimpl for Data.Dictionary.Standard requires its callbacks to match exclusively on %Data.Dictionary.Standard{}431432     type warning found at:433     │434 149 │     use Data.Enumerable435     │     ~~~~~~~~~~~~~~~~~~~436     │437     └─ lib/data/dictionary/standard.ex:149: Enumerable.Data.Dictionary.Standard.reduce/3438439     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Data.Dictionary.BalancedTree)440     │441 176 │   defimpl Enumerable do442     │   ~~~~~~~~~~~~~~~~~~~~~443     │444     └─ lib/data/dictionary/balanced_tree.ex:176: Enumerable.Data.Dictionary.BalancedTree (module)445446    warning: the following clause will never match:447448        :no_grapheme ->449450    because it attempts to match on the result of:451452        String.next_grapheme(string)453454    which has type:455456        dynamic(nil or {binary(), term()})457458    type warning found at:459    │460 78 │       :no_grapheme ->461    │       ~~~~~~~~~~~~~~~462    │463    └─ lib/data/protocol/sequence.ex:78: Data.Protocol.Sequence.BitString.first/1464465    warning: the following clause will never match:466467        :no_grapheme ->468469    because it attempts to match on the result of:470471        String.next_grapheme(string)472473    which has type:474475        dynamic(nil or {binary(), term()})476477    type warning found at:478    │479 88 │       :no_grapheme ->480    │       ~~~~~~~~~~~~~~~481    │482    └─ lib/data/protocol/sequence.ex:88: Data.Protocol.Sequence.BitString.next/1483484     warning: the 1st pattern in clause will never match:485486         nil487488     because it is expected to receive type:489490         dynamic(%Data.Dictionary.BalancedTree{})491492     hint: defimpl for Data.Dictionary.BalancedTree requires its callbacks to match exclusively on %Data.Dictionary.BalancedTree{}493494     type warning found at:495     │496 177 │     use Data.Enumerable497     │     ~~~~~~~~~~~~~~~~~~~498     │499     └─ lib/data/dictionary/balanced_tree.ex:177: Enumerable.Data.Dictionary.BalancedTree.reduce/3500501    warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead502    │503 23 │   defdelegate count(self), to: Map, as: :size504    │   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~505    │506    └─ lib/data/protocol/count.ex:23: Data.Protocol.Count.Map.count/1507508    warning: Map.size/1 is deprecated. Use Kernel.map_size/1 instead509    │510 35 │     Map.size(self) == 0511    │         ~512    │513    └─ lib/data/protocol/empty.ex:35:9: Data.Protocol.Empty.Map.empty?/1514515Generated datastructures app516==> exts517Compiling 7 files (.ex)518     warning: single quotes around atoms are deprecated. Use double quotes instead519     │520 252 │       :'$end_of_table' -> nil521     │       ~522     │523     └─ lib/exts.ex:252:7524525     warning: single quotes around atoms are deprecated. Use double quotes instead526     │527 283 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$1'] }]) do528     │                           ~529     │530     └─ lib/exts/dict.ex:283:27531532     warning: single quotes around atoms are deprecated. Use double quotes instead533     │534 283 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$1'] }]) do535     │                                  ~536     │537     └─ lib/exts/dict.ex:283:34538539     warning: single quotes around atoms are deprecated. Use double quotes instead540     │541 283 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$1'] }]) do542     │                                                ~543     │544     └─ lib/exts/dict.ex:283:48545546     warning: single quotes around atoms are deprecated. Use double quotes instead547     │548 290 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$2'] }]) do549     │                           ~550     │551     └─ lib/exts/dict.ex:290:27552553     warning: single quotes around atoms are deprecated. Use double quotes instead554     │555 290 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$2'] }]) do556     │                                  ~557     │558     └─ lib/exts/dict.ex:290:34559560     warning: single quotes around atoms are deprecated. Use double quotes instead561     │562 290 │     case select(self, [{{ :'$1', :'$2' }, [], [:'$2'] }]) do563     │                                                ~564     │565     └─ lib/exts/dict.ex:290:48566567    warning: single quotes around atoms are deprecated. Use double quotes instead568    │569  9 │       :'$end_of_table' -> nil570    │       ~571    │572    └─ lib/exts/match.ex:9:7573574    warning: single quotes around atoms are deprecated. Use double quotes instead575    │576 17 │       :'$end_of_table' -> nil577    │       ~578    │579    └─ lib/exts/select.ex:17:7580581    warning: incompatible types given to List.to_string/1:582583        List.to_string(path)584585    given types:586587        -binary()-588589    but expected one of:590591        empty_list() or non_empty_list(term(), term())592593    where "path" was given the type:594595        # type: binary()596        # from: lib/exts/dict.ex:74:23597        is_binary(path)598599    type warning found at:600    │601 75 │       List.to_string(path)602    │            ~603    │604    └─ lib/exts/dict.ex:75:12: Exts.Dict.load/2605606     warning: incompatible types given to List.to_string/1:607608         List.to_string(path)609610     given types:611612         -binary()-613614     but expected one of:615616         empty_list() or non_empty_list(term(), term())617618     where "path" was given the type:619620         # type: binary()621         # from: lib/exts/dict.ex:111:23622         is_binary(path)623624     type warning found at:625     │626 112 │       List.to_string(path)627     │            ~628     │629     └─ lib/exts/dict.ex:112:12: Exts.Dict.dump/3630631     warning: function slice/1 required by protocol Enumerable is not implemented (in module Enumerable.Exts.Dict)632     │633 434 │   defimpl Enumerable do634     │   ~~~~~~~~~~~~~~~~~~~~~635     │636     └─ lib/exts/dict.ex:434: Enumerable.Exts.Dict (module)637638     warning: the 1st pattern in clause will never match:639640         nil641642     because it is expected to receive type:643644         dynamic(%Exts.Dict{})645646     hint: defimpl for Exts.Dict requires its callbacks to match exclusively on %Exts.Dict{}647648     type warning found at:649     │650 435 │     use Data.Enumerable651     │     ~~~~~~~~~~~~~~~~~~~652     │653     └─ lib/exts/dict.ex:435: Enumerable.Exts.Dict.reduce/3654655    warning: incompatible types given to List.to_string/1:656657        List.to_string(path)658659    given types:660661        -binary()-662663    but expected one of:664665        empty_list() or non_empty_list(term(), term())666667    where "path" was given the types:668669        # type: binary()670        # from: lib/exts.ex:22:12671        path672673        # type: binary()674        # from: lib/exts.ex:22:46675        is_binary(path)676677    type warning found at:678    │679 23 │     :ets.file2tab(List.to_string(path), options)680    │                        ~681    │682    └─ lib/exts.ex:23:24: Exts.load/2683684    warning: incompatible types given to List.to_string/1:685686        List.to_string(path)687688    given types:689690        -binary()-691692    but expected one of:693694        empty_list() or non_empty_list(term(), term())695696    where "path" was given the types:697698        # type: binary()699        # from: lib/exts.ex:47:19700        path701702        # type: binary()703        # from: lib/exts.ex:47:53704        is_binary(path)705706    type warning found at:707    │708 48 │     :ets.tab2file(table, List.to_string(path), options)709    │                               ~710    │711    └─ lib/exts.ex:48:31: Exts.dump/3712713    warning: incompatible types given to List.to_string/1:714715        List.to_string(path)716717    given types:718719        -binary()-720721    but expected one of:722723        empty_list() or non_empty_list(term(), term())724725    where "path" was given the types:726727        # type: binary()728        # from: lib/exts.ex:72:12729        path730731        # type: binary()732        # from: lib/exts.ex:72:31733        is_binary(path)734735    type warning found at:736    │737 73 │     :ets.tabfile_info(List.to_string(path))738    │                            ~739    │740    └─ lib/exts.ex:73:28: Exts.info/1741742Generated exts app743==> xturn744Compiling 74 files (.ex)745    error: undefined function before/1 (there is no such import)746    │747 54 │   before do748    │   ^749    │750    └─ lib/xturn/api/api.ex:54:3: Xirsys.API (module)751752753== Compilation error in file lib/xturn/api/api.ex ==754** (CompileError) lib/xturn/api/api.ex: cannot compile module Xirsys.API (errors have been logged)755756could not compile dependency :xturn, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile xturn --force", update it with "mix deps.update xturn" or clean it with "mix deps.clean xturn"