Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Building an ml plugin for Coq 8.5pl2

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Building an ml plugin for Coq 8.5pl2


Chronological Thread 
  • From: Kenneth Roe <kendroe AT hotmail.com>
  • To: Coq-Club <coq-club AT inria.fr>
  • Subject: [Coq-Club] Building an ml plugin for Coq 8.5pl2
  • Date: Sun, 10 Sep 2017 22:41:52 +0000
  • Accept-language: en-US
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=kendroe AT hotmail.com; spf=Pass smtp.mailfrom=kendroe AT hotmail.com; spf=Pass smtp.helo=postmaster AT NAM01-SN1-obe.outbound.protection.outlook.com
  • Ironport-phdr: 9a23:NO8P2hFq7Dc8HeoAj7zgFp1GYnF86YWxBRYc798ds5kLTJ76ocmwAkXT6L1XgUPTWs2DsrQf1LqQ7viocFdDyKjCmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TXhpQIVTz74LE9eIvn/UtrZiN3y3OSv8bXSZR9JjXyze+UhAg+xqFDyu88QjJdiYpw2x1OdoXZOd/5RyEtoIk6Wlhf4oMy3+cgwoGxrp/s9+psYAu3BdKMiQOkAAQ==
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

I’m in the process of constructing an ml plugin for Coq.  I have a source file “advanced_rewrite.ml4” which references a symbol “intern” which is defined in an ml file “intern.ml” (and “intern.mli”).  I get the following error when I compile:

File "./theories/advancedRewrite.v", line 1, characters 0-37:
Error: while loading src/advanced_rewrite.cmxs:
error loading shared library: dlopen(/Users/kendroe/FDS/engine/plugin/src/advanced_rewrite.cmxs, 138): Symbol not found: _camlIntern__intern_1306
  Referenced from: /Users/kendroe/FDS/engine/plugin/src/advanced_rewrite.cmxs
  Expected in: flat namespace
 in /Users/kendroe/FDS/engine/plugin/src/advanced_rewrite.cmxs
make[1]: *** [theories/advancedRewrite.vo] Error 1
make: *** [plugin] Error 2

It appears that the file intern.cmi and intern.cmo are not being properly loaded into the Coq environment.  How do I fix this bug?  This is what I have in my _CoqProject file (which is sent to coq_makefile) to create the makefile:

-Q theories AdvancedRewrite
-I src

src/builtin.ml
src/builtin.mli
src/cache.ml
src/cache.mli
src/context.ml
src/context.mli
src/crewrite.ml
src/crewrite.mli
src/derive.ml
src/derive.mli
src/disc.ml
src/disc.mli
src/env.ml
src/env.mli
src/exp.ml
src/exp.mli
src/intern.ml
src/intern.mli
src/expIntern.ml
src/expIntern.mli
src/getfile.ml
src/getfile.mli
src/inner.ml
src/inner.mli
src/kbrewrite.ml
src/kbrewrite.mli
src/lex.ml
src/lex.mli
src/match.ml
src/match.mli
src/mylist.ml
src/mylist.mli
src/parser.ml
src/parser.mli
src/prettyPrint.ml
src/prettyPrint.mli
src/rule_app.ml
src/rule_app.mli
src/subst.ml
src/subst.mli
src/trace.ml
src/trace.mli
src/trie.ml
src/trie.mli
src/type.ml
src/type.mli
src/advanced_rewrite.ml4

theories/advancedRewrite.v


My intern.mli file looks like this:

val intern: string -> int
val decode: int -> string
val intern_oriented_rule: int   (* 1 *)
val intern_unoriented_rule: int (* 2 *)
val intern_bool: int            (* 3 *)
val intern_true: int            (* 4 *)
val intern_false: int           (* 5 *)

           - Ken





Archive powered by MHonArc 2.6.18.

Top of Page