Size: a a a

2020 April 28

in Go-go!
Daniel Podolsky
инструкций?

Но он ничего не определял, он докинул 4К (кажется), и пошел дальше
Не, типа вот в следующих n строках я пихаю в стек k переменных разного размера, и вызываю какие-то ещё функции
источник

ВС

Владимир Столяров... in Go-go!
так то, что попадает в стек, а что - в кучу, определяет компилятор, а не вы
источник

in Go-go!
Не, типа вот в следующих n строках я пихаю в стек k переменных разного размера, и вызываю какие-то ещё функции
И как он точно определит, сколько на это всё понадобится докинуть?
источник

DP

Daniel Podolsky in Go-go!
Не, типа вот в следующих n строках я пихаю в стек k переменных разного размера, и вызываю какие-то ещё функции
Не пихаешь. Возможности такой не даёт язык
источник

in Go-go!
Daniel Podolsky
Не пихаешь. Возможности такой не даёт язык
Ну ясно, но где-то под капотом он же пихает в стек
источник

DP

Daniel Podolsky in Go-go!
Так он сам и решает, что. Сам и учёт ведёт
источник

in Go-go!
Daniel Podolsky
Так он сам и решает, что. Сам и учёт ведёт
Всякие простые типы вроде int он же в стек покладывает?
источник

ВС

Владимир Столяров... in Go-go!
если они не убегают из функции - да
источник

in Go-go!
Владимир Столяров
если они не убегают из функции - да
А как он определяет, сколько точно байт будет сложено в стек до "эпилога"?
источник

in Go-go!
Там же ещё могут быть вызовы функций, а это значит что ещё будут складываться всякие указатели, куда вернуться
источник

ВС

Владимир Столяров... in Go-go!
это не так работает) стек при потенциальной нехватке растет просто кусками
источник

in Go-go!
Владимир Столяров
это не так работает) стек при потенциальной нехватке растет просто кусками
А как нехватка-то определяется?
источник

in Go-go!
Вот просто если я пихну массив 10кб в стек, то по идее со стандартным стеком 2кб должен произойти стек оверфлов
источник

in Go-go!
А он каким-то образом это определяет
источник

ВС

Владимир Столяров... in Go-go!
А как нехватка-то определяется?
источник

in Go-go!
А он каким-то образом это определяет
А если я запихну в стек столько данных, что достаточно сделать один вызов функции, чтобы произошёл so
источник

in Go-go!
Спасибо!
источник

DM

Dmitry M in Go-go!
во время компиляции узнается сколько нужно, для выполнения функции
источник

ВС

Владимир Столяров... in Go-go!
Вот просто если я пихну массив 10кб в стек, то по идее со стандартным стеком 2кб должен произойти стек оверфлов
в go у разработчика нет прямого контроля над тем, куда попадает переменная, в стек или кучу - это решает компилятор, собственно он же заранее и рассчитывает, сколько нужно будет стека для конкретной функции
источник

in Go-go!
Dmitry M
во время компиляции узнается сколько нужно, для выполнения функции
Да это понятно, у меня вопрос в том как он это узнаёт
источник