Здравствуйте, SaZ, Вы писали:
N>>Если выбросить ненужный метод Main, то получится 88. У меня есть решение в 65.
SaZ>оффтоп: Владимир, не томите, выкладывайте уже
Даже 62:
class X<A,B,C,D,E>{class Y:X<Y,Y,Y,Y,Y>{Y.Y.Y.Y.Y.Y.Y.Y.Y y;}}
Здравствуйте, nikov, Вы писали:
N>Здравствуйте, Nuseraro, Вы писали:
N>>Думаю, цель достигнута:
N>Неплохая первая попытка. А можешь уложиться меньше, чем в 100 байт?
template<typename A, typename B, typename C, typename D, typename E>
struct X {
struct Y : public X<Y, Y, Y, Y, Y> {
typedef X<Y, Y, Y, Y, Y> base;
typename base::Y::base::Y::base::Y::base::Y::base::Y::base::Y::base::Y *x;
};
};
Ввиду того, что Y::Y — это сигнатура конструктора, присутствующего в С++ всегда по умолчанию, и перекрывающая вложенный тип Y, доставшийся от базового X, пришлось к вложенному Y указать явный путь через базовый тип. В любом случае, компилятор отрабатывает мгновенно.
Для дотнета там 5*5*9=255 всего типов надо сгенерить, т.е. C# компилятору тоже делать особо нечего в течении минуты. Как показала попытка посмотреть это все рефлектором, тормозит сам рантайм, а не компилятор, а вот это уже крайне неприятно. Да и 28 метров сборка — перегиб.
Здравствуйте, nikov, Вы писали:
N>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?
Так как в условиях задачи не оговариваются характиристики железа, то думаю любой код на NET, компилирующийся на 286-х будет компилироваться больше минуты
Здравствуйте, Misha87, Вы писали:
N>>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты? M>Так как в условиях задачи не оговариваются характиристики железа, то думаю любой код на NET, компилирующийся на 286-х будет компилироваться больше минуты
Ну скажем, на современном процессоре с частотой около 2 GHz. Исходник <100 байт, компиляция >1 мин (нетрудно сделать и ещё больше), но а конце концов успешно завершается.
Здравствуйте, nikov, Вы писали:
N>Проще уж было бы исходники положить на медленную шару. N>А можешь без искусственных аппаратных задержек и без ссылок на внешние файлы?
N>Вариант со стотыщмильёнами пустых файлов исходников тоже не считается.
Т.е. это чисто время работы компилятора, без времени на чтение каких-либо файлов?
Здравствуйте, Nuseraro, Вы писали:
N>Совсем забыл университетский курс и не помню, можно ли считать такое долгой компиляцией?
N>Если да, то для затравки вот:
Экземпляр класса-атрибута создаётся при получении его через рефлексию
Здравствуйте, 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 виде для сохранения в метаданных не обращаясь при этом к коду атрибута?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, 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 в данном контексте документации.
Здравствуйте, AndrewVK, Вы писали:
N>>Какой самый короткий код вы можете написать, чтобы он компилировался больше минуты?
AVK>Вложенные лямбды, ломающие эвристики компайлера?
Такой способ есть, но, боюсь, в 100 байт здесь никак не уложиться.
Здравствуйте, VladD2, Вы писали:
VD>А по уму как на такую фигню нужно реагировать? И вообще, в реальной жизни это может быть применено?
Я похожее применял для ран-тайм генерации выражений, работало почти так же быстро, как компиленный вариант. Только каждый уровень со своими параметрами шел.