Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ocaml-menhir for openSUSE:Factory 
checked in at 2025-06-24 20:47:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocaml-menhir (Old)
 and      /work/SRC/openSUSE:Factory/.ocaml-menhir.new.7067 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ocaml-menhir"

Tue Jun 24 20:47:18 2025 rev:10 rq:1287905 version:20240715

Changes:
--------
--- /work/SRC/openSUSE:Factory/ocaml-menhir/ocaml-menhir.changes        
2024-01-08 23:46:07.976211284 +0100
+++ /work/SRC/openSUSE:Factory/.ocaml-menhir.new.7067/ocaml-menhir.changes      
2025-06-24 20:48:25.066485660 +0200
@@ -1,0 +2,5 @@
+Fri Jun  6 06:06:06 UTC 2025 - oher...@suse.de
+
+- Update to version 20240715
+
+-------------------------------------------------------------------

Old:
----
  ocaml-menhir-20231231.tar.xz

New:
----
  ocaml-menhir-20240715.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ocaml-menhir.spec ++++++
--- /var/tmp/diff_new_pack.d5xPHE/_old  2025-06-24 20:48:25.562506224 +0200
+++ /var/tmp/diff_new_pack.d5xPHE/_new  2025-06-24 20:48:25.562506224 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ocaml-menhir
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           ocaml-menhir
-Version:        20231231
+Version:        20240715
 Release:        0
 %{?ocaml_preserve_bytecode}
 Summary:        LR(1) parser generator for the OCaml programming language
@@ -28,8 +28,7 @@
 BuildRequires:  time
 BuildRequires:  ocaml
 BuildRequires:  ocaml-dune >= 2.8
-BuildRequires:  ocaml-rpm-macros >= 20231101
-BuildRequires:  ocamlfind(unix)
+BuildRequires:  ocaml-rpm-macros >= 20250517
 
 %description
 LR(1) parser generator

++++++ _service ++++++
--- /var/tmp/diff_new_pack.d5xPHE/_old  2025-06-24 20:48:25.602507882 +0200
+++ /var/tmp/diff_new_pack.d5xPHE/_new  2025-06-24 20:48:25.606508048 +0200
@@ -1,11 +1,11 @@
 <services>
-  <service name="tar_scm" mode="disabled">
+  <service name="tar_scm" mode="manual">
     <param name='exclude'>check-tarball.sh</param>
     <param name='exclude'>compile-ocaml.sh</param>
     <param name='exclude'>coq-menhirlib</param>
     <param name='exclude'>exec.sh</param>
     <param name="filename">ocaml-menhir</param>
-    <param name="revision">d3d815e4f554da68b8c247241c8f8678926eecaa</param>
+    <param name="revision">d71051f500c4f34c9faf93192a593cdf4903b0c0</param>
     <param name="scm">git</param>
     <param name="submodules">disable</param>
     <param name="url">https://gitlab.inria.fr/fpottier/menhir.git</param>
@@ -13,10 +13,10 @@
     <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param>
     <param name="versionrewrite-replacement">\1</param>
   </service>
-  <service name="recompress" mode="disabled">
+  <service name="recompress" mode="manual">
     <param name="file">*.tar</param>
     <param name="compression">xz</param>
   </service>
-  <service name="set_version" mode="disabled"/>
+  <service name="set_version" mode="manual"/>
 </services>
 

++++++ ocaml-menhir-20231231.tar.xz -> ocaml-menhir-20240715.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/doc/manual.html 
new/ocaml-menhir-20240715/doc/manual.html
--- old/ocaml-menhir-20231231/doc/manual.html   2023-12-31 14:56:31.000000000 
+0100
+++ new/ocaml-menhir-20240715/doc/manual.html   2024-07-15 19:23:43.000000000 
+0200
@@ -77,13 +77,13 @@
 }
 </style>
 <title>Menhir Reference Manual 
-(version 20231231)
+(version 20240715)
 </title>
 </head>
 <body >
 <!--HEVEA command line is: hevea -fix manual.tex -->
 <!--CUT STYLE article--><!--CUT DEF section 1 --><table class="title"><tr><td 
style="padding:1ex"><h1 class="titlemain">Menhir Reference Manual<br>
-(version 20231231)</h1><h3 class="titlerest">François Pottier and Yann 
Régis-Gianas<br>
+(version 20240715)</h1><h3 class="titlerest">François Pottier and Yann 
Régis-Gianas<br>
 INRIA<br>
 <span style="font-family:monospace">{Francois.Pottier, 
Yann.Regis-Gianas}@inria.fr</span></h3></td></tr>
 </table><!--TOC section id="sec1" Contents-->
Binary files old/ocaml-menhir-20231231/doc/manual.pdf and 
new/ocaml-menhir-20240715/doc/manual.pdf differ
Binary files old/ocaml-menhir-20231231/doc/manual001.png and 
new/ocaml-menhir-20240715/doc/manual001.png differ
Binary files old/ocaml-menhir-20231231/doc/manual002.png and 
new/ocaml-menhir-20240715/doc/manual002.png differ
Binary files old/ocaml-menhir-20231231/doc/manual003.png and 
new/ocaml-menhir-20240715/doc/manual003.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/doc/version.tex 
new/ocaml-menhir-20240715/doc/version.tex
--- old/ocaml-menhir-20231231/doc/version.tex   2023-12-31 14:56:31.000000000 
+0100
+++ new/ocaml-menhir-20240715/doc/version.tex   2024-07-15 19:23:43.000000000 
+0200
@@ -1 +1 @@
-\gdef\menhirversion{20231231}
+\gdef\menhirversion{20240715}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/dune-project 
new/ocaml-menhir-20240715/dune-project
--- old/ocaml-menhir-20231231/dune-project      2023-12-31 14:56:31.000000000 
+0100
+++ new/ocaml-menhir-20240715/dune-project      2024-07-15 19:23:43.000000000 
+0200
@@ -1,7 +1,7 @@
 (lang dune 2.8)
 (name menhir)
 (using menhir 2.0)
-(version 20231231)
+(version 20240715)
 
 (package
   (name menhirLib)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/ocaml-menhir.changes 
new/ocaml-menhir-20240715/ocaml-menhir.changes
--- old/ocaml-menhir-20231231/ocaml-menhir.changes      2023-12-31 
14:56:31.000000000 +0100
+++ new/ocaml-menhir-20240715/ocaml-menhir.changes      1970-01-01 
01:00:00.000000000 +0100
@@ -1,221 +0,0 @@
-2a297d15 Cmly_read: separate lifting from unmarshalling
-8c3de535 Cmly Lr1.reductions: direct access to production
-423b9763 Cmly: expose Lr1.forbid_default_reduction
-efc5c126 Cmly: directly expose default_reduction
-326839b8 Saved and published documentation for release 20230415.
-c6431c55 Merge branch 'update-sdk' into 'master'
-dc9694a8 CHANGES.
-a3df80f4 Fix comment formatting.
-e5132b0a Fix a comment.
-b830e00a Add [Option.compare].
-dbee795e New module Order.
-b1ad188f New type [Tag.t], a synonym for [Tag.tag].
-92ef01d9 New function [fold_real].
-cb015a5f Simplify [Misc.qfold].
-dfd89243 New module QueueSet.
-4299f9ba Remove blank line.
-77a019db Update a couple READMEs in the demos.
-e7fc5151 Remove dependency of benchmark on str, sexplib, ppx_deriving.
-d1ca581c Remove dependency of benchmark on pprint.
-0c596443 TODO.
-0e7e2bd1 LeaveStackLang: list fusion.
-c75a0581 test/dynamic/houblix/src/AST.ml: work around a problem with 
ppx_deriving.
-b7c69d17 New code back-end: use [let] instead [let rec] for non-recursive 
functions.
-e6f79a5b CHANGES.
-1f5d7268 TODO.
-067b0747 TODO.
-0e55d89c Fix comment.
-6f0451d7 Comment.
-2c6845ca Call [NeededRegisters.update] after specialization. Add a comment.
-fcbf3c6d Comment.
-f0a41baf Fix typo in comment.
-bbef6ca8 Comment.
-0eb887fe Move the definition of [interpreter] from [Interface] to [TokenType].
-3fdcd8e8 Fix the combination of `--external-tokens` and `--inspection`.
-8f93481a CHANGES.
-6d8d90ea [make release]: add a check for hevea.
-302e657c Restore the old signature of Lr1.reductions
-639d09b0 RFC: Add Lr1.get_reductions?
-f9182069 Create a MenhirInterpreter.terminal when using --only-tokens and 
--inspection
-0ed3b544 Update fix to 20230505.
-ba813fa2 Add StackLangSpecialize in the attic.
-a45634b2 Add StackLangSpecializeToken in the attic.
-488b52af StackLang: new function [written].
-8ce017fa New function [TerminalSet.diff].
-ceedb12c TerminalSet: new functions [of_list] and [big_union].
-979e4d91 New function [TerminalSet.is_universe].
-4dc6026a Simplify the definition of [universe].
-549eca9c Define [cardinal_universe] internally.
-c80bb144 Expose [TerminalSet.cardinal_universe].
-ceefad9a Comment.
-810929d6 New function [StackLang.has_case_token].
-3aa75b78 StackLang: new function [default_tokens].
-ca6f1854 StackLang: new function [find_tokbranch].
-df8d2b05 New function [Misc.longest_run].
-f243e92f New function [TerminalSet.identify].
-93158e80 StackLang: rename [specialize] to [specialize_state].
-d42aab6c Fix a typo.
-a7fc183c New constant [Invariant.empty].
-5279b426 EmitStackLang: emit [STOP] instructions in separate blocks.
-abfc45f6 Update expected test output.
-ff4c3a5a Update expected test output.
-763755ea StackLangTransform: new transformation [specialize_token].
-1fa5d4a4 StackLangTransform: new transformation [stop_earlier].
-a546a650 NewCodeBackend: activate [stop_earlier].
-f36deafe Activate [specialize_token] via the flag [--specialize-token].
-3c29ede0 Enable [--specialize-token] in the tests.
-a3a27800 Add a benchmark with -O 1 --specialize-token.
-427f6604 A note in a README.
-9c48bcec Add a dynamic test of the code back-end with -O 2 --specialize-token.
-8b8fb896 CHANGES.
-56ae6cf6 Update expected test output (again).
-cc6119db Change [make versions] to use 4.14.1.
-a7534065 Avoid a mysterious warning with OCaml 4.06.1.
-a2ed69c2 Avoid an idiom that is rejected by OCaml 4.07.
-1a026399 Avoid using Reg.Set.disoint, which exists only in OCaml 4.08 and 
later.
-29841b5e Merge branch 'backward-compat' into 'master'
-0e370364 Merge branch 'fix-only-token-inspection' into 'master'
-f58f84f7 CHANGES.
-667cce8c Add --dump-menhirLib <path> option
-fffe4388 Document --dump-menhirLib.
-475c8250 CHANGES.
-516b2e05 Saved and published documentation for release 20230608.
-2cd0d2f1 TODO.
-ae13fad8 TODO.
-1a64ca60 Typo in a comment.
-ecc9a4c6 Fix comments. [resume] accepts [Shifting _].
-cba75f54 Documentation: fix typos.
-99e0781d Documentation: document that [resume] accepts [Shifting _].
-28ee171f demos/generate-printers/generate.ml: remove Compatibility submodule.
-4182528d Remove the module Compatibility.
-3fc8cb44 Improve a comment.
-98b181cb MArray: remove our clone of [Array.for_all].
-e3dc01f9 Change two comments into documentation comments.
-cab5a000 MenhirSdk: extend [INDEXED] with [hash], [equal], [compare].
-db0b8ab1 CHANGES.
-46e74bc1 MenhirSdk: in [GRAMMAR], new submodule [Symbol], with a copy of the 
type [t].
-35674a54 MenhirSdk: new functions [hash], [equal], [compare] on symbols.
-b00ae0ce CHANGES.
-7c868c8c Cmly_read: new functor [FromString].
-dddc8b92 CHANGES.
-ecde6492 TODO.
-1658182e New function [Production.mapx].
-50dba9f9 IL and Printer: add abstract types in signatures.
-a0b60198 BasicSyntax: add [is_nonterminal].
-2592a0a0 BasicSyntax: new function [ocamltype_of_token].
-aec79cd1 BasicSyntax: new function [print_production].
-0928a2c7 TODO.
-e1b55159 TODO.
-aeb75c8b Typo.
-575423bf Comment the type [parameterized_rule].
-7181b7c1 Comment the type [precedence_level].
-8e55870d Indentation.
-699e7492 A semicolon.
-d10d1267 Reformat a comment.
-8675fc91 Indentation and a semicolon.
-0f75a85b Rename the type [branch_prec_annotation] to [prec_annotation].
-f3511196 Rename the field [pr_branch_prec_annotation] to [pb_prec_annotation].
-368e1c80 Rename the field [branch_prec_annotation] to [prec_annotation].
-b8a385c7 Rename the field [pr_branch_position] to [pb_position].
-46777dd9 GrammarFunctor: add a few type annotations.
-c8da6a4b Rename the internal type [production_level] to 
[internal_production_scan].
-0c11d2e5 Comments.
-af4b4c83 Rename the type [use] to [fact].
-6c935d9d Rename [rightmost_terminal] to [scan].
-636253f8 Rename [internal_production_scan] to [scan].
-4954b9c0 A renaming.
-4aaf7040 Rename the type [branch_production_level] to [production_level].
-a7eca605 Rename the field [pr_branch_production_level] to 
[pb_production_level].
-0dfcee58 Rename the field [branch_production_level] to [production_level].
-e7fdf0a5 Rename the field [pr_producers] to [pb_producers].
-52d48a83 Rename the field [pr_action] to [pb_action].
-7d82c276 Comment on the type [parameterized_branch].
-c3a27a3e Typo.
-abd5dfe3 IL: isolate the type [typeparam].
-9ba00260 Comment.
-bab5e16a IL and Printer: add basic support for class definitions.
-9c049c95 IL and Printer: add support for method calls.
-315ee1f1 Printer: a special case for functions whose body carries a type 
annotation.
-e4a3ddec New function [Terminal.map_real].
-a69ba176 Add a few [@inline] annotations.
-6bf7a4c4 Re-implement [Misc.foldij] using a loop.
-0f9a030a Replace several loops with calls to [iterij] or [foldij].
-8cae1336 Replace several loops with [Nonterminal.iterx] or [Terminal.iter].
-c1fb16bd More [@inline] annotations.
-7e34a564 IL and Printer: add support for classes in signatures.
-325218e4 Isolate the lexer DecodeString.mll and the function [Misc.unquote].
-492fd797 Define the type [symbols].
-99073c12 SelectiveExpansion: add a few type annotations.
-a2588ca6 Remove a useless eta-expansion (and re-indent).
-472c58c7 Clarify a comment.
-28612942 Add an [open].
-805f20b3 Refactoring: simplify the type [attribute].
-54d52309 Refactoring in promote.sh (which still does not work as desired).
-040494dc Typo.
-526b472e Fix an outdated comment.
-e83e8a13 Use the type [attributes] in two places.
-0c8b3a59 Typos in comments.
-53fd0231 New function [MList.extract].
-d5a78e6f SelectiveExpansion: new auxiliary function [mangle_inst] 
(refactoring).
-729c4b01 Refactoring: create a new module Attribute.
-be505368 New function [transform_attribute].
-af1932e5 Improved comment.
-3c21af18 Misc: new function [preceded_list_to_string].
-326c6daa Remove unnecessary qualifiers.
-b6c057e4 Improve a comment.
-40250de1 Disable [--specialize-token] during [make test].
-0dfd21fc Run [make depend].
-ba21aabb [valid_ocaml_identifier]: not not accept [_] as a valid identifier.
-bf20c1a8 Syntax: add a new field [pb_attributes].
-86ebb633 BasicSyntax: add a new field [br_attributes].
-8b657ad0 GrammarFunctor: new function [Production.attributes].
-5c6bf4fb Cmly_api: change the meaning of [Production.attributes].
-87cd21ef GrammarFunctor: remove the function [Production.lhs_attributes].
-7c7a98a1 CHANGES.
-0a1c1c2a BasicPrinter: print branch attributes.
-047cfe1c Refactoring: isolate [inline_attributes].
-d3b17fa5 Inlining: preserve and combine [@name] attributes.
-722f14ab SelectiveExpansion: specialize [@name] attributes.
-0c020349 SelectiveExpansion: normalize the names that are used to construct 
[@name] attributes.
-87a994c3 Comment.
-a8aea742 Manual: document production attributes. Document @name attributes.
-3ecb3890 CHANGES: document [@name] attributes.
-e59aa273 Cmly_write: reformulate to guarantee compatibility with old OCaml 
compilers.
-dc2d5425 Share the lexer between several calc demos.
-bdd2a6a5 demos/calc/lexer.mll: detect an error situation more gracefully.
-70f251c3 Headers.
-de19fbb1 Upgrade to PPrint 20230830.
-65344c97 Add 5.1.0 to [make versions].
-0b94d9ef Fix reference to obsolete internal PPrint modules in 
test/dynamic/houblix.
-860d3574 demos/calc-two, demos/calc-param: restore a one-line difference in 
lexer.mll.
-6efed731 IL: add a privacy flag on methods.
-a4bc649d CodeBits: add [toption].
-f2fd1636 CodePieces: add [tokexpr].
-e9c82e7e BasicSyntax: new functions [alias], [unquoted_alias], 
[error_free_branch].
-0cef86cc EngineTypes: new functions [maybe_shift_t], [may_reduce_prod], [lhs].
-768cfcf9 Add the new library MenhirCST.
-9d3c1f12 Add the memoizing version of [settle] in attic/cst.
-1fbb2159 Add CheckPreExpansion, which checks [@name] attributes.
-376430c4 Add the generation of the unparsing API, triggered by [--unparsing].
-0c74a92a Add [@name] attributes on options and lists in the standard library.
-21796df7 Add two negative tests about [@name] attributes. Also update the 
expected test output   following the addition of [@name] attributes in 
standard.mly.
-fe721f08 Add the demos calc-unparsing, calc-unparsing-variant, and 
calc-unparsing-benchmark.
-51078885 CHANGES: document internal changes in EngineTypes.
-5a7c6891 WIP TODO.
-673fe6d4 Adapt to Coq/Coq#18164
-8f6b2ef3 CHANGES.
-51e5cff4 Clarify the description of exn-carries-state in the manual.
-bb68b8fd Clarify the error message that is produced when both 
--exn-carries-state and --table are passed.
-9b43076f TODO.
-edd93854 Restore alphabetical order.
-1d8d6441 Manual: document the unparsing API.
-c59494dd demos/calc-unparsing: add [make api].
-d4cf6319 Document a restriction regarding %inline and attributes.
-533a43d9 TODO.
-e9a30ea1 CHANGES.
-3d748a4e Commit missing file in manual.
-668b2bb1 Manual: add a final citation.
-473b57ad Spell-checking.
-ef8d021a Move more versions into OLD_VERSIONS.
-bfbc67d4 check-tarball.sh: change default version of OCaml.
-d3d815e4 (tag: 20231231, origin/release-branch-20231231) Release 20231231.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/sdk/cmly_api.ml 
new/ocaml-menhir-20240715/sdk/cmly_api.ml
--- old/ocaml-menhir-20231231/sdk/cmly_api.ml   2023-12-31 14:56:31.000000000 
+0100
+++ new/ocaml-menhir-20240715/sdk/cmly_api.ml   2024-07-15 19:23:43.000000000 
+0200
@@ -146,7 +146,7 @@
     val default_reduction : t -> production option
 
     val reductions   : t -> (terminal * production list) list
-    [@@@ocaml.deprecated "Please use [get_reductions]"]
+    [@@ocaml.deprecated "Please use [get_reductions]"]
   end
 
   module Print : sig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/src/AtomicBitSet.ml 
new/ocaml-menhir-20240715/src/AtomicBitSet.ml
--- old/ocaml-menhir-20231231/src/AtomicBitSet.ml       2023-12-31 
14:56:31.000000000 +0100
+++ new/ocaml-menhir-20240715/src/AtomicBitSet.ml       2024-07-15 
19:23:43.000000000 +0200
@@ -210,17 +210,28 @@
 let quick_subset s1 s2 =
   inter s1 s2 <> 0
 
+(* [lsb x] keeps only the smallest set bit of [x]. E.g 0110 maps to 0010.
+   0 is mapped to 0.
+   When interpreting [x] as an AtomicBitSet, this returns a singleton made of
+   the smallest element of [x]. *)
 let lsb x = (x land -x)
 
-let compare_lsb x y = lsb x - lsb y
-
 let compare_minimum ss1 ss2 =
-  match compare_lsb ss1 ss2 with
-  | 0 ->
-    let ss1' = ss1 land lnot ss2 in
-    let ss2' = ss2 land lnot ss1 in
-    compare_lsb ss1' ss2'
-  | n -> n
+  (* Order sets by their smallest element.
+     The empty set is smaller than any other set.
+     This is a total pre-order. *)
+  Int.compare (lsb ss1 - 1) (lsb ss2 - 1)
+  (* With lsb we get a set with only the smallest element.
+     If we had an unsigned integer comparison, we could directly do it
+     but Int.compare is signed. It would return the wrong result if one of the
+     input is min_int: a singleton set with the most significant bit set.
+
+     By subtracting one, we fix this corner-case:
+     - [min_int - 1] = [max_int], larger than anything
+     - [0 - 1] = [-1], smaller than anything
+     - for everything in-between, order is preserved
+       (these are singleton sets, so only one bit is set)
+  *)
 
 let sorted_union xs = List.fold_left union empty xs
 
@@ -228,7 +239,7 @@
   if ss1 = 0 then
     0, 0
   else
-  if compare_lsb ss1 ss2 >= 0 then
+  if compare_minimum ss1 ss2 >= 0 then
     empty, ss1
   else
     let prefix_mask = (lsb ss2) - 1 in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/src/LoopDetection.ml 
new/ocaml-menhir-20240715/src/LoopDetection.ml
--- old/ocaml-menhir-20231231/src/LoopDetection.ml      2023-12-31 
14:56:31.000000000 +0100
+++ new/ocaml-menhir-20240715/src/LoopDetection.ml      2024-07-15 
19:23:43.000000000 +0200
@@ -21,7 +21,7 @@
 (* According to Aho and Ullman ("The Theory of Parsing, Translation, and
    Compiling -- Volume I: Parsing", page 150), a grammar is cycle-free if
    there is no derivation of the form A =>+ A. In other words, there is a
-   cycle when a nonterminal symbol A expands, in one more steps, to itself. *)
+   cycle when a nonterminal symbol A expands in one or more steps to itself. *)
 
 (* Under the assumption that every nonterminal symbol is reachable and
    generates a nonempty language, the presence of a cycle implies that the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/src/LowIntegerPriorityQueue.ml 
new/ocaml-menhir-20240715/src/LowIntegerPriorityQueue.ml
--- old/ocaml-menhir-20231231/src/LowIntegerPriorityQueue.ml    2023-12-31 
14:56:31.000000000 +0100
+++ new/ocaml-menhir-20240715/src/LowIntegerPriorityQueue.ml    2024-07-15 
19:23:43.000000000 +0200
@@ -31,6 +31,9 @@
      search for a nonempty bucket. *)
   mutable cardinal: int;
 
+  (* A default element, supplied by the user at creation time. *)
+  default: 'a;
+
 }
 
 let create default =
@@ -40,7 +43,7 @@
      main array. *)
   let dummy = MyStack.make_ 0 default in
   let a = MyArray.make 16 dummy (fun _ -> MyStack.make_ 1024 default) in
-  { a; best = 0; cardinal = 0 }
+  { a; best = 0; cardinal = 0; default }
 
 let add q x priority =
   assert (0 <= priority);
@@ -75,8 +78,8 @@
        When we find that a priority level has become empty, we physically
        empty it, so as to free the (possibly large) space that it takes up.
        This strategy is good when the client is Dijkstra's algorithm or A*. *)
-    let dummy = MyArray.default q.a in
-    MyArray.set q.a q.best dummy;
+    let empty = MyStack.make_ 1 q.default in
+    MyArray.set q.a q.best empty;
     q.best <- q.best + 1;
     remove_nonempty q
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-menhir-20231231/src/coqBackend.ml 
new/ocaml-menhir-20240715/src/coqBackend.ml
--- old/ocaml-menhir-20231231/src/coqBackend.ml 2023-12-31 14:56:31.000000000 
+0100
+++ new/ocaml-menhir-20240715/src/coqBackend.ml 2024-07-15 19:23:43.000000000 
+0200
@@ -525,6 +525,7 @@
       List.iter (fun s -> fprintf f "%s\n\n" s.Stretch.stretch_content)
         Front.grammar.BasicSyntax.preludes;
 
+    fprintf f "From Coq.extraction Require Extraction.\n";
     fprintf f "From Coq.Lists Require List.\n";
     fprintf f "From Coq.PArith Require Import BinPos.\n";
     fprintf f "From Coq.NArith Require Import BinNat.\n";

Reply via email to