- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
function main() {
let a = 10;
function f() {
print(a);
}
f();
print("done.");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
function main() {
let a = 10;
function f() {
print(a);
}
f();
print("done.");
}
С виду этот простой кодик - это то что не может С и я так долго трахался что бы смочь его проимлементировать.... но я бля сделал
> execute stack
Какой багор )))
А зачем? Почему бы не классическое context + function, как во всей скриптушне и даже в крестах? Тебе же не нужно передавать твои функции в настоящие сишные функции, которые 50 лет назад написаны?
void foo(void (*callback)(void *ctx), void *ctx);
Либы, которые не дают прокинуть контекст, это обычно что-то из 60х.
А какой тут лимит вложенности функции? Перформансная ли у тебя имплементация?
Что выведет вот такой код:
?
Половина работы сделана, злоумышленнику остаётся буфер где-нибудь переполнить и хуйнуть свой код поверх трамплина.
GNU C это как раз может. https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
И там тоже код в стеке выполняется.
Потому что C++ более простой, удобный, и надёжный язык
Про говноограничения захватываний хуйни в лямбду/объект из-за отсутствия GC я уже где-то обсуждал с PolinaAksenova
ну такое
https://govnokod.ru/27340#comment621510
В ЯПах с ГЦ всё равно нужно думать про память, иначе ты случайно зацепишь объект за какую-то мелкую хуйню с долгим временем жизни, и на этом объекте, как на сопле, повиснет огромный граф, и ты будешь потом разбирать мемори дампы с OOMами
Я бы хотел, что бы в джавке можно было явно указывать, что ты захватываешь
Это как спрашивать, чем класс отличается от кучки данных и свободных функций под капотом.
- а в крестах будет утверждать, что она типа анонимный класс?
– Что означает этот сигнал светофора?
– У меня в ФП никаких светофоров нет!
примитив синхронизации
В старом winobj семафоры как светофоры вроде бы рисовались
Вроде раньше у семафоров были дополнительные сигналы для маневровых работ, которые в светофорах реализовывать не стали.
В СНГ на маневровых светофорах оставили всего три сигнала: красный — закрыто, белый — разрешены маневровые работы, синий — маневровые работы запрещены, потому что блок-участок зарезервирован под маршрут.
Она ещё и кривая, т.к. thunk'и на стеке и вернуть такую "лямбду" нельзя. Можно только на время в какой-то алгоритм передать.
Почему бреда? Пашкины олимпиадники ведь написали. Для какого-то подмножества "PHP" вполне возможно вывести типы. Само собой, в этом подмножестве не будет eval() и всяких $$name.
Ну и коммунити всё таки чуть лучше
Можно сделать похожую говнонадстройку над PHP и назвать его допустим TypeHP, но хуевого фундамента это не исправит.
Для всякой типопитушни есть более нормальные языки, Standard ML или там OCaml например, где не встраиваются во всякое говно
Нет чтобы нормальный язык сделать без хуйни, чтоб через WASM там работало
Или вообще встроить во все браузеры PHP-виртуальную машину
https://phpjs.hertzen.com/
К сожалению почти всё, чем мы сейчас пользуемся в вебе, создавалось как наколенное говно, которое потом внезапно выстрелило, и пришлось этим жить: IBM PC, скриптовые языки, HTML...
TS хоть и с типушнёй, но он привычен JS'нику. Нужно всего лишь научиться расставлять типы.
Не, ну так-то понятно, браузеры хавают только жопоскрип, поэтому мы делаем совместимую с жопаскриптом питушню, которая в жопаскрипт комплилится, и так этим тупескриптом можно познакомить вротэндеров с типизацией
Ну чтобы по аналогии с нодой хуячить весь фуллстек на одном языке.
#define ᚨ &
И тебе не придётся смотреть на * и & в исходниках.
https://wandbox.org/permlink/eOv9VurkOGg5FPiD
Ну, кто-то же запилил \sout{``BuckleScript''} ``ReScript''.
https://guide.elm-lang.org/
Но ты явно получишь строку.
На JS ты можешь серануть так:
и охуеть
А в TS ты получш
Людей учат джаваскрипту
https://habr.com/en/post/563914/
какой сканк-код
Какая физика.
1) Убеждаемся, что на вершине стека тред, в который хотим написать
.
.
.
2) Пишем в тред на вершине стека.