[Этюд, C#] Долгая компиляция
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.07.10 12:24
Оценка: 60 (3)
Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?
Re: [Этюд, C#] Долгая компиляция
От: Misha87  
Дата: 21.07.10 12:26
Оценка:
Здравствуйте, nikov, Вы писали:

N>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?


Так как в условиях задачи не оговариваются характиристики железа, то думаю любой код на NET, компилирующийся на 286-х будет компилироваться больше минуты
Re[2]: [Этюд, C#] Долгая компиляция
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.07.10 12:30
Оценка:
Здравствуйте, Misha87, Вы писали:

N>>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?

M>Так как в условиях задачи не оговариваются характиристики железа, то думаю любой код на NET, компилирующийся на 286-х будет компилироваться больше минуты

Ну скажем, на современном процессоре с частотой около 2 GHz. Исходник <100 байт, компиляция >1 мин (нетрудно сделать и ещё больше), но а конце концов успешно завершается.
Re: [Этюд, C#] Долгая компиляция
От: Aen Sidhe Россия Просто блог
Дата: 21.07.10 12:31
Оценка: :))) :))
Здравствуйте, nikov, Вы писали:

N>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?


Boost можно использовать? :D
С уважением, Анатолий Попов.
ICQ: 995-908
Re[2]: [Этюд, C#] Долгая компиляция
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.07.10 12:32
Оценка:
Здравствуйте, Aen Sidhe, Вы писали:

AS>Boost можно использовать? :D


C#, без ссылок на внешние сборки кроме mscorlib.
Re: [Этюд, C#] Долгая компиляция
От: Lloyd Россия  
Дата: 21.07.10 12:40
Оценка: :)))
Здравствуйте, nikov, Вы писали:

N>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?


AssemblyKeyFileAttribute с ссылкой на файл на медленной шаре?
Re[2]: [Этюд, C#] Долгая компиляция
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.07.10 12:44
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>AssemblyKeyFileAttribute с ссылкой на файл на медленной шаре?


Проще уж было бы исходники положить на медленную шару.
А можешь без искусственных аппаратных задержек и без ссылок на внешние файлы?

Вариант со стотыщмильёнами пустых файлов исходников тоже не считается.
Re[3]: [Этюд, C#] Долгая компиляция
От: Lloyd Россия  
Дата: 21.07.10 12:45
Оценка:
Здравствуйте, nikov, Вы писали:

N>Проще уж было бы исходники положить на медленную шару.

N>А можешь без искусственных аппаратных задержек и без ссылок на внешние файлы?

N>Вариант со стотыщмильёнами пустых файлов исходников тоже не считается.


Т.е. это чисто время работы компилятора, без времени на чтение каких-либо файлов?
Re[4]: [Этюд, C#] Долгая компиляция
От: nikov США http://www.linkedin.com/in/nikov
Дата: 21.07.10 12:46
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Т.е. это чисто время работы компилятора, без времени на чтение каких-либо файлов?


Да.
Re[5]: [Этюд, C#] Долгая компиляция
От: Lloyd Россия  
Дата: 21.07.10 12:49
Оценка: :)
Здравствуйте, nikov, Вы писали:

L>>Т.е. это чисто время работы компилятора, без времени на чтение каких-либо файлов?


N>Да.


На Nemerle могу — макрос с Thread.Sleep(60*1000).
Re: [Этюд, C#] Долгая компиляция
От: HowardLovekraft  
Дата: 21.07.10 13:03
Оценка:
Какая-нибудь засада с рекурсивным определением generic'ов?
Re: [Этюд, C#] Долгая компиляция
От: Nuseraro Россия  
Дата: 21.07.10 13:08
Оценка: :)
Совсем забыл университетский курс и не помню, можно ли считать такое долгой компиляцией?

Если да, то для затравки вот:

namespace zatravka
{
    public class DAttribute : System.Attribute
    {
        static DAttribute()
        {
            System.Threading.Thread.Sleep(70000);
        }
    }

    class A
    {
        [D]
        static void Main(string[] args)
        {
            
        }
    }
}
Homo Guglens
Re[2]: [Этюд, C#] Долгая компиляция
От: Lloyd Россия  
Дата: 21.07.10 13:11
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>Если да, то для затравки вот:


Компилится мгновенно.
Re[2]: [Этюд, C#] Долгая компиляция
От: Пельмешко Россия blog
Дата: 21.07.10 13:38
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>Совсем забыл университетский курс и не помню, можно ли считать такое долгой компиляцией?


N>Если да, то для затравки вот:


Экземпляр класса-атрибута создаётся при получении его через рефлексию
Re[3]: [Этюд, C#] Долгая компиляция
От: TK Лес кывт.рф
Дата: 21.07.10 14:54
Оценка:
Здравствуйте, Lloyd, Вы писали:

N>>Если да, то для затравки вот:

L>Компилится мгновенно.

Наверное, имелся в виду SecurityAttribute. У него CreatePermission вызывается на этапе компиляции.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: [Этюд, C#] Долгая компиляция
От: 0K Ниоткуда  
Дата: 21.07.10 16:34
Оценка:
Здравствуйте, TK, Вы писали:

TK>Наверное, имелся в виду SecurityAttribute. У него CreatePermission вызывается на этапе компиляции.


Вроде нет.
Re: [Этюд, C#] Долгая компиляция
От: 0K Ниоткуда  
Дата: 21.07.10 16:46
Оценка: +1
Здравствуйте, nikov, Вы писали:

N>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?


Не связано с ResourceProvider'ом?
Re[5]: [Этюд, C#] Долгая компиляция
От: TK Лес кывт.рф
Дата: 21.07.10 19:14
Оценка:
Здравствуйте, 0K, Вы писали:

TK>>Наверное, имелся в виду SecurityAttribute. У него CreatePermission вызывается на этапе компиляции.

0K>Вроде нет.

В документации написано:

At compile time, attributes convert security declarations to a serialized form in metadata. Declarative security data in metadata is created from the permission that this method returns that corresponds to this attribute.


Как вы представляете компилятор получит из атрибута security declarations в serialized виде для сохранения в метаданных не обращаясь при этом к коду атрибута?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: [Этюд, C#] Долгая компиляция
От: Пельмешко Россия blog
Дата: 21.07.10 19:43
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, 0K, Вы писали:


TK>>>Наверное, имелся в виду SecurityAttribute. У него CreatePermission вызывается на этапе компиляции.


0K>>Вроде нет.


Я проверил, не вызывается конечно же.

TK>В документации написано:


TK>
TK>At compile time, attributes convert security declarations to a serialized form in metadata.
Declarative security data in metadata is created from the permission that this method returns that corresponds to this attribute.
TK>


TK>Как вы представляете компилятор получит из атрибута security declarations в serialized виде для сохранения в метаданных не обращаясь при этом к коду атрибута?


Так же как и с обычными атрибутами: информация о том, какой конструктор атрибута вызвали, какие параметры передали, какие named-параметры указали и в какое значение — это и есть сериализованная форма атрибута — security declarations в данном контексте документации.
Re[7]: [Этюд, C#] Долгая компиляция
От: TK Лес кывт.рф
Дата: 21.07.10 21:16
Оценка: 42 (2)
Здравствуйте, Пельмешко, Вы писали:

0K>>>Вроде нет.

П>Я проверил, не вызывается конечно же.

точно, начиная со второй версии фреймворка это изменилось. раньше, пермишены сохранялись в xml виде прямо в метаданных.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.