slobin: (Default)
Кирилл Злобин ([personal profile] slobin) wrote in [personal profile] beldmit 2021-04-06 01:54 pm (UTC)

Вдогонку: ну и предполагаем, что ваш компилятор реально осилит построить семигигабайтную константу. Я тут поигрался под древней 32-битной WindowsXP (так получилось, не смейтесь больно!), ломается где-то примерно на n=20_000. Но техника в принципе работает, именно что выходная строка строится во время компиляции и кладётся в бинарник, и исходник отличается от максимально наивного ровно на одно ключевое слово. Как и было обещано. Проверял на dlang, но подозреваю, что как минимум на rust, nim и zig так тоже можно, только ключевое слово будет другое. Подозреваю, что даже на современных плюсах последних стандартов уже можно, но тут я полный ноль.

(подумав) Вообще-то можно было на PL/I достаточно полной реализации, но не настолько чисто. Потому что препроцессором PL/I был PL/I (подмножество, но ифы, циклы и операции со строками точно входили... более того, если я правильно помню, то именно в препроцессорном режиме строки были "условно бесконечными" (в настоящем скомпилированном PL/I только с максимальной длиной)).

... No, raba ji brili ga aurmo ...

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