Цитата: P.S. EMB обнародовала какие-то свои наработки по LLVM _http://cc.embarcadero.com/item/29496 (порт дебагера под Win64). Необычно для них. Глядишь и в LLVM комитить будут
Да, я тоже заметил. Там лицуха наверное GPL, или подобная. Иначе хрен чего они бы открыли. Вообще, для меня , критерием зрелости тулчейна является наличие мощного интегрированного отладчика. Остальное постольку-поскольку.
Порт LLDB под винь это очень хорошая новость для опенсорсников, которые часто с необъяснимым фанатизмом кладут болт на виндовые порты своих продуктов. Теперь по идее, ФПЦ может отказаться от религиозного GDB в пользу LLDB, особенно если эмба допилит последний. И, формат отладочных символов теперь достаточно нетрудно будет реверсироваться.
Вообще, надо признать, правильным путем идут товарищи.
Цитата: Глядишь и в LLVM комитить будут
боюсь, только, из-за этого отношения с M$ могут вконец испортиться.
Цитата: Для record вызывается системная FinalizeRecord, которая финализирует всё, что может потребовать финализации. Причем юзает для этого RTTI, кажется, что есть причина недовольства - почему компилятор не генерит для каждого типа записи свой спец. финализатор? Тем более, что после введение расширенных записей это неплохо вписывается.
И, что важнее, она не только финализатор вызывает , но инициализатор тоже.
Таким образом, если в объекте или записи хотя бы они managed член, то вызывается эта пара.
По идее, можно было бы дефолт ctor и dtor прилепить, даже просто перехватив этот вызов, или перекомпилить System.pas
А дальше найти к-тор, и д-тор, скажем, при помощи атрибутов (атрибуты ведь поддерживаются у рекордов, или нет?).
А это все медленно.Даже простое включение такой вот управляемого типа гарантирует в прологе и эпилоге рутины бутерброд фильтра исключений, плюс, не знаю точно, но вроде бы это запрещает подстановку(или не запрещает?) функции. Не должны быть value типы такими, имхо.
Для меня капканом был assumption, что если managed члены нулятся, то и остальные тоже. А это НЕ ТАК!