Комментарии 8
Прямо отличная статья, спасибо за перевод!
А скажи пожалуйста, где можно почитать базовые вещи по современному ассемблеру, примеры которого есть в статье? Чтобы чуть лучше понимать написанное. А то я последний раз ассемблер трогал в конце девяностых — начале нулевых)
А скажи пожалуйста, где можно почитать базовые вещи по современному ассемблеру, примеры которого есть в статье? Чтобы чуть лучше понимать написанное. А то я последний раз ассемблер трогал в конце девяностых — начале нулевых)
Привет! Ассемблер Go отличается от стандартного. Если говорить об обычном, то я бы порекомендовал, наверное, Introduction to 64 Bit Assembly Programming for Linux and OS X: For Linux and OS X. А вот по Go-шному не так много хороших источников. Придется вбивать go assembly в поисковике и читать все, вытаскивая куски информации отовсюду. Увы, лучше ничего не могу посоветовать :-(
Можно начать с официальной статьи и с видео о том почему собственно ассемблер отличается. Я делал перевод этого доклада здесь.
Добавлю ещё:
Не для начинающих, но может быть полезно и Go-specific:
Оказывается, что данное поведение является артефактом эвристики, которую компилятор Go использует, когда работает с замыканиями.
Скорее артифактом спецификации языка, а не эвристики использованной для конкретной реализации компилятора.
Спасибо за статью. С примером m.Show()
пока не сталкивался, и это было неожиданно узнать. Я бы на подобный баг мог бы в итоге убить ни один час.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Внутренности Go: оборачиваем переменные цикла в замыкании