Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Я изначально знаю, где какой тип у меня будет. А если не знаю, то я просто хуячу структуры с каким-то описателем типа, и передавать это говно через указатели, но это мне нахуй не надо
Зачем мне какие-то эксепшены? Это ж оверхед, под эксепшены нужно какое-то специальное говно, которое отслеживает всякие места, где это исключение может пойматься. См. https://habr.com/ru/post/208006/
У меня есть setjmp-longjmp, но мне ими как-то не доводилось пользоваться. А в ассемблере вообще можно свободно отматывать стек и прыгать из "функции" в "функцию" (на самом-то деле в ассемблере нет никаких "функций")
это у тебя комплекс не полноценности развился на базе использования C/C++ ... " .. ой я лишний байтик выделили. ой я интерфесиков много в класс напихал что теперь класс распидарасило.. ой я в хипе класс разместил теперь моя PC c 16 гб оперативы это не потянет... ой тут DLL размером с SSD диск..." пора взрослеть
Но ведь много какой код на JS это код на TS, так ведь? Значит ему и JS надо уметь компилировать, вот в чем багор )))
https://en.wikipedia.org/wiki/TypeScript#Compatibility_with_JavaScript
TypeScript is a strict superset of ECMAScript 2015, which is itself a superset of ECMAScript 5, commonly referred to as JavaScript.[32] As such, a JavaScript program is also a valid TypeScript program, and a TypeScript program can seamlessly consume JavaScript. By default the compiler targets ECMAScript 5, the current prevailing standard, but is also able to generate constructs used in ECMAScript 3 or 2015.
> недавно выпилили
Только это был не GC, а говно и палки, с помощью которых предлагалось сделать свой GC. Ими никто не пользовался (даже те, кто делал GC в крестах) поэтому и убрали.
Можно, если она у тебя есть. А если у тебя контроллер, никакого "malloc" у тебя нет. У тебя есть столько-то памяти по таким-то адресам, и ты как-то должен решать, чем и как эту память засирать
Вот вполне валидный код на TS. И где здесь типизация, guest6? Можно еще "noImplicitAny": false выставить, и тогда даже этот ": any" можно не использовать
Т.е. этот тайпскрипт не запрещает писать всю хуйню с этим "any", который неявно есть в JS, а значит нужно такую хуйню уметь компилировать, и получается внезапно, что нужно уметь компилировать JS, не так ли?
Да, ты прав: пользователь может отказаться от явных типов, и получить менее оптимизированный код.
``any`` хранить менее оптимально, чем ``number``.
Если всегда сначала компилировать в JS, то тебе всегда придется иметь дело с "any", а значит ты никогда не сможешь ничего оптимизировать (точнее сможешь, но придется много чего доказывать)
Сравним с жабой или C#: ты можешь явно указать int, и получить 4 байта инт. А можешь указать Object, и получить указатель на объект в куче, который будет внутри иметь int.
Очевидно, что оптимизировать можно и с "any", если можно построить граф, какая функция какую вызывает с какими типами.
Хуйню с "any" реализовывать в любом случае придется, иначе такой компилятор TS много какой хуйни не скомпилирует, так почему б не начать с реализации компилятора JS, и уже потом на него напяливать типы как в TS?
это не struct mode - в стрикт моде "any" запрещен. вот у меня мод где есть any но он не дает валидный код. (пока) и для моего компилятора any это почти запрещенная конструкция
А зачем в ЖС-подобный ЯП тащить неймспейсы? По стандарту ES6 предполагается использовать модули, в которых сущности по умолчанию приватные (ето в C++ нет модулей - только инклюды для импорта другого кода, так что там нужны неймспейсы чтобы конфликтов имен было поменьше). Или это фишка для nested modules?
ASD_77 # 0
ASD_77 # 0
j123123 # 0
ASD_77 # 0 ⇈
j123123 # 0 ⇈
Ragulinho # 0 ⇈
То ты анскильная лалка
MAKAKA # 0 ⇈
j123123 # 0 ⇈
j123123 # 0 ⇈
https://blog.quarkslab.com/resources/2013-07-12_visualcpp-rtti-inspection/images/rtti-layout.png
В крестах всё просто и понятно
ASD_77 # 0 ⇈
Ragulinho # 0 ⇈
MAKAKA # 0 ⇈
ASD_77 # 0 ⇈
j123123 # 0 ⇈
В "D" я их тоже вырубаю нахрен.
3.14159265 # 0 ⇈
Перепитушня не нужна.
Ragulinho # 0 ⇈
MAKAKA # 0 ⇈
g: SEH
WindowsGovno # 0 ⇈
j123123 # 0 ⇈
ASD_77 # 0 ⇈
ASD_77 # 0 ⇈
[email protected] # 0 ⇈
Не стоит забывать, что у j123123 оператива меряется в килобайтах. Да и флеш памяти не сильно больше.
j123123 # 0 ⇈
ASD_77 # 0 ⇈
j123123 # 0 ⇈
ASD_77 # 0 ⇈
j123123 # 0 ⇈
Или может TS оттранслированный в JS содержит в себе какую-то принципиально некомпилируемую хуйню, например eval()?
guest # 0 ⇈
j123123 # 0 ⇈
https://en.wikipedia.org/wiki/TypeScript#Compatibility_with_JavaScript
TypeScript is a strict superset of ECMAScript 2015, which is itself a superset of ECMAScript 5, commonly referred to as JavaScript.[32] As such, a JavaScript program is also a valid TypeScript program, and a TypeScript program can seamlessly consume JavaScript. By default the compiler targets ECMAScript 5, the current prevailing standard, but is also able to generate constructs used in ECMAScript 3 or 2015.
guest # 0 ⇈
Я не уверен, что компилятор TS генерит такой JS код, из которого легко вывести типы
j123123 # 0 ⇈
Что еще за "выводятся типы"? Вполне обычный код на JS это валидный код на TS.
https://stackoverflow.com/questions/38318542/how-to-use-javascript-in-typescript
https://www.tutorialsteacher.com/typescript/converting-javascript-to-typescript - некоторые небольшие исправления конечно же могут потребоваться, но я не вижу никаких требований что-то там типизировать
guest # 0 ⇈
вот валидный код для JS, но не валидный для TS, потому что не известно что возвращает foo()
``allowJs`` позволяет включать js код в компиляцию, но это не делает его TS.
j123123 # 0 ⇈
И как включение js кода будет решаться в компиляторе из-TS-в-LLVM?
guest # 0 ⇈
на выбор
1. запретить
2. сделать неоптимально
Например гетерогенный массив куда сложнее сделать оптитмально, чем массив numberов.
Можно провести такую аналогию: у тебя есть код на "си" с асмовставками на "x86 asm".
Как скомпилировать его под arm?
1. запретить асмовставки
2. перевести их на ARM (возможно очень неоптимально_)
ASD_77 # 0 ⇈
j123123 # 0 ⇈
[email protected] # 0 ⇈
Только это был не GC, а говно и палки, с помощью которых предлагалось сделать свой GC. Ими никто не пользовался (даже те, кто делал GC в крестах) поэтому и убрали.
JloJle4Ka # 0 ⇈
ASD_77 # 0 ⇈
JloJle4Ka # 0 ⇈
j123123 # 0 ⇈
JloJle4Ka # 0 ⇈
j123123 # 0 ⇈
Через инструкцию push выделяй
JloJle4Ka # 0 ⇈
А ещё можно позвать из ассемблера аллоку или маллоку сишную.
j123123 # 0 ⇈
JloJle4Ka # 0 ⇈
j123123 # 0 ⇈
guest # 0 ⇈
Хуже того: говно это лживое
В непидорских средах и непидорских языках GC нет
guest # 0 ⇈
Приведи реальные примеры.
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Но ведь он для apple...
Desktop # 0 ⇈
bormand # 0 ⇈
А там либы то завезли? Или надо будет как на сишке всё с нуля?
Desktop # 0 ⇈
https://medium.com/@Aciid/ship-c-code-with-swift-packages-using-swift-package-manager-44edcc702a45
впрочем, я на практике сишный интероп юзал только на мяке и там это очень ок
bormand # 0 ⇈
Да, для всякой гуйни это особенно удобно...
Desktop # 0 ⇈
bormand # 0 ⇈
Desktop # 0 ⇈
bormand # 0 ⇈
MediumGovno # 0 ⇈
Desktop # 0 ⇈
кстати, как оказалось, что медиум вполне работает и с включённым noscript
guest # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
j123123 # 0 ⇈
Вот вполне валидный код на TS. И где здесь типизация, guest6? Можно еще "noImplicitAny": false выставить, и тогда даже этот ": any" можно не использовать
guest # 0 ⇈
j123123 # 0 ⇈
guest # 0 ⇈
``any`` хранить менее оптимально, чем ``number``.
Если всегда сначала компилировать в JS, то тебе всегда придется иметь дело с "any", а значит ты никогда не сможешь ничего оптимизировать (точнее сможешь, но придется много чего доказывать)
Сравним с жабой или C#: ты можешь явно указать int, и получить 4 байта инт. А можешь указать Object, и получить указатель на объект в куче, который будет внутри иметь int.
Очевидно, первый случай более оптимальный.
j123123 # 0 ⇈
Хуйню с "any" реализовывать в любом случае придется, иначе такой компилятор TS много какой хуйни не скомпилирует, так почему б не начать с реализации компилятора JS, и уже потом на него напяливать типы как в TS?
j123123 # 0 ⇈
ASD_77 # 0 ⇈
guest # 0 ⇈
вон товарищ подсказывает, что он такой кейс вообще не
ASD_77 # 0 ⇈
JaneBurt # 0
j123123 # 0 ⇈
Desktop # 0 ⇈