Управление памятью на Haskell под IOS 5 - PullRequest
11 голосов
/ 02 марта 2012

Я хочу встроить движок Haskell в проект IOS 5 как библиотеку C - для запуска кода на Haskell внутри приложения IOS.Поэтому у меня есть несколько вопросов:

  1. Есть ли какие-либо известные проблемы управления памятью, которые Haskell обнаруживает при ARC?
  2. Как я могу убедиться, что Haskell не мешает управлению памятью IOS?
  3. Какая может быть эффективная стратегия для решения этих проблем?

1 Ответ

1 голос
/ 06 марта 2012

ARC - это процесс генерации кода во время компиляции, который относится к коду Objective-C.ARC в основном означает «вставку операторов retain, release и autorelease в источник * во время компиляции, чтобы программист не должен был это делать».

Следовательно, ARC не будет ничего делать с нецелевым кодом C (т.е.обычные библиотеки C) и не имеет поведения времени выполнения **, которое может мешать поведению сборки мусора в движке Haskell.

* На самом деле ARC работает не так, он генерирует оптимизированный код сборки, а не исходный код, а каканалогия - это хорошее описание того, как это работает.

** Строго говоря, неверно, что ARC не имеет поведения во время выполнения, поскольку существует слабое управление указателями, которое происходит во время выполнения, но опять-таки, это относится только кОбъекты Objective-C и ничего не сделают с кодом на Haskell.

...