Home
Обсуждение программирования на любых платформах
codingteam@conference.jabber.ru
Пятница, 7 января 2022< ^ >
m4n71k0r установил(а) тему: C, C#, C++, Clojure, Cobol, Common Lisp, D, Dart, Erlang, Elixir, F#, Fortran, Go, Groovy, Haskell, Java, JavaScript, Julia, Kotlin, Lua, MATLAB, Nim, Objective-C, OCaml, Perl, PowerShell, Python, R, Racket, Refal, Ruby, Rust, Scala, Scheme, Swift, TypeScript, Zig
Упоминания о Flash, PHP, Pascal/Delphi/Borland, Basic, 1С караются съедением поциента.
Telegram channel: https://t.me/codingteam
HQ, логи: https://codingteam.org.ru/
Код постить сюда: https://bpa.st/
Юным погромцам сюда: http://e-maxx.ru/algo/ , а ещё читать Кнутца, Корменца, Седжвикца, Скиенца и др.
http://i.imgur.com/slnyI6a.jpg
Для избавления от капчи покажите Ваш код, за который не стыдно. Ссылки на пасту\gist\github\gitlab\bitbucket приветствуются
Конфигурация комнаты
Участники комнаты

GMT+3
[00:23:21] AkhIL вышел(а) из комнаты
[01:14:36] Akon32 вышел(а) из комнаты
[02:48:45] m4n71k0r вышел(а) из комнаты
[03:02:12] O01eg вышел(а) из комнаты
[06:00:09] <тг> <@fvnever> >> <@ttldtor> гм, в cmake всё ещё самый просто способ задать через манифест требование запускать с правами админа -- это:
>>
>> set_property(TARGET ${PROJECT_NAME} PROPERTY LINK_FLAGS "/MANIFESTUAC:level='requireAdministrator'")
Если используемый линкер это поддерживает — то почему нет?
[06:02:29] <тг> <@fvnever> >> <@ttldtor> эм... а это точно нужная фича?)
Ну вообще да. Есть у тебя байты в памяти, а ты хочешь их залить на удалённый хост в файл. Зачем для этого создавать локальный файл, если можно прям из памяти?
[06:09:50] AkhIL вошёл(а) в комнату
[07:06:21] (<*>).(<*>) вышел(а) из комнаты
[08:08:23] portnov вошёл(а) в комнату
[08:32:54] O01eg вошёл(а) в комнату
[08:50:31] portnov вышел(а) из комнаты
[08:53:03] portnov вошёл(а) в комнату
[08:54:44] <тг> <@foxtran> portnov, мир создан!
[09:00:26] portnov вышел(а) из комнаты
[09:03:29] portnov вошёл(а) в комнату
[11:27:19] O01eg вышел(а) из комнаты
[12:42:31] <тг> <@ttldtor> УХЪ https://www.youtube.com/watch?v=BJBDmQJdDpc
[12:42:48] <тг> <@ttldtor> malloc_shared
[12:53:57] <тг> <@fvnever> Малоки — они такие, да.
[12:56:36] <тг> <@ttldtor> там какие-то хитрые сырые  указатели получаются, которые шарятся
[12:57:29] <тг> <@ttldtor> https://oneapi-src.github.io/DPCPP_Reference/model/unified-shared-memory.html
[12:58:19] <тг> <@ttldtor> только я не понял, насколько оно безопасно
[13:01:34] <тг> <@ttldtor> @foxtran а ты уже спрашивал у форневера про поддержку OpenMP в Цезии?
[13:02:28] <тг> <@fvnever> >> <@ttldtor> @foxtran а ты уже спрашивал у форневера про поддержку OpenMP в Цезии?
Покажите мне главу стандарта, где это описано.
[13:02:41] <тг> <@fvnever> Если такой главы нет, то у вас есть мой ответ.
[13:02:57] <тг> <@ttldtor> >> <@fvnever> Если такой главы нет, то у вас есть мой ответ.
это расширение(
[13:03:08] <тг> <@fvnever> >> <@ttldtor> это расширение(
Ну сорян, не до расширений вообще.
[13:03:21] <тг> <@fvnever> Я щас делаю int main(int, char*[])
[13:03:26] <тг> <@fvnever> Это оказалась ппц нетривиальная задача.
[13:03:45] <тг> <@fvnever> Уж о каких расширениях можно говорить, если я до сих пор даже аргументы в мейн не могу принять? :)
[13:03:59] <тг> <@fvnever> Тем более, о сложных и умных расширениях, а не каком-то говне.
[13:04:17] <тг> <@ttldtor> типа #pragma once
[13:04:18] <тг> <@fvnever> Но я уже почти сделал. Щас разберусь с байткодом — и готово.
[13:04:32] <тг> <@ttldtor> >> <@fvnever> Это оказалась ппц нетривиальная задача.
а какие проблемы возникли?
[13:04:44] <тг> <@fvnever> >> <@ttldtor> типа #pragma once
Это расширение несложное. Наткнусь на первую программу, которая его требует — и запилю.
[13:05:29] <тг> <@fvnever> >> <@ttldtor> а какие проблемы возникли?
Ну, в CLI у меня в энтрипоинте managed массив строк, а мне нужно вызвать main, и туда передать указатель на указатель чаров.
[13:05:53] <тг> <@ttldtor> а, там ещё владеть надо правильно
[13:06:14] <тг> <@fvnever> Поэтому я создаю новый массив указателей, перекладываю все строки туда в UTF-8 (выделив память системным аллокатором), потом пиню его, передаю в мейн, а в finally это всё освобождаю.
[13:06:25] <тг> <@fvnever> finally необязательно, но на всякий случай решил, что так лучше.
[13:06:36] <тг> <@ttldtor> managed -- unmanaged кухня мне показалась вся нетривиальной
[13:06:39] <тг> <@fvnever> Ну мало ли, вдруг кто будет многоразово вызывать мои программы в своём процессе.
[13:06:47] <тг> <@ttldtor> потоки, коллбэки
[13:06:51] <тг> <@fvnever> Сейчас вот на этапе пиннинга указателей, это несколько хитро оказалось.
[13:07:03] <тг> <@fvnever> Зато я уже намутил строковые литералы!
[13:07:06] <тг> <@fvnever> А там тоже весело.
[13:07:53] <тг> <@fvnever> На каждую длину литерала создаётся синтетический тип-структура нужного размера (типа struct <ConstantPool_17>).
А потом на каждый литерал создаётся поле с типом указанной структуры.
[13:08:40] <тг> <@ttldtor> звучит памятежруще
[13:08:41] <тг> <@fvnever> Это всё размещается в large object heap (то есть автоматом уже сразу запинено, ничо делать не надо!) и подгружается на этапе загрузки сборки.
А мне остаётся просто указатели на эти статик поля брать в нужный момент. В них уже все строковые данные записаны. В ридонли сегменте.
[13:08:59] <тг> <@fvnever> >> <@ttldtor> звучит памятежруще
Да нет, это ровно то что нужно, и в нормальной сишной программе бы также было.
[13:09:20] <тг> <@fvnever> Ну, типа, все литералы в ридонли сегменте бинарника, просто и вкусно.
[13:09:27] <тг> <@ttldtor> а ты оптимизируешь хранение литералов?
[13:09:35] <тг> <@fvnever> Это и есть моя оптимизация.
[13:09:58] <тг> <@ttldtor> дедупликацию я имею в виду
[13:10:02] <тг> <@fvnever> C# так делает для больших байтовых массивов иногда (если про них известно, что они в ридонли режиме читаются), а я вот для строк.
[13:10:10] <тг> <@fvnever> >> <@ttldtor> дедупликацию я имею в виду
А. Да, конечно, сделал дедупликацию уже.
[13:10:11] <тг> <@ttldtor> хотя, это штудийная фича
[13:10:43] <тг> <@fvnever> Все литералы в рамках сборки у меня дедуплицируются, чтоб лишний раз не нагенерить этих типов и полей лишних.
[13:11:44] <тг> <@fvnever> Вот так вот просто [https://github.com/ForNeVeR/Cesium/blob/b7c7cb95884a3c24adfb52102b71683d69ed1167/Cesium.CodeGen/Contexts/AssemblyContext.cs#L25-L26].
[13:37:05] <тг> <@fvnever> Пока что мой кодеген вот так вот [https://github.com/ForNeVeR/Cesium/blob/5fac6e0ee0fef95c6205dc35f4bbbbfeaff1e04a/Cesium.CodeGen/Generators/Functions.cs#L182-L241] выглядит, но я ещё не заставил это работать правильно %)
[13:54:14] O01eg вошёл(а) в комнату
[14:07:25] <тг> <@fvnever> О, кажись, я понял, в чём проблема. CIL не понимает ret внутри .try-блока. Нужно внутри блока делать присваивание переменной, а ret делать снаружи.
[14:51:32] Minoru вошёл(а) в комнату
[14:52:04] Minoru вышел(а) из комнаты
[15:00:39] Minoru вошёл(а) в комнату
[15:04:28] <Minoru> утро!
[15:05:59] <тг> <@fvnever> Жмутро.
[15:07:04] <тг> <@ttldtor> Жрутро
[15:24:07] <тг> @gsomix has entered the chat
[15:24:13] <тг> <@gsomix> Утро/
[15:24:21] <тг> <@foxtran> Да здравствует жромикс!
[15:24:22] <тг> <@ttldtor> шустро энтот гсомикс капчу проходит)
[15:24:43] <тг> <@ttldtor> >> <@foxtran> Да здравствует жромикс!
жортран
[15:24:47] <тг> <@foxtran> >> <@ttldtor> шустро энтот гсомикс капчу проходит)
Предлагаешь забанить?
[15:24:59] <тг> <@gsomix> >> <@foxtran> Да здравствует жромикс!
Спасибо, я как раз пожрал!
[15:24:59] Twily вышел(а) из комнаты
[15:24:59] Winnie-the-Poo вышел(а) из комнаты
[15:25:01] Twily вошёл(а) в комнату
[15:25:01] Winnie-the-Poo вошёл(а) в комнату
[15:25:06] <тг> <@foxtran> >> <@gsomix> Спасибо, я как раз пожрал!
Приятного )
[15:37:20] portnov вышел(а) из комнаты
[15:38:17] portnov вошёл(а) в комнату
[15:43:55] <тг> <@ttldtor> [Photo]: https://t.me/codingteam/545194
[16:08:51] Akon32 вошёл(а) в комнату
[16:21:58] <тг> <@ttldtor> keyrus
[16:31:33] <тг> <@fvnever> >> <@ttldtor> keyrus
Фига ты вспомнил.
[16:31:37] <тг> <@fvnever> Из каких чертогов ты это достал?
[16:32:00] <тг> <@ttldtor> >> <@fvnever> Из каких чертогов ты это достал?
память она такая
[16:32:08] <тг> <@ttldtor> КАААК ВСПОМНИТ!
[16:32:34] <Akon32> а что это?
[16:32:41] Akon32 не помнит.
[16:32:45] <тг> <@fvnever> >> <@ttldtor> КАААК ВСПОМНИТ!
http://www.igorsviridov.narod.ru/poslednee/nostalgi/nostalgi.gif
[16:33:14] <тг> <@fvnever> >> <Akon32> а что это?
Вроде это не то для русского шрифта, не то русской раскладки клавиатуры (или и того, и другого?) в DOS.
[16:34:08] <тг> <@ttldtor> http://www.softpanorama.org/People/Gurtyak/Programs/Keyrus/Keyrus73/keyrus.txt
[16:35:12] <тг> <@fvnever> >> <@ttldtor> http://www.softpanorama.org/People/Gurtyak/Programs/Keyrus/Keyrus73/keyrus.txt
Файл в 866 кодировке.
[16:35:30] <Akon32> жесть какая.
[16:35:57] <Akon32> на efi наверно не пойдёт.
[16:36:24] <тг> <@ttldtor> >> <@fvnever> Файл в 866 кодировке.
прекрасно отобразился в мозиле
[16:36:38] <тг> <@fvnever> А у меня хрен.
[16:36:53] <тг> <@fvnever> Пришлось скачать и открыть в локальном редакторе, где можно кодировку поменять.
[16:37:29] <тг> <@ttldtor> хром соснул
[16:37:32] <тг> <@ttldtor> и опера
[16:37:52] <тг> <@ttldtor> и edge
[16:37:54] Akon32 не найдёт, где кодировка в firefox.
[16:38:01] <Akon32> но всё работает.
[16:38:25] <тг> <@ttldtor> >> <Akon32> /me не найдёт, где кодировка в firefox.
хз, у меня почему-то автоматом определило. Хотя там в заголовках ничего не было по поводу кодировки
[16:38:42] <тг> <@fvnever> Слушайте, а как я должен был этот файл читать, если у меня ещё не установлен Keyrus?
[16:39:00] <Akon32> у меня определило. но чтобы посмотреть кодировку, надо по значку https кликать.
[16:39:24] <тг> <@ttldtor> >> <@fvnever> Слушайте, а как я должен был этот файл читать, если у меня ещё не установлен Keyrus?
Ну послушай, я вообще тут его нашёл http://www.softpanorama.org/People/Gurtyak/
[16:39:41] <Akon32> @fvnever там же сказано в нескольких местах, KEYRUS.COM
[16:39:58] <тг> <@fvnever> >> <@ttldtor> Ну послушай, я вообще тут его нашёл http://www.softpanorama.org/People/Gurtyak/
Ого, фан-клуб программиста?
[16:40:08] <тг> <@fvnever> Жаль, что он умер.
[16:40:13] <тг> <@ttldtor> мало пожил
[16:40:13] <Akon32> > 3.  Вы  наверное  заметили,  что  KEYRUS.COM занимает почти 22К. На самом деле драйвер представляет собой конгломерат процедур на все случаи жизни, шрифтов, клавиатур и др.
[16:40:36] <тг> <@ttldtor> >> <Akon32> > 3.  Вы  наверное  заметили,  что  KEYRUS.COM занимает почти 22К. На самом деле драйвер представляет собой конгломерат процедур на все случаи жизни, шрифтов, клавиатур и др.
ага, а так всего 3К надо
[16:40:39] <Akon32> >конгломерат процедур на все случаи жизни, шрифтов, клавиатур
[16:40:59] <Akon32> >конгломерат ... клавиатур
[16:41:09] <Akon32> на все случаи жизни!
[16:41:10] <тг> <@ttldtor> раскладок, наверное
[16:41:30] <Akon32> >При запуске программы он себя записывает в более старшие  адреса, а затем  считывает конфигурацию пользователя  и начинает  строить  тело  драйвера  из  процедур, кусков фонтов (возможно упаковав их при этом) и т.д., в общем всего того, что надо пользователю, не оставив ни одного лишнего байта в памяти.
[16:41:56] <Akon32> так забавно сейчас это читать.
[16:42:19] <Akon32> хорошо, что сленг ещё понятен.
[16:42:29] <тг> <@fvnever> >> <@ttldtor> ага, а так всего 3К надо
Можно даже триста байт!
[16:42:53] <Akon32> ни одного свободного байта!
[16:44:28] <тг> <@ttldtor> написал кучу всего в 19 лет
[16:44:44] <тг> <@fvnever> Я в 19 лет ничего хорошего не написал :(
[16:47:02] <тг> <@ttldtor> да и я
[16:47:03] <тг> <@fvnever> > Что нужно сделать, чтобы программа Norton Commander "понимала" русскую букву "р".
[16:47:45] Akon32 чот писал под j2me, да где то j2me.
[16:48:30] <portnov> «мея видо?»
[16:50:05] <тг> <@ttldtor> ет
[16:54:38] m4n71k0r вошёл(а) в комнату
[17:23:59] <(<*>).(<*>)> > <@fvnever> > Что нужно сделать, чтобы программа Norton Commander "понимала" русскую букву "р".
Там же на байтиках экономили, это специально так, ведь уже латинская P есть, выглядит так же, ну или похоже, зачем чарсет раздувать.
[17:25:27] <Akon32> одинаковых букв больше.
[17:28:29] <(<*>).(<*>)> Самое смешное что многие буквы на самом деле не одинаковые. K и К например. У них рендеры отличаются.
[17:29:50] <(<*>).(<*>)> А до UTF-8, если мне память не изменяет, там такие некоторые буквы шарились между языками.
[17:30:02] <Akon32> а p и р одинаковые что ли?
[17:31:16] <(<*>).(<*>)> Нет, семантически точно нет, на счёт рендеров не уверен.
[17:32:01] <(<*>).(<*>)> Если не совсем понятно, я про Р в ироничном контексте написал.
[17:36:27] <тг> <@sarakerrigan> >> <@fvnever> Из каких чертогов ты это достал?
из универских
[18:56:05] <тг> Davut Coşkun has entered the chat
[19:51:01] (<*>).(<*>) вошёл(а) в комнату
[20:29:46] m4n71k0r вышел(а) из комнаты: Replaced by new connection
[20:29:47] m4n71k0r вошёл(а) в комнату
[20:35:47] Родарий Ведогой вошёл(а) в комнату
[20:38:00] <Родарий Ведогой> Тут выясняем, какого бота поставить для связи Телеграмма и Джаббера. Что-нибудь посоветуете?
[20:42:33] <Minoru> мы пользуемся самописным https://github.com/codingteam/emulsion
[20:44:09] <тг> <@foxtran> >> <@fvnever> Пришлось скачать и открыть в локальном редакторе, где можно кодировку поменять.
а у меня есть Change Encoding в браузере
[20:51:58] <Родарий Ведогой> Я зашёл в соседнюю конференцию, раньше там сразу давали статус посетителя, теперь только гость. И написать ничего там не могу.
[20:52:12] <Родарий Ведогой> Это теперь нормально в джаббер ру?
[20:52:21] <Родарий Ведогой> Я что-то пропустил.
[20:53:20] <Родарий Ведогой> За ссылку спасибо.
[21:16:57] <Minoru> Родарий Ведогой: ну, конференции всякие бывают
[21:17:48] <Родарий Ведогой> Понятно, значит не общая практика.
[21:21:01] <тг> <@foxtran> >> <Minoru> Родарий Ведогой: ну, конференции всякие бывают
Ага. Например, WATOC
[21:22:29] <Родарий Ведогой> Там для перевода в посетители требуется авторизация, а где именно нигде не сказано.
[21:22:57] <тг> <@foxtran> >> <Родарий Ведогой> Там для перевода в посетители требуется авторизация, а где именно нигде не сказано.
Где - там?
[21:23:00] <Родарий Ведогой> Если на сервере конфы, тогда получается, что с других серверов коннектиться нельзя.
[21:23:14] <Родарий Ведогой> proramming@jabber.ru например
[21:23:33] <Родарий Ведогой> И ещё в какой-то конфе. Хотел спросить у кого какой бот ТГ
[21:33:28] foxy вышел(а) из комнаты: Replaced by new connection
[21:33:35] foxy вошёл(а) в комнату
[21:34:28] okolefleef вошёл(а) в комнату
[21:34:51] okolefleef вышел(а) из комнаты
[21:41:11] <тг> <@ttldtor> телеграм -- отстой
[21:41:50] <Minoru> Родарий Ведогой: ↑ вот так вот выглядят сообщения, проксированные из Телеграма :)
[21:42:17] <Родарий Ведогой> Ну об этом я догадался.
[21:42:36] <Родарий Ведогой> Вопрос только в том, какого из ботов взять. Переходить из ТГ не вариант.
[21:42:52] <Minoru> потести каждого недельку
[21:43:00] <Minoru> или возьми того, в который сможешь контрибьютить :)
[21:43:14] <Родарий Ведогой> Ох.
[21:44:30] <m4n71k0r> я разочаровался в телеграме
[21:47:59] <Родарий Ведогой> Чем там было очаровываться, стикерами и самописными ботами? Они не там появились.
[21:48:25] <Родарий Ведогой> И скорее всего там небезопасно, раз РКН перестал его блокировать.
[22:26:26] Akon32 вышел(а) из комнаты
[22:51:57] Minoru вышел(а) из комнаты
[23:24:18] m4n71k0r вышел(а) из комнаты
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!