Re[19]: CLI/C++
От: IT Россия linq2db.com
Дата: 14.01.04 03:01
Оценка:
Здравствуйте, alexkro, Вы писали:

IT>>Обработка исключений — какая проблема? По спецификации Dispose не должен выбрасывать никаких исключений.


A>Мне интересно посмотреть на эту спецификацию. MSDN говорит, что может выбросить. Собственно, мне тоже хотелось бы, чтобы не выбрасывал, но пока все, что я встречал говорит об обратном.


Ну может насчёт спецификации я и загнул, но что-то на эту тему Рихтер поучал и в Роторе есть полный текст того, что про это думает MS.
Если нам не помогут, то мы тоже никого не пощадим.
Re[20]: CLI/C++
От: mihailik Украина  
Дата: 14.01.04 16:04
Оценка:
M>>Ты имеешь ввиду маппинг, генерируемый в compile-time? А разве Reflection + Reflection.Emit не решает то же самое проще и надёжнее?

VD>А ты пробовал? Ну, тогда попробуй.


ОК. Ты пробовал я вижу.

Сравни, пожалуйста маппинг, который ты генерировал в compile-time с маппингом, который ты генерировал на Reflection.Emit.


VD>Поймешь насколько это "проще". И насколько "надежнее" получается. К тому, же сама генерация отнимает время. А так все в компайл-тайме.


Rsdn.Framework.Data критикуешь? Странное место ты для этого выбрал
... << RSDN@Home 1.1.0 stable >>
Re[20]: CLI/C++
От: mihailik Украина  
Дата: 14.01.04 16:04
Оценка:
M>>Опять же, есть поля, которые нужно освобождать, а есть ссылки на всяких там Parent.

IT>Я же говорю, в особо клинических случаях никто не запрещает писать реализацию в ручну.


Это нормальный случай, не клинический.




IT>>> Обработка исключений — какая проблема? По спецификации Dispose не должен выбрасывать никаких исключений.


M>>Ой, ну это уж точно вряд ли. Ты, наверное с Finalize перепутал.


IT>Не перепутал.


Ну ты невнимательно читаешь. В тексте не жёсткий запрет и даже явно говорится, что некоторые исключения возможны. Кроме того, это совсем не спецификация.


M>>Как ты думаешь, если я перед завершением using FileStream дискетку из дисковода вытащу. Будет исключение


IT>Попробуй сам и посмотри что будет. В чём проблема.


Какая проблема?


M>>Для Dispose скорее 40%. И вообще, это будет тот же ужастный стиль C. Чтобы написать просто и кратко нужно будет из мозгов котлету сделать.


IT>Такое ощущение, что ты только Dispose и программируешь. Я что-то не замечал, чтобы эта задача так часто возникала. Бывает иногда, бывает даже, что нужно освобождать несколько объектов. Но если в них самих Dispose написан корректно, то особой проблемы с порядком освобождения не возникает.


Вот именно! Согласен на все сто.

Программирование Dispose задача редкая, но нужно её делать внимательно. Именно поэтому это лучше сделать аккуратно руками, чем полагаться на догадки компилятора.

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


M>>Ты имеешь ввиду маппинг, генерируемый в compile-time? А разве Reflection + Reflection.Emit не решает то же самое проще и надёжнее?


IT>Решает, но не проще.


Не проще для кого? Для конечного пользователя вроде намного проще.
... << RSDN@Home 1.1.0 stable >>
Re[21]: CLI/C++
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.01.04 17:33
Оценка:
Здравствуйте, mihailik, Вы писали:

M>ОК. Ты пробовал я вижу.


Именно.

M>Сравни, пожалуйста маппинг, который ты генерировал в compile-time с маппингом, который ты генерировал на Reflection.Emit.


Генерация на Emit так и не закончилась. Задолбался угадывать, что за ошибку я допустил. А генерация кода никаких проблем не вызывает.

VD>>Поймешь насколько это "проще". И насколько "надежнее" получается. К тому, же сама генерация отнимает время. А так все в компайл-тайме.


M>Rsdn.Framework.Data критикуешь? Странное место ты для этого выбрал


Каким боком тут Data? Там вся сериализация на рефлекшоне и без генерации кода вообще.
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: CLI/C++
От: IT Россия linq2db.com
Дата: 15.01.04 01:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Каким боком тут Data? Там вся сериализация на рефлекшоне и без генерации кода вообще.


Там генерации выше крыши.
Если нам не помогут, то мы тоже никого не пощадим.
Re[22]: CLI/C++
От: mihailik Украина  
Дата: 15.01.04 08:35
Оценка:
M>>Сравни, пожалуйста маппинг, который ты генерировал в compile-time с маппингом, который ты генерировал на Reflection.Emit.

VD>Генерация на Emit так и не закончилась. Задолбался угадывать, что за ошибку я допустил. А генерация кода никаких проблем не вызывает.


Emit успешно используется многими людьми. Проблема, очевидно, в тебе а не в Emit'е
... << RSDN@Home 1.1.0 stable >>
Re[23]: CLI/C++
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.01.04 22:43
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Emit успешно используется многими людьми. Проблема, очевидно, в тебе а не в Emit'е


Ну, то что я ламер, это понятно. Не ясно что же остальные то при комунизмен не живут? Или у вас там уже к тому близко?
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[23]: CLI/C++
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.01.04 01:04
Оценка:
Здравствуйте, IT, Вы писали:

VD>>Каким боком тут Data? Там вся сериализация на рефлекшоне и без генерации кода вообще.


IT>Там генерации выше крыши.


Тыкни пальзем... где?
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: CLI/C++
От: IT Россия linq2db.com
Дата: 16.01.04 01:37
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Там генерации выше крыши.


VD>Тыкни пальзем... где?


Генерацией заменены самые медленные вещи рефлекшина — Activator.CreateInstance и SetValue/GetValue полей и свойств. Ну и специальная фича последней версии полностью построенная на генерации — абстрактные классы
Автор: IT
Дата: 01.12.03
, позволяет добиться практически декларативного объявления бизнес объекта.
Если нам не помогут, то мы тоже никого не пощадим.
Re[25]: CLI/C++
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.01.04 14:48
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, VladD2, Вы писали:


IT>>>Там генерации выше крыши.


VD>>Тыкни пальзем... где?


IT>Генерацией заменены самые медленные вещи рефлекшина — Activator.CreateInstance


Думаю, на счет Activator.CreateInstance ты можешь ошибаться. По крайней мере CreateInstance массивов работает со скоростью звука.

IT> и SetValue/GetValue полей и свойств. Ну и специальная фича последней версии полностью построенная на генерации — абстрактные классы
Автор: IT
Дата: 01.12.03
, позволяет добиться практически декларативного объявления бизнес объекта.


Так вы о рсдн.дате. Ясно. А я то думал о стандартной. Тогда ясно.
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: CLI/C++
От: IT Россия linq2db.com
Дата: 16.01.04 15:06
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Думаю, на счет Activator.CreateInstance ты можешь ошибаться.


Малость притормаживает. Но это можно будет решить шаблонами.
Если нам не помогут, то мы тоже никого не пощадим.
Re[24]: CLI/C++
От: mihailik Украина  
Дата: 16.01.04 16:37
Оценка:
M>>Emit успешно используется многими людьми. Проблема, очевидно, в тебе а не в Emit'е

VD>Ну, то что я ламер, это понятно. Не ясно что же остальные то при комунизмен не живут? Или у вас там уже к тому близко?


А ты не путаешь электрификацию всей страны с истинным коммунизмом?


Лично я делал на Emit'е обработчики WM-сообщений. Типа того, что ты там в форуме WinForms советовал на Hashtable.

Правда, код выслать не могу, потерялся при поломке винта. Там, правда, работы было на пятнадцать копеек. Если будешь подкалывать я его заново наваляю
... << RSDN@Home 1.1.0 stable >>
Re[25]: CLI/C++
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.01.04 21:02
Оценка: +1
Здравствуйте, mihailik, Вы писали:

M>Правда, код выслать не могу, потерялся при поломке винта. Там, правда, работы было на пятнадцать копеек. Если будешь подкалывать я его заново наваляю


Подкалывать не буду. Он никому ненужен.
... << RSDN@Home 1.1.2 beta 3 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: CLI/C++
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.01.04 19:24
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Лично я делал на Emit'е обработчики WM-сообщений. Типа того, что ты там в форуме WinForms советовал на Hashtable.


Да братец, это та самая premature optimization, которой пугают маленьких детей. Обработка гуевых сообщений это последнее что нужно оптимайзить, особенно супротив хештаблицы.

Вобще Влад прав, генерация сразу в IL-код крайне немасштабируема в плане развития. В свое время нам пришлось отказаться от генерации проксей через Emit, потому что добавление новых фич съедало огромное количество времени.
... << RSDN@Home 1.1.2 beta 3 (Win32NT 5.1.2600.0) >>
AVK Blog
Re[26]: CLI/C++
От: mihailik Украина  
Дата: 19.01.04 15:27
Оценка:
AVK>Да братец, это та самая premature optimization, которой пугают маленьких детей. Обработка гуевых сообщений это последнее что нужно оптимайзить, особенно супротив хештаблицы.

Согласен на 100%. Это был сугубо исследовательский проект.


AVK>Вобще Влад прав, генерация сразу в IL-код крайне немасштабируема в плане развития. В свое время нам пришлось отказаться от генерации проксей через Emit, потому что добавление новых фич съедало огромное количество времени.


Я понимаю так. Emit однозначно нужен там, где производительность может дать хорошую отдачу. Слово же "масштабирование" в этом контексте очень туманно.
... << RSDN@Home 1.1.0 stable >>
Re[16]: CLI/C++
От: Воронков Василий Россия  
Дата: 19.02.04 09:38
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

Ш>>Попробуйте, в качестве упражнения, сделать хороший текстовый редактирующий элемент, такого же класса или лучше, как в студии. Если я правильно понял, Янус использует Scintillе-у? А что, свой было влом сделать?


AVK>Зачем?


Зачем в принципе-то понятно. А вот делать редактор лучше чем в студии "в качестве упражнения" это ж каким маньяком надо быть?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.