Чем вам AT&T не угодил? Лично мне, AT&T больше нравится.
А вообще, я тоже сначала в NASM/YASM на Intel-синтаксисе писал. Когда на GAS переходил, изучил AT&T, где единственная проблема была, это операнды в другом порядке (что быстро ушло, когда я «набил руку»). Плюс, AT&T более «явный» (это я к суффиксам b/w и т.д.).
Да и потом, лучше AT&T изучать и применять, т.к. он еще и на других ассемблерах используется (arm, sparc, ppc и т.д.).
P.S. А если некто на ассемблере вообще никогда не писал, так ему совершенно все равно будет.
Не доверяю я этим вашим «комьюнити», там много людей разной компетенции, много идей и пихать все это в кучу плохая мысль. Я больше доверяю лицам вроде создателей Go, которые, как выразился Бобок на Radio T, на языках собаку съели (а еще на OS).
Только если там не будет возможности использования SSE/AVX, то придется только так. Например в Go пакета с SSE/AVX нет, поэтому приходится import «C» использовать и расширения gcc (или тот-же asm()).
Только вот они бы для начала спецификацию продумали до конца и что туда включать. А то это добавят, это добавят, это поломают, там починят. Это все-таки не программа, а язык программирования, если делать с ним что ни попадя, то результат будет плачевным (костыль на костыле и т.п.).
Ладно, не будет разводить дискуссию, скажу только, что чисто гипотетически, OS может и не почистить, файлы все-равно запишутся с ошибкой (flush/sync могут не сработать), и я предпочитаю те куски кода которые можно написать одинакового, так и писать. Зачем разводить в одном месте log.Fatal, в другом template.Must и т.д.?
Я в самом начале статьи написал о том, что я не буду проверять ошибки, чтобы уменьшить количество кода в статье. Если бы я проверял каждую функцию (а в своих программах я это делаю), то было бы слишком много однотипного текста, вроде:
if err != nil {
log.Println(err)
return
}
Там-же я написал про сторонние пакеты.
Что по поводу template.Must, в моих программах я не использую os.Exit(), os.Panic(), а только return, в противном случае не сработает defer и многие открытые потоки не закроются корректно.
Так я с неё и начинал.
А вообще, я даже больше скажу, есть перевод (с дополнениями) этой статьи habrahabr.ru/post/122095/
Но там, например, нет примера по загрузке файла на сервер (а найти его было сложно, а по докам непонятно), да и примеры там слишком уж мудреные. Лично я, когда я только начал, несколько дней перечитывал эту статью и мучил людей на #go-nuts, прежде чем понял что по чем.
Точно так-же как и для обычного ядра. Берете исходники, добавляете туда exFAT и собираете. Подробности можете поискать примерно по следующим словам: «build linux kernel for android».
FUSE-реализация, что очевидно, медленная. Для нужд «перекинуть на флешку» может и сгодится, но на тех-же мобильных устройствах FUSE нежелателен. Хоть по производительности сегодняшние устройства и пройдут, но постоянная нагрузка ест заряд батареи. Хотя ныне, от той-же Samsung, есть F2FS, которая заменит exFAT сполна. Но её нет под Windows, хотя в целом это не такая уж большая проблема. В принципе, если кому-нибудь понадобится, то можно написать программу (или драйвер) с поддержкой.
А что до ранее доступного патча, то он получен методом реинжиниринга несколькими людьми, а то что Samsung опубликовала, это было (скорее всего) сделано по спецификации компанией в коммерческих целях.
Не знаю где тут «легонько», но точно знаю что этот логотип даже в 16x16 выглядит однообразно (такое ощущение что двумя цветами нарисовали), а предыдущий логотип нормально смотрелся.
Как по мне краткое введение не нужно, примеров предостаточно, да и они настолько тривиальны, что пояснения не нужны. А вот что-то более сложное, с зависимостями, раздельной компиляцией, проверкой версий и т.п. было бы полезнее. Лично я сколько раз не брался, столько-же раз бросал и продолжаю писать простые для понимания Makefile'ы или *sh скрипты.
В данной статье, в данном предложении было сказано о исполняемых файлах (т.е. о результате компиляции) и ни о чем более. Поэтому ваше цитирование ни играет ни какой роли к моему сообщению, т.к.:
Господа из FreeBSD переходят на Clang из-за их «религиозных верований» (что вы и процитировали). К примеру господам из DragonFlyBSD все равно, поэтому они перешли на GCC 4.4 (а в версии 3.4 на GCC 4.7).
Apple просто напросто нужно брать, но не отдавать, т.к. им у них куча патентов, всевозможная тивоизация и другие ограничения, которые GPLv3 не позволяет, вот они и хотят подстраховаться. Да и им проще будет, т.к. в MacOS X тот-же OGL через LLVM работает
В итоге тот факт, что GCC можно собирать программы с любой лицензией и не открывать исходные коды остается на месте, и ошибка в статье тоже.
BSD позволяет не открывать исходники при распространении исполняемых файлов.
Можно узнать откуда вы это взяли? В GCC используется дополнительное разрешение в соответствии со статьей 7, т.е. вы можете спокойно собирать программы под любой лицензией (в том числе под собственнической) с помощью GCC с использованием библиотек входящих в GCC, таких как libstd++, libquadmath и т. д.
Я такой «технологией» в детстве баловался. Брал, значит, жестяную банку от кофе, делал небольшую дырку, а вместо крышки мембрану натягивал. В дырку «накуривал» благовонием, ну а дальше все как на первом видео.
А вообще, я тоже сначала в NASM/YASM на Intel-синтаксисе писал. Когда на GAS переходил, изучил AT&T, где единственная проблема была, это операнды в другом порядке (что быстро ушло, когда я «набил руку»). Плюс, AT&T более «явный» (это я к суффиксам b/w и т.д.).
Да и потом, лучше AT&T изучать и применять, т.к. он еще и на других ассемблерах используется (arm, sparc, ppc и т.д.).
P.S. А если некто на ассемблере вообще никогда не писал, так ему совершенно все равно будет.
P.S. Пишите такое личным сообщением, а то я исправлю и ваш пост будет бессмысленным.
Там-же я написал про сторонние пакеты.
Что по поводу template.Must, в моих программах я не использую os.Exit(), os.Panic(), а только return, в противном случае не сработает defer и многие открытые потоки не закроются корректно.
А вообще, я даже больше скажу, есть перевод (с дополнениями) этой статьи habrahabr.ru/post/122095/
Но там, например, нет примера по загрузке файла на сервер (а найти его было сложно, а по докам непонятно), да и примеры там слишком уж мудреные. Лично я, когда я только начал, несколько дней перечитывал эту статью и мучил людей на #go-nuts, прежде чем понял что по чем.
А что до ранее доступного патча, то он получен методом реинжиниринга несколькими людьми, а то что Samsung опубликовала, это было (скорее всего) сделано по спецификации компанией в коммерческих целях.
В итоге тот факт, что GCC можно собирать программы с любой лицензией и не открывать исходные коды остается на месте, и ошибка в статье тоже.
Можно узнать откуда вы это взяли? В GCC используется дополнительное разрешение в соответствии со статьей 7, т.е. вы можете спокойно собирать программы под любой лицензией (в том числе под собственнической) с помощью GCC с использованием библиотек входящих в GCC, таких как libstd++, libquadmath и т. д.