[Pkg-ocaml-maint-commits] [ppx-derivers] 01/01: New upstream version 1.0

Ralf Treinen treinen at moszumanska.debian.org
Mon Oct 16 19:23:34 UTC 2017


This is an automated email from the git hooks/post-receive script.

treinen pushed a commit to branch master
in repository ppx-derivers.

commit 7cc61e7888fea19e3c659c6d54d0035671bfbfad
Author: Ralf Treinen <treinen at free.fr>
Date:   Mon Oct 16 21:23:30 2017 +0200

    New upstream version 1.0
---
 .gitignore           |  3 +++
 Makefile             | 23 +++++++++++++++++++++++
 README.md            | 10 ++++++++++
 ppx_derivers.opam    | 14 ++++++++++++++
 src/jbuild           |  3 +++
 src/ppx_derivers.ml  | 17 +++++++++++++++++
 src/ppx_derivers.mli | 19 +++++++++++++++++++
 7 files changed, 89 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f06221c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+_build/
+.merlin
+*.install
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1d69010
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,23 @@
+INSTALL_ARGS := $(if $(PREFIX),--prefix $(PREFIX),)
+
+.PHONY: all
+all:
+	jbuilder build @install
+
+.PHONY: install
+install:
+	jbuilder install $(INSTALL_ARGS)
+
+.PHONY: uninstall
+uninstall:
+	jbuilder uninstall $(INSTALL_ARGS)
+
+.PHONY: reinstall
+reinstall:
+	$(MAKE) uninstall
+	$(MAKE) install
+
+.PHONY: clean
+clean:
+	rm -rf _build *.install
+	find . -name .merlin -delete
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..87aa580
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+Ppx_derivers
+------------
+
+Ppx_derivers is a tiny package whose sole purpose is to allow
+[ppx_deriving](https://github.com/whitequark/ppx_deriving) and
+[ppx_type_conv](https://github.com/janestreet/ppx_type_conv) to inter-operate
+gracefully when linked as part of the same
+[ocaml-migrate-parsetree](https://github.com/let-def/ocaml-migrate-parsetree)
+driver.
+
diff --git a/ppx_derivers.opam b/ppx_derivers.opam
new file mode 100644
index 0000000..f2a1596
--- /dev/null
+++ b/ppx_derivers.opam
@@ -0,0 +1,14 @@
+opam-version: "1.2"
+version: "1.0"
+maintainer: "jeremie at dimino.org"
+authors: ["Jérémie Dimino"]
+license: "BSD3"
+homepage: "https://github.com/diml/ppx_derivers"
+bug-reports: "https://github.com/diml/ppx_derivers/issues"
+dev-repo: "git://github.com/diml/ppx_derivers.git"
+build: [
+  ["jbuilder" "build" "-p" name "-j" jobs]
+]
+depends: [
+  "jbuilder" {>= "1.0+beta7"}
+]
diff --git a/src/jbuild b/src/jbuild
new file mode 100644
index 0000000..e1dac1d
--- /dev/null
+++ b/src/jbuild
@@ -0,0 +1,3 @@
+(library
+ ((name        ppx_derivers)
+  (public_name ppx_derivers)))
diff --git a/src/ppx_derivers.ml b/src/ppx_derivers.ml
new file mode 100644
index 0000000..9c1fac6
--- /dev/null
+++ b/src/ppx_derivers.ml
@@ -0,0 +1,17 @@
+type deriver = ..
+
+let all = Hashtbl.create 42
+
+let register name deriver =
+  if Hashtbl.mem all name then
+    Printf.ksprintf failwith
+      "Ppx_deriviers.register: %S is already registered" name;
+  Hashtbl.add all name deriver
+
+let lookup name =
+  match Hashtbl.find all name with
+  | drv -> Some drv
+  | exception Not_found -> None
+
+let derivers () =
+  Hashtbl.fold (fun name drv acc -> (name, drv) :: acc) all []
diff --git a/src/ppx_derivers.mli b/src/ppx_derivers.mli
new file mode 100644
index 0000000..e2765c2
--- /dev/null
+++ b/src/ppx_derivers.mli
@@ -0,0 +1,19 @@
+(** Ppx derivers
+
+    This module holds the various derivers registered by either ppx_deriving or
+    ppx_type_conv.
+*)
+
+(** Type of a deriver. The concrete constructors are added by
+    ppx_type_conv/ppx_deriving. *)
+type deriver = ..
+
+(** [register name deriver] registers a new deriver. Raises if [name] is already
+    registered. *)
+val register : string -> deriver -> unit
+
+(** Lookup a previously registered deriver *)
+val lookup : string -> deriver option
+
+(** [derivers ()] returns all currently registered derivers. *)
+val derivers : unit -> (string * deriver) list

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/ppx-derivers.git



More information about the Pkg-ocaml-maint-commits mailing list