Original bug ID: 6084
Reporter: gerd
Status: closed (set by @xavierleroy on 2015-12-11T18:23:57Z)
Resolution: fixed
Priority: normal
Severity: feature
Fixed in version: 4.01.0+dev
Category: runtime system and C interface
Monitored by: @gasche @hcarty @yakobowski @alainfrisch
Bug description
This actually refers to the upcoming 4.01 version: Apparently, caml_modify was recently changed in the svn tree so that no out-of-heap values are supported anymore. I guess this gives better performance, as the page table lookup can be avoided. So far I understand the new code, the avoided Is_in_heap check makes it impossible to have out-of-heap values (i.e. neither in the minor nor the major heap).
I have a siginificant code base using out-of-heap values for managing shared memory, and it is non-trivial to change it so that it complies again to the rules (which will require some form of alternate code generator). This is not impossible, but I need some time to do it, and it would be nice to have a configure-time option for building ocaml with the old caml_modify behavior (maybe "-out-of-heap-values"), in order to smoothen the transition.
Steps to reproduce
The patch changing caml_modify: http://caml.inria.fr/cgi-bin/viewvc.cgi?view=revision&revision=13723
Additional information
This affects Netmulticore (a multi-processing manager supporting shared memory), and software using it, e.g. Plasma Map/Reduce.
I'd happily provide a patch if the suggestion is accepted.
Original bug ID: 6084
Reporter: gerd
Status: closed (set by @xavierleroy on 2015-12-11T18:23:57Z)
Resolution: fixed
Priority: normal
Severity: feature
Fixed in version: 4.01.0+dev
Category: runtime system and C interface
Monitored by: @gasche @hcarty @yakobowski @alainfrisch
Bug description
This actually refers to the upcoming 4.01 version: Apparently, caml_modify was recently changed in the svn tree so that no out-of-heap values are supported anymore. I guess this gives better performance, as the page table lookup can be avoided. So far I understand the new code, the avoided Is_in_heap check makes it impossible to have out-of-heap values (i.e. neither in the minor nor the major heap).
I have a siginificant code base using out-of-heap values for managing shared memory, and it is non-trivial to change it so that it complies again to the rules (which will require some form of alternate code generator). This is not impossible, but I need some time to do it, and it would be nice to have a configure-time option for building ocaml with the old caml_modify behavior (maybe "-out-of-heap-values"), in order to smoothen the transition.
Steps to reproduce
The patch changing caml_modify: http://caml.inria.fr/cgi-bin/viewvc.cgi?view=revision&revision=13723
Additional information
This affects Netmulticore (a multi-processing manager supporting shared memory), and software using it, e.g. Plasma Map/Reduce.
I'd happily provide a patch if the suggestion is accepted.