http://ticklish-frog.livejournal.com/ ([identity profile] ticklish-frog.livejournal.com) wrote in [personal profile] avva 2016-05-06 09:55 am (UTC)

К сожалению, эта фича в реальной жизни привела к тому, что у нас, независимо от того, используем или нет эти вложенные функции, исполняемый стек. Причина в том, что эти функции хранятся в стеке, и должны быть вызываемыми, стек надо сделать исполняемым, если есть такие функции в исходном коде. Системы opt-in, чтобы компилятор аннотировал модули, для которых стек должен быть исполняемым, придумано поначалу не было, поэтому пришлось разрешить исполнение по умолчанию, и ввели аннотации по принципу opt-out. Потом, конечно, ввели и opt-in аннотации. Но до сих пор встречаются модули без аннотаций, которе, если попадают в результат при сборке, заставляют делать стек исполняемым, поскольку неясно, есть ли такие функции в модуле.

Вот тут подробно написано: http://www.airs.com/blog/archives/518

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting