defmodule Mix.Tasks.Firebird do @moduledoc """ Lists all available Firebird mix tasks. ## Usage mix firebird """ use Mix.Task @shortdoc "List all Firebird tasks" @impl Mix.Task def run(_args) do Mix.shell().info(""" 🔥 Firebird — Elixir WebAssembly Integration Setup & Diagnostics: mix firebird.doctor Check your Firebird installation mix firebird.new Create a new project with Firebird mix firebird.init Initialize Firebird in an existing project Code Generation: mix firebird.gen Generate Elixir wrapper from a .wasm file mix firebird.inspect Inspect a .wasm file (exports, types, size) Building & Testing: mix firebird.build Build WASM fixtures from source (Rust, Go, WAT) mix firebird.test Run WASM-related tests mix firebird.bench Run WASM benchmarks Elixir → WASM Compilation: mix firebird.compile Compile Elixir modules to WASM mix firebird.analyze Analyze Elixir modules for WASM compatibility mix firebird.target Build Elixir → WASM target mix firebird.target.compile Compile with full pipeline options mix firebird.target.new Generate a new WASM-ready Elixir module mix firebird.target.watch Watch for changes and recompile mix firebird.target.check Check WASM compilability mix firebird.target.bench Benchmark WASM vs BEAM mix firebird.target.verify Verify compiled WASM modules mix firebird.target.inspect Inspect WASM compilation pipeline stages mix firebird.target.profile Profile the WASM compilation pipeline mix firebird.target.report Generate compilation report mix firebird.target.status Show WASM target compilation status mix firebird.target.link Link modules into single WASM mix firebird.target.clean Clean WASM compilation artifacts Phoenix Integration: mix firebird.phoenix Phoenix WASM tools (build, bench, info) mix firebird.phoenix.gen Generate a Phoenix WASM application Quick start (30 seconds): # 1. Add {:firebird, "~> 0.1.0"} to mix.exs # 2. Run: mix deps.get # 3. Verify: mix firebird.doctor # 4. Demo: iex -S mix → Firebird.demo() # Or call WASM directly: iex> {:ok, [8]} = Firebird.run("math.wasm", :add, [5, 3]) # Generate a typed wrapper: $ mix firebird.gen priv/wasm/math.wasm --module MyApp.Math See CHEATSHEET.md for a complete quick reference. """) end end