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: 784 Reporter: administrator Status: acknowledged Resolution: open Priority: normal Severity: feature Category: documentation Tags: junior_job
Bug description
Full_Name: Winfried Dreckmann
Version: Ocaml 3.04
OS: Suse Linux 6.4 on PowerPC
Submission from: t3o901p49.telia.com (62.20.253.49)
These are some wishes concerning the documentation. At the end I will also
report what I believe is a bug. This is all low priority, but I am curious to
get hints.
I am using the low level C interface, and I want to write code which is
maximally compatible with future versions of Ocaml. As I understand it, the
contents of the C interface header files may change. The features which are
documented may also change, but less so. Therefore, I would like to see
(1) the macro "Max_wosize" documented,
(2) a documented macro or some other way to make the maximal size of a custom
block accessible to C functions,
(3) the macros "Max_long" and "Min_long" documented (accessible through
"max_int" and "min_int" from the core library, but this is clumsy),
(4) a documented macro or some other way to get the maximal size of an Ocaml
string (accessible through Sys.max_string_size, but again clumsy).
Also, it seems implicitly clear that a "value" is always a C long integer. A
candidate for explicit documentation?
I realize that the size restrictions for marshaling are still a little vague,
even in the source code. Trying to understand the source code ("intern.c",
"extern.c") I made the following observation: It seems possible to read a
marshaled block on a 32 bit machine, even it it was created on a 64 bit machine
(good!) with a size exceeding the 32 bit limits (dubious). Moreover, the header
on the 32 bit machine will be wrong (wrong size bits), and I guess some things
(toplevel "compare" ?) will not always work correctly.
I think the low level C interface is an excellent feature. In principle, I hope
that much more can be documented, but I see the difficulties.
Winfried Dreckmann
The text was updated successfully, but these errors were encountered:
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: 784
Reporter: administrator
Status: acknowledged
Resolution: open
Priority: normal
Severity: feature
Category: documentation
Tags: junior_job
Bug description
Full_Name: Winfried Dreckmann
Version: Ocaml 3.04
OS: Suse Linux 6.4 on PowerPC
Submission from: t3o901p49.telia.com (62.20.253.49)
These are some wishes concerning the documentation. At the end I will also
report what I believe is a bug. This is all low priority, but I am curious to
get hints.
I am using the low level C interface, and I want to write code which is
maximally compatible with future versions of Ocaml. As I understand it, the
contents of the C interface header files may change. The features which are
documented may also change, but less so. Therefore, I would like to see
(1) the macro "Max_wosize" documented,
(2) a documented macro or some other way to make the maximal size of a custom
block accessible to C functions,
(3) the macros "Max_long" and "Min_long" documented (accessible through
"max_int" and "min_int" from the core library, but this is clumsy),
(4) a documented macro or some other way to get the maximal size of an Ocaml
string (accessible through Sys.max_string_size, but again clumsy).
Also, it seems implicitly clear that a "value" is always a C long integer. A
candidate for explicit documentation?
I realize that the size restrictions for marshaling are still a little vague,
even in the source code. Trying to understand the source code ("intern.c",
"extern.c") I made the following observation: It seems possible to read a
marshaled block on a 32 bit machine, even it it was created on a 64 bit machine
(good!) with a size exceeding the 32 bit limits (dubious). Moreover, the header
on the 32 bit machine will be wrong (wrong size bits), and I guess some things
(toplevel "compare" ?) will not always work correctly.
I think the low level C interface is an excellent feature. In principle, I hope
that much more can be documented, but I see the difficulties.
Winfried Dreckmann
The text was updated successfully, but these errors were encountered: