
Friedrich
09.03.2017
13:51:30
У тебя же все женерики при AOT инстанцируются, и будет просто код, со всеми типами подставленными. Дальше компиль может его инлайнить как нужно.
Ну и, да, AOT в полной мере будет работать только для конечного EXE-приложения без плагинов и пр. динамики. Просто так DLL'ку с женерик-определениями классов ты не AOT'нешь.
А при AOT женерики могут работать в точности так же, как темплейты в C++. А там это работает нормально (ну, с точки зрения быстродействия итогового кода, во всяком случае).

Сергей
09.03.2017
13:53:21
Тоесть у нас есть 10 дженерик классов, есть 10 value типов, мы получим 10^2 классов в AOT?

Google

Friedrich
09.03.2017
13:53:50

Сергей
09.03.2017
13:53:57
Или есть flow анализ аля tree shaking?

Friedrich
09.03.2017
13:54:01
Если да, то получим.
Я не знаю, как устроен настоящий AOT в Mono.

Сергей
09.03.2017
13:54:54
Но можем поспекулировать

Friedrich
09.03.2017
13:55:07
Насколько я помню, наш настоящий JIT сейчас делает по специализации для каждого value-типа и одну специализацию для всех ref-типов.
Мб value-типы как-то ещё по размерам можно смержить, тут хз. Нужен специалист :)

Сергей
09.03.2017
13:55:38

Friedrich
09.03.2017
13:57:23
Или есть flow анализ аля tree shaking?
Вообще, я _слышал_, что .NET Native для UWP-приложений делался при помощи C++-компилятора, так что моя аналогия с темплейтами не случайна. Те же самые методики и должны были применяться, в т.ч. попытки сократить количество лишнего кода (а C++-компилятор в этом хорош).

Vinc
09.03.2017
13:57:25

Friedrich
09.03.2017
13:57:53

Vinc
09.03.2017
13:58:19
кроме шуток, как это сделать?

Friedrich
09.03.2017
13:58:29
Вон, на тревисе-то собирается, судя по всему: https://github.com/amaneureka/AtomOS/blob/master/.travis.yml

Google

Friedrich
09.03.2017
13:59:21
кроме шуток, как это сделать?
Заходишь в список багов: https://github.com/amaneureka/AtomOS/issues
И создаёшь свой с описанием, что и на какой ОС пробуешь, и какие логи у тебя получаются.

Vinc
09.03.2017
13:59:25
мб и я не с того начал, лол)
через пару часов повторю на норм железе, домой пора)

Nikolay
09.03.2017
14:00:25
Точнее как там C# исполняется?

Friedrich
09.03.2017
14:01:54
Ребята, простите, мой лимит компетентности в этом вопросе исчерпан, я не знаю :(

Vladimir Bondaryuk
09.03.2017
14:04:03

Axm
09.03.2017
14:05:01

Женя
09.03.2017
14:08:24
или он будед ждать пока предыдущий вызов функции не отработал?

Nikolay
09.03.2017
14:09:44
В тот же файл?
В любом случае, никто никого ждать не будет)

Женя
09.03.2017
14:10:11
имя файла зависит от времени
а что будет то?

Nikolay
09.03.2017
14:10:34
Одновременно писаться в два файла
Если у тебя в этот файл идёт уже запись, то вывалит ошибку

Женя
09.03.2017
14:14:23
ясно, если имя совпадет, то свалится с ошибкой)

Владимир
09.03.2017
14:43:03
Я не знаю, что здесь происходит, но все выглядит НЕПРАВИЛЬНО
А что находится в line[1] ?

Nikolay
09.03.2017
14:46:32
Ожидание завершение таски можно сделать через t.Wait(); в твоём случае

Google

Женя
09.03.2017
14:46:59
это класс, описывающий линию, подключенную к порту компа

Nikolay
09.03.2017
14:47:14
А зачем тебе ждать вообще? Ты не хочешь чтобы одновременно несколько файлов писалось?

Женя
09.03.2017
14:48:43
ну я копирую данные в глобальный байтовый массив, который сохраняется, мне казалось так проще

Владимир
09.03.2017
14:49:53

Дмитрий
09.03.2017
14:49:59
по-моему, стоит пересмотреть описание задачи, которую необходимо реализовать
расписать её ещё раз по пунктам
это больше половины дела
"без внятного ТЗ - результат хз" и всё такое

Женя
09.03.2017
14:51:10
Зачем тогда тебе асинхронная запись
данные поступают в COM-порт непрерывно, я хочу чтобы не было потерь пакетов, если записываемый файл будет очень большим или запись будет тормозить по какой-то причине

Дмитрий
09.03.2017
14:51:10
начать с бизнес-логики и проектирования на бумажке

Владимир
09.03.2017
14:51:54

Женя
09.03.2017
14:52:41
в line
// класс описывающий телефонную линию
class Line
{
//физический номер линии на плате
int _portNumber = 0;
//байтовый поток
public MemoryStream memory = new MemoryStream();
//копия массива для асинхронного сохранения
public byte[] SoundArray;
//конструктор
public Line (int port)
{
_portNumber = port;
}
// описание линии данное пользователем
public string UserName
{
get;
set;
}
// установка физического номера линии
public int Port
{
get
{
return _portNumber;
}
set
{
_portNumber = value;
}
}
// есть ли сигнал в линии
public bool Signal
{
get;
set;
}
// прослушивать линию или нет
public bool OnLine
{
get;
set;
}
// набранный, входящий номер
public string TelephoneNumber
{
get;
set;
}
}

Владимир
09.03.2017
14:54:41
Почему тогда у тебя везде в коде захардкодено line[0] ?
Если их много.

Летучая
09.03.2017
14:54:49
Ужос

Летучая
09.03.2017
14:55:09
{ get; set; }
четыре строчки вместо 0

Friedrich
09.03.2017
14:55:35

Alexander
09.03.2017
14:55:49

Женя
09.03.2017
14:55:53

Летучая
09.03.2017
14:59:08
get
{
return _portNumber;
}
set
{
_portNumber = value;
}
это тоже не очень
get => _portNumber;
set => value;

Владимир
09.03.2017
15:00:02

Google

Летучая
09.03.2017
15:01:03
в репозиториях скроллить полотна геттеров и сеттеров не очень доставляет

Сергей
09.03.2017
15:01:09
А что C#7 уже в RTM?

Владимир
09.03.2017
15:01:59
я пока эксперементирую
Опиши полностью сценарий во времени. У тебя есть эти телефоны.
Что происходит дальше?
Ты ловишь какой-то ивент, выбираешь уже готовую линию (создаешь?) и начинаешь писать в ее стрим?
Потом заканчиваешь и хочешь сохранить в файл?
В это время может еще раз сработать тот же ивент?

Nikolay
09.03.2017
15:02:15

Владимир
09.03.2017
15:02:34

Летучая
09.03.2017
15:03:05
Ну и комментарии надо в три слеша писать, тогда студия всплывающие посдказики завезёт

Nikolay
09.03.2017
15:03:50
Перфекционисты блин :)

Friedrich
09.03.2017
15:20:19

Admin
ERROR: S client not available

Friedrich
09.03.2017
15:22:31
Да не, чёт вроде такого нету!
Затралил меня как лалку :(

Летучая
09.03.2017
15:23:22
set => propName = value; есть
ну почти

Friedrich
09.03.2017
15:24:34
Ох щи, да, так можно. Правда, решарпер мне там всё красным расцветил %)
Видимо, чуваки из JB сами ещё в C# 7 не разобрались, или впилить поддержку этой содомии не успели.
Так и представляю себе ченжлог решарпера:
"R# 2017.1: добавлена содомия"

Владимир
09.03.2017
15:28:45

Friedrich
09.03.2017
15:28:53
Ну, блин, она вчера вышла :)
Ок, позавчера.

Axm
09.03.2017
15:29:12

Google

Friedrich
09.03.2017
15:29:29
Я им уже репортил кой-чего про System.ValueTuple.

Microsoft news
09.03.2017
15:29:32
Предварительная версия (TP3) облачной платформы Azure Stack доступна для загрузки
https://blogs.msdn.microsoft.com/rudevnews/2017/03/09/the-preliminary-version-of-azure-stack-is-available-for-download/
Компания Microsoft выпустила последнюю предварительную версию (ТР3) для платформы Azure Stack, которая доступна для загрузки с 1 марта 2017 года. Обновление содержит улучшения в инфраструктуре и настройках безопасности платформы. Кроме того, новые функции позволяют работать даже в местах, где отсутствует подключение к Azure. Создание инновационных приложений с помощью облачных технологий имеет важнейшее значение для организации,...

Женя
09.03.2017
17:08:06

Владимир
09.03.2017
17:10:04

Женя
09.03.2017
17:11:46
не совсем понимаю, с какого именно обработчика?

Виталий
09.03.2017
17:20:13
Посоветуйте библиотеки для работы с svg. Пробовал Svg.dll/ magick.net, но первая выбрасывает исключение при рисовании в битмэп, а вторая тяжеловата...
Сейчас использую msxml.dll для парсинга получаемых от эски "графиков" . Не знает наш одинэсник других вариантов. Добавляю атрибут viewbox и заменяю ширину/высоту стилем css. И сохраняю это обратно в html файл . Извращение то еще. Самое печальное, что как надо отображает это только фаерфокс. Есть вариант вытянуть svg разметку в отдельный файл, но парсить ее всю не хочется. Нужна библиотека

Владимир
09.03.2017
17:22:16

Axm
09.03.2017
17:23:08
А кто-нибудь работал с azure stack? Сегодня слышал что они в этом году из превью не выйдут.

anton
09.03.2017
17:34:11

Sergey
09.03.2017
17:34:32
Энтот ваш эджайл испортил айти мир. Вот в советские времена если выкатывали продукт - так уж сразу хорошо оттестированный. А счас вечные превью и никакого качества кода (фигле, можно хотфикс в любое время накатить)

Axm
09.03.2017
17:34:59

Sergey
09.03.2017
17:35:56
Пусть пользователи тестируют. Можно роадмапы проносить.

Axm
09.03.2017
17:36:44

Дмитрий
09.03.2017
17:37:52
так что всякое бывает

Vladimir Bondaryuk
09.03.2017
17:39:34
private readonly SynchronizationContext _synchronizationContext = SynchronizationContext.Current;
Task.Run(() =>
{
.....
})
.ContinueWith(task =>
{
_synchronizationContext.Post(state =>
{
//тут вызов контролов
}, task.Result);
});

Sergey
09.03.2017
17:40:45
А ты сидишь и думаешь. Пилить продукт под ажуру (нет кор или вставить очередную долгоожидаемую технологию), ждать релиза, смотреть аналоги или быть готовым к "ой, мы тут в который раз подумали и редизайнили все к hooyam"
У меня сегодня нытье
Эта группа больше не существует