@ProCxx

Страница 397 из 2477
Andrey
05.11.2016
01:17:37
а если ты написал, а через 2 года сам же делаешь хотфикс с критикал багой, то это плохой код

Sergey
05.11.2016
01:17:41
по твоему лучше клубок ифов нафигачить?

чем имитировать исключеня через лонгджамп?

Vladislav
05.11.2016
01:18:33
Google
Sergey
05.11.2016
01:18:44
да, должны

Andrey
05.11.2016
01:19:08
Sergey
05.11.2016
01:19:10
но многие не считают себя страдающими

одного поля ягода

Andrey
05.11.2016
01:20:07
не одного. goto переходит по области видимости

ovf
05.11.2016
01:20:37
ну с исключениями примерно как с автоматическим управлением памятью по-моему. либо ты знаешь, какие функции у тебя могут вернуть ошибку и какие ресурсы тебе при этом надо освободить, либо пиши на жабе

Andrey
05.11.2016
01:20:44
а лонг дажмп это вообще такая ебень, что можно не просто себе в ногу выстрелить, а взорвать всех рядом

Sergey
05.11.2016
01:21:44
волка боятся - в лес не ходить

ovf
05.11.2016
01:21:58
(и да, продуманные макросы позволяют писать аккуратный и красивый код на тему проверки результатов функций и освобождения ресурсов)

Vladislav
05.11.2016
01:22:11
волка боятся - в лес не ходить
лонг дажмпов бояться - на сишке не писать

Sergey
05.11.2016
01:22:19
+++

Продуманные макросы говоришь? Вототлаживать то такие продуманные макросы и не удобно

Andrey
05.11.2016
01:23:48
да кто же боится

Google
Sergey
05.11.2016
01:24:10
Ну а так то да, теже волки и лес

Andrey
05.11.2016
01:24:15
я о том, что любое стрельба из базуки должна быть оправданна

вот я бы на вас посмотрел, когда нужно модуль-либу отлаживать, а там джампы

ovf
05.11.2016
01:25:30
а зачем отлаживать макросы? в них баги?

тогда это не очень продуманные макросы

Andrey
05.11.2016
01:25:45
а причём тут вообще макросы?

ovf
05.11.2016
01:26:01
ну ты зачем-то жалуешься на отладку макросо

*макросов. что бы это ни значило

Andrey
05.11.2016
01:26:27
про отладку макросов я не говорил ни слова

ovf
05.11.2016
01:26:55
извини, это не ты, а сергей

Vladislav
05.11.2016
01:28:07
ADDRESS alloc(nbytes) POS nbytes; { REG POS rbytes = round(nbytes+BYTESPERWORD,BYTESPERWORD); LOOP INT c=0; REG BLKPTR p = blokp; REG BLKPTR q; REP IF !busy(p) THEN WHILE !busy(q = p->word) DO p->word = q->word OD IF ADR(q)-ADR(p) >= rbytes THEN blokp = BLK(ADR(p)+rbytes); IF q > blokp THEN blokp->word = p->word; FI p->word=BLK(Rcheat(blokp)|BUSY); return(ADR(p+1)); FI FI q = p; p = BLK(Rcheat(p->word)&~BUSY); PER p>q ORF (c++)==0 DONE addblok(rbytes); POOL }

кусок кода sh. Они знают толк в продуманных макросах)

ovf
05.11.2016
01:28:42
да, борн был большой фанат алгола

Andrey
05.11.2016
01:29:01
вот например давно уже думаю — зачем люди плодят макросы, когда в большинстве случаев можно вызвать inline функцию

Andrey
05.11.2016
01:29:47
в сишке - далеко не всегда
а чего? мне кажется там компилятор нифига не глупее

Vladislav
05.11.2016
01:30:09
а чего? мне кажется там компилятор нифига не глупее
ну вот как ты определишь банальный min ?

ovf
05.11.2016
01:30:11
например, нельзя, когда я на макросе изображаю свой control flow

или вообще всё что угодно, кроме тупого выражения

Andrey
05.11.2016
01:32:09
ну вот как ты определишь банальный min ?
int min ( int a, int b) { return !(b<a)?a:b; :)))

Google
Sergey
05.11.2016
01:32:20
иногда в макросе генерят код или даже не генерят, а пихают в параметр макроса, а там он где-то подставляется внутри макроса и разворачивается в кусок функции, функцию или объект.

Vladislav
05.11.2016
01:32:27
Sergey
05.11.2016
01:32:30
пришло время отлаживать макросы

макросы сами не отладятся

Andrey
05.11.2016
01:34:47
ну, ок. Но ведь есть же libmath. Хотя, да, не всегда есть возможность притащить в проект

Sergey
05.11.2016
01:35:22
Владислав, _Generic тебе в помошь

Vladislav
05.11.2016
01:35:32
у макроса для min, впрочем, свои неустранимые проблемы

Andrey
05.11.2016
01:35:38
но у вас тоже достаточно синтетический кейс

Sergey
05.11.2016
01:35:40
макрос там будет тонкой прослойкой

Andrey
05.11.2016
01:36:04
я вот постоянно вижу более тривиальное использование

Vladislav
05.11.2016
01:36:50
Sergey
05.11.2016
01:36:51
вообще странно не смотря на то что у нас схх тред а не сpp - сишники не врываются и не защищают свой сишный мир

Sergey
05.11.2016
01:36:59
1

ovf
05.11.2016
01:37:06
а зачем _generic для min?

ovf
05.11.2016
01:37:31
а от кого его защищать? :-)

ему что-то угрожает?

Vladislav
05.11.2016
01:37:43
сишников очень мало
хаскеллистов еще меньше

Andrey
05.11.2016
01:37:48
голактеко опасносте

Google
Sergey
05.11.2016
01:37:59
вообще да, большинство сионистов считают, что все крестовики вынуждены страдать

я не смог доказать ни одному сишнику, что на самом деле страдают сионисты, а не крестушки

Vladislav
05.11.2016
01:38:41
а зачем _generic для min?
предлагаешь для каждого типа перегружать вручную?

Sergey
05.11.2016
01:39:09
ладно, одному смог

ovf
05.11.2016
01:39:18
_generic это и есть вручную

Andrey
05.11.2016
01:39:37
ок, давайте я ещё наброшу

ovf
05.11.2016
01:39:55
а автоматически -- это без _generic

Sergey
05.11.2016
01:39:57
min, minf, mini,minl

да, доставай вентилятор

Admin
ERROR: S client not available

Andrey
05.11.2016
01:40:46
min(0.5, 0.7)
вот поэтому там и строгая нотация int — компилятор не даст писать double там, где этого делать нельзя. Не то, что там всякие макросы, где что хуйнёшь то и выполнится.

Andrey
05.11.2016
01:41:09
мы всё таки работает со строго типизированным языком, а не с явоскриптами там всякими

я бы хотел универсальный min, можно?
шаблонные функции к вашим услугам

Vladislav
05.11.2016
01:41:39
обобщения не нарушают строгую типизацию, просто в сишечке с ними туго

ovf
05.11.2016
01:41:58
min, minf, mini,minl
а что это за набор функций?

Sergey
05.11.2016
01:42:00
> c > шваблонные функции

Sergey
05.11.2016
01:42:48
а что это за набор функций?
типа перегрузка, типа очень вручную

Google
ovf
05.11.2016
01:43:22
забавно, что ты называешь обобщением систему для генерации кода из шаблона с подстановкой типов

я бы наоборот назвал это обчащением

Sergey
05.11.2016
01:43:48
и не только типов

ovf
05.11.2016
01:43:57
тем хуже

Andrey
05.11.2016
01:44:55
знаете, что раздражает в сишных прогах

когда они падают и вы открываете корку в gdb, вы не видите что стало с макросами

вернее, вы видите что стало после них

ovf
05.11.2016
01:45:46
стало с макросами?

а?

Andrey
05.11.2016
01:46:08
да, хуёво сказал

Sergey
05.11.2016
01:46:18
си:

https://github.com/guillermocalvo/exceptions4c

довольно впечатляет

ovf
05.11.2016
01:47:35
и тем не менее
ну на min (и ещё пожалуй qsort) шаблоны, конечно, можно попробовать продавать

Sergey
05.11.2016
01:47:52
так что сетджмп хорошо

ovf
05.11.2016
01:48:38
когда они падают и вы открываете корку в gdb, вы не видите что стало с макросами
а ты, кстати, собрал с достаточным уровнем дебага, чтобы в dwarf попали описания макросов?

я в gdb могу, например, делать p <макрос> и т.д.

Sergey
05.11.2016
01:49:26
они туда не попадают. у меня плохо с сарказмом

Vladislav
05.11.2016
01:50:37
https://github.com/guillermocalvo/exceptions4c
https://www.youtube.com/watch?v=XX1Ccp0AQ80

ну на min (и ещё пожалуй qsort) шаблоны, конечно, можно попробовать продавать
а еще структуры данных, умные указатели и множество других полезных вещей

Andrey
05.11.2016
01:52:15
я в gdb могу, например, делать p <макрос> и т.д.
да, при наличии исходников всё можно. Троллинг не удался

Страница 397 из 2477