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