[00:13:27] <OCTAGRAM> > The good news is that Rust’s std::panic::catch_unwind/resume_unwind  proved much easier to use than Go’s defer/recover. The bad news is that  Rust prints out a stack trace when a panic first occurs rather than when  a panic propagates to the top of the stack, so I had to set a custom  panic hook to prevent that.
[01:48:08] <OCTAGRAM> в ParaSail-то с шаблонами поэкспериментировали, есть шанс, что оттуда приедет
[01:51:52] <ada_ru> (I_vlxy_I) c которыми шаблонами?
[01:55:32] <ada_ru> (I_vlxy_I) pattern matching?
[02:06:32] <OCTAGRAM> да
[02:08:07] <OCTAGRAM> https://en.wikipedia.org/wiki/Dependent_type#Comparison_of_languages_with_dependent_types — дописал
[02:10:43] <ada_ru> (I_vlxy_I) эмм.. в Аде есть зависимые типы? можно примеров?
[02:11:56] <OCTAGRAM> http://www.ada-auth.org/standards/2xrm/html/RM-3-2-4.html
[02:14:00] <ada_ru> (I_vlxy_I) эмм.. это ж рантайм проверки. это фигня какая-то. эдак я и в плюсах сконструировать могу
[02:14:08] <OCTAGRAM> “pair of integers where the second is greater than the first” — такую штуку выразить точно можно
[02:14:32] <OCTAGRAM> SPARK в помощь
[02:14:44] <OCTAGRAM> там же зеркалируют Аду теперь
[02:16:24] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) “pair of …>
такую штуку и на С++ можно выразить. даже без шаблонов. тупо за счет конструктора который кинет исключение если пара некошерная.
[02:16:57] <ada_ru> (I_vlxy_I) но это не те зависимые типы о которых говорят обычно. зависимые типы в языке гарантируют на этапе компиляции что все будет норм. а не в рантайме исключениями флудят
[02:18:20] <OCTAGRAM> то есть, со SPARK'ом становятся те?
[02:20:10] <ada_ru> (I_vlxy_I) возможно. SPARK вообще крут
[02:20:28] <ada_ru> (I_vlxy_I) то есть конекретно вот SPARK очень интересен. добраться бы до него... 🙂
[07:53:48] <ada_ru> (t91x0) Это называется натягивание совы на глобус. Для явы тоже есть статические верификаторы, но от их наличия она не становится языком с зависимыми типами.
[08:31:02] <OCTAGRAM> “pair of integers where the second is greater than the first” есть, верифицировать это статически возможно, чего ещё не хватает
[08:31:54] <OCTAGRAM> я так понимаю, Extraction language указывает на некий язык-донор, и он там, бывает, не совпадает, а тут, получается, всё в одном
[08:32:30] <OCTAGRAM> вроде бы у реализации SPARK 2012 Coq был, но сейчас Why3
[11:02:37] <OCTAGRAM> я тут почитал, в WebAssembly с исключениями не густо
[11:02:53] <OCTAGRAM> мне кажется, одно с другим как-то связано
[11:02:58] <ada_ru> (I_vlxy_I) а ctags умеет Аду?
[11:03:17] <OCTAGRAM> и типы данных в WebAssembly подозрительно похожи на те, что в Rust
[11:04:27] <ada_ru> (Максим) max@mac /tmp $ ctags --list-languages
Ada
[11:04:50] <ada_ru> (I_vlxy_I)  отвечает (Максим) на <max@mac /tmp $ ctags…>
а версия ctags какая?
[11:05:24] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) и типы да…>
а еще в llvm они подозрительно похожи на те что в rust, а еще слышал что webasm подозрительно на c++ похож. ЗАГОВОР!
[11:05:33] <ada_ru> (Максим) max@mac /tmp $ ctags --version
Universal Ctags 0.0.0, Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
 Compiled: Feb 25 2018, 22:42:32
 URL: https://ctags.io/
 Optional compiled features: +wildcards, +regex, +option-directory, +coproc
[11:06:03] <ada_ru> (I_vlxy_I) сам ставил, или в репе уже такое было?
[11:06:43] <OCTAGRAM> ах, так это из LLVM уши растут
[11:06:57] <OCTAGRAM> нет, ну в C++-то исключения есть
[11:07:10] <OCTAGRAM> а в Wasm — как-то не очень
[11:07:45] <ada_ru> (Максим) dev-util/ctags-20161028
[11:07:58] <OCTAGRAM> вот если в Rust Result<T, E> заменяет исключения, и в Wasm исключений нет, то тут как раз можно заподозрить нездоровые корреляции
[11:09:21] <ada_ru> (Максим) В LLVM есть отдельный документ по исключениям http://llvm.org/docs/ExceptionHandling.html
[11:10:10] <OCTAGRAM> чтобы впилить исключения в Wasm, это его, получается, надо сильно переделать
[11:10:40] <OCTAGRAM> стеки в памяти располагать безальтернативно, чтоб вернуться можно было
[11:10:52] <OCTAGRAM> это уже как другое ABI получается
[11:11:02] <ada_ru> (Максим) так, кстати, пишут, что для винды всё совсем по другому
[11:11:09] <ada_ru> (I_vlxy_I) в Rust есть исключения. то есть Rust не живет без реализации полноценных исключений. ну назвали они это паниками, но раскрутка стека, вызов деструкторов и возможность это дело перехватить и обработать - там осталась. ничем от исключений в плюсах не отличается по факту
[11:11:12] <ada_ru> (Максим) LLVM supports handling exceptions produced by the Windows runtime, but it requires a very different intermediate representation. It is not based on the “landingpad” instruction like the other two models, and is described later in this document under Exception Handling using the Windows Runtime.
[11:11:30] <ada_ru> (I_vlxy_I) аналогично в Go (кроме того, что там нет деструкторов)
[11:11:39] <OCTAGRAM> зная, что в конкретных компиляторах ABI не другое, можно сделать вывод, что исключения работать не будут
[11:11:45] <ada_ru> (I_vlxy_I) в свифте вроде тоже исключения не в чести. что в свифте там - я хз
[11:12:24] <OCTAGRAM> есть NSException , который можно бросать из Objective-C, а, значит, и в Свифте он может быть
[11:12:37] <ada_ru> (I_vlxy_I) а может и не быть
[11:12:46] <ada_ru> (I_vlxy_I) вроде они с исключениями там воевали
[11:12:59] <ada_ru> (I_vlxy_I) а в objc++ можно было кидать и ловить ещё и плюсатые исключения!
[11:13:05] <ada_ru> (I_vlxy_I) вот это была реально шизофрения
[11:13:26] <OCTAGRAM> ну, кстати, NSException бросается средствами библиотеки C++
[11:13:29] <ada_ru> (Oleg) Парни, хороший гуй на весь экран , типа как киоск, на чем нынче делают? HTML /JS? Я на QT смотрю но оно же вроде дорого?
[11:13:49] <OCTAGRAM> а на киосках исходники требуют предоставить?
[11:13:55] <ada_ru> (Oleg) Не
[11:14:09] <OCTAGRAM> тогда что значит дорого?
[11:14:22] <ada_ru> (I_vlxy_I)  отвечает (Oleg) на <Парни, хороший гуй н…>
на QT конечно можно, но только тупо видеоролики. Вот полноценный GUI лучше таки на Qt сваять.
[11:14:28] <ada_ru> (I_vlxy_I) вроде Qt не шибко дорого
[11:14:29] <OCTAGRAM> можно OpenGL'ное что-нибудь взять, Lumen или чистый OpenGL
[11:14:52] <OCTAGRAM> к нему кто-то толстые привязки вроде пилил
[11:14:53] <ada_ru> (I_vlxy_I) там же qt quick - даже не плюсы
[11:15:13] <ada_ru> (Oleg) Короче надо попробовать
[11:15:37] <ada_ru> (Oleg) Спасибо
[11:16:05] <OCTAGRAM> в общем, без специального конвертера C->C или C++->C (Comeau???), который бы менял ABI, напрямую AdaMagic с EmScripten увязывать смысла нет
[11:17:24] <OCTAGRAM> я раньше думал об этом в контексте многозадачности, но теперь и исключения туда же
[11:24:30] <ada_ru> (Максим) А где ты читал про исключения webasm? https://github.com/WebAssembly/exception-handling/blob/master/proposals/Level-1.md тут?
[11:31:08] <OCTAGRAM> https://webassembly.org/docs/js/
[11:31:36] <OCTAGRAM> Whenever WebAssembly semantics specify a trap, a WebAssembly.RuntimeError object is thrown. WebAssembly code (currently) has no way to catch this exception and thus the exception will necessarily propagate to the enclosing non-WebAssembly caller (either the browser or JavaScript) where it is handled like a normal JavaScript exception.  If WebAssembly calls JavaScript via import and the JavaScript throws an exception, the exception is propagated through the WebAssembly activation to the enclosing caller.
[11:31:56] <OCTAGRAM> достаточно, чтоб понять, что нормальных исключений нет
[11:32:25] <OCTAGRAM> и чтобы их всё же запилить, надо такое устройство стека, которое может переживать trap
[11:33:13] <OCTAGRAM> а это значит другое ABI
[11:34:15] <OCTAGRAM> ну, кстати, setjmp()/longjmp() там, наверное, тоже были бы возможны
[11:36:06] <OCTAGRAM> хотя есть ещё вариант с тем, чтобы не на уровне C->C делать врез, а на уровне Wasm->Wasm
[11:36:08] <ada_ru> (Максим) сырое оно какое-то всё :(
[11:36:47] <OCTAGRAM> всяко лучше, чем JS, который сейчас
[11:38:56] <OCTAGRAM> и этот Wasm, он есть уже сейчас
[11:39:24] <OCTAGRAM> вообще, интересная тема, можно привлечь некоторое внимание
[11:42:05] <OCTAGRAM> сделать инструменты трансформации, которые понимают:
1. Objective-C (а для него сейчас нет компиляторов в Wasm)
2. Исключения (нет в Wasm)
3. Опционально трамплинизация (кроме Emterpreter, другие подходы были отменены, но Emterpreter — он вообще на JS, а не Wasm)
4. Вывод AdaMagic

Четвёртое может интересовать только адаистов, но на 1-3 можно выехать и получить некоторую поддержку
[11:43:56] <OCTAGRAM> я бы пожалел, что AdaMagic не умеет проецировать исключения на goto, как в чистом C без длинных прыжков, но в WebAssembly и EmScripten с goto тоже некоторые затруднения
[11:47:24] <OCTAGRAM> надо делать внутренние трамплины типа while (…) { switch (…) { … } } и внешний трамплин для передачи управления между фунциями
[12:15:35] <OCTAGRAM> возможность давать имена циклам в Rust — это похоже на Аду
[12:37:00] <ada_ru> (I_vlxy_I) Да они все родственники. И ада и плюсы и паскаль и раст.
[12:38:14] <OCTAGRAM> в Паскале-то нету такого
[12:38:41] <OCTAGRAM> в плюсах я тоже что-то не припоминаю, или появилось уже?
[12:40:23] <ada_ru> (I_vlxy_I) Может в одном из предков-алголов было
[12:40:29] <ada_ru> (I_vlxy_I) Например в 68
[12:53:25] <ada_ru> (I_vlxy_I)  отвечает на <(OCTAGRAM) возможнос…>
возможно это скорее похоже на js 😊
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
[13:01:17] <ada_ru> (I_vlxy_I) блин, какой же искаробочный убунтовый ctags бесполезный...
[13:01:52] <ada_ru> (I_vlxy_I) Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
[13:01:58] <ada_ru> (I_vlxy_I) ады там конечно же нету.
[14:09:03] <OCTAGRAM> нет, всё же какие-то исключения в EmScripten есть
[14:11:58] <OCTAGRAM> https://kripken.github.io/emscripten-site/search.html?q=exception&check_keywords=yes&area=default документация по этому вопросу явно не на высоте
[14:16:58] <ada_ru> (Максим) Ирония: Там есть документация???
[14:18:53] <OCTAGRAM> в том единственном документе, что всплывает, кое-что вычитать можно
[16:04:31] <ada_ru> (I_vlxy_I) еще видос про всякое про беспилотники: https://www.youtube.com/watch?v=QLatzjrhUUs
[16:48:03] <ada_ru> (coopht)  отвечает (I_vlxy_I) на <еще видос про всякое…>
Вот после Российского ноу-хау и аналогов нет можно дальше не смотреть
[16:48:14] <ada_ru> (I_vlxy_I) Ага. 😊
[16:48:20] <ada_ru> (I_vlxy_I) журналисты!
[16:49:15] <ada_ru> (I_vlxy_I) обычно на словах "наша разработка не имеет аналогов в мире" инвестор разворачивается и уходит.
[22:28:30] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <обычно на словах "на…>
а уходит он потому, что такая фраза говорит о том что люди не в курсе современного рынка и вообще ничего не делают для его развития
[22:29:27] <ada_ru> (I_vlxy_I)  отвечает (no111u3) на <а уходит он потому, …>
Либо реально аналогов нет, значит хз будет ли под это рынок. Возможно аналогов нет потому, что никому нафиг такое не нужно.
[22:29:44] <ada_ru> (no111u3) ну что как бы не отрицает сказанное мною выше
[22:30:16] <ada_ru> (no111u3) нельзя просто так взять и впихнуть невпихуемое
[22:30:20] <ada_ru> (I_vlxy_I) У меня от этой фразы уже глаз дергается.. Хез почему в наших ура-сми ее так любят.
[22:30:31] <ada_ru> (no111u3) вот у меня тоже
[22:31:01] <ada_ru> (no111u3) я не изобритатель а инженер, я привык к тому что ноу-хау вот вообще как мало
[22:31:18] <ada_ru> (no111u3) и 99% будет коропотливый допил уже существующего
[22:32:23] <ada_ru> (I_vlxy_I) Угу. И основной профит именно в допиле.
[22:32:27] <ada_ru> (no111u3) да
[22:33:00] <ada_ru> (no111u3) ты можешь пруф оф концепт предложить, но он никому не нужен, так как это не масштабируемо и не сериализуемо от слова совсем
[22:33:08] <ada_ru> (no111u3) и это его и убъёт
[22:34:04] <ada_ru> (no111u3) поэтому я понимаю что не гений и даже не пахнет, сижу курю ТАУ
[22:34:13] <ada_ru> (no111u3) может что состряпаю прикольного
[22:37:36] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Угу. И основной проф…>
поэтому есть курсовая стабилизация, а полностью автомное управление в текущей реализации хорошо работает разве что у ракет и тактических беспилотников
[22:38:13] <ada_ru> (I_vlxy_I) У водоплавающих тоже норм вроде как.
[22:38:29] <ada_ru> (no111u3) ну те тоже как бы военка
[22:38:45] <ada_ru> (no111u3) я про то что гражданка без привязки к мапу ну не очень
[22:39:09] <ada_ru> (I_vlxy_I) Там вроде и гражданский рынок большой
[22:39:19] <ada_ru> (no111u3) честно не видел
[22:39:35] <ada_ru> (no111u3) может он и есть, но как-то не заметный он
[22:40:54] <ada_ru> (no111u3) я помню девочка в Омском политехе зачитывала про автономное управление и как я её размазал по доске за её допущения
[22:41:11] <ada_ru> (no111u3) а потом и зам ростеха
[22:41:19] <ada_ru> (no111u3) ибо всё это классно
[22:41:25] <ada_ru> (no111u3) но нифига не рабочее
[22:42:04] <ada_ru> (no111u3) а загонные прототипы я видел ещё в начале двухтысячных
[22:43:01] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Там вроде и гражданс…>
вот просто вопрос в лоб - переход регулируемый гаишником(гибддшником) ваша реализация вывезет?
[22:45:57] <ada_ru> (I_vlxy_I)  отвечает (no111u3) на <вот просто вопрос в …>
Я не знаю делали у нас распознание этого объекта, или нет.
[22:45:59] <ada_ru> (I_vlxy_I) Как я понимаю, в ближайшее время никто не собирается выкатить беспилотник уровня 5.
[22:46:14] <ada_ru> (no111u3) да пофиг на 5
[22:46:18] <ada_ru> (I_vlxy_I) Уровень 3 и 4 -- вот это сейчас реалистичная цель.
[22:46:20] <ada_ru> (no111u3) 3 - 4 давай
[22:46:41] <ada_ru> (no111u3) согласно 4 это полное соответсвите пдд
[22:46:57] <ada_ru> (I_vlxy_I) То есть для 3-4 достаточно увидеть такого гаишника и сказать водителю "на этом мои полномочия всё"
[22:47:07] <ada_ru> (no111u3) а вы проверяли?
[22:47:12] <ada_ru> (no111u3) оно так может?
[22:48:00] <ada_ru> (I_vlxy_I) Не могу ни подтвердить ни опровергнуть :-)
[22:48:06] <ada_ru> (no111u3) или крест без светофора
[22:48:43] <ada_ru> (no111u3)  отвечает (I_vlxy_I) на <Не могу ни подтверди…>
поэтому я и говорю не в этом столетии
[22:49:06] <ada_ru> (no111u3) потому, что нельзя делать прогнозов исходя из текущих данных
[22:49:45] <ada_ru> (I_vlxy_I) Если бы у меня одновременно была и вся информация и я бы там не работал, то может и смог бы подтвердить либо опровергнуть :-)
[22:50:03] <ada_ru> (no111u3) если бы да кабы, ну да ладно
[22:50:25] <ada_ru> (no111u3) я не могу судить о том чего не знаю
[22:50:56] <ada_ru> (no111u3) однако из того что я знаю, ведение по разметке, жпс и лидару уже лет как 20 делается
[22:51:05] <ada_ru> (no111u3) и пока не сильно ушло вперёд
[22:52:07] <ada_ru> (I_vlxy_I) Думаю более вероятно промышленные внедрения нежели легковушки
[22:52:15] <ada_ru> (no111u3) скорее да
[22:52:34] <ada_ru> (no111u3) легковушки сильно подростут в цене
[22:53:04] <ada_ru> (I_vlxy_I) Сейчас вот еду как раз комбайн допиливать в некоторых аспектах :-)
[22:53:25] <ada_ru> (no111u3) комбайн скучно
[22:53:41] <ada_ru> (no111u3) унификация это не продуктивно
[22:54:36] <ada_ru> (no111u3) надо голосовалку
[22:54:45] <ada_ru> (no111u3) cada или adac
[23:04:35] <ada_ru> (I_vlxy_I) Э?
[23:05:04] <ada_ru> (I_vlxy_I) Я вот конкретно про harvester говорил :-)
[23:05:17] <ada_ru> (no111u3) ну какое назваине компилятора более по душе
[23:06:49] <ada_ru> (I_vlxy_I) А что компилировать?
[23:07:07] <ada_ru> (no111u3) аду
[23:07:23] <ada_ru> (no111u3) просто есть rustc
[23:07:29] <ada_ru> (no111u3) я и думаю что лучше
[23:09:15] <ada_ru> (I_vlxy_I) cadavr :-) adac похож на adas - мне это приятно и знакомо :-)
[23:09:37] <ada_ru> (no111u3) короче какой вариант победит тот и будет
[23:11:36] <ada_ru> (I_vlxy_I) Я бы советовал глянуть что хуже гуглится
[23:11:49] <ada_ru> (I_vlxy_I) И что хуже находится на гитхабе
[23:11:51] <ada_ru> (no111u3) я понял
[23:12:14] <ada_ru> (no111u3) просто скучно мне
[23:36:24] <OCTAGRAM> в AdaMagic было название adacomp
[23:36:45] <OCTAGRAM> как насчёт портировать AdaMagic на EmScripten?
[23:37:25] <ada_ru> (no111u3) а что это?
[23:39:01] <OCTAGRAM> AdaMagic — транслятор Ada->C/C++, EmScripten — транслятор C/C++ в Asm.js/WebAssembly
[23:39:09] <ada_ru> (no111u3) ох
[23:39:20] <ada_ru> (no111u3) какая это гадость ваша заливная рыба
[23:39:22] <OCTAGRAM> такой комбинацией можно было бы Аду быстро в браузере пускать
[23:39:45] <ada_ru> (no111u3) ну допустим фронт если к ллвм приделать то можно и в вебассембли
[23:40:02] <ada_ru> (no111u3) там бэк любой можно
[23:40:40] <OCTAGRAM> AdaMagic производит C/C++ код (градации между C и C++ регулируются), а EmScripten сделан на LLVM
[23:41:17] <ada_ru> (no111u3) зачем промежуточный код
[23:41:24] <ada_ru> (no111u3) когда сразу можно в i
[23:42:04] <OCTAGRAM> меня б устроила синица в руке с трансляцией через градацию между Си и C++
[23:42:21] <ada_ru> (no111u3) так она уже есть
[23:42:29] <OCTAGRAM> нет, не вполне
[23:42:34] <ada_ru> (no111u3) а чего нет?
[23:42:47] <OCTAGRAM> есть RTL под Windows, под Linux, но не под EmScripten
[23:43:27] <OCTAGRAM> допиливать надо некоторые вещи типа Ada.Calendar.Clock
[23:44:44] <ada_ru> (no111u3) надо
[23:44:49] <OCTAGRAM> и некоторые вещи за пределами RTL — работа с DOM, SDL2, WebGL
[23:44:55] <ada_ru> (no111u3) будет время допилится