
Dmitry
08.09.2017
14:14:51
по идее да
можно писать либы для вещей которые работают только с Си либами

Ievgenii
08.09.2017
14:15:36
Ясно

Dmitry
08.09.2017
14:36:46
так, я что-то не соображу, если мне нужно в своем приложении запустить другое приложение, то какую функцию использовать?
просто если делаю spawnProcess то если убиваю родителя, то потомок тоже мрет

Google

Ievgenii
08.09.2017
15:32:44
Полюбому
Ты же его родительский процесс

Andrey
08.09.2017
16:08:37

Oleg
08.09.2017
16:55:40
тебя наверное все спрашивают, но, всё же чем не устроили gtk, dlangui?

Andrey
08.09.2017
16:56:03
мне для игры надо

Oleg
08.09.2017
16:56:47
dlangui умеет в ogl

Andrey
08.09.2017
16:57:06
там свой main loop

Oleg
08.09.2017
16:57:28
эт да, а он не разрывается никак?
в gtk есть отедельно run, и отдельно iteration

Andrey
08.09.2017
16:58:27
gtk сильно здоровое
у меня еще пока imgui используется
зависимости напрягают

Eto
08.09.2017
17:10:09

Google

Олег
08.09.2017
18:26:26
Хороший gui для игр nuklear, и биндинг для D уже есть https://code.dlang.org/packages/nukleard
На хабре про него https://m.habrahabr.ru/post/319106/

Dmitry
09.09.2017
07:42:07
betterC тут идеален, надеюсь кто нить на нем напишет небольшую портабельную Гуи либу
А mir точно совсместим с режимом betterC?
хотя, так, стоп опять линковщик падает
Фанатов Го на лоре неплохо так засирают даже в теме про Nim:

Ned Ogl
09.09.2017
15:18:22
Крч, можете смело меня пинговать по вопросам линковки (ld), betterC флага, C/D ABI и extern'ам
Я тут на них собаку съел, пока ядро собирал

Dmitry
09.09.2017
15:21:33
А ок) щас не скажу. Не за компом. Оставил студию качаться
В ldc 1.4 линкер в итоге встроили или нет?

Ned Ogl
09.09.2017
15:23:11
Насколько я знаю, еще нет

Dmitry
09.09.2017
15:23:16
Как по функции определить можно ли ее юзать в режиме betterC или нет?

Ned Ogl
09.09.2017
15:23:16
Он пользуется ld
Если не выйдет, будет ошибка линковки к какому-то хендлеру из рантайма

Dmitry
09.09.2017
15:24:41
Но там же в тех же стд.алгоритмах сто пудов куча функций будет на gc завязана. Предлагаешь их по одиночке проверять?

Ned Ogl
09.09.2017
15:25:17
Предлагаю использовать @nogc
Что касается ассертов и аллокаций/деаллокаций, в режиме betterC компилятор вызывает соответствующие функции из Сlib

Google

Ned Ogl
09.09.2017
15:26:37
libc, простите

Anatoly
09.09.2017
17:18:04
Господа, а как прибить поток "извне", если очень хочется?

Oleg
09.09.2017
17:59:29
Не процесс?

Anatoly
09.09.2017
18:01:48
да, именно экземпляр Thread
дишный поток

Dmitry
09.09.2017
18:09:16
Послать туда сигнал завершения разве что. Но поток должен уметь его обрабатывать

Anatoly
09.09.2017
18:13:23
Я в курсе про культурные способы) Очень хочется именно "прибить", но мне не дают этого сделать. Думал, может я чего-то недогуглил. Посмотрю чуть позже тогда как оно под капотом работает.

Dmitry
09.09.2017
18:15:35
Вот что тебе нужно https://dlang.org/library/std/process/kill.html

Anatoly
09.09.2017
18:17:57
Не помню, чтобы в винде, например, процессы можно было прибить по хэндлу потока (даже если я его получу).

Ned Ogl
09.09.2017
18:37:47

Ned Ogl
09.09.2017
18:38:06
Ты можешь тупо проверять таким образом, что работает, а что - нет
Но, боюсь, я неверно понял задачу
Чего ты хочешь добиться флагом betterC?
Это классная игрушка, которая отвязывает тебя от рантайма. Но какова цель?

Pavel
09.09.2017
18:54:00

Anatoly
09.09.2017
19:14:23
под линухами ещё есть возможность, потому что id возвращает то, что нужно (m_addr) , который можно заюзать в pthread_*, а под виндой хэндл спрятан (m_hndl), приватный ... странная асимметричность

Pavel
09.09.2017
19:21:22
Ну это как если бы ты хотел из программы вырезать строки с M по N
Тред это интимная часть программы, завязанная на внутренний контекст. Убивать его может быть опасно.

Google

Anatoly
09.09.2017
19:24:38
тогда можно было просто запретить создавать треды и разрешать только из пула их брать. Пул бы создавался лениво (о, этот чувак решил треды заюзать! - создадим ему пул). А дальше бы таски, файберы итд крутилось бы на этом пуле. Надо новый пул? - пожалуйста! Но ничего ручками не создавай
И вот я вижу, что они интимную рюшечку под линухами-таки просовывают в щелочку id
https://github.com/dlang/druntime/blob/master/src/core/thread.d#L809

Pavel
09.09.2017
19:36:50
По id можно синхронизировать тред и узнавать кому какое сообщение посылать. Но в остальном это простая неконтролируемая штука
И если вдруг тред зависнет в бесконечном цикле то фиг что сделаешь

Anatoly
09.09.2017
19:40:23
Вообще идея была такая: попробовать прибить не главный тред во время вызова в нём статического конструктора и посмотреть, что произойдёт =) . Прибить не получилось и вызов статического конструктора (для шаблонного класса) оказался совсем не втом потоке, в котором ожидалось, а в главном
что-то вроде
https://wandbox.org/permlink/IVnBmTqPHUnBLbVJ
тому, что прибить не получилось таким способом, не очень удивился, а вот инстанцирование немного удивило.

Pavel
09.09.2017
19:47:56
Попробуй B заэкстендить от Thread

Dmitry
10.09.2017
12:45:11
А LinkedList это получается тоже структура у которой есть уакзатель не предыдущий и следующий элементы?

Admin
ERROR: S client not available

Dmitry
10.09.2017
12:45:30
в Ди ему эквивалентен какой тип?

NullSanya
10.09.2017
12:45:55
SList и DList

Dmitry
10.09.2017
12:46:59
Кстати, а с чем связано что в исходниках C#/Java LinkedList постонно используется, а в Ди Dlist я видел пару раз в жизни

Pavel
10.09.2017
12:49:48
Где он там постоянно используется?

Dmitry
10.09.2017
12:50:24
ну хз я просто что исходник не открою там постоянно LinkedList
такое чувство что там его как масив все используют

Pavel
10.09.2017
12:52:14
У LinkedList удобные и быстрые операции вставки, удаления, перемещения элемента
Т.к. ты только оперируешь указателями по сути.
Но поиск по нему за линейное время.

Google

Dmitry
10.09.2017
12:59:45
https://habrastorage.org/web/301/6df/0a2/3016df0a2ebb42f19b44ac47ebcf283a.png
"I think I used LinkedList once or twice when I needed a stack."
https://twitter.com/joshbloch/status/583813919019573248
А arrayList это тупо как дишный массив?

Pavel
10.09.2017
13:04:04
нет

Dmitry
10.09.2017
15:23:15
А arraList это анало чего?
по идее же это динамический массив

Dmitry
10.09.2017
15:30:14
Да, ArrayList и C#'вские Listы это массивы динамические.

Pavel
10.09.2017
15:33:25
Отличие от дишного массива в том что дишный массив лежит в памяти сплошным куском
А элементы списка могут быть раскиданы по куче и только ссылки друг на друга
Отсюда мы не можем получить i-й элемент списка не пройдя все предыдущие. А в массиве надо просто к адресу начала массива прибавить количество элементов

Dmitry
10.09.2017
16:02:12
В джаве, шарпе и питоне они только называются списками, внутри там массив сплошным куском

Pavel
10.09.2017
16:04:04
Ну в пхп например массив хешмап стек очередь список это одна и та же структура ?

Oleg
10.09.2017
20:23:46
ребят, напомните как по utf-8 строке по символам ходить правильно

Pavel
10.09.2017
20:26:22
да просто по индексам можно

Andrey
10.09.2017
20:27:30
(нет)
foreach(dchar c; str){} будет автодекодить

Oleg
10.09.2017
20:34:14
спасибо!

qwerty
11.09.2017
03:25:37
Ну что ж. Мейнтейнер пофиксил баги. Теперь выглядит очень пригодно для использования. devdocs.io/d/

Dmitry
11.09.2017
08:00:18
А почему в некоторых либах (в mir кстати вроде) проверка на вхождение называется any
вроде бы Contains или canFind куда более логичны

Eto
11.09.2017
08:00:43
Стиль, ничего более.

Dmitry
11.09.2017
08:01:00
в плане стиль? Там же есть какая-то логика в именовании