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
A program using recursive modules doesn't compile since 3.10 #4993
Comments
Comment author: @garrigue I should have mentioned that this program is particularly important, as it demonstrated the |
Comment author: @xavierleroy Jacques, I know this code is dear to your heart :-) The typechecking of recursive modules was unsound in 3.09, and what I think are the correct typing rules could not be implemented because they give rise to cycles of type abbreviations that cause the typechecker to loop. So, what's implemented today is a conservative approximation, and I'm not surprised it rejects some useful codes. At any rate, I learnt one thing the hard way: recursive modules will never be 100% right until the type-checker is resistant to cyclic abbreviations (treating them as abstract types instead of stupidly looping). |
Comment author: @mshinwell Jacques, can this issue be closed? |
Comment author: @garrigue I'd prefer to keep it: ideally this should work some day. |
This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc. |
Still dreaming it could come back... |
This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc. |
This issue has been open one year with no activity. Consequently, it is being marked with the "stale" label. What this means is that the issue will be automatically closed in 30 days unless more comments are added or the "stale" label is removed. Comments that provide new information on the issue are especially welcome: is it still reproducible? did it appear in other contexts? how critical is it? etc. |
Original bug ID: 4993
Reporter: @garrigue
Assigned to: @garrigue
Status: assigned (set by @mshinwell on 2016-12-07T13:15:28Z)
Resolution: open
Priority: normal
Severity: feature
Version: 3.11.2
Target version: later
Category: typing
Tags: recmod
Monitored by: "Julien Signoles" @Chris00
Bug description
The attached program did compile with ocaml 3.09.3,
but doesn't compile with all versions since 3.10.0.
Note that other versions of the same program using
polymorphic variants (and avoiding conversions) do
still work.
File attachments
The text was updated successfully, but these errors were encountered: