
Maxim
04.04.2017
12:04:41
а я работаю на предприятии с проходной и всеми прилагающимися плюшками, у нас тут все строго, у меня даже админских прав нет)
теоретически, конечно, я могу сюда принести компьютер, но ни работать за ним, ни вынести обратно не смогу)

Eto
04.04.2017
12:05:40
Это где это ты работаешь?

Maxim
04.04.2017
12:06:08
небольшой завод, производящий автомобили)

Google

Eto
04.04.2017
12:06:23
Tesla? :D

Maxim
04.04.2017
12:06:31
если бы)
https://ru.wikipedia.org/wiki/GM-%D0%90%D0%92%D0%A2%D0%9E%D0%92%D0%90%D0%97

Pavel
04.04.2017
12:07:44
Надеюсь в Ниве бортовая система с автопилотом на D будет написана
А ведь D не подходит для реалтайм систем?

Eto
04.04.2017
12:08:37
Можно использовать. Только помучаться ещё придётся.

Maxim
04.04.2017
12:09:04
ну если сборщик вызывается только во время опеций, требующих его участие, то урезанный синтаксис вполне может подойти, но геморроя будет много

Eto
04.04.2017
12:09:32
Возможно тут проще вообще от сборщика избавиться.

Maxim
04.04.2017
12:09:33
из плюсов только слегка более приятный синтаксис по сравнению с C или C++

Pavel
04.04.2017
12:10:44
Разве реалтайм система эквивалентна отсутствию сборщика? Вроде си и си++ это не реалтайм языки

Dmitry
04.04.2017
12:10:47
>А ведь D не подходит для реалтайм систем?
Ну в той же Weka его для Рилтайм используют фактически

Pavel
04.04.2017
12:10:50
а unix не реалтайм система

Maxim
04.04.2017
12:12:13
ну как бы, я так понимаю, рилтайм системы гарантируют немедленную реакцию на аппаратные прерывания, а уж на чем это все писать дло десятое

Google

Eto
04.04.2017
12:12:29
Согласен.

Maxim
04.04.2017
12:12:48
со сборщиком мусора проблема одна - он в любой непредсказуемый момент может отложить все дела и начать неспешно освобождать ненужную память

Pavel
04.04.2017
12:13:56
Там же не только в прерываниях дело, а в том что любой "юнит" кода гарантировано выполнится за время не более T
А в си такое можно нарушить и с прерываниями имхо

Maxim
04.04.2017
12:14:43
в конечном итоге выполняется нативный код, из чего он получился не важно же)

Pavel
04.04.2017
12:15:22
Да, но важно как он структрирован и как контролируются ресурсы и время

Eto
04.04.2017
12:16:57
http://stackoverflow.com/q/13573289/944911

Maxim
04.04.2017
12:17:08
собственно, си: время выполнения - время, затраченное на выполнение команд процессора, контроль ресурсов - malloc, free
более чем уверен, подавляющее большинство операционных систем реального времени написано на Си)

Oleg
04.04.2017
12:19:31

Pavel
04.04.2017
12:20:03
Наверно на си но с особой магией

Maxim
04.04.2017
12:20:32
в части выделения памяти да, наверное, там особая магия, чтобы это происходило быстро)

Pavel
04.04.2017
12:21:02
malloc и free не реалтаймовые. Из реалтаймовых осей я знаю только QNX

Oleg
04.04.2017
12:21:03
не надо путать системы с высоким требованием к скорости исполнения и реалтайм

Maxim
04.04.2017
12:22:12

Oleg
04.04.2017
12:22:31
например 5 мин на контроль температуры плавильного котла
за эти 5 мин полностью должно произойти вычисление всего что нужно

qwe
04.04.2017
12:27:50

Google

Maxim
04.04.2017
12:33:14

qwe
04.04.2017
12:34:05
Я к тому, что он остановится не в любой момент, а в те, которые перечислены в документации

Maxim
04.04.2017
12:35:12
а теперь представь, что у тебя в ос несколько процессов, в каждом процессе по несколько потоков
и в любой момент, который любой из этих потоков посчитает не критичным, он может занять все процессорное время, чтобы почистить свою память
т.е. выполнение любого не @nogc кода потенциально может остановить всю систему на критичное для системы время
и, кстати, @nogc отнимет у нас еще одно хорошее свойство D - обработка ошибок через исключения
короче, писать программы реального времени на D можно, но вряд ли это будет приятно)

Dmitry
04.04.2017
12:42:18
А как в С++ исключения тогда кидаются?

Maxim
04.04.2017
12:43:00
уже не помню, давно я с C++ не встречался, но, по-моему, там в качестве исключения можно выкинуть все, что угодно

Oleg
04.04.2017
12:49:56
в D можно пользовать исключения в @nogc коде если не ипользовать new
тоесть создавать статические исключения
а потом их выбрасывать

Grigirii
04.04.2017
13:09:34
недавно Брайт с Александреску предложили вариант выкидывания исключений с new из nogc кода. scope и отдельный стек для этих объектов
http://forum.dlang.org/thread/oboaa2$17oa$1@digitalmars.com

Oleg
04.04.2017
17:55:16
ребят, кто под винду пишет?

Dmitry
04.04.2017
18:04:15
Я) тока не уверен что подскажу что то по делу)

Ksiw
04.04.2017
18:04:17
виндописы

Eto
04.04.2017
18:18:20
Подвиндуписы

zk
04.04.2017
18:37:02

Oleg
04.04.2017
18:39:39
под на... чем дебажить то?)

Google

zk
04.04.2017
18:41:00
visuald таскает что-то с собой
знаю что он точно может в отладку
тип из нашей команды пишет чуть ли не в блокноте, а отлаживает в visuald

Oleg
04.04.2017
19:04:43

Sergey
05.04.2017
10:12:34
monoDevelop сравнительно нормально дебажит. Ни один дебагер, который я пробовал не может в кучу, так что я спасаюсь блоком debug {} и в нем уже присваиваю значения, которые хочу проверить, локальным переменным, и уже эти локальные переменные смотрю дебагером. Возможно, конечно, что я не доконца разобрался и сам себе проблемы придумал

Денис
05.04.2017
14:35:19
Но вообще интересно WinDbg сможет также просто как gdb дебажжить D

Evil
05.04.2017
14:49:46
Кто подскажет, как в vibe.d управлять входящими подключениями? Скажем, чтобы клиент не мог больше одного коннекта за раз выполнить.

Dmitry
06.04.2017
14:49:33
предположим я делаю split. Как мне обратиться к последнему элементу этого сплита не зная его индекс?

Admin
ERROR: S client not available

Eto
06.04.2017
14:50:26
[$ - 1]
?

Dmitry
06.04.2017
14:51:24
о
точно

qwerty
06.04.2017
16:25:23
Возможно как-то сгенерировать несколько строк в цикле и потом передать их в mixin?

Денис
06.04.2017
17:00:07

Oleg
06.04.2017
18:04:25
Можно ещё самим foreach по некоторым сущностями вставлять mixin'ы
Но нужно помнить, что контекст миксинов в этой ситуации получается один и, например создавать переменные с одним именем в таком цикле не выйдет

qwerty
06.04.2017
19:26:22

Google

Oleg
06.04.2017
19:28:24
Буду у компа - скину

qwerty
06.04.2017
19:34:48
Буду у компа - скину
Все ок. Надо было генерируемую строку с кодом вернуть из static метода и ее можно потом передать в mixin

Evil
07.04.2017
06:37:16

Dmitry
07.04.2017
06:48:51
это на каком коде вылетело?
string x = readln;
string mystring = "hello" ~ x;
так же делать нельзя? Оно же не сможет склеить строку в рантайме?

Maxim
07.04.2017
07:27:01
можно

Dmitry
07.04.2017
07:27:52
хм, проверил, действительно можно, значит у меня в чем-то другая ошибка. Щас...
а что ему тогда тут не нравится?

Maxim
07.04.2017
07:31:14
он не может определить значение переменной на этапе компиляции
потому что его нет)

Dmitry
07.04.2017
07:32:13
но вот этот код же компилится:
string x = readln;
string mystring = "hello" ~ x;

Maxim
07.04.2017
07:33:23
потому что он интерпретируется на этапе исполнения программы внутри какого-то метода или функции

Dmitry
07.04.2017
07:33:40
а все...

Maxim
07.04.2017
07:33:40
а там, я так понимаю, куча глобальных переменных?

Dmitry
07.04.2017
07:33:58
ага

Maxim
07.04.2017
07:34:09
плохая практика)

Dmitry
07.04.2017
07:34:52
да, но тут проект 100 строк чисто для того чтобы идею проверить

Maxim
07.04.2017
07:36:18
тогда можно это засунуть в какую-нибудь функцию void DoTheStuff() и вызвать ее из main
должно прокатить)

Dmitry
07.04.2017
07:37:12
угу, так и сделал