Hello community,
here is the log from the commit of package ocaml-migrate-parsetree for
openSUSE:Factory checked in at 2018-12-21 08:22:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocaml-migrate-parsetree (Old)
and /work/SRC/openSUSE:Factory/.ocaml-migrate-parsetree.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-migrate-parsetree"
Fri Dec 21 08:22:23 2018 rev:3 rq:660232 version:1.1.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/ocaml-migrate-parsetree/ocaml-migrate-parsetree.changes
2018-08-10 09:49:31.642245712 +0200
+++
/work/SRC/openSUSE:Factory/.ocaml-migrate-parsetree.new.28833/ocaml-migrate-parsetree.changes
2018-12-21 08:22:29.321509905 +0100
@@ -1,0 +2,8 @@
+Thu Dec 20 08:12:37 UTC 2018 - [email protected]
+
+- New upstream release (1.1.0).
+ * Allow ppx rewriters to specify when they should be applied.
+ * Fix handling of --impl/--intf.
+- Fixed license and exception.
+
+-------------------------------------------------------------------
Old:
----
ocaml-migrate-parsetree-1.0.11.tar.gz
New:
----
ocaml-migrate-parsetree-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ocaml-migrate-parsetree.spec ++++++
--- /var/tmp/diff_new_pack.pqYQyy/_old 2018-12-21 08:22:29.881509380 +0100
+++ /var/tmp/diff_new_pack.pqYQyy/_new 2018-12-21 08:22:29.893509369 +0100
@@ -17,11 +17,11 @@
Name: ocaml-migrate-parsetree
-Version: 1.0.11
+Version: 1.1.0
Release: 0
%{?ocaml_preserve_bytecode}
Summary: Library for conversion between different OCaml parsetrees
versions
-License: LGPL-2.1-or-later WITH OCaml-linking-exception
+License: LGPL-2.1-only WITH OCaml-LGPL-linking-exception
Group: Development/Languages/OCaml
URL: https://github.com/ocaml-ppx/ocaml-migrate-parsetree
++++++ ocaml-migrate-parsetree-1.0.11.tar.gz ->
ocaml-migrate-parsetree-1.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ocaml-migrate-parsetree-1.0.11/CHANGES.md
new/ocaml-migrate-parsetree-1.1.0/CHANGES.md
--- old/ocaml-migrate-parsetree-1.0.11/CHANGES.md 2018-06-06
18:54:55.000000000 +0200
+++ new/ocaml-migrate-parsetree-1.1.0/CHANGES.md 2018-09-05
11:27:39.000000000 +0200
@@ -1,3 +1,8 @@
+v1.1.0 2018-09-05 London
+------------------------
+
+- Allow ppx rewriters to specify when they should be applied
+
v1.0.11 2018-06-06 London
-------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ocaml-migrate-parsetree-1.0.11/ocaml-migrate-parsetree.opam
new/ocaml-migrate-parsetree-1.1.0/ocaml-migrate-parsetree.opam
--- old/ocaml-migrate-parsetree-1.0.11/ocaml-migrate-parsetree.opam
2018-06-06 18:54:55.000000000 +0200
+++ new/ocaml-migrate-parsetree-1.1.0/ocaml-migrate-parsetree.opam
2018-09-05 11:27:39.000000000 +0200
@@ -7,7 +7,8 @@
license: "LGPL-2.1"
homepage: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree"
bug-reports: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree/issues"
-dev-repo: "git://github.com/ocaml-ppx/ocaml-migrate-parsetree.git"
+dev-repo: "https://github.com/ocaml-ppx/ocaml-migrate-parsetree.git"
+doc: "https://ocaml-ppx.github.io/ocaml-migrate-parsetree/"
tags: [ "syntax" "org:ocamllabs" ]
build: [
["jbuilder" "build" "-p" name "-j" jobs]
@@ -15,6 +16,6 @@
depends: [
"result"
"ocamlfind" {build}
- "jbuilder" {build & >= "1.0+beta18.1"}
+ "dune" {build}
]
available: ocaml-version >= "4.02.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ocaml-migrate-parsetree-1.0.11/src/migrate_parsetree_driver.ml
new/ocaml-migrate-parsetree-1.1.0/src/migrate_parsetree_driver.ml
--- old/ocaml-migrate-parsetree-1.0.11/src/migrate_parsetree_driver.ml
2018-06-06 18:54:55.000000000 +0200
+++ new/ocaml-migrate-parsetree-1.1.0/src/migrate_parsetree_driver.ml
2018-09-05 11:27:39.000000000 +0200
@@ -78,7 +78,16 @@
Rewriters : 'types ocaml_version * (string * 'types rewriter) list ->
rewriter_group
let uniq_rewriter = Hashtbl.create 7
-let registered_rewriters = ref []
+module Pos_map = Map.Make(struct
+ type t = int
+ let compare : int -> int -> t = compare
+ end)
+let registered_rewriters = ref Pos_map.empty
+
+let all_rewriters () =
+ Pos_map.bindings !registered_rewriters
+ |> List.map (fun (_, r) -> !r)
+ |> List.concat
let uniq_arg = Hashtbl.create 7
let registered_args_reset = ref []
@@ -126,7 +135,7 @@
in
add_rewriter
-let register ~name ?reset_args ?(args=[]) version rewriter =
+let register ~name ?reset_args ?(args=[]) ?(position=0) version rewriter =
(* Validate name *)
if name = "" then
invalid_arg "Migrate_parsetree_driver.register: name is empty";
@@ -148,8 +157,15 @@
| Some f -> registered_args_reset := f :: !registered_args_reset
end;
registered_args := List.rev_append args !registered_args;
- registered_rewriters :=
- add_rewriter Is_rewriter version name rewriter !registered_rewriters
+ let r =
+ try
+ Pos_map.find position !registered_rewriters
+ with Not_found ->
+ let r = ref [] in
+ registered_rewriters := Pos_map.add position r !registered_rewriters;
+ r
+ in
+ r := add_rewriter Is_rewriter version name rewriter !r
let registered_args () = List.rev !registered_args
let reset_args () = List.iter (fun f -> f ()) !registered_args_reset
@@ -201,7 +217,10 @@
let rewrite_signature config version sg =
let cookies = create_cookies () in
- let sg = rewrite_signature config cookies Signature version sg
!registered_rewriters in
+ let sg =
+ rewrite_signature config cookies Signature version sg
+ (all_rewriters ())
+ in
apply_cookies cookies;
sg
@@ -230,7 +249,10 @@
let rewrite_structure config version st =
let cookies = create_cookies () in
- let st = rewrite_structure config cookies Structure version st
!registered_rewriters in
+ let st =
+ rewrite_structure config cookies Structure version st
+ (all_rewriters ())
+ in
apply_cookies cookies;
st
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ocaml-migrate-parsetree-1.0.11/src/migrate_parsetree_driver.mli
new/ocaml-migrate-parsetree-1.1.0/src/migrate_parsetree_driver.mli
--- old/ocaml-migrate-parsetree-1.0.11/src/migrate_parsetree_driver.mli
2018-06-06 18:54:55.000000000 +0200
+++ new/ocaml-migrate-parsetree-1.1.0/src/migrate_parsetree_driver.mli
2018-09-05 11:27:39.000000000 +0200
@@ -47,9 +47,21 @@
type 'types rewriter = config -> cookies -> 'types get_mapper
+(** Register a ppx rewriter. [position] is a integer that indicates
+ when the ppx rewriter should be applied. It is guaranteed that if
+ two ppx rewriters [a] and [b] have different position numbers, then
+ the one with the lowest number will be applied first. The rewriting
+ order of ppx rewriters with the same position number is not
+ specified. The default position is [0].
+
+ Note that more different position numbers means more AST
+ conversions and slower rewriting, so think twice before setting
+ [position] to a non-zero number.
+*)
val register
: name:string
-> ?reset_args:(unit -> unit) -> ?args:(Arg.key * Arg.spec * Arg.doc) list
+ -> ?position:int
-> 'types ocaml_version -> 'types rewriter
-> unit