IT - холивар.

Просто разговоры

Модератор: Noxer

Аватар користувача
[PK]onSide
Повідомлень: 590
З нами з: 22 серпня 2006 11:31

Повідомлення [PK]onSide »

плюсовые виртуальные функции, эксепшены, рантайм информация об обьектах, умные указатели, запреты использования указателей - это не велосипедный рантайм и не латентное жаволожество не ?
Я же написал "чистый сишник". Райнтайм, плюсы не использую, только WinAPI :)
Поконкретнее когда ты тыкаешь грязным поинтером то очень тяжело системе определять ткнул ты туда куда надо или не туда.
Если ты имеешь ввиду проверку валидности указателя, то для этого есть спец. ф-ции + обработчики исключений.
Нет границ , есть лишь препятствия.
>> Cacophony fan<<
>> Death fan<<
>> Buckethead fan<<
>> SRV fan<<
>> Meshuggah fan<<
Аватар користувача
pR13S7
Повідомлень: 7141
З нами з: 22 лютого 2007 11:44
Звідки: Галактика мозгососателей
Контактна інформація:

Повідомлення pR13S7 »

[PK]onSide
Я же написал "чистый сишник". Райнтайм, плюсы не использую, только WinAPI
вин-апи это С++ :)
обработчики исключений
и это тоже не чистый С, а С++. вот ассерты и прочая предпроцессорная муть чистый С
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

Если ты имеешь ввиду проверку валидности указателя, то для этого есть спец. ф-ции + обработчики исключений.
Ну давай помечтаем. указатель это int размерностью с машинное слово. 0 адрес определяет его невалидность например. остальные вполне себе нормальные. Как ты проверишь валидность ?
ты делаешь например
#define TIKAEM_GRYAZNIM_POINTEROM 1
while(i++<1000)
array = TIKAEM_GRYAZNIM_POINTEROM
каждый раз при косвенной адресации к массиву надо делать проверку ?

вин-апи это С++
Винапи это Си.
и это тоже не чистый С, а С++. вот ассерты и прочая предпроцессорная муть чистый С
Есть куча хаковых реализаций исключений на сях. Даже если ты их не юзаешь то сорт оф ОС-исключения есть, и по дефолту на системные каки выходят из программы.
ничто не истино и всё разрешено
Аватар користувача
pR13S7
Повідомлень: 7141
З нами з: 22 лютого 2007 11:44
Звідки: Галактика мозгососателей
Контактна інформація:

Повідомлення pR13S7 »

Мега Заяц
Винапи это Си.
ORLY ? 8O писать систему на плюсах и делать апи для С ? :mrgreen:
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

pR13S7
Мне всёравно на чём оно написано. Во всех доках и функциях чистейший си.
Другое дело что сейчас писать на сях в винапи это надо быть совсем неадекватным... Там же декларация окна на 200 строк только.

Ладно уломал. винапи вобще можно из Асма вызывать. Отладчики даже подхватывают что то типа MessageBox. Наверное просто хотели максимально простой ABI без объектов, виртуальных функций и всего такого...
ничто не истино и всё разрешено
Аватар користувача
[PK]onSide
Повідомлень: 590
З нами з: 22 серпня 2006 11:31

Повідомлення [PK]onSide »

Да уж))
Исключения генерирует процессор, есть такие штуки как SEH & VEH, так же есть ф-ция SetUnhandledExceptionFilter, в которую будут приходит ваши исключения. Сишные експешены это вообще другое=)

Валидность как проверить? В системе ведется учет выделяемых виртуальных страниц памяти, можно перебрать список и проверить юзается ли такой адрес. Плюс самое элементарное это обратится по адресу и словить исключение.
Что значит каждый раз проверять? Это твоя программа, ты должен знать что будет заноситься в твой массив. Конечно любители цпп просто вставят try-catch, не пытаясь сделать так чтобы неверные адреса туда не заносились вообще. Терпеть не могу такой подход, потому что девелопер должен отвечать за действия проги и продумывать все)

Дык оконные приложения не пишу. Хотя пару раз приходилось простенькие, геморно конечно, не спорю))
Нет границ , есть лишь препятствия.
>> Cacophony fan<<
>> Death fan<<
>> Buckethead fan<<
>> SRV fan<<
>> Meshuggah fan<<
Аватар користувача
LeXX
Повідомлень: 2459
З нами з: 30 серпня 2008 14:25
Группа: SporNA
Звідки: OdeSSa Town
Контактна інформація:

Повідомлення LeXX »

Мега Заяц писав:
А чо бы вдруг?
С того что это настолько огромный энтерпрайз что всё меркнет. Тоесть впринципе совершенно другой мир с кучей рефлексий, загрузок модулей, кодогенерацией. На плюсах такое ненавелосипедишь. А во вторых они не няшные.
/me какбэ в курсе
Ну, можно вспомнить всякие мертворожденные извраты в стиле Эйфеля и прочей бадяги, в конце концов, где он чисто номинально есть, но работает постольку поскольку
А ви таки додрочили стандартный набор быдлокодера включающий пхп, питон, жаваскрипт, эрланг и хаскиль ?
Просто даже мне какбы насрать что подсчёт ссылок это некрута, и то что в ФП можно делать эффективные сборщики мусора которые за один проход всё говно чистят. А еще жаву всегда можно потролить отсуствием TCO
о да, хаскель - мечта всей моей жизни. Хотя ващще всегда мечтал пойти на серьезную работку кодить на шекспире или мозготрахе, ога.
А потроллить много чем можно, даже тем же безграничным ынтырпрайзом - было бы желание

Добавлено спустя 37 секунд:
си + апи? мило.
If life fucks you, you are still alive
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

[PK]onSide
у тебя походу ваще всё в голове перемешалось.
В системе ведется учет выделяемых виртуальных страниц памяти, можно перебрать список и проверить юзается ли такой адрес.
на каждый байт оперативы флаг занятости ? Ну ладно можно пределы выданного mallocом куска проверять. ты понимаешь что на каждый MOV вызывать функцию которая будет проверять память это некруто совсем.
Плюс самое элементарное это обратится по адресу и словить исключение.
mov шаровой_адрес шаровые_данные
где что ловить в таком случае ?
Это твоя программа, ты должен знать что будет заноситься в твой массив.
идиалист такой идиалист.
Конечно любители цпп просто вставят try-catch, не пытаясь сделать так чтобы неверные адреса туда не заносились вообще.
ЦПП НЕ словит выход на границы массива

Добавлено спустя 2 минуты 3 секунды:
о да, хаскель - мечта всей моей жизни.
пока ты так думаешь ты и будешь относиться к нему как к чему-то заоблачному.
А потроллить много чем можно
Это вас, аматоров можно. Я давно перерос аматорский уровень ))
ничто не истино и всё разрешено
Аватар користувача
[PK]onSide
Повідомлень: 590
З нами з: 22 серпня 2006 11:31

Повідомлення [PK]onSide »

Да вроде не перемешивалось ничего))
Винда работает в защищенном режиме проца. При обращении по виртуальному адресу идет трансляция в физический с использованием таблицы страниц, и если там нет нужной страницы то сгенерится исключение которое сначала попадет в ядро винды а потом в пользовательское приложение. И да, это происходит при каждом MOV, это делает процессор.
Приложение может проверить примерно так try {mov eax,[any_address]} catch(memory_access_violation)
ЦПП НЕ словит выход на границы массива
Твоя программа, ты и лови. Почему то у меня и знакомых такого не бывает, ну разве что по собственной глупости и быстро исправляется. Я не знаю как можно написать такой код :salute: Можно пример реальной задачи где такое может быть?
Нет границ , есть лишь препятствия.
>> Cacophony fan<<
>> Death fan<<
>> Buckethead fan<<
>> SRV fan<<
>> Meshuggah fan<<
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

При обращении по виртуальному адресу идет трансляция в физический с использованием таблицы страниц,
говорю ж перемешалось.
Твоя программа, ты и лови. Почему то у меня и знакомых такого не бывает, ну разве что по собственной глупости и быстро исправляется. Я не знаю как можно написать такой код Можно пример реальной задачи где такое может быть?
выход за границы массива = обращение к любой памяти вобще. почему-то раньше ты допускал что такое может быть.

Добавлено спустя 16 минут 45 секунд:
ну в целом я понял куда ты клонишь. что то совсем забыл про x86 ))
Ваще то там АД. кернел моде, юзер моде. страничная память :x Никто почти не знает эти тонкости...
Востаннє редагувалось 28 квітня 2010 17:54 користувачем Мега Заяц, всього редагувалось 1 раз.
ничто не истино и всё разрешено
Аватар користувача
[PK]onSide
Повідомлень: 590
З нами з: 22 серпня 2006 11:31

Повідомлення [PK]onSide »

Что перемешалось? Ты спросил как это работает, я тебе обьяснил))
но обращение к любой памяти != выход за границы массива)) Одно дело, проверить валидность адреса, а другое обьявить массив из 10 элементов а в цикле for(int i=0;i==10;i++) вместо i<10, или по твоему среда разработки должна защищать от таких тупых ошибок?))
Нет границ , есть лишь препятствия.
>> Cacophony fan<<
>> Death fan<<
>> Buckethead fan<<
>> SRV fan<<
>> Meshuggah fan<<
Аватар користувача
Hel
Повідомлень: 3068
З нами з: 17 жовтня 2007 00:47
Группа: N/A
Звідки: Одесса
Контактна інформація:

Повідомлення Hel »

[PK]onSide
за такое вообще нужно пальцы отрывать.
Fuck
    
   
  

Yeah
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

Но обращение к любой памяти != выход за границы памяти данной процессу.. если точно. Да, для каждого процесса делается своя память. А когда то были сегменты. Но да, в пределах выданной процессу памяти в винде на x86 можно срать куда угодно...

Ну в хеллоу ворлдах может и не будет такого. Но мало ли. Разные обязанности по созданию и удалению...
Вот сделаешь ты например
char* fun(){ char* s = "segmentation fault"; return s }
и всё... хотя тоже децкая ошибка

Но мало ли. Разные обязанности по созданию и удалению например. в плюсах ваще всё на стеке мутят по raii и не паряца
ничто не истино и всё разрешено
Аватар користувача
LeXX
Повідомлень: 2459
З нами з: 30 серпня 2008 14:25
Группа: SporNA
Звідки: OdeSSa Town
Контактна інформація:

Повідомлення LeXX »

зайка, да мне ващще на троллинг в целом насрать =)
А чем-то заоблачным мну хаскель не кажется, просто он мну и нахрен не сдался. Как и пролог, фортран, кобол, ада, эйфель, матлаб и куча другой бадяги.
If life fucks you, you are still alive
Аватар користувача
Мега Заяц
Повідомлень: 1815
З нами з: 05 квітня 2006 21:12
Звідки: Odessa
Контактна інформація:

Повідомлення Мега Заяц »

Как и пролог, фортран, кобол, ада, эйфель, матлаб и куча другой бадяги.
А комон лисп ?
ничто не истино и всё разрешено
Відповісти