commit 638ce3304b7ed23cfe24ecefee5f0d469946f481
parent cb89a274621261f04172cb427ee1e89b9df23aa4
Author: Andrew Laack <andrew@laack.co>
Date: Wed, 26 Aug 2026 23:06:23 -0500
Starting dune project
Diffstat:
8 files changed, 112 insertions(+), 32 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,32 +1,44 @@
-# If you prefer the allow list template instead of the deny list, see community template:
-# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
-#
-# Binaries for programs and plugins
-*.exe
-*.exe~
-*.dll
-*.so
-*.dylib
-
-# Test binary, built with `go test -c`
-*.test
-
-# Code coverage profiles and other test artifacts
-*.out
-coverage.*
-*.coverprofile
-profile.cov
-
-# Dependency directories (remove the comment below to include it)
-# vendor/
-
-# Go workspace file
-go.work
-go.work.sum
-
-# env file
-.env
-
-# Editor/IDE
-# .idea/
-# .vscode/
+_opam
+_build
+_build*
+_boot
+_boot*
+_test_boot
+_perf
+_coverage
+__pycache__
+*.install
+compile_commands.json
+
+# vim swap files
+*.swp
+*.swo
+nvim.log
+
+# emacs lock files
+.#*
+
+# vscode settings
+.vscode
+
+# git-ps hooks
+.git-ps
+
+.duneboot.*
+Makefile.dev
+src/dune_rules/setup.ml
+.DS_Store
+
+# nix
+nix/profiles/
+result
+result-*
+start/
+
+.claude/
+.codex
+.scratch/
+
+perf.data
+perf.data.old
+profile.json.gz
diff --git a/learning/bin/dune b/learning/bin/dune
@@ -0,0 +1,4 @@
+(executable
+ (public_name learning)
+ (name main)
+ (libraries learning))
diff --git a/learning/bin/main.ml b/learning/bin/main.ml
@@ -0,0 +1 @@
+let () = print_endline "Hello, World!"
diff --git a/learning/dune-project b/learning/dune-project
@@ -0,0 +1,26 @@
+(lang dune 3.24)
+
+(name learning)
+
+(generate_opam_files true)
+
+(source
+ (github username/reponame))
+
+(authors "Author Name <author@example.com>")
+
+(maintainers "Maintainer Name <maintainer@example.com>")
+
+(license LICENSE)
+
+(documentation https://url/to/documentation)
+
+(package
+ (name learning)
+ (synopsis "A short synopsis")
+ (description "A longer description")
+ (depends ocaml)
+ (tags
+ ("add topics" "to describe" your project)))
+
+; See the complete stanza docs at https://dune.readthedocs.io/en/stable/reference/dune-project/index.html
diff --git a/learning/learning.opam b/learning/learning.opam
@@ -0,0 +1,32 @@
+# This file is generated by dune, edit dune-project instead
+opam-version: "2.0"
+synopsis: "A short synopsis"
+description: "A longer description"
+maintainer: ["Maintainer Name <maintainer@example.com>"]
+authors: ["Author Name <author@example.com>"]
+license: "LICENSE"
+tags: ["add topics" "to describe" "your" "project"]
+homepage: "https://github.com/username/reponame"
+doc: "https://url/to/documentation"
+bug-reports: "https://github.com/username/reponame/issues"
+depends: [
+ "dune" {>= "3.24"}
+ "ocaml"
+ "odoc" {with-doc}
+]
+build: [
+ ["dune" "subst"] {dev}
+ [
+ "dune"
+ "build"
+ "-p"
+ name
+ "-j"
+ jobs
+ "@install"
+ "@runtest" {with-test}
+ "@doc" {with-doc}
+ ]
+]
+dev-repo: "git+https://github.com/username/reponame.git"
+x-maintenance-intent: ["(latest)"]
diff --git a/learning/lib/dune b/learning/lib/dune
@@ -0,0 +1,2 @@
+(library
+ (name learning))
diff --git a/learning/test/dune b/learning/test/dune
@@ -0,0 +1,3 @@
+(test
+ (name test_learning)
+ (libraries learning))
diff --git a/learning/test/test_learning.ml b/learning/test/test_learning.ml