You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 26 Reporter: administrator Status: closed Resolution: fixed Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
If I have a module M as a compilation unit, and a module M' that uses M in the
interface, e.g.
M:
type t = string
val f : t -> t
M':
val g : M.t -> M.t
and if I have a toploop with loaded cmo files of M and M', but
the cmi file of M is missing (not in the search path), I get
misleading error messages:
g "abc";;
This expression has type string but is here used with type M.t
It would be better if the toploop warns about missing interfaces,
for example at startup for all loaded modules, or after an expression
has been entered (it can simply scan all occurring symbols, here "g",
and check whether all interfaces (direct and indirect) are present).
The text was updated successfully, but these errors were encountered:
and if I have a toploop with loaded cmo files of M and M', but
the cmi file of M is missing (not in the search path), I get
misleading error messages:
g "abc";;
This expression has type string but is here used with type M.t
I agree the error message is misleading, and will try to see if we can do
better.
It would be better if the toploop warns about missing interfaces,
for example at startup for all loaded modules, or after an expression
has been entered (it can simply scan all occurring symbols, here "g",
and check whether all interfaces (direct and indirect) are present).
This looks somehow harder. For instance, there are cases where the .cmi for
a module internal to a library, and not normally visible to the user, is
purposefully not installed.
Fixed as a side-effect of the new, stricter consistency checks in #load (the
user would get an error at #load-time, not at use time). -Xavier, 2000/03/26
Original bug ID: 26
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: Gerd Stolpmann
Version: 2.04
OS: Linux-2.2.13 with glibc-6.1
Submission from: master.proxy.ision.net (195.180.208.40)
If I have a module M as a compilation unit, and a module M' that uses M in the
interface, e.g.
M:
type t = string
val f : t -> t
M':
val g : M.t -> M.t
and if I have a toploop with loaded cmo files of M and M', but
the cmi file of M is missing (not in the search path), I get
misleading error messages:
g "abc";;
This expression has type string but is here used with type M.t
It would be better if the toploop warns about missing interfaces,
for example at startup for all loaded modules, or after an expression
has been entered (it can simply scan all occurring symbols, here "g",
and check whether all interfaces (direct and indirect) are present).
The text was updated successfully, but these errors were encountered: