- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
https://habr.com/ru/post/497114/
А, кстати о темплейтах. Рабочий проект, где каждый .cpp-файл компилируется по 5-7
минут даже без оптимизаций? Время до первой диагностики компилятора в те же 5
минут? Пердёж компилятора на десятки мегабайт в случае ошибок? Да, я сохранял в
файл и замерял ради интереса. Потребление памяти компилятором в 5-10 гигов на
файл? Билдсервер с 32 ядрами и 64 гигами памяти, на которой нельзя запускать
больше чем этак 8 параллельных потоков компиляции? Проект на несколько десятков
kloc, собирающийся на ней полчаса? Получите, распишитесь.
И тулинг. Мне куда проще находить, на что у меня тратится память, в том же хаскеле,
который, как известно, только для факториалов и годится. Системы сборки? Ха. Апгрейд
компилятора для прода? Жди лет пять после релиза стандарта. Пакетный менеджер? Ха-ха.
Reproducible builds? Ха-ха-ха. Все места, где я работал, на это либо вообще забивали,
либо вкладывали какое-то совершенно неадекватное количество ресурсов. Я понимаю,
почему так происходит, у этого всего есть абсолютно логичные и объективные причины,
по-другому и выйти не могло, но я устал так жить.
Fike 27.04.2020 23:55 # +1
Needless 28.04.2020 00:18 # 0
И их все нужно иметь одновременно, если работаешь над чужими проектами.
BECEHHuu_nemyx 28.04.2020 00:51 # 0
Web_Monkey 28.04.2020 00:56 # 0
guest8 28.04.2020 10:43 # −999
guest8 28.04.2020 10:29 # −999
j123123 27.04.2020 23:55 # 0
То ли дело ассемблер - там всей этой хуйни с алиасингом и UB тупо нет. (хотя на самом-то деле кое в чем UB есть и в ассемблере, но это, сука, надо очень постараться)
guest8 28.04.2020 10:28 # −999
BECEHHuu_nemyx 28.04.2020 10:31 # 0
j123123 28.04.2020 17:42 # +1
Ну и можно тут например почитать про ошибки и варнинги ассемблера https://developer.arm.com/docs/dui0807/e/assembler-errors-and-warnings/list-of-the-armasm-error-and-warning-messages
A1316E: Shifted register operand to MSR has undefined effect
A1319E: Undefined effect (using PC as Rs)
A1320E: Undefined effect (using PC as Rn or Rm in register specified shift)
A1321E: Undefined effect (using PC as offset register)
A1322E: Unaligned transfer of PC, destination address must be 4 byte aligned, otherwise result is UNPREDICTABLE
This error is reported when you try to use an LDR instruction to load the PC from a non word-aligned address. For example:
AREA Example, CODE
LDR pc, [pc, #6] ; Error – offset must be a multiple of 4
END
This code gives an UNPREDICTABLE result.
gostinho 27.04.2020 23:56 # 0
j123123 27.04.2020 23:58 # 0
gostinho 28.04.2020 00:00 # 0
1024-- 28.04.2020 00:05 # +2
guest8 28.04.2020 10:28 # −999
bormand 28.04.2020 10:44 # 0
Компилятором то? Да почти ноль по сравнению с крестами. У йажи конпелятор же вообще игрушечный.
guest8 28.04.2020 10:48 # −999
bormand 28.04.2020 10:53 # 0
Лолшто. Если от IDE для сраной жабы у тебя комп подтормаживает, то от крестопроекта аналогичных размеров он просто ляжет и больше не поднимется.
Количество файлов и сложность их парсинга и автодополнения там просто несопоставимые.
guest8 28.04.2020 10:57 # −999
bormand 28.04.2020 11:15 # 0
bormand 28.04.2020 10:32 # 0
guest8 28.04.2020 10:35 # −999
bormand 28.04.2020 10:47 # 0
guest8 28.04.2020 10:48 # −999
bormand 28.04.2020 10:54 # 0
guest8 28.04.2020 10:58 # −999
bormand 28.04.2020 12:45 # 0
guest8 28.04.2020 12:53 # −999
bormand 28.04.2020 17:53 # 0
j123123 28.04.2020 17:52 # +1
bormand 28.04.2020 17:55 # 0
3.14159265 28.04.2020 20:15 # 0
gostinho 28.04.2020 10:58 # 0
guest8 28.04.2020 10:36 # −999
bormand 28.04.2020 11:05 # 0
Жопа в том, что для крестов нет какого-то де-факто способа сборки и доставки зависимостей, как в тех же йаже или педоне. Плюс геморрой с версиями конпеляторов и стандартной либы, особенно на винде. В итоге у всех свои велосипеды со своими костылями и багами.
Видимо у ОПа тупо юзаются конпелятор и либы из системы со всеми вытекающими последствиями.
guest8 28.04.2020 11:08 # −999
bormand 28.04.2020 12:43 # 0
Докеры-хуёкеры это круто, конечно (отбросим тот факт, что с виндой они буквально год-два как стали более-менее юзабельными). Но людям то хочется и локально с исходниками поработать.
И вот тут-то и начинаются проблемы. Виндовые тулчейны разных версий плохо друг на друга влияют, особенно если тебе дрова собирать. 100500 версий либ надо на диске параллельно держать, а они в крестах далеко не по мегабайту весят, да ещё и умножаются на всякие debug/release да 32/64. Как-то это всё ещё разводить в системе сборки, чтобы лишнего говна не натянуло (а у систем сборки в крестах полно своих заскоков).
Оно реализуемо, конечно, но ОП про неадекватное количество ресурсов не просто так пишет. Там даже на чистом докере без локальной сборки неплохо поебаться придётся.
Но у большинства контор всё проще - некогда с докерами пердолиться, код пилить надо. Собирают тем, что от предков досталось.
guest8 28.04.2020 12:51 # −999
bormand 28.04.2020 13:05 # +1
Сколько там ваши ноде модулес да жабьи кеши весят то? Пара гигов на тыщу либ? Одна сборка буста весит гига полтора. А их надо хотя бы штуки 4.
> что значит влияют
В основном это проблема с драйверными китами, обычные сдк они походу тестируют. Ставишь новый тулчейн, а предыдущий пошёл по пизде, в нём теперь пары тулов не хватает. Ставишь следующий, а после него у предыдущих какая-то переменная проебалась. Кто с msvc работал - тот в цирке не смеётся.
> почему не унифицировать софт
Потому что если удобной и быстрой доставки всего этого говна нет, люди будут собирать тем, что у них на компе завалялось. Пока совсем собираться не перестанет. Реальность она такая.
А если потом ньюфагу надо собрать древнюю ветку - это отдельное веселье :)
gost 28.04.2020 13:10 # 0
Кстати да, подтверждаю. У меня папка с либами «Vcpkg» (там буст для x64-windows и x64-windows-static и ещё пара мелких либ) весит «2.99 ГБ (3 219 287 415 байт)», а внутри — «Файлов: 57 155; папок: 4 699».
guest8 28.04.2020 13:12 # −999
guest8 28.04.2020 13:23 # −999
bormand 28.04.2020 13:34 # 0
Питон с ждк весят сраные копейки, да и к системным путям гвоздями не прибиты. Их можно даже в репу закоммитить и никто не заметит, лол. И если в прыщах тулчейн можно отпилить от системных путей путём его пересборки, то с доставкой msvc всё гораздо веселее.
guest8 28.04.2020 13:39 # −999
bormand 28.04.2020 13:47 # 0
Ну да, там будут проблемы похуже, но этой проблемы там нет :)
К слову, у майков таки есть готовый докерный образ msvc, но это прям совсем свежатина. Ну и раньше был автономный пакет, но у него свои заморочки (чего-то там не хватало, не помню уже).
guest8 28.04.2020 13:51 # −999
bormand 28.04.2020 13:56 # 0
guest8 28.04.2020 13:58 # −999
bormand 28.04.2020 13:50 # 0
Да если бы только буст... Почти любая крестолиба в собранном виде весит дохуя. И твой код тоже будет весить дохуя. Потому что 90% этого веса - отладочная инфа.
jojaxon 28.04.2020 13:59 # +1
bormand 28.04.2020 14:01 # 0
jojaxon 28.04.2020 14:42 # 0
guest8 28.04.2020 15:03 # −999
bormand 28.04.2020 15:16 # 0
guest8 28.04.2020 15:24 # −999
bormand 28.04.2020 15:39 # 0
guest8 28.04.2020 15:42 # −999
bormand 28.04.2020 16:10 # 0
Х.з., чтобы линкеру сами dll'ки для сборки не требовались?
На самом деле мне виндовая реализация динамических библиотек больше нравится. Всё-таки символ ищется в конкретной dll'ке. А в прыщах он уже в рантайме берётся из первой попавшейся.
guest8 28.04.2020 16:16 # −999
bormand 28.04.2020 16:18 # 0
Да, на венде символ привязан к конкретной дллке, на прыщах он берётся из рандомной сошки. Предвижу ответ "а ты символы не повторяй и всё будет норм".
guest8 28.04.2020 21:14 # −999
bormand 28.04.2020 13:52 # 0
guest8 28.04.2020 13:56 # −999
bormand 28.04.2020 13:59 # 0
Если гнутый - то cmake, автолулзы, qmake и b2.
Проблема в том, что тебе придётся юзать и собирать либы с разными системами сборки. И твой личный выбор их авторов не ебёт.
guest8 28.04.2020 14:02 # −999
bormand 28.04.2020 14:30 # 0
guest8 28.04.2020 14:33 # −999
jojaxon 28.04.2020 14:02 # +1
bormand 28.04.2020 14:06 # 0
jojaxon 28.04.2020 14:08 # 0
guest8 28.04.2020 14:12 # −999
3.14159265 28.04.2020 20:34 # 0
>Если гнутый - то cmake, автолулзы, qmake и b2.
А ещё всякие ninja и mesonы.
https://github.com/systemd/systemd/pull/6266
guest8 28.04.2020 21:27 # −999
bormand 28.04.2020 13:42 # 0
При том, что это пример из практики разработки на с++. Можешь привести подобный пример из практики разработки под йажу или питон? Я думаю нет.
guest8 28.04.2020 13:49 # −999
guest8 28.04.2020 11:34 # −999
dedushkaa 29.04.2020 01:48 # +1
guest8 29.04.2020 01:52 # −999
dedushkaa 29.04.2020 01:57 # 0
KOPOHABuPYC 28.04.2020 12:44 # −1
jojaxon 28.04.2020 13:02 # 0
Но как-то вылезла проблема с превышением длины mangled-имен (лимит то ли 64 Кб, то ли больше).
Desktop 28.04.2020 13:05 # 0
А ты на нём на работе пишешь или дома?
Есть ли вообще вакансии, проекты? Какой класс задач стоит решать с D, если это хобби?
У меня валяется книжка Александреску редакции начала десятых, но она увы как памятник.
jojaxon 28.04.2020 13:55 # +2
По мне так в D хорошо писать сетевые тулзы/сервера, т.к. есть либа vibed на фиберах, т.е. он подходит для тех же целей, для которых создавался Go.
Проекты и конторы использующие есть, вакансий не видел.
jojaxon 28.04.2020 13:57 # 0
Desktop 28.04.2020 23:55 # 0
Я понимаю, что это гуглится, но интереснее послушать из первых рук.
gostinho 28.04.2020 14:03 # 0
А ты на нём на работе пишешь или дома?
Есть ли вообще вакансии, проекты? Какой класс задач стоит решать с J, если это хобби?
guest8 28.04.2020 15:00 # −999
1024-- 28.04.2020 14:01 # 0
Какой багор )))
А в крестах там можно? Сделать какую-нибудь рекурсивную экспоненциальную питушню.
bormand 28.04.2020 14:03 # 0
jojaxon 28.04.2020 14:05 # 0
guest8 28.04.2020 14:07 # −999
bormand 28.04.2020 14:07 # 0
guest8 28.04.2020 14:11 # −999
bormand 28.04.2020 14:12 # 0
guest8 28.04.2020 14:14 # −999
bormand 28.04.2020 14:28 # 0
guest8 28.04.2020 14:32 # −999
Desktop 28.04.2020 15:26 # 0
> Остальные пыхеры с жабоебами слишком тупы
PHP (5585)
C++ (2489)
Java (1441)
Если пользоваться твоей классификацией, то эрэнэрщики умнее крестовиков более, чем в два раза. А вот йажевики да, потупее будут.
jojaxon 28.04.2020 15:27 # 0
guest8 28.04.2020 15:28 # −999
jojaxon 28.04.2020 15:30 # 0
guest8 28.04.2020 15:28 # −999
Desktop 28.04.2020 15:31 # 0
gostinho 28.04.2020 15:34 # 0
guest8 28.04.2020 15:35 # −999
TOPT 28.04.2020 15:36 # 0
guest8 28.04.2020 15:39 # −999
jojaxon 28.04.2020 15:40 # 0
Desktop 28.04.2020 15:40 # +1
https://habr.com/ru/post/142140/
Пока искал статью, наткнулся на другую, с впечатляющим названием:
https://habr.com/ru/post/215777/
guest8 28.04.2020 15:45 # −999
Desktop 28.04.2020 15:50 # +1
guest8 28.04.2020 15:51 # −999
MAKAKA 28.04.2020 16:10 # 0
питухи думают, что проблема пхп была в плохой реализации ООП, лол
1024-- 28.04.2020 16:47 # 0
Я мельком глянул, а там какие-то килобайты текстовой психозы, потом пара примеров кода, потом снова психоза. Что-то там про тупых программистов, которые используют питушню в качестве инструментов (не знаю, лучше ли было повысить порог вхождения, чтобы только доктора наук осилили?), что-то ещё.
Примеры какие-то питушарские
Такое ощущение, что у автора проблемы с абстракциями, и он пришёл из какой-нибудь вербозной йажи. Или с PHP, где во всех случаях вместо null возвращают false. Мне кажется, все написали бы
И проверяли бы так:
Хотя, я, разумеется, привык к языку, а он развивает абстрактность мышления и чувство семантики.
1. "== false" использовал редко, в основном в рамках триады true/false/null, когда == false отличается от !
2. "!" использую, когда автор сказал бы "== false"
3. "== null" использую для сравнения с пустотой - отсутствием поля либо явно возвращённой нулстотой
4. "!!" или "Boolean" - когда надо кастануть в Boolean, .filter(Boolean) - когда надо убрать пустошню
5. "" использую, когда автор сказал бы "== true"
bormand 28.04.2020 16:52 # 0
1024-- 28.04.2020 17:03 # 0
И теперь мне чуть больше понятен бугурт автора
1. ! работает для false, 0, "", null, undefined
2. == false работает для false, 0, ""
3. === false работает только для false
Какой багор )))
P.S. Но явное "== false" - питушня вербозная.
bormand 28.04.2020 17:05 # 0
guest8 28.04.2020 17:12 # −999
1024-- 28.04.2020 19:49 # 0
Если случайно выбрать не то поле и подставить вместо пароля undefined, то создастся пользователь с паролем "undefined". Если тот же код использовать и при проверке пароля, на сайт можно будет ещё и заходить. Разумеется, с любым паролем.
Отличный способ выстрелить себе в ногу.
3.14159265 28.04.2020 20:00 # +1
gost 28.04.2020 17:12 # 0
guest8 28.04.2020 16:54 # −999
jojaxon 28.04.2020 17:07 # +1
guest8 28.04.2020 22:00 # −999
MAKAKA 28.04.2020 22:25 # 0
Человек под ником zviryatko получает от меня лучи добра и уважения в далекий 2014-й.
1024-- 28.04.2020 14:16 # 0
jojaxon 28.04.2020 14:23 # +2
"Linking Weka's code fails with a threshold of 500: phobos contains a few large symbols (one larger than 8kb!) "
guest8 28.04.2020 14:28 # −999
Fike 28.04.2020 16:58 # 0
bormand 28.04.2020 17:00 # +1
gost 28.04.2020 15:56 # +2
На «MSVC» можно прямо mangled имя получить через нестандартный («raw_name()»):
Выведет:
guest8 28.04.2020 15:58 # −999
gost 28.04.2020 16:12 # +1
bormand 28.04.2020 16:13 # 0
c++filt, во.
gost 28.04.2020 16:14 # 0
Какой багор (((
guest8 28.04.2020 16:19 # −999
bormand 28.04.2020 16:22 # 0
guest8 28.04.2020 16:25 # −999
Desktop 28.04.2020 16:39 # 0
guest8 28.04.2020 16:44 # −999
3.14159265 28.04.2020 20:04 # +1
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1396654
Приходилось через c++filt пайпать выхлоп.
3.14159265 28.04.2020 20:11 # 0
Судя по репортам он и в 15ой и в 17ой, и в 18ой, итд.
gost 28.04.2020 20:21 # +3
(UPD: встретил этот баг в реальном мире на своём компе, когда расследовал — нашёл его в исходниках «OpenJDK».)
3.14159265 28.04.2020 20:23 # 0
Они были известны своим похуистичным отношением к багам.
UPD: я так понял по Russian, что это личная находочка.
gost 28.04.2020 20:32 # 0
Не, я на этот баг только два года назад наткнулся. Потом только погуглил хорошенько и нашёл ещё и чей-то репорт.
guest8 28.04.2020 21:59 # −999
BECEHHuu_nemyx 28.04.2020 20:13 # 0
3.14159265 28.04.2020 20:18 # +2
На SO хинты, в стиле: скачайте исходники, поправьте седом пару строк и пересоберите perf.
https://stackoverflow.com/questions/33057653/perf-enable-demangling-of-callgraph/34061874#34061874
При том там попутно куча всякой питушни вылезет, при компиляции.
Потом нужно запаковать это в deb и проинсталлить, что превращается в квест на целый день. А всё из-за косоруких уебней, не желающих нормально чинить баги.
Если смотреть с этой точки зрения та же слака будет попроще.
guest8 28.04.2020 21:10 # −999
BECEHHuu_nemyx 28.04.2020 22:07 # 0
guest8 28.04.2020 22:11 # −999
3.14159265 28.04.2020 22:28 # 0
Тут недавно https://govnokod.ru/26589#comment541916 репортили об установке серверной убунты.
Да и Роман когда-то рассказывал, что в Яндексе жарились с переходом с 14ой на 16ю.
bormand 29.04.2020 10:26 # 0
Нахуй и в пизду. Всё, что я пересобрал, я тупо накатываю в /opt/<имя проги>
guest8 29.04.2020 11:23 # −999
bormand 29.04.2020 13:21 # 0
Да ладно? Слакбилды как раз tar'ки делали последним шагом. В них даже установочный скрипт можно было присунуть, насколько я помню.
Собственно подобной хуйнёй я и собираю бинарники для /opt.
В path далеко не всё нужно. Да и с ld path особых проблем не помню.
На самом деле, в убунте что-то пересобирать надо довольно редко, поэтому мне тупо лень разбираться с пакетами.
guest8 29.04.2020 13:24 # −999
bormand 29.04.2020 13:35 # 0
Да банальным враппером на шелле. Я не хочу пересобранные либы всей системе показывать - ей от этого может стать плохо. Именно поэтому я против установки чего-либо в системные каталоги.
guest8 29.04.2020 13:36 # −999
bormand 29.04.2020 13:46 # 0
Да ну, казуальщина всякая. Какой-нибудь gcc'шный тулчейн под arm. Няшный ffmpeg во времена унылого avconf'а и т.п.
Уже давно ничего не собирал, на самом деле. Совсем охомячился.
MAKAKA 29.04.2020 18:34 # 0
bormand 29.04.2020 10:28 # 0
guest8 28.04.2020 16:22 # −999
bormand 28.04.2020 16:24 # +1
guest8 28.04.2020 16:25 # −999
bormand 28.04.2020 16:29 # +1
BECEHHuu_nemyx 28.04.2020 18:33 # 0
Время от времени к алфавиту манглинга добавляются новые буквы из-за того, что в языке появляются новые конструкции.
BECEHHuu_nemyx 28.04.2020 18:27 # 0
Первый пример (.?AU?$integer_sequence@H$0A@$00$01$02$0 3$04$05$06$07$08$09$0L@$0M@$0N@$0O@$0P@$ 0BA@$0BB@$0BC@$0BD@$0BE@$0BF@$0BG@$0BH@$ 0BI@$0BJ@$0BK@$0BL@$0BM@$0BN@$0BO@$0BP@$ 0CA@$0CB@$0CC@$0CD@$0CE@$0CF@$0CG@$0CH@$ 0CI@$0CJ@$0CK@$0CL@$0CM@$0CN@$0CO@$0CP@$ 0DA@$0DB@$0DC@$0DD@$0DE@$0DF@$0DG@$0DH@$ 0DI@$0DJ@$0DK@$0DL@$0DM@$0DN@$0DO@$0DP@$ 0EA@$0EB@$0EC@$0ED@$0EE@$0EF@$0EG@$0EH@$ 0EI@$0EJ@$0EK@$0EL@$0EM@$0EN@$0EO@$0EP@$ 0FA@$0FB@$0FC@$0FD@$0FE@$0FF@$0FG@$0FH@$ 0FI@$0FJ@$0FK@$0FL@$0FM@$0FN@$0FO@$0FP@$ 0GA@$0GB@$0GC@$0GD@@std@@) можно разманглить обратно с помощью какой-то утилиты (что-то типа «demangle»), второй пример (.??@e478c360da54a681ea25f5e24da4d618@) похож на криптографическую сумму, которую напрямую разманглить нельзя. Во втором примере спасут только символьные файлы.
guest8 28.04.2020 18:30 # −999
bormand 28.04.2020 18:49 # 0
gost 28.04.2020 18:51 # 0
bormand 28.04.2020 18:54 # 0
1024-- 28.04.2020 16:04 # +2
Desktop 28.04.2020 16:10 # 0
gost 28.04.2020 18:53 # 0
dedushkaa 29.04.2020 01:49 # 0
1024-- 29.04.2020 12:00 # 0
guest8 29.04.2020 12:11 # −999
j123123 28.04.2020 18:02 # +1
Надо хешировать. Чтоб вместо "my_very_long_shitty_mangled_name" было md5("my_very_long_shitty_mangled_name")
BECEHHuu_nemyx 28.04.2020 18:25 # 0
guest8 28.04.2020 16:06 # −999
Fike 28.04.2020 19:17 # 0
> sumanai
> сегодня в 16:41
> Как будто в оригинале оно в 100% случаев верное. Ошибки есть везде.
> Моей разработке (бекенд на PHP) известные ошибки WSL не мешают.
пока читал первую строчку, удивлялся такому ответу
bormand 28.04.2020 19:21 # 0
Первые сборки WSL конечно трешовые были, но в последних виндах они вполне рабочие.
guest8 28.04.2020 21:11 # −999
bormand 28.04.2020 19:30 # 0
Fike 28.04.2020 20:00 # 0
j123123 28.04.2020 20:38 # +1
3.14159265 28.04.2020 20:40 # 0
А я тут говорил много лет назад, что не стоит серьёзно морочить себе голову этой хуетой.
3.14159265 28.04.2020 20:43 # +3
Я не прочитал ни одной статьи по плюсам с прошлого лета, и мне офигенно.
Я не написал ни строчки осмысленного кода на плюсах за последние три месяца, с тех пор, как распустили отдел, где я работал, и мне просто супер.
Я позволил себе хотеть больше никогда не писать на плюсах, и у меня появились крылья.
Читал и мысленно комментировал сентециями с ебаного.it.
bormand 29.04.2020 10:48 # 0
BECEHHuu_nemyx 29.04.2020 11:04 # 0
Desktop 29.04.2020 11:19 # 0
Чувствую себя, как пустой сосуд, зато счастливый.
3.14159265 28.04.2020 20:47 # 0
>Использовать строки, где внутри char*, не думая об алиасинге? Нельзя.
>паддинг
>алиасинг
Сишкопроблемы.
Кстати Царь же пояснял что PODы в общем не нужны, и нужно юзать массивы.
Но анскильные животные как обычно не послушали.
Там в треде остро не хватает Царя. Rust-сектанты распоясались, некому урезонить анскильных питухов.
guest8 28.04.2020 21:30 # −999
Desktop 28.04.2020 21:39 # 0
j123123 28.04.2020 21:39 # 0
guest8 28.04.2020 21:41 # −999
j123123 28.04.2020 21:49 # 0
В C++ одного знания синтаксиса мало. Там надо умение писать и читать всякую метушню на шаблоноговне, понимать что вот так делать можно, а вот так нельзя потому что UB, знание всяких подводных камней, best practices и далее по списку. И да, вся эта херня достаточно много ценности программиста составляет, и она завязана на конкретный говноязык.
MAKAKA 28.04.2020 21:54 # 0
j123123 28.04.2020 22:02 # 0
MAKAKA 28.04.2020 22:05 # 0
например?
> в том языке к этому может быть совсем другой подход.
Это правда, но такая хрень есть со всеми языками.
Переходя на новый язык, петух берет с собой в голове частичку старого.
Я видел как жабисты писались на питоне писать как на жабе, например (один файл -- один класс, сеттеры/геттеры итд)
j123123 28.04.2020 22:10 # 0
>например?
Например, нахуй тебе знать про то, что в крестоговне вот та хуйня UB а вот та хуйня не UB, есть public private protected, множественное наследование, friend классы, если ты пишешь на каком-нибудь языке, где этой херни просто нет, типа хаскеля?
guest8 28.04.2020 22:14 # −999
j123123 28.04.2020 22:16 # 0
Есть языки, где нет
> Они в джаве есть, и в C#
Есть языки, где нет
> Оно есть в питоне, и даже активно используется
Есть языки, где нет
> а, ты говорил про конкретный язык) А я думал вообще про любой.
Я говорил что некая питушня в каком-то другом языке может быть нахуй не нужна. Про любой - не любой я вообще не уточнял.
1024-- 29.04.2020 12:15 # 0
> Есть языки, где нет
Это только те хорошие языки, где код просто не скомпилируется, если ты не докажешь, что вон в ту функцию передал отсортированный массив квадратов простых чисел, лежащих в пределах от 100500 до 10005000. В остальных найдётся контрактная питушня, которая за себя не отвечает. Не так разрушающе, как UB, но по эффектам где-то на том же уровне.
3.14159265 28.04.2020 22:45 # 0
>Они в джаве есть, и в C#
Синтаксический мусор для анскильных отбросов.
Единственный полезный модификатор — сопзт.
Но его отребье украло из Сишки.
Хотя возможно стоило сделать наоборот — немутабельные по умолчанию, и модификатор для включения мутабельности.
guest8 28.04.2020 22:49 # −999
gostinho 28.04.2020 22:49 # 0
guest8 28.04.2020 22:50 # −999
gostinho 28.04.2020 22:52 # 0
guest8 28.04.2020 22:53 # −999
gostinho 28.04.2020 22:53 # 0
guest8 28.04.2020 22:57 # −999
3.14159265 28.04.2020 22:55 # 0
Хотим read-only? @lombok.Getter
Хотим write-only? @lombok.Setter
Хотим public? @Getter @Setter
Хотим transient? @JsonIgnore
Хотим private? Ничего не пишем, оставляем package private
guest8 28.04.2020 22:58 # −999
3.14159265 28.04.2020 23:00 # 0
Из них можно собрать что угодно, написав ЛЮБУЮ логику обработки.
Допустим в жабе из коробки нету никакого write-only модификатора.
guest8 28.04.2020 23:03 # −999
3.14159265 28.04.2020 23:05 # 0
Я так когда-то ставил квоты количества запросов по rmi.
gostinho 28.04.2020 23:06 # 0
guest8 28.04.2020 23:06 # −999
3.14159265 28.04.2020 23:08 # 0
А классы, имеющие доступ матчить хоть по регулярке.
guest8 28.04.2020 23:10 # −999
3.14159265 28.04.2020 23:15 # 0
Так и есть.
АОП кстати в последнее время часто ебошат именно аннотациями. Всякие @Around и @Before
>запахло питонячими декораторами
Да. По сути то же, только более оопешно и строготипизированно.
Desktop 28.04.2020 23:17 # 0
3.14159265 28.04.2020 23:20 # 0
guest8 28.04.2020 23:30 # −999
gostinho 28.04.2020 23:46 # 0
guest8 28.04.2020 23:47 # −999
3.14159265 28.04.2020 22:53 # 0
Раньше для этих целей использовали маркерные интерфейсы.
Сейчас завезли сложную систему аннотаций с метаданными.
Зачем питушиться с модификаторами — загадка.
guest8 28.04.2020 22:52 # −999
gost 28.04.2020 23:00 # 0
guest8 28.04.2020 23:04 # −999
3.14159265 28.04.2020 23:09 # +1
Desktop 28.04.2020 21:38 # 0
j123123 05.05.2020 02:59 # 0
jojaxon 05.05.2020 05:27 # +1
GC можно отключать в любом месте атрибутом @nogc.
Но наличие GC ломает привычный подход с RAII.
Итог - сойдет вместо питона для среднего размера скриптов (особенно если GIL напрягает).
Popierdolony_pies 05.05.2020 06:54 # 0
Без RAII писа́ть можно, но придётся себя контролировать, чтобы не забыть что-то освободить.
Popierdolony_pies 05.05.2020 06:56 # 0
Кстати, почему в веб-браузерах утечки памяти, хотя их писа́ли на языках с RAII?
jojaxon 05.05.2020 07:22 # 0
guest8 05.05.2020 10:10 # −999
nemyx 05.05.2020 10:14 # +1
При использовании с «FastCGI» обычно даже сбрасывают FastCGI-сервер через каждые 500 запросов, чтобы нейтрализовать утечки в самом интерпретаторе, если таковые вдруг имеются.
Gena 05.05.2020 10:23 # 0
jojaxon 05.05.2020 10:31 # 0
nemyx 05.05.2020 10:34 # 0
https://govnokod.ru/26026#comment514049
nemyx 05.05.2020 13:31 # 0
Вообще в настройках интерпретатора есть параметр memory_limit, ограничивающий выделение памяти.
https://www.php.net/manual/ru/ini.core.php#ini.memory-limit
jojaxon 05.05.2020 10:38 # 0
MAKAKA 05.05.2020 18:17 # +1
GC заметает мемори лики под ковер усложняя их поиск, вот и всё
jojaxon 08.05.2020 15:42 # +1
nemyx 08.05.2020 15:48 # 0
Например, написа́ть программу, которая вычисляет сумму 100 чисел. Поскольку размер известен, память будет выделяться статически. А если нужно сложить 199 чисел, нужно просто эту программу вызвать два раза (при втором вызове вместо одного аргумента подставить результат первого вызова).
Web_Monkey 08.05.2020 16:10 # +2
$ acummulate sum 199
guest8 08.05.2020 15:57 # −999
Web_Monkey 08.05.2020 16:05 # 0
guest8 08.05.2020 16:16 # −999
Web_Monkey 08.05.2020 16:05 # 0
bormand 08.05.2020 16:08 # 0
Web_Monkey 08.05.2020 16:20 # +1
Фортеры засели в большинстве своём в омерике, в среде контроллеров трамваев и прочего лоу левел.
Хотя в рашке были удачнве попытаки на десктоп и серверные, но сейчас почему-то тишина.
jojaxon 08.05.2020 16:25 # 0
OPAHrymaH 08.05.2020 18:12 # 0
BoeHHblu_nemyx 09.05.2020 12:57 # 0
bormand 09.05.2020 13:08 # 0
guest8 09.05.2020 13:09 # −999
bormand 09.05.2020 13:14 # 0
guest8 09.05.2020 13:19 # −999
bormand 09.05.2020 13:27 # 0
Я вот на ARM'овом контроллере без всяких биосов могу свой код запустить и с железом напрямую работать. Доступ к флешке есть, в сериал порт срать можно. Значит я запускаю свой код на операционке нулевого размера? Лол.
MAKAKA 09.05.2020 14:19 # 0
что не так?
bormand 09.05.2020 14:31 # 0
jojaxon 09.05.2020 14:49 # 0
OPAHrymaH 09.05.2020 15:00 # 0
Или это про (U)EFI?
bormand 09.05.2020 15:02 # 0
guest8 09.05.2020 15:19 # −999
bormand 09.05.2020 15:20 # 0
guest8 09.05.2020 15:22 # −999
bormand 09.05.2020 15:34 # 0
OPAHrymaH 09.05.2020 15:48 # 0
guest8 08.05.2020 16:15 # −999
Web_Monkey 08.05.2020 16:01 # +1
ЗЫ. ненавижу грамматики 0 уровня
guest8 08.05.2020 16:03 # −999
nemyx 08.05.2020 16:19 # 0
guest8 08.05.2020 16:22 # −999
guest8 08.05.2020 16:29 # −999
j123123 07.05.2020 21:56 # 0
Говно в том, что рантайм D требует этот GC и если постоянно его держать выключенным, память утечет.
nemyx 07.05.2020 23:45 # 0
jojaxon 08.05.2020 02:07 # +1
nemyx 08.05.2020 08:22 # 0
Я пытаюсь понять, чего боится j123123.
nemyx 08.05.2020 08:26 # 0
Значит, кучу фишек мы использовать не сможем. Это плохо. С другой стороны, ничего не утечёт, потому что функции, требующие сборщика мусора, мы вызвать не сможем.
jojaxon 08.05.2020 09:33 # +1
j123123 08.05.2020 15:21 # +1
В языке D это иначе.
nemyx 08.05.2020 15:25 # 0
Значит, если указать @nogc в мейне, то мы вообще не сможем из программы вызывать функции, которые используют мусоросборщик.
nemyx 08.05.2020 15:30 # 0
Параметры: totalSize
Объем памяти в байтах для выделения без запуска сборки мусора. Он должен быть меньше или равен размеру временного сегмента.
Если я правильно понял, он выделяет блок памяти, но внутри NoGCRegion временно приостанавливает сборку. Это всего лишь временная задержка сборки мусора, чтобы увеличить скорость на участке, обрабатывающем что-нибудь в реальном времени.
MAKAKA 28.04.2020 21:55 # 0
>Для общего развития давно уже хочу освоить Python, но отпугивает толщина
лол, кажется что проще выучивания питона ничего не может быть. Разве что пивка попить проще
Fike 28.04.2020 23:48 # +2
BECEHHuu_nemyx 29.04.2020 11:25 # 0
Angiotensin-converting enzyme, он же ангиотензин-превращающий фермент?
Формат архива, который разрабатывали как альтернативу «RAR»?
guest8 29.04.2020 11:29 # −999
BECEHHuu_nemyx 29.04.2020 11:32 # 0
guest8 29.04.2020 11:38 # −999
BECEHHuu_nemyx 29.04.2020 11:39 # 0
guest8 29.04.2020 11:41 # −999
BECEHHuu_nemyx 29.04.2020 11:44 # 0
guest8 29.04.2020 11:50 # −999
BECEHHuu_nemyx 29.04.2020 11:52 # 0
guest8 29.04.2020 12:22 # −999
guest8 29.04.2020 11:43 # −999
BECEHHuu_nemyx 29.04.2020 11:46 # 0
guest8 29.04.2020 11:47 # −999
jojaxon 29.04.2020 13:22 # +2
Выглядела такой же страшной как CORBA. Никогда не пользовался.