Skip to content

Rustler recompiles although nothing changed #651

Open
@VictorGaiva

Description

@VictorGaiva

I have an Umbrella App setup where rustler is being used in a ´Core.QrCode` module.

This module has no external compile time dependency except Rustler

defmodule Core.QrCode do
  use Rustler,
    otp_app: :core,
    crate: :qr_code

  defmodule QrCodeOptions do
    @type t :: %__MODULE__{
            content: String.t(),
            # ...args
          }

    defstruct [
      :content,
      # ...args
    ]

    def new(content, rest \\ %{}) do
      struct(__MODULE__, Map.put(rest, :content, content))
    end
  end

  def generate_svg(_arg1), do: :erlang.nif_error(:nif_not_loaded)
end

So when we change almost anything, modules that are not related Core.QrCode, it recompiles causing many other parts of the application to recompile. Since we are heavily using it in another umbrella app, it trigger the recompilation of 80+ files, even if nothing changed.

Is there any way to prevent it from being recompiled when nothing changed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions