| Anonymous | Login | Signup for a new account | 2013-05-18 16:56 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||||
| 0005072 | OCaml | OCaml typing | public | 2010-06-14 17:56 | 2012-06-01 09:15 | ||||||
| Reporter | letouzey | ||||||||||
| Assigned To | |||||||||||
| Priority | normal | Severity | feature | Reproducibility | always | ||||||
| Status | acknowledged | Resolution | open | ||||||||
| Platform | OS | OS Version | |||||||||
| Product Version | |||||||||||
| Target Version | Fixed in Version | ||||||||||
| Summary | 0005072: Absolute name for built-in types such as int, bool, ... ? | ||||||||||
| Description | Hi As said in the documentation of the core library: [ The following built-in types and predefined exceptions are always defined in the compilation environment, but are not part of any module. As a consequence, they can only be referred by their short names ] Well, there are rare situations where it would be handy to have absolute names for int, bool, char, etc, but indeed Pervasives.int isn't working. Truly, any user can create its own long name for int thanks to something like module MyPervasives = struct type int' = int type int = int' end But it would be nice to have something like that by default. (By the way, as illustrated above, it's really painful to have only a type declaration syntax which is recursive, even for type abbreviation). Maybe this disambiguation need is really specific to my own parish, which is ocaml code generation from a system where users may have their own naming conventions and expect nonetheless the obtained code to interact nicely with ocaml's stdlib. But placing int and others inside Pervasives would probably also allow to have nicer error message when a beginnner redefines int by mistake: "foo has type int but is expected to have type Pervasives.int" is nicer than the same message without Pervasives ... Best regards, Pierre Letouzey | ||||||||||
| Tags | No tags attached. | ||||||||||
| Attached Files | |||||||||||
Notes |
|
|
(0005566) garrigue (manager) 2010-06-18 03:12 |
This is a actually a problem for the ocaml compiler developers too... The reason these types are not in Pervarsives is that they are used internally by the compiler, and they need to be defined before reading Pervasives. An alternative solution would be to put them in another module, named Builtin for instance, but then we still have the risk of somebody defining a module with the same name. If somebody has a good solution for this problem, I am interested. |
|
(0005958) doligez (manager) 2011-06-01 23:18 |
In answer to Jacques: we could just forbid the definition of a module called Builtin. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-06-14 17:56 | letouzey | New Issue | |
| 2010-06-18 03:12 | garrigue | Note Added: 0005566 | |
| 2011-06-01 23:18 | doligez | Note Added: 0005958 | |
| 2011-06-01 23:18 | doligez | Status | new => acknowledged |
| 2011-06-02 12:46 | ygrek | Note Added: 0005962 | |
| 2011-06-02 12:46 | ygrek | Note Deleted: 0005962 | |
| 2012-06-01 09:15 | garrigue | Category | OCaml general => OCaml typing |
| Copyright © 2000 - 2011 MantisBT Group |