aboutsummaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2017-02-21 09:30:57 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2017-02-21 09:30:57 +0100
commite91286465973b6ba40d6646c630df8faa73eb8f1 (patch)
tree58a00bf676dfef64452b5ed25c1587997387e237 /dev
parent2b4f249ed0a28cde876f18aacf19f646d8af8fae (diff)
parentb09751b9a1b48541acc9a2daaff9ebc453fc3bf7 (diff)
Merge PR#309: Ltac as a plugin
Diffstat (limited to 'dev')
-rw-r--r--dev/doc/changes.txt18
-rw-r--r--dev/ocamldebug-coq.run2
2 files changed, 19 insertions, 1 deletions
diff --git a/dev/doc/changes.txt b/dev/doc/changes.txt
index f54f3fcc8..8d2d05590 100644
--- a/dev/doc/changes.txt
+++ b/dev/doc/changes.txt
@@ -40,6 +40,24 @@ important things:
- Some printing functions were moved from Pptactic to Pputils
- A part of Tacexpr has been moved to Tactypes
+The folder itself has been turned into a plugin. This does not change much,
+but because it is a packed plugin, it may wreak havoc for third-party plugins
+depending on any module defined in the ltac/ directory. Namely, even if
+everything looks OK at compile time, a plugin can fail to load at link time
+because it mistakenly looks for a module Foo instead of Ltac_plugin.Foo, with
+an error of the form:
+
+Error: while loading myplugin.cmxs, no implementation available for Foo.
+
+In particular, most EXTEND macros will trigger this problem even if they
+seemingly do not use any Ltac module, as their expansion do.
+
+The solution is simple, and consists in adding a statement "open Ltac_plugin"
+in each file using a Ltac module, before such a module is actually called. An
+alternative solution would be to fully qualify Ltac modules, e.g. turning any
+call to Tacinterp into Ltac_plugin.Tacinterp. Note that this solution does not
+work for EXTEND macros though.
+
** Error handling **
- All error functions now take an optional parameter `?loc:Loc.t`. For
diff --git a/dev/ocamldebug-coq.run b/dev/ocamldebug-coq.run
index 26cfcc8ae..3850c05fd 100644
--- a/dev/ocamldebug-coq.run
+++ b/dev/ocamldebug-coq.run
@@ -32,6 +32,6 @@ exec $OCAMLDEBUG \
-I $COQTOP/plugins/ring -I $COQTOP/plugins/romega \
-I $COQTOP/plugins/rtauto -I $COQTOP/plugins/setoid_ring \
-I $COQTOP/plugins/subtac -I $COQTOP/plugins/syntax \
- -I $COQTOP/plugins/xml \
+ -I $COQTOP/plugins/xml -I $COQTOP/plugins/ltac \
-I $COQTOP/ide \
"$@"