home.social

#call_stack — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #call_stack, aggregated by home.social.

fetched live
  1. Модель исполнения JavaScript по спецификации ECMAScript: call stack, контексты, окружения и замыкания

    Я довольно долго был уверен, что понимаю, как работает call stack. Ну а что там понимать? Положил кадр, снял кадр, LIFO. Потом открыл спецификацию. Оказалось, за «стеком вызовов» стоит каркас из пяти сущностей, а половина привычных объяснений просто не совпадает с текстом стандарта. Замыкание — не фича языка, а побочный эффект того, что окружение живёт отдельно от кадра. «Область видимости» — вообще не сущность: такого термина там нет. А слов event loop, microtask и task queue в ECMA-262 ровно ноль. Проверяется грепом за минуту. Разбираю модель исполнения по первоисточнику: агент, контекст, окружения, джобы. Каждое утверждение сверено с текстом стандарта, номера параграфов проставлены — можно перепроверять за мной. Разобрать по спецификации

    habr.com/ru/articles/1063168/

    #JavaScript #ECMAScript #execution_context #контекст_выполнения #замыкания #область_видимости #ECMA262 #call_stack #event_loop #лексическое_окружение

  2. Введение в память, мотивация виртуальной, отображение между физической и виртуальной

    У нас имеется физическая память, она одна для всех программ. И представьте, что вот вы разрабатываете программу, пишете алгоритмы, верстаете интерфейсы, свои контейнеры, это и так в силу несовершенства языков и сложности задач является довольно нетривиальной задачей, а теперь, задумайтесь: если вам нужно будет параллельно анализировать и запоминать, как вашей же памятью могли воспользоваться другие программы, или даже как ваше приложение пользуется ей. Как же оно получилось?

    habr.com/ru/articles/914016/

    #виртуальная_память #concurrency #C++ #регистры #rip #call_stack #heap #операционные_системы

  3. Отладка с sys._getframe в Python

    Привет, Хабр! Сегодня в коротком формате разберемся с тем, что же творится внутри CPython, когда функции вызывают друг друга: sys._getframe , f_back , f_globals , f_locals , а также создадим свои декораторы.

    habr.com/ru/companies/otus/art

    #python #CPython #декораторы #отладка #call_stack

  4. [Перевод] Способы разделения длительных задач в JavaScript

    Иногда возникает необходимость разделить длительную дорогую (с точки зрения вычислений) задачу на несколько тиков (ticks) цикла событий (event loop). Существует множество способов это сделать. Рассмотрим их. Легко "уничтожить" пользовательский опыт, позволив длительной дорогой задаче захватить основной поток (main thread). Неважно, насколько сложным является приложение, цикл событий может выполнять только одну задачу за раз. Пока выполняется одна задача, другие ждут своей очереди. Как правило, задача выполняется настолько быстро, что пользователь ничего не замечает. Но так бывает не всегда.

    habr.com/ru/companies/timeweb/

    #timeweb_статьи_перевод #javascript #long_task #settimeout #promise #scheduler #requestidlecallback #requestanimationframe #длительная_задача #промис #планировщик #main_thread #call_stack #основной_поток #стек_вызовов