Anonymous 06/16/2019 (Sun) 07:01:30 No.2676 del
>>2673
>Его нет, зато есть громкие заявления о сложных фичах, которые ты уже оттестировал путём написания незапускаемого кода.
Да.
>И с этими знаниями ты берёшься разрабатывать язык?
Да. А что, LLVM вполне позволяет почти ничего не знать о работе компьютера и компилировать работоспособный код.
>И возвращаются назад, когда делается yield?
Наверное да, но скорее пересылается указатель на все локальные переменные и по указателю внутри функции данные записываются. Если нет рекурсии. Наверное.
>Какой же это пиздец костыль, ты же несерьёзно?
Я думал об этом серьёзно. Мне показалось это эффективнее, чем пересылать сотни байт, в случае рекурсии. Хотя я уже запутался.
>Какой же это пиздец костыль, ты же несерьёзно?
Если бы в Laisi не было динамических типов (термин из документации), то никаких сложностей не было бы. На си же можно программировать микроконтроллеры. Вообще, если пользователь не будет использовать динамические типы, то вполне можно скомпилировать. Но так как они есть, то надо будет реализовать управление памятью в куче. Не говорю, что будет работать всё как часы, но если стек не дойдёт до heap, то всё будет ок.
К тому же laisi это довольно безопасный язык. В случае, если индекс у массива выходит за пределы, то будет брошено исключение. Ещё я планирую добавить дополнительные исключения, которые можно включить или выключить в компиляторе, связанные с памятью, а именно с segmentatin fault и недостатком памяти. Для первого нужно будет лишь перед каждым обращением по указателю (оператор ->) делать setjmp, а перед вызовом программы инициализировать перехват сигнала SIGSEGV, если на линуксе. Хотя пока не уверен как всё это будет работать с потоками.
>Рекурсивных генераторов не существует. Может быть несколько инстансов одного генератора одновременно
Если бы это было в laisi, то в каждой строке исполнился бы генератор и заполнил каждую переменную значениями, если эти переменные являются динамическими массивами. Я предполагал, что одна итерация генератора происходит только тогда, когда это нужно. В случае в присваиванием переменной, исполнились бы все итерации, а в случае с for, каждая итерация перед телом цикла.
>То есть на данный момент по-прежнему ничего не работает?
Работает. Компиляция есть, хоть поддерживаются только оператор + и :=, а так же аллокирование переменных и возврат значений. И тип uN.

Message too long. Click here to view full text.