Resolving Hex dependencies... Resolution completed in 0.087s Unchanged: axon 0.7.0 bumblebee 0.6.3 castore 1.0.18 circular_buffer 1.0.0 complex 0.6.0 decimal 2.3.0 elixir_make 0.9.0 ex_panda 0.2.0 exla 0.10.0 file_system 1.1.1 finch 0.21.0 fine 0.1.6 hpax 1.0.3 interactive_cmd 0.1.4 jason 1.4.4 lumis 0.5.0 marcli 0.3.1 mdex 0.12.1 metastatic 0.20.3 mime 2.0.7 mint 1.7.1 nerves 1.14.1 nerves_discovery 0.1.2 nerves_logging 0.2.4 nerves_runtime 0.13.12 nerves_system_bbb 2.29.3 nerves_system_br 1.33.5 nerves_system_grisp2 0.17.3 nerves_system_mangopi_mq_pro 0.15.3 nerves_system_osd32mp1 0.24.3 nerves_system_qemu_aarch64 0.3.3 nerves_system_rpi 2.0.2 nerves_system_rpi0 2.0.2 nerves_system_rpi0_2 2.0.2 nerves_system_rpi2 2.0.2 nerves_system_rpi3 2.0.2 nerves_system_rpi4 2.0.2 nerves_system_rpi5 2.0.2 nerves_system_x86_64 1.33.3 nerves_toolchain_aarch64_nerves_linux_gnu 13.2.0 nerves_toolchain_armv6_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_armv7_nerves_linux_gnueabihf 13.2.0 nerves_toolchain_ctng 1.10.0 nerves_toolchain_riscv64_nerves_linux_gnu 13.2.0 nerves_toolchain_x86_64_nerves_linux_musl 13.2.0 nerves_uevent 0.1.5 nimble_options 1.1.1 nimble_parsec 1.4.2 nimble_pool 1.1.0 nx 0.10.0 nx_image 0.1.2 nx_signal 0.2.0 owl 0.13.0 polaris 0.1.0 progress_bar 3.0.0 property_table 0.3.3 ragex 0.11.0 req 0.5.17 ring_logger 0.11.5 rustler_precompiled 0.9.0 safetensors 0.1.3 shoehorn 0.9.3 tablet 0.3.2 telemetry 1.4.1 tokenizers 0.5.1 toolshed 0.4.2 uboot_env 1.0.2 unpickler 0.1.0 unzip 0.12.0 xla 0.9.1 All dependencies have been fetched ==> file_system Compiling 7 files (.ex) Generated file_system app ==> mime Compiling 1 file (.ex) Generated mime app ==> circular_buffer Compiling 1 file (.ex) Generated circular_buffer app ==> nimble_options Compiling 3 files (.ex) Generated nimble_options app ==> fine Compiling 1 file (.ex) Generated fine app ==> ex_panda Compiling 4 files (.ex) Generated ex_panda app ==> hpax Compiling 4 files (.ex) Generated hpax app ==> unpickler Compiling 3 files (.ex) Generated unpickler app ==> complex Compiling 2 files (.ex) Generated complex app ==> tablet Compiling 2 files (.ex) Generated tablet app ==> owl Compiling 19 files (.ex) Generated owl app ==> elixir_make Compiling 8 files (.ex) Generated elixir_make app ==> nerves_logging CC kmsg_tailer.o LD kmsg_tailer Not crosscompiling. To test locally, the port binary needs extra permissions. Set SUDO=sudo to set permissions. The default is to skip this step. SUDO_ASKPASS=/usr/bin/ssh-askpass SUDO=true Compiling 5 files (.ex) Generated nerves_logging app ==> castore Compiling 1 file (.ex) Generated castore app ==> mint Compiling 1 file (.erl) Compiling 20 files (.ex) Generated mint app ==> unzip Compiling 6 files (.ex) warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: <>, buffer_position: new_buffer_pos } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:59:18 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 70 │ buffer = %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:70:18: Unzip.FileBuffer.next_chunk/2 warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: binary_part(buffer.buffer, 0, byte_size(buffer.buffer) - count) } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:87:24 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 89 │ %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:89:6: Unzip.FileBuffer.move_backward_by/2 warning: a struct for Unzip.FileBuffer is expected on struct update: %Unzip.FileBuffer{ buffer | buffer: binary_part(buffer.buffer, count, byte_size(buffer.buffer) - count), buffer_position: min(buffer.buffer_position + count, buffer.limit) } but got type: dynamic() where "buffer" was given the type: # type: dynamic() # from: lib/unzip/file_buffer.ex:98:23 buffer when defining the variable "buffer", you must also pattern match on "%Unzip.FileBuffer{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 100 │ %FileBuffer{ │ ~ │ └─ lib/unzip/file_buffer.ex:100:6: Unzip.FileBuffer.move_forward_by/2 Generated unzip app ==> nerves_discovery Compiling 5 files (.ex) Generated nerves_discovery app ==> ring_logger Compiling 7 files (.ex) Generated ring_logger app ==> decimal Compiling 4 files (.ex) Generated decimal app ==> jason Compiling 10 files (.ex) Generated jason app ==> metastatic Compiling 151 files (.ex) Generated metastatic app ==> progress_bar Compiling 10 files (.ex) Generated progress_bar app ==> shoehorn Compiling 8 files (.ex) Generated shoehorn app ==> xla Compiling 5 files (.ex) Generated xla app ==> interactive_cmd Compiling 1 file (.ex) Generated interactive_cmd app ==> nerves HOST_CC port.o HOST_LD port Compiling 50 files (.ex) Generated nerves app ==> nimble_parsec Compiling 4 files (.ex) Generated nimble_parsec app ==> nerves_compatibility_test ===> Analyzing applications... ===> Compiling telemetry ==> nx Compiling 38 files (.ex) warning: ~~~ is deprecated. Use Bitwise.bnot/1 instead for clarity │ 655 │ def ~~~tensor when is_number(tensor), do: Bitwise.~~~(tensor) │ ~ │ └─ lib/nx/defn/kernel.ex:655:7 warning: ~~~ is deprecated. Use Bitwise.bnot/1 instead for clarity │ 656 │ def ~~~tensor, do: Nx.bitwise_not(tensor) │ ~ │ └─ lib/nx/defn/kernel.ex:656:7 Generated nx app ==> nx_image Compiling 1 file (.ex) Generated nx_image app ==> safetensors Compiling 3 files (.ex) Generated safetensors app ==> polaris Compiling 5 files (.ex) Generated polaris app ==> axon Compiling 27 files (.ex) warning: incompatible types given to Kernel.apply/2: apply(Axon.Initializers, []) given types: -Axon.Initializers-, empty_list() but expected one of: fun(), list(term()) typing violation found at: │ 135 │ apply(Axon.Initializers, []) │ ~ │ └─ lib/axon/quantization.ex:135:17: Axon.Quantization.weight_only_quantized_dense/3 warning: a struct for Axon.Loop.State is expected on struct update: %Axon.Loop.State{ state | epoch: epoch + 1, metrics: zero_metrics, iteration: 0, max_iteration: state.max_iteration } but got type: dynamic() where "state" was given the type: # type: dynamic() # from: lib/axon/loop.ex {:continue, state} when defining the variable "state", you must also pattern match on "%Axon.Loop.State{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 1695 │ ... %State{ │ ~ │ └─ lib/axon/loop.ex:1695:29: Axon.Loop.run/4 warning: a struct for Axon.Loop.State is expected on struct update: %Axon.Loop.State{state | epoch: epoch + 1, iteration: 0} but got type: dynamic(%{..., epoch: term(), metrics: term()}) where "state" was given the type: # type: dynamic(%{..., epoch: term(), metrics: term()}) # from: lib/axon/loop.ex {:halt_epoch, %{epoch: epoch, metrics: metrics} = state} when defining the variable "state", you must also pattern match on "%Axon.Loop.State{}". hint: given pattern matching is enough to catch typing errors, you may optionally convert the struct update into a map update. For example, instead of: user = some_function() %User{user | name: "John Doe"} it is enough to write: %User{} = user = some_function() %{user | name: "John Doe"} typing violation found at: │ 1927 │ {:cont, {batch_fn, final_metrics_map, %State{state | epoch: epoch + 1, iteration: 0}}} │ ~ │ └─ lib/axon/loop.ex:1927:47: Axon.Loop.halt_epoch/5 warning: Tuple.append/2 is deprecated. Use insert_at instead │ 49 │ Nx.reshape(scales, Tuple.append(ones, :auto)) │ ~ │ └─ lib/axon/quantization/layers.ex:49:30: Axon.Quantization.Layers.reshape_scales/2 └─ lib/axon/quantization/layers.ex:54:23: Axon.Quantization.Layers.reshape_output/2 warning: got "@impl true" for function __stream__/7 but no behaviour specifies such callback. The known callbacks are: * Nx.Defn.Compiler.__compile__/4 (function) * Nx.Defn.Compiler.__jit__/5 (function) * Nx.Defn.Compiler.__partitions_options__/1 (function) * Nx.Defn.Compiler.__to_backend__/1 (function) │ 18 │ def __stream__(_, _, _, _, _, _, _), do: raise("not implemented") │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ │ └─ lib/axon/defn.ex:18: Axon.Defn (module) Generated axon app ==> rustler_precompiled Compiling 4 files (.ex) Generated rustler_precompiled app ==> lumis Compiling 6 files (.ex) 17:14:41.488 [debug] Copying NIF from cache and extracting to /work/proj/_build/host/lib/lumis/priv/native/liblumis_nif-v0.5.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz Generated lumis app ==> mdex Compiling 11 files (.ex) 17:14:42.113 [debug] Copying NIF from cache and extracting to /work/proj/_build/host/lib/mdex/priv/native/libcomrak_nif-v0.12.1-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz Generated mdex app ==> marcli Compiling 3 files (.ex) Generated marcli app ==> tokenizers Compiling 18 files (.ex) 17:14:43.844 [debug] Copying NIF from cache and extracting to /work/proj/_build/host/lib/tokenizers/priv/native/libex_tokenizers-v0.5.1-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz Generated tokenizers app ==> nx_signal Compiling 5 files (.ex) warning: Tuple.append/2 is deprecated. Use insert_at instead │ 739 │ |> Tuple.append(out_len) │ ~ │ └─ lib/nx_signal.ex:739:14: NxSignal.overlap_and_add_output_shape/2 Generated nx_signal app ==> bumblebee Compiling 95 files (.ex) Generated bumblebee app ==> uboot_env Compiling 5 files (.ex) Generated uboot_env app ==> nimble_pool Compiling 2 files (.ex) Generated nimble_pool app ==> exla Using libexla.so from /home/nerves/.cache/xla/exla/elixir-1.19.4-erts-16.2-xla-0.9.1-exla-0.10.0-3qfo2naslnsbaeekhxeqjfjmse/libexla.so EXLA_CPU_ONLY is not set, checking for nvcc availability CUDA is not available. Compiling 23 files (.ex) Generated exla app ==> finch Compiling 14 files (.ex) Generated finch app ==> req Compiling 19 files (.ex) Generated req app ==> ragex Compiling 123 files (.ex) Generated ragex app ==> property_table Compiling 8 files (.ex) Generated property_table app ==> nerves_uevent CC uevent.o LD uevent Not crosscompiling. To test locally, the port binary needs extra permissions. Set SUDO=sudo to set permissions. The default is to skip this step. SUDO_ASKPASS=/usr/bin/ssh-askpass SUDO=true Compiling 5 files (.ex) Generated nerves_uevent app ==> nerves_runtime Compiling 14 files (.ex) Generated nerves_runtime app ==> toolshed Compiling 5 files (.ex) Generated toolshed app ==> nerves_compatibility_test Nerves environment MIX_TARGET: host MIX_ENV: prod Checking for prebuilt Nerves artifacts... Compiling 2 files (.ex) Generated nerves_compatibility_test app