
Igor
03.10.2018
18:31:44
нет

Pavel
03.10.2018
18:32:25
Зачем, если можно сказать что эта структура всегда иммутабельна и никак иначе. Но так не вышло.

Igor
03.10.2018
18:33:53

Google

Pavel
03.10.2018
18:34:53
Ага, но это как то не логично

Igor
03.10.2018
18:35:23
возможно

Maxim
03.10.2018
18:38:03
а в чем, кстати, отличие?)
я так понимаю, первый вариант говорит, что все члены структуры immutable, а второй вариант тогда какой смысл несет?

Igor
03.10.2018
18:43:42
тут была ссылка на ответ. не помню точно. что-то с конструкторами

Valeriy
03.10.2018
18:47:16

Denis
03.10.2018
18:53:47

Valeriy
03.10.2018
18:54:40
Можно в определении модуля _S сделать приватным, а наружу вытащить только алиас

Denis
03.10.2018
18:58:43

Pavel
03.10.2018
18:58:48

Denis
03.10.2018
18:59:09
Ну это же просто

Google

Igor
03.10.2018
18:59:16
наверное можно, я подробно не помню в чем разница (и честно говоря это моё предположение что она есть)

Denis
03.10.2018
18:59:23
В библиотеках мало где юзается

Pavel
03.10.2018
18:59:29
Когда очень много сложных концептов то это не ок для языка.
Думаю, можно
А впрочем, мне помнится что с алиасом тоже какие то проблемы были

Denis
03.10.2018
19:00:09

Valeriy
03.10.2018
19:08:23
я тут погуглил и обнаружил, что можно ещё вот так писать
struct S
{
int a = 5;
immutable this(int a){this.a=a;}
}
В этом случае стпуктуру можно инициализировать только иммутабельными данными.
Выглядит очень странно

Denis
03.10.2018
19:12:31
Нормально если нужна эта структура в двух вариантах
Кот просит починить тёплый сервер
На котором всё собиралось
@HaikuOS_RU_chat
Новая ос
Там даже была попытка дмд

Dmitry
03.10.2018
21:32:50
Какая ж она новая, это поднятая из могилы BeOS из 90-х.
У меня Хайку стояла на ноуте несколько лет назад.
Приятная ось, только wifi не работал.
Зато всп такое няшное и быстрое. Писать под нее весьма пииятно было. У каждого окошка свой поток и своя очередь сообщений. Такой эрланг гуевый.

Oleg
03.10.2018
22:10:18
никто не в курсе можно ли dub-у назначить папку, где он будет скаченные пакеты держать?
хотя... можно ж ln -s /target/dir /home/user/.dub но это походит на костыль)

Google

Pavel
03.10.2018
23:10:51
Кажется я искал решение этой проблемы и его нет

NullSanya
03.10.2018
23:18:19
В исходниках раньше было захардкодено

Karbin
04.10.2018
04:24:14
собирал давно собирал под гайку dmd. И видел где-то ещё биндинги к BeAPI от китайцев. вроде даже работало что-то

Dmitry
04.10.2018
05:45:25

Karbin
04.10.2018
06:02:17
https://dlang.org/spec/version.html#version поищи haiku

Dmitry
04.10.2018
06:48:25
хех, не знал)))
Напомните, а куда там доннатить на баги\фичи?

Valeriy
04.10.2018
15:11:34
прикольная тема кстати.
Типа хочеш неявный кастинг в D надонать столько то.
Спазу мотивация будет бабосом поделиться

Dmitry
04.10.2018
15:13:14
Да фиг знает я бы на какой нить DCD баксов 30 задонатил

Valeriy
04.10.2018
15:13:41
чё такое DCD?

Dmitry
04.10.2018
15:13:45
https://github.com/dlang-community/DCD
Просто не понятно кому деньги слать

Pavel
04.10.2018
15:14:41
Это мое предположение, кажется где то читал что неявный кастинг он считает нехорошей штукой

Valeriy
04.10.2018
15:15:19
просто только для одного типа. какойто урезанный недоношенный неявный кастинг

qwerty
04.10.2018
15:18:32
https://github.com/dlang-community/DCD
Классная мысль! Я тоже не нашел. Там на самом деле надо улучшать dsymbol, но они там сами разберуться. Хотя не давно вроде плагин для vscode набрал достаточно количество денег, чтоб сделать все клево. И там вроде как они планировал dcd улучшать в тех же рамках

Evil
05.10.2018
04:32:02
кость да кость вокруг, -
вдумчивый черпак,
там, жуя бамбук,
каменел пошляк.
каменел пошляк,
средь сухих опят,
плесенью коров
добывая клад.
https://t.me/MachineHumor

Google

Ievgenii
05.10.2018
14:35:27
LDC рулит!

qwerty
05.10.2018
14:42:04
ну рассказывай)


Ievgenii
05.10.2018
14:54:02
Сделал на GO пример:
steps := 256 * 1024 * 1024
a := make([]int, 2)
start := time.Now()
elapsed := time.Since(start)
start = time.Now()
for i := 0; i < steps; i++ {
a[0]++
a[0]++
}
elapsed = time.Since(start)
fmt.Printf("Time 0: %s value: %v\n", elapsed, a)
a[0] = 0
start = time.Now()
for i := 0; i < steps; i++ {
a[0]++
a[1]++
}
elapsed = time.Since(start)
fmt.Printf("Time 1: %s value: %v\n", elapsed, a)
Результат:
Time 0: 430.3335ms value: [536870912 0]
Time 1: 438.1774ms value: [268435456 268435456]
Сделал пример (аналог) на Ди:
module test;
import std.stdio;
import std.datetime.stopwatch;
import std.conv;
void main(string[] args){
int steps = 256 * 1024 * 1024;
int[2] a = [0, 0];
auto inc = to!int(args[1]);
auto sw = StopWatch(AutoStart.no);
sw.start();
for (int i = 0; i < steps; i++) {
a[0]+=inc;
a[0]+=inc;
}
auto stop = sw.peek();
writeln("Time 0: ", stop, " value: ", a);
a[0] = 0;
sw.start();
for (int i = 0; i < steps; i++) {
a[0]+=inc;
a[1]+=inc;
}
stop = sw.peek();
writeln("Time 1: ", stop, " value: ", a);
}
ldc2 test.d
./test 1
Time 0: 766 ms, 504 μs, and 1 hnsec value: [536870912, 0]
Time 1: 635 ms, 258 μs, and 6 hnsecs value: [268435456, 268435456]
ldc2 -O3 test.d
./test 1
Time 0: 1 μs value: [536870912, 0]
Time 1: 9 hnsecs value: [268435456, 268435456]
И я такой: да, это крутой оптимизатор!


Pavel
05.10.2018
15:00:18
Не выглядит реалистично

Ievgenii
05.10.2018
15:00:33
Очень реалистично!
Он понял, что там цикл на Н операций
Он просто берет мое число (переданное с консоли) и умнажает на Н
и вписывает в эту переменную

Google

Ievgenii
05.10.2018
15:01:08
Вот и все!
Оптимизация!)

Pavel
05.10.2018
15:01:42
А ты ассемблерный код смотрел?
Выглядит так что твои вычисления попали в кеш какой-то.

Ievgenii
05.10.2018
15:02:19
Это 100% оптимизатор
И это хорошо
Реально круто!
Хочу попробовать наши микросервисы на работе скомпилить через llvm
Попробую с понедельника

Pavel
05.10.2018
15:03:52
Скоро будет челлендж highloadcup, вот там есть шанс показать на что реально пособен D )

Ievgenii
05.10.2018
15:04:52

Pavel
05.10.2018
15:05:12
Всмысле? Не, там надо писать программу
Которая будет обрабатывать запросы

Ievgenii
05.10.2018
15:05:26
Аааа

Pavel
05.10.2018
15:05:41
Загружаешь ее в докере на боевой сервер, и ее бенчмаркают
И так делает 1000 человек )

Ievgenii
05.10.2018
15:06:19
аааа

Igor
05.10.2018
15:06:40
ldc выводит ast можно посмотреть во что он скомпилил