@proGO

Страница 1648 из 1674
Subbotin
20.08.2018
15:20:21
Даёшь процессор для go

Кстати забавный был бы шаг со стороны гугла

Roman
20.08.2018
15:24:33
С — не низкоуровневый язык⁠ ? Перевод ? Блог компании Badoo, C, Программирование, Разработка веб-сайтов Ваш компьютер не является быстрой версией PDP-11 Привет, Хабр! Меня зовут Антон Довгаль, я С (и не только) разработчик в Badoo. Мне попалась на глаза статья Дэвида Чизнэлла, исследователя Кембриджского университета, в которой он оспаривает общепринятое суждение о том, что С — язык низкого уровня, и его аргументы мне показались достаточно интересными. В свете недавно обнаруженных уязвимостей Meltdown и Spectre стоит потратить время на выяснение причин их появления. Обе эти уязвимости эксплуатировали спекулятивное выполнение инструкций процессорами и позволяли атакующему получать результаты по сторонним каналам. Вызвавшие уязвимости особенности процессоров наряду с некоторыми другими были добавлены для того, чтобы программисты на C ... Читать далее ➡ https://shbr.xyz/hh420407
"низкий уровень" это относительно.... это все-равно что называть небоскрёб зубочисткой если ты гигантский титан

с точки зрения машинного кода, ещё как высокоуровневый, с точки зрения JavaScript, пздц какой низкоуровневый))

Google
snip
20.08.2018
16:16:27
"низкий уровень" это относительно.... это все-равно что называть небоскрёб зубочисткой если ты гигантский титан
Низкий уровень это близость к машиным кодам, а не относительно других языков

Roman
20.08.2018
16:17:32
Низкий уровень это близость к машиным кодам, а не относительно других языков
понимаешь ли, значение слов "низкий уровень" тоже относительно и зависит от контескта ?

snip
20.08.2018
16:17:53
Не зависит

Roman
20.08.2018
16:18:30
Не зависит
низкий уровень жизни тоже означает что жизнь ближе к железу?

Daniel
20.08.2018
16:18:38
коллеги

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

snip
20.08.2018
16:19:20
низкий уровень жизни тоже означает что жизнь ближе к железу?
Это означает выдернуть из контекста чтобы оправдаться

Daniel
20.08.2018
16:20:00
в реальности - современный С, действительно, очень плохо отражает современную процессорную реальность

snip
20.08.2018
16:20:22
Низкоуровневый язык таким считается из за крайне небольшого или полного отсутствия абстракция над машиным

Yuriy
20.08.2018
16:21:25
в реальности - современный С, действительно, очень плохо отражает современную процессорную реальность
SIMD’ы не умеет, Data Locality говно, SSA тоже говно… В golang’e SSA хоть и в зачаточном состоянии но результат, в принципе, тот же.

Roman
20.08.2018
16:23:08
давайте только не начинать очередной срачь о том кто круче, C или Go))) свободный рынок сам всё выявит, на то он и свободный

владимирович и "по существу", как иронично)) пропагандиские стикеры подъехали, хотя может ошибаюсь, в любом случае не в тему

Google
Roman
20.08.2018
16:34:06
Pawel
20.08.2018
16:38:10
низкий уровень жизни тоже означает что жизнь ближе к железу?
так можно и до фонарного столба доебаться мимо проходя

Roman
20.08.2018
16:41:14
так можно и до фонарного столба доебаться мимо проходя
поясню таки: если речь идёт об уровне языка программирования относительно железа, тогда да, C высокоуровневый. Если же мы говорим с точки зрения повседневной разработки ПО, то C довольно низкоуровневый ибо множества абстракций типа классов, сборки мусора и т.д. и т.п. в нём не существует всё зависит от точки зрения

Roman
20.08.2018
20:09:28
https://foreshadowattack.eu/

Всем у кого intel - праздника

Vladimir
20.08.2018
20:10:23
Причем, в современных реалиях он тоже весьма далек от устройства cpu
ну так поэтому к вульгарным. А так, извините, даже ассемблер не очень то и похож на то что реально выполняет цпу

Roman
20.08.2018
20:15:31
Adam
20.08.2018
20:19:59
ну так поэтому к вульгарным. А так, извините, даже ассемблер не очень то и похож на то что реально выполняет цпу
опкоды выполняет cpu, которые в свою очередь являются закодированными асм коммандами

ближе языка к цпу нету

Daniel
20.08.2018
20:37:00
ну вот asm современный тянет совместимость с asm 8086, и в этой связи от того, что на процессоре происходит, он тоже довольно сильно удален

Никита
20.08.2018
20:38:07
Если уже речь пошла о таком

Таненбаума по ОС и Архитектуре ПК будет достаточно?

Свой процессор мне создавать не прийдется

Это так, для общего развития и понимания как оно там все работает

Daniel
20.08.2018
20:40:47
ну вот это будут те самые вульгарные представления :)

Google
Daniel
20.08.2018
20:40:53
и да, будет достаточно

Никита
20.08.2018
20:41:30
Отлично

Roman
20.08.2018
21:00:29
Adam
20.08.2018
21:01:00
u-ops?
да

Vladimir
20.08.2018
21:27:54
и порядок выполнения из-за OoO execution'а уже никто не гарантирует

то есть да, ближе чем асм нету, но это не то что будет выполняться

ну и собственно все последние уязвимости как раз ушами растут из-за всей эвристики что делает процессор быстрым

Eugene
21.08.2018
08:37:50
Ребята, поскажите, как узнать состояние файла, при его копировании? то есть, есть вотчер папки, который мониторит на новые файлы. нужно, что бы он его "замечал" после завершения копирования. Если ли какой-нибудь способ узнать состояния копирования? в os.FileInfo ничего такого не нашел

Nick
21.08.2018
09:17:53
и не узнаешь, скорее всего нужно смотреть на размер и откладывать на какое-то время, потом посмотреть снова, если не изменился, то скорее всего копирование закончено)

plq
21.08.2018
09:21:56
Через API системы, если только

Vladimir
21.08.2018
09:22:06
думаю, зависит от ФС

и как она аллоцирует место для файлов

Nick
21.08.2018
09:23:22
ос ничего не знает про копирование, она может дать тебе только инфу о локе например

Adam
21.08.2018
09:42:12
пока размер изменяется то копирование еще идет. а если прошел некоторый промежуток времени в секундах и размер не изменился то копирование завершено

Google
Daniel
21.08.2018
09:53:44
Скопировал во временный файл - мувнул

Мув в большинстве os атомарный

Roman
21.08.2018
09:54:58
но лучше https://github.com/fsnotify/fsnotify

Eugene
21.08.2018
10:12:36
Благодарю, ребята. Посмотрю источники

Yuriy
21.08.2018
10:18:34
а что не так с data locality и почему SIMD не умеет?
Для дата locality надо нормально memory SSA cтроить, ну и для SIMD’ов тоже надо array SSA. SIMD’ы сейчас надо ручками на intel intrinsic’ах писать.

Adam
21.08.2018
10:27:45
но лучше https://github.com/fsnotify/fsnotify
такими темпами программисты будут скоро не нужны

сам уже не знаю что программировать ибо все давно уже напрограммировано

Соломончик
21.08.2018
10:35:32
такими темпами программисты будут скоро не нужны
не скажи. Всегда найдеться то, что еще не сделали

Adam
21.08.2018
10:36:55
не скажи. Всегда найдеться то, что еще не сделали
как появляется идея, иду гуглить, в итоге уже существует такой проект

Evgeny
21.08.2018
11:19:40
Для дата locality надо нормально memory SSA cтроить, ну и для SIMD’ов тоже надо array SSA. SIMD’ы сейчас надо ручками на intel intrinsic’ах писать.
а что имеется ввиду под data locality в данном случае? я не понимаю как это может быть связано с SSA (которое есть и в GCC и LLVM), мне просто интересно интринсики можно не писать руками, если не нужно что-то сложное, обычно компиляторы С в состоянии довольно неплохо векторизовать код

Yuriy
21.08.2018
11:40:26
> обычно компиляторы С в состоянии довольно неплохо векторизовать код Вот в том то и дело что нет… не особо. Перемножения матриц, например, не умеют, и не будут уметь. Знаю на примерах реализации полиэдральной оптимизации… Если на простых задачах, типа сравнивания строк, - где-то лучше использовать SSE2 где-то SSE4, а где-то AVX2. В зависимости от поколения и текущего микрокода… естественно ни один компилятор не располагает такой инфой. Ну эт самый простой пример.

Daniel
21.08.2018
11:41:32
радость в том, что для большинства наших задач это все не нужно

Александр
21.08.2018
11:48:48
@onokonem а есть красивое решение для multi case в switch?

мне проверить надо что строка ровна А Б или C иначе ошибка

хотел ошибку пихнуть в default

а все остальные три case что бы на один блок указывали

Daniel
21.08.2018
11:52:24
ну, так и делают

Александр
21.08.2018
11:54:01
ну, так и делают
switch var { case "A": case "B": case "С": log.Print("ok") default: log.Print("error") }

Daniel
21.08.2018
11:54:14
не, это другое

Google
Александр
21.08.2018
11:54:15
при значения A B не будет срабатывать же

Daniel
21.08.2018
11:54:31
case "A", "B", "C"

Александр
21.08.2018
11:54:54
а можно так O_o

undiabler
21.08.2018
11:55:23
Кто-то не читал документацию =)

Александр
21.08.2018
11:55:42
https://gobyexample.com/switch

ну я тут глянул и ничего

Artem
21.08.2018
11:55:55
а можно так O_o
еще можно fallthrough

Daniel
21.08.2018
11:56:21
falltrough - это вообще непонятно зачем оно надо

Александр
21.08.2018
11:56:42
falltrough - это вообще непонятно зачем оно надо
switch 1 { case 1: fmt.Println("I will print") fallthrough case 0: fmt.Println("I will also print") }

ну типо позволяет следующий case проверить

вместо перехода на конец свича

Daniel
21.08.2018
11:57:03
не проверить

falltrough пробрасывает на следующий кейс безусловно

undiabler
21.08.2018
11:57:33
ну я тут глянул и ничего
switch time.Now().Weekday() { case time.Saturday, time.Sunday А это для кого?)

Александр
21.08.2018
11:57:49

Страница 1648 из 1674