Commits

Anonymous committed 88e0d95

subarrays: typing vs safety

  • Participants
  • Parent commits 7b19dae

Comments (0)

Files changed (1)

      если представляете последствия).  Пока все соблюдают правила
      хорошего тона, всё безопасно.
 
+  Можно было бы ограничить эти "правила хорошего тона" через систему
+типов, но возникают проблемы:
+  1. если у энумерата/энумератора есть какой-то массив, необходимо
+     копирование этого массива, чтобы гарантировать то, что массив
+     не будет изменён иначе, чем через функции модуля Subarray.
+     (либо как-то ограничить его использование, но сходу ничего
+     не придумывается; линейных/уникальных типов тоже нет.)
+  2. стало бы сложнее писать функции, которые тоже работают с
+     Subarray, но находятся в другом модуле (не в библиотеке
+     ocaml-iteratees).  Например, часто есть желание походить по
+     чанку и проанализировать его как массив, вручную работая
+     со смещениями элементов в массиве.
+  Да, в целом, подход не очень безопасен, но не хочется терять на
+производительности и удобстве.  Если у кого-нибудь будут идеи, "как
+нам обустроить подмассивы", прошу, сообщите их автору ocaml-iteratees,
+он будет очень благодарен.
+
   Однако автор этого документа думал про представление данных в виде
 типа "либо подстрока, либо подмассив" с выбором нужных функций
 для работы с чанком в рантайме, однако пока профайлер не показал