
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
Низкоуровневый язык таким считается из за крайне небольшого или полного отсутствия абстракция над машиным

Roman
20.08.2018
16:20:24

Yuriy
20.08.2018
16:21:25

Roman
20.08.2018
16:23:08
давайте только не начинать очередной срачь о том кто круче, C или Go)))
свободный рынок сам всё выявит, на то он и свободный
владимирович и "по существу", как иронично))
пропагандиские стикеры подъехали, хотя может ошибаюсь,
в любом случае не в тему

Google

Sergey
20.08.2018
16:30:32

Roman
20.08.2018
16:34:06

Pawel
20.08.2018
16:38:10

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

snip
20.08.2018
16:43:36

Roman
20.08.2018
16:47:10

Roman
20.08.2018
20:09:28
https://foreshadowattack.eu/
Всем у кого intel - праздника

Vladimir
20.08.2018
20:10:23

Roman
20.08.2018
20:15:31

Adam
20.08.2018
20:19:59
ближе языка к цпу нету

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

Vladimir
20.08.2018
21:27:54
и порядок выполнения из-за OoO execution'а уже никто не гарантирует
то есть да, ближе чем асм нету, но это не то что будет выполняться
ну и собственно все последние уязвимости как раз ушами растут из-за всей эвристики что делает процессор быстрым

Adam
20.08.2018
21:33:56

Evgeny
21.08.2018
07:26:20

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
пока размер изменяется то копирование еще идет. а если прошел некоторый промежуток времени в секундах и размер не изменился то копирование завершено

Roman
21.08.2018
09:51:55

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

Adam
21.08.2018
10:27:45
сам уже не знаю что программировать ибо все давно уже напрограммировано

Соломончик
21.08.2018
10:35:32

Adam
21.08.2018
10:36:55

Соломончик
21.08.2018
10:37:05

Evgeny
21.08.2018
11:19:40

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

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

Александр
21.08.2018
11:56:42
ну типо позволяет следующий case проверить
вместо перехода на конец свича

Daniel
21.08.2018
11:57:03
не проверить
falltrough пробрасывает на следующий кейс безусловно

undiabler
21.08.2018
11:57:33

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