[m-rev.] for post-commit review: array.generate_foldl2

Zoltan Somogyi zoltan.somogyi at runbox.com
Fri Aug 20 14:50:25 AEST 2021


For review by Julien, of one aspect in particular.

The array module has a whole bunch of fold-like predicates,
most of which have six mode declarations, in a 3x2 matrix,
with three arg mode pairs and two determiniisms. The modes are
<in,out>, <mdi,muo> and <di, uo>, while the determinisms are
det and semidet. While this seems logical, I don't know why the
<di, uo> arg mode pair has a semidet version: once the unique
input arg has been destroyed, there is no way to get it back
after a failure.

You added several of those mode declarations. I strongly suspect
that you added them only for symmetry with the <mdi,muo> semidet
versions, but I would like to know whether you had any use cases
where it was ok for a failure to destroy the only copy of a di
(NOT mdi) input.

Zoltan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Log.ar
Type: application/octet-stream
Size: 214 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20210820/88cd86f9/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DIFF.ar
Type: application/octet-stream
Size: 15239 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/reviews/attachments/20210820/88cd86f9/attachment-0001.obj>


More information about the reviews mailing list