Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signature mismatch or Unbound module type? #8096

Closed
vicuna opened this issue Apr 11, 2003 · 1 comment
Closed

Signature mismatch or Unbound module type? #8096

vicuna opened this issue Apr 11, 2003 · 1 comment
Assignees

Comments

@vicuna
Copy link

vicuna commented Apr 11, 2003

Original bug ID: 1630
Reporter: administrator
Assigned to: @lpw25
Status: resolved (set by @mshinwell on 2016-12-07T13:53:27Z)
Resolution: fixed
Priority: normal
Severity: feature
Category: ~DO NOT USE (was: OCaml general)

Bug description

Full_Name: John Gerard Malecki
Version: 3.06
OS: any
Submission from: 192-149-105-50.artisan.com (192.149.105.50)

I made an error and forgot to install a .cmi file along with my .cma library.
It was an easy error to make as this .cmi file did not have an associated
implementation file. When I compile using the library I get the message

:; ocamlc -i -c test.ml
File "test.ml", line 6, characters 32-45:
Signature mismatch:
Modules do not match:
sig type t = float * float * int end
is not included in
Pure.T

Is it possible to improve this message? There really isn't a signature
mismatch.
Their simply isn't a definition of Pure.T.

I know this sounds trivial and maybe not really a bug. In fact it might even be
considered a feature but I haven't figured how to take advantage of it yet.

My big concern is that the library developer cannot tell if their installation
is correct without testing all of the interfaces to the library. I prefer ocaml
as it has static interface checking. Maybe there should be a tool that
examines a linkage and checks that all interfaces are defined? This way after
installation the library developer can check that all interface files are also
installed. What do you think?

Send me email if you want me to supply a test case or describe in better
detail.

@vicuna
Copy link
Author

vicuna commented Nov 5, 2013

Comment author: @lpw25

The error message for this case has since been improved, so that you would receive something like:

File "test.ml", line 2, characters 21-44:
Error: Signature mismatch:
Modules do not match: sig type t = int end is not included in Other.T
Unbound module type Pure.T

which does indicate that the module type cannot be found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants