Здравствуйте, Аноним, Вы писали:
А>1. при компиляции исходника в исходник добавляются подсказки для последующей тиипизаци А>например до первой компиляции А>def i=1; А>после А>def i/*//int//*/=1; А>2. данные добавленные комментарии по умолчанию не отображаются в vs А>3. при повторной типизации вначале выполняется проверка на верность подсказок (граф типизации сильно сокращается за счет подсказок),
А кто может гарантировать, что последнее изменение не привело к тому, что там вместо int стало, например, long?
А>4. в случае проблемы с подсказками выполняется полная (обычная) типизация.
А>+ можно посмотреть как были расставлены типы А>+ ускорение типизации
В чисто виде подобный подход работать не будет.
Использовать хинты неварно как-то можно но все это нужно очень серьезно продумывать.
Возможно что-то подобное можно применять для ускорения интеллисенса.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: ускорение типизации
От:
Аноним
Дата:
12.02.11 12:54
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>1. при компиляции исходника в исходник добавляются подсказки для последующей тиипизаци А>>например до первой компиляции А>>def i=1; А>>после А>>def i/*//int//*/=1; А>>2. данные добавленные комментарии по умолчанию не отображаются в vs А>>3. при повторной типизации вначале выполняется проверка на верность подсказок (граф типизации сильно сокращается за счет подсказок),
VD>А кто может гарантировать, что последнее изменение не привело к тому, что там вместо int стало, например, long?
В начале идет типизация с учетов хинтов. В случае возникновения противоречия ограничений хинты сбрасываются и делается типизация без них.
А>>4. в случае проблемы с подсказками выполняется полная (обычная) типизация.
А>>+ можно посмотреть как были расставлены типы А>>+ ускорение типизации
VD>В чисто виде подобный подход работать не будет.
VD>Использовать хинты неварно как-то можно но все это нужно очень серьезно продумывать. VD>Возможно что-то подобное можно применять для ускорения интеллисенса.
Здравствуйте, Аноним, Вы писали:
А>В начале идет типизация с учетов хинтов. В случае возникновения противоречия ограничений хинты сбрасываются и делается типизация без них.
Типизацию с учетом хинтов можно и проводить, так как типы итак известны после посделней типизации.
Вопрос в том можно ли (и как?) использовать старую информацию для ускорения повторной типизации.
В общем случае это сделать невозможно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: ускорение типизации
От:
Аноним
Дата:
12.02.11 13:16
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>В начале идет типизация с учетов хинтов. В случае возникновения противоречия ограничений хинты сбрасываются и делается типизация без них.
VD>Типизацию с учетом хинтов можно и проводить, так как типы итак известны после посделней типизации.
VD>Вопрос в том можно ли (и как?) использовать старую информацию для ускорения повторной типизации.
VD>В общем случае это сделать невозможно.
Тут разговор немного о другом.
вначале проверяются хинты на корректность. Если все корректно, то ничего не делаем.
В случае если код не корректен, то выполняем типизацию без хинтов полностью.
так как типизация идет не всего проекта целиком, а по единицам типизации (например функция), то в большенстве случаев нам будет достаточно проверить корректность хинтов.
Здравствуйте, Аноним, Вы писали:
А>вначале проверяются хинты на корректность. Если все корректно, то ничего не делаем.
Я уже тебе приводил пример. Заени int на long и все останется корректным.
И вообще, корректным и не измененным все может остаться только если ничего и не изменялось.
Вывод типов делается не для одного оператора, а для тела метода в целом. И изменение даже одного элемента может привести к непредсказуемым изменениям типов во всем методе.
А>В случае если код не корректен, то выполняем типизацию без хинтов полностью.
А>так как типизация идет не всего проекта целиком, а по единицам типизации (например функция), то в большенстве случаев нам будет достаточно проверить корректность хинтов.
Это не дает гарантии корректности кода.
Вот если список типов и их членов не менялся, то в принципе можно просто использовать сериализованное состояние полученное во время предыдущей типизации.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: ускорение типизации
От:
Аноним
Дата:
12.02.11 13:44
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>вначале проверяются хинты на корректность. Если все корректно, то ничего не делаем.
VD>Я уже тебе приводил пример. Заени int на long и все останется корректным.
VD>И вообще, корректным и не измененным все может остаться только если ничего и не изменялось.
VD>Вывод типов делается не для одного оператора, а для тела метода в целом. И изменение даже одного элемента может привести к непредсказуемым изменениям типов во всем методе.
значит, Влад, всетаки не понял.
для метода производится проверка типов в соотвествии с подсказками (для метода, а не для выражения или строки).
В случае корректности типизация уже есть.
А>>В случае если код не корректен, то выполняем типизацию без хинтов полностью.
А>>так как типизация идет не всего проекта целиком, а по единицам типизации (например функция), то в большенстве случаев нам будет достаточно проверить корректность хинтов.
VD>Это не дает гарантии корректности кода.
Это дает гарантию корректности кода, так как в немерли не выполняется глобальная типизация. (в случае глобальной типизации это бы не имело смысла)
VD>Вот если список типов и их членов не менялся, то в принципе можно просто использовать сериализованное состояние полученное во время предыдущей типизации.
проверка на корректность типизации и покажет изменялся или нет.
Здравствуйте, Аноним, Вы писали:
А>значит, Влад, всетаки не понял. А>для метода производится проверка типов в соотвествии с подсказками (для метода, а не для выражения или строки). А>В случае корректности типизация уже есть.
Дык для метода они и так хранится пока не изменится дерево типов или тело.
А>Это дает гарантию корректности кода, так как в немерли не выполняется глобальная типизация. (в случае глобальной типизации это бы не имело смысла)
В немерле есть макросы верхнего уровня. Так что любое изменение в аст верхнего уровня может привести к любым последствиям.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: ускорение типизации
От:
Аноним
Дата:
12.02.11 16:01
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>значит, Влад, всетаки не понял. А>>для метода производится проверка типов в соотвествии с подсказками (для метода, а не для выражения или строки). А>>В случае корректности типизация уже есть.
VD>Дык для метода они и так хранится пока не изменится дерево типов или тело.
А>>Это дает гарантию корректности кода, так как в немерли не выполняется глобальная типизация. (в случае глобальной типизации это бы не имело смысла)
VD>В немерле есть макросы верхнего уровня. Так что любое изменение в аст верхнего уровня может привести к любым последствиям.