Packages

Optimistic parallel discrete-event simulation (Time Warp) on the BEAM: logical processes execute events speculatively and roll back automatically on causality violations, so models implement only pure event handling and never write rollback logic.

Current section

Files

Jump to
timewarp mix.exs
Raw

mix.exs

defmodule TimeWarp.MixProject do
use Mix.Project
@version "0.1.0"
@source_url "https://github.com/thatsme/timewarp"
def project do
[
app: :timewarp,
version: @version,
elixir: "~> 1.19",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
name: "TimeWarp",
description: description(),
source_url: @source_url,
homepage_url: @source_url,
package: package(),
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {TimeWarp.Application, []}
]
end
defp description do
"Optimistic parallel discrete-event simulation (Time Warp) on the BEAM: logical " <>
"processes execute events speculatively and roll back automatically on causality " <>
"violations, so models implement only pure event handling and never write rollback logic."
end
defp package do
[
licenses: ["Apache-2.0"],
links: %{"GitHub" => @source_url},
# Whitelist, never blacklist — only these paths enter the published tarball.
files: ~w(lib mix.exs README.md LICENSE CONTRIBUTING.md)
]
end
defp docs do
[
main: "readme",
extras: ["README.md", "CONTRIBUTING.md", {"LICENSE", [title: "License"]}],
# Source links resolve against the release tag — run `git tag v#{@version}`
# and push it before publishing, or the source links on HexDocs 404.
source_ref: "v#{@version}",
source_url: @source_url
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:ex_doc, "~> 0.34", only: :dev, runtime: false}
]
end
end