История изменений
Исправление q0tw4, (текущая версия) :
Ну в расте есть трюк с lifetime как часть типа. Простой и элегантный ход, позволяющий внеся минимум сущностей свести казалось бы творческую и неописуемую формально задачу слежения за дисциплинами доступа и владения данными к элементарным математическим проверкам при компиляции. Да, получилось конечно не идеально, без unsafe тот же refcounter не напишешь, но для многих даже больших задач вполне приемлемо. Мало того, в агде, например, даже зацикливание программы недопустимо на уровне типов, если не включить флаг игнора для этой фичи (в результате не только неполнота по Тьюрингу, так еще и усложняется жизнь кодера на порядки). Вот я и спрашиваю, а можно ли ввести некое свойство типа, позволяющее в компилтайме отслеживать утечки памяти на указателях? Надо бы внимательно почитать второй том Пирса, там вроде что-то про ресурсменеджмент в типах было.
Исходная версия q0tw4, :
Ну в расте есть трюк с lifetime как часть типа. Простой и элегантный ход, позволяющий внеся минимум сущностей свести казалось бы творческую и неописуемую формально задачу слежения за дисциплинами доступа и владения данными к элементарным математическим проверкам при компиляции. Да, получилось конечно не идеально, без unsafe тот же refcounter не напишешь, но для многих даже больших задач вполне приемлемо. Мало того, в агде например даже зацикливание программы недопустимо на уровне типов если не включить флаг игнора для этой фичи (в результате не только неполнота по Тьюрингу, так еще и усложняется жизнь кодера на порядки). Вот я и спрашиваю, а можно ли ввести некое свойство типа, позволяющее в компилтайме отслеживать утечки памяти на указателях? Надо бы внимательно почитать второй том Пирса, там вроде что-то про ресурсменеджмент в типах было.