- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
async function f()
{
print("Hello World");
}
function main()
{
await f();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
async function f()
{
print("Hello World");
}
function main()
{
await f();
}
Ну что заскучились... есть новость... первый async/await ... так что с почином - асинков. но это только начало ... Для любознательных дампик... https://pastebin.com/rwnsrdLx (для SEO https://github.com/ASDAlexander77/TypeScriptCompiler) и результат работы
C:\temp>C:\dev\TypeScriptCompiler\__build\tsc\bin\tsc.exe --emit=jit --shared-libs=C:\dev\TypeScriptCompiler\__build\tsc\bin\TypeScriptGCWrapper.dll --shared-libs=C:\dev\TypeScriptCompiler\3rdParty\llvm\debug\bin\mlir_async_runtime.dll C:\temp\1.ts
Hello World
ASD_77 04.09.2021 01:36 # −1
ASD_77 04.09.2021 01:37 # −1
3.14159265 04.09.2021 01:40 # −1
Именно поэтому я за премиум-аккаунт. В нём никаких ограничений нет.
guest6 04.09.2021 10:36 # +3
JloJle4Ka 04.09.2021 11:26 # 0
guest6 04.09.2021 11:51 # 0
ru66oH4uk 04.09.2021 14:18 # 0
JloJle4Ka 04.09.2021 14:19 # 0
guest6 04.09.2021 14:20 # +2
JloJle4Ka 04.09.2021 14:27 # 0
CEHT9I6PbCKuu_nemyx 04.09.2021 14:49 # 0
JloJle4Ka 04.09.2021 14:52 # 0
Kozel 04.09.2021 15:52 # +1
Desktop 04.09.2021 15:56 # +1
JloJle4Ka 04.09.2021 16:06 # 0
Ты ма-те-ма-тик?
Tallybahn 04.09.2021 18:24 # 0
guest6 05.09.2021 16:08 # +1
guest6 05.09.2021 16:14 # 0
3.14159265 04.09.2021 01:49 # −1
В Си никаких await/async нет.
Именно поэтому я за «Си».
Зато есть (e)poll или kqueue
CEHT9I6PbCKuu_nemyx 04.09.2021 02:14 # 0
rotoeb 04.09.2021 02:32 # +1
ASD_77 04.09.2021 02:39 # 0
rotoeb 04.09.2021 02:44 # −2
JloJle4Ka 04.09.2021 06:00 # 0
j123123 04.09.2021 06:10 # +3
> The feature is found in C# 5.0, C++, Python 3.5, F#, Hack, Julia, Dart, Kotlin 1.1, Rust 1.39,[1] Nim 0.9.4[2] and JavaScript ES2017, with some experimental work in extensions, beta versions, and particular implementations of Scala.[3] It is also planned for Swift.
https://govnokod.ru/25005#comment436351
JloJle4Ka 04.09.2021 07:40 # 0
> https://govnokod.ru/25005#comment436351
Thread support for Nim.
Note: This is part of the system module. Do not import it directly. To activate thread support you need to compile with the --threads:on command line switch.
Nim's memory model for threads is quite different from other common programming languages (C, Pascal): Each thread has its own (garbage collected) heap and sharing of memory is restricted. This helps to prevent race conditions and improves efficiency. See the manual for details of this memory model.
JloJle4Ka 04.09.2021 09:33 # −1
И правильно, ведь я обязательно нагуглю какую-нибудь пижню и все аргументы луддитов-лалок разлетятся в щепки, доказывая, что за «Nim» будущее.
rotoeb 04.09.2021 09:55 # +2
PHP - выбор белого человека.
guest6 04.09.2021 12:22 # 0
bormand 04.09.2021 12:42 # 0
guest6 04.09.2021 12:54 # 0
Вообще лучше конечно не шарить, а акторить: принимать по каналу сообщения, и обрабатывать
Шаред стейт нужен только лоу-левел царям ради пифоманса.
Высокоуровневым писателям бизнес-логики обычно нет
bormand 04.09.2021 13:22 # +1
Ну это так, гипотеза. Я вообще понятия не имею что за язык.
JloJle4Ka 04.09.2021 13:24 # 0
JloJle4Ka 04.09.2021 13:23 # 0
ASD_77 04.09.2021 19:12 # +1
j123123 04.09.2021 19:14 # +1
А еще некоторые вещи ты ни на чем кроме асма не сделаешь
ASD_77 05.09.2021 01:53 # +1
class s {}; for (int i = 0; i < 1000000; i++) auto s1 = new s();
догадываешься кто выиграет ?
3.14159265 05.09.2021 01:57 # +1
>>j123123
> догадываешься кто выиграет ?
«PHP»?
ASD_77 05.09.2021 02:06 # 0
3.14159265 05.09.2021 02:20 # +1
CEHT9I6PbCKuu_nemyx 05.09.2021 02:44 # +1
3.14159265 05.09.2021 02:54 # +4
Ничего другого я не ожидал.
bormand 05.09.2021 05:07 # 0
Видимо таки разрешили забивать хуй на сайд-эффекты от new и delete.
bormand 05.09.2021 05:44 # +1
j123123 05.09.2021 05:45 # +2
bormand 05.09.2021 05:48 # +2
JloJle4Ka 05.09.2021 05:48 # 0
CEHT9I6PbCKuu_nemyx 05.09.2021 05:50 # +2
Магическое слово «volatile» запрещает делать предположения о потоке данных, следовательно, отключает оптимизацию.
JloJle4Ka 05.09.2021 05:53 # 0
Можно выделить парочку векторов на стеке, а потом в них пихать питухов, созданных в куче?
bormand 05.09.2021 06:01 # +2
Скорее просто считается сайд-эффектом. А сайд-эффекты пока удалять и переставлять местами нельзя.
З.Ы. Вон new и delete уже перестали считать сайд-эффектом.
Робот не может причинить вред человеку.
bormand 05.09.2021 06:55 # +2
Т.е. они именно эффекты от malloc заигнорили, походу.
bormand 05.09.2021 07:04 # +2
ISO 05.09.2021 13:22 # 0
https://gcc.godbolt.org/z/Kz87xcr8W
Soul_re@ver 05.09.2021 11:41 # +1
Пока что компилятор не умеет определять, что из пользовательского кода относится к управлению памятью, а что к другим операциям. Иначе он бы и пользовательскую хуйню вроде арен и прочих специализированных аллокаторов бы выкидывал по возможности.
3.14159265 05.09.2021 03:26 # 0
https://govnokod.ru/27581#comment658921
Хотя в данном случае for(;;) auto s1 = new s(); превратился в
ASD_77 05.09.2021 13:04 # +2
bormand 05.09.2021 13:07 # +2
ASD_77 05.09.2021 14:25 # 0
я обманул это ггс-говно
ISO 05.09.2021 14:28 # +2
3.14159265 05.09.2021 15:00 # +1
https://godbolt.org/z/hdK7Mrra6
О5 анскилл.
ASD_77 05.09.2021 18:00 # 0
3.14159265 05.09.2021 18:04 # 0
У меня всё работает.
CEHT9I6PbCKuu_nemyx 05.09.2021 18:10 # 0
P.S. А нет, «U» заглавной должна быть, чтобы съесть макрос.
ISO 05.09.2021 13:18 # +1
https://gcc.godbolt.org/z/q89sdaenW
bormand 05.09.2021 13:22 # +1
ISO 05.09.2021 13:25 # +2
Garbage Code Collector.
guest6 05.09.2021 13:29 # +2
Необходимо*
1. Взять нетривиальную математическую проблему, для оптимизации которой надо либо решить проблему столетия, либо осуществить полный перебор.
2. Вывести результат. Без вывода и другой работы с внешним миром можно код любой программы выкинуть.
Как минимум, попробовать посчитать и вывести какой-нибудь хэш от строки, содержащей последние 4 байта указателя на каждый объект.
__________________
* О том, что достаточно, я не берусь рассуждать. Не уверен, что вообще можно уговорить компилятор генерировать честные объекты в куче. Никто не заметит, если заменить кучу new на аллокацию/резервирования в статической памяти одного большого стека и return heap++; в "new". Ссылочная сука прозрачность, которой обрезает крылья только стандарт, объявляя какие-нибудь случаи, когда компилятор что-то должен сделать (ключевое слово volatile и явный список побочных эффектов, при виде которых компилятор не должен лениться).
bormand 05.09.2021 13:34 # +1
> Вывести результат.
Практика показывает, что и это не всегда помогает... Где-то здесь был пример, когда gcc в компайлтайме опроверг теорему Ферма.
guest6 05.09.2021 13:39 # +4
Да, есть ещё необходимое условие номер ноль: не допускать UB.
https://habr.com/ru/post/229963/
guest6 05.09.2021 13:44 # +4
3.14.15.92. The compiler shall not produce any output that results in j123123's reporting a bug.
bormand 05.09.2021 13:46 # +2
The compiler produced code that travelled into the past and killed j123123.
ISO 05.09.2021 14:13 # +1
https://wandbox.org/permlink/pKwLpM0NZ4cA6P1J
UPD: Поправил степень в уравнении.
bormand 05.09.2021 14:22 # 0
ISO 05.09.2021 14:27 # 0
bormand 05.09.2021 14:41 # +1
Да, но тут только 2 исхода -- либо он найдёт тройку чисел и выведет сообщение, либо он будет крутиться вечно т.к. других выходов из цикла нет. Вечный цикл это вроде как UB, так что почему бы не вывести сообщение и выйти?
ISO 05.09.2021 15:15 # 0
3.14159265 05.09.2021 15:30 # +2
В смысле ниасилил? А вы проверяли результат?
> Found!! Ferma sosnool 4 5 1360988357
> Но на полное удаление циклов ума не хватило — какое-то говно там всё таки крутится
Вы ему дали какую задачу? Доказать теорему в поле unsigned int
Где операции это
* сложение по модулю 2^n
* умножние по модулю 2^n.
ISO 05.09.2021 15:33 # +1
А и правда. По воскресеньям наш ма-те-ма-ти-чес-кий отдел закрыт.
Но компилятор и правда ниасилил, потому что имел полное право выкинуть все циклы и оставить один единственный puts.
3.14159265 05.09.2021 15:35 # +1
Это же Сишка (по сути), а не анскильные псевдоматематичные GHC и rustы.
ISO 05.09.2021 15:41 # +1
bormand 05.09.2021 15:54 # 0
guest6 05.09.2021 16:39 # +1
ISO 05.09.2021 16:43 # 0
С unsigned уже есть варианты, конечно.
3.14159265 05.09.2021 16:51 # 0
Опровергаю.
Компилятор делает всё в высшей степени корректно.
С int компилятор вообще показывает дикий математический скилл
В первом случае его просто просят вывести существует ли контрпример.
Компилятор это блестяще делает в доли микросекунды.
Используя своё математическое понимание, недоступное запартным лалкам (принцимп Дирихле) он понимает что на замкнутом кольце неизбежно будут коллизии и мгновенно пишет что контрпример существует.
Однако! Если попросить его найти реальный пример, то компилятор сгенерит другой код, который задумается.
Но опять же рано или поздно он через переполнение доворецирует до тривиального случая вроде
Так что придется тебе сесть на бутылку Клейна и извиняться перед Пьером Ахматовичем.
ISO 05.09.2021 16:55 # +1
Проблема в том, что int в крестах — это вовсе не замкнутое кольцо, потому что переполнение signed int — это UB.
Поэтому здесь компилятор попросту видит, что произойдёт одно из джвух: либо найдётся какой-нибудь контр-пример, либо произойдёт знаковое переполнение. Но знаковое переполнение — UB, которого в well-formed программе быть не может. А поскольку компилятор программиста уважает и долбоёбом не считает — «GCC» уверен, что и допускать UB в программе программист не станет. Следовательно, контр-пример существует, а поскольку искать конкретные числа программист не просил — все циклы можно смело выкидывать и печатать сообщение о найденном контр-примере.
CEHT9I6PbCKuu_nemyx 05.09.2021 02:08 # +4
3.14159265 05.09.2021 02:22 # +3
Браво!
Восхитительный, царский ротоебизм.
guest6 05.09.2021 13:56 # +1
guest6 05.09.2021 13:47 # +2
Неважно, где размещен ваш сайт — антивирус RU‑CENTER поможет уберечь его от заражения вредоносным кодом, потери информации, попадания в черные списки и снижения позиций в поисковой выдаче.
Вы сможете получать отчеты об обнаруженных угрозах, лечить зараженные файлы в панели управления или в автоматическом режиме. Выберите подходящий тариф и оформите заказ со скидкой 20% по персональному промокоду 598Z49UT9W. Предложение действительно в течение 14 дней.
Вернем 20% от стоимости заказа на бонусный счет. Кешбэк можно использовать для оплаты нового заказа.
JloJle4Ka 05.09.2021 13:50 # 0
guest6 05.09.2021 13:51 # +3
Причиной могут быть вирусы!
Купите антивирус Kaspersky Ultimate Pro Pack со скидкой 5%, и получите кепку в подарок!
bormand 05.09.2021 14:32 # −37
Кстати, 2.5 минуты это долго?
Desktop 05.09.2021 14:35 # +1
оверклокер
JloJle4Ka 05.09.2021 14:37 # 0
#оверклокинг
Но мы на говнокоде, поэтому надо делать так.
guest6 05.09.2021 14:37 # +1
у тебя рязань с nvme, или ты заморочился выкинуть оттуда всё ненужное?
bormand 05.09.2021 15:03 # +1
bormand 05.09.2021 16:21 # 0
15 минут штатное дебиановское собирается, в общем.
> nvme
tmpfs
bormand 05.09.2021 13:51 # +1
Обычно это называется резервной копией?
guest6 05.09.2021 13:53 # +2
JloJle4Ka 05.09.2021 13:56 # 0