Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Free()   Найти похожие ветки 

 
Loginov Dmitry ©   (2007-02-28 22:16) [120]

> Тут в соседней ветке Алекс Коншин пишет про исключения -
> почитай, оно интересно


Интересно конечно. Постараюсь в эти технологии трассировки стэка вникнуть поскорее.
Но хотелось бы ответа на вопрос [118].


 
Аноним   (2007-03-01 00:12) [121]


> Постараюсь в эти технологии трассировки стэка вникнуть поскорее.
>  

Если вникнешь, надобность ответа на [118] отпадет сама собой


 
Loginov Dmitry ©   (2007-03-03 12:12) [122]

Потратил весьма много времени на надлежащее изменение исходников Matrix32. Были учтены все советы и критика, имевшая место в данной ветке. Работа с исключениями улучшена (причем коренным образом). Многие функции по-прежднему обернуты в try...except, однако смысл такой обертки меняется в зависимости от директивы условной компиляции RecreateEObj. Если директива включена, то объект исключения пересоздается, причем в текст исключения может быть добавлена отладочная информация. Если директива выключена, то оператор try...except компилируется как:

try
....
except
  on E: Exception do
    raise;
end;


То есть фактически получаем Stack frame, который к тому же может быть очень полезным при использовании отладочных средств (jcl, библиотека отладки от Алекса Коншина). Также при выключенной опции RecreateEObj размер ехе-шника уменьшается примерно на 5 Кбайт.

Также немало внимания было уделено оформлению кода. Теперь код Matrix32, я считаю, вполне соответствует общепризнанным стандартам.

Ссылка также:

http://matrix.kladovka.net.ru/download.php?getfilename=uploads/heart/matrix32.zip

Интересно было бы узнать, чем же теперь библиотека недотягивает до open-source - инструментария? (Кроме недостатка в объемах тестирования)


 
euru ©   (2007-03-03 12:53) [123]


> Loginov Dmitry ©   (03.03.07 12:12) [122]
Сразу скажу, исходники я не смотрел. Но как по типу исключения Exception программа определит, что именно вызвало исключение?


 
Loginov Dmitry ©   (2007-03-03 12:56) [124]

Есть тип исключения. Есть текст исключения. Есть стек вызовов. Что еще нужно?


 
Ketmar ©   (2007-03-03 13:31) [125]

интересные люди.
except
 raise;
end;

и какую-нибудь фигню перед raise, чтобы шибко умный компилер не удалил код (кстати, а он удаляет подобные пустые обработчики? или умишка не хватает?).


 
Loginov Dmitry ©   (2007-03-03 13:58) [126]

от D7 не удаляет. А вообще - не принципиально. Пусть хоть удаляет. Stack frames всегда можно и в опциях проекта включить.


 
Ketmar ©   (2007-03-03 14:07) [127]

точно так же, как и отладчик. в этом случае нафиг нужны трассировки?


 
Loginov Dmitry ©   (2007-03-03 21:22) [128]

А кстати: GUID для определения живочести ссылки рулит не по децки (глобальный список вообще курит в стороне), если создать миллиончик объектов TMatrix (в гуидами это добро создается на секунду, с глобальным списком - не менее часа) (это так, навеяло веткой http://delphimaster.net/view/15-1172930690/) :))
P.S. [122] пост проигнорили конкретно :(


 
Loginov Dmitry ©   (2007-03-03 21:26) [129]

Хотя вру все-таки. Убрал проверку IndexOf, и скорость стала одинаковой :)



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.74 MB
Время: 0.052 c
2-1172965852
arturich
2007-03-04 02:50
2007.03.25
Опять про автозаполнение формы через webbrowser


2-1172693006
Lonix
2007-02-28 23:03
2007.03.25
Вопрос с отправкой мыла


15-1172737610
Ega23
2007-03-01 11:26
2007.03.25
Не ставятся breakpoint-ы в проекте....


15-1172894151
Nic
2007-03-03 06:55
2007.03.25
Уважаемая администрация


15-1172574124
DrDe
2007-02-27 14:02
2007.03.25
Delphi7, компи.....