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
Current section
Files
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