The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Вышла версия 2.066 компилятора языка D, opennews (??), 19-Авг-14, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


47. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Аноним (-), 19-Авг-14, 20:18 
> в этом вашем цпп есть аналог mixin-ов?

Не знаю, как в цпп, а в этом нашем С есть примитивный аналог, хоть и не часть стандарта:


$ cat mixin.c
#include <stdio.h>
struct T1 {
        int x;
};
int inc_x(struct T1* t){
        return t->x++;
}
struct T2 {
        int y;
};
int dec_y(struct T2* t){
        return t->y--;
}
struct T {
        struct T1;
        struct T2;
        int z;
};
void main(){
        struct T t = {.x = 42, .y = 11, .z = -4};
        printf("%d\n",inc_x(&t) + dec_y(&t) - t.z);
}

$ gcc -fplan9-extensions mixin.c -o mixin
$ ./mixin
57


Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

50. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Kodir (ok), 19-Авг-14, 21:33 
> Не знаю, как в цпп, а в этом нашем С есть примитивный аналог

С таким успехом и ассемблер - примитивный аналог Си. :)
Разработчикам не нужны "аналоги", "копии", "обходные пути" - им нужен ПРЯМОЙ инструмент для выражения своих мыслей. Ну и надёжный, конечно - что Ди и сделал как замена таймбомбовому Цэ-пи-пи.

Линуксу давно уже нужен нормальный язык, позволяющий хотя бы в 21 веке забыть кошмарный сон "buffer overflow" (а количество этих потенциальных уязвимостей растёт десятикратно с каждой новой перделкой/библиотекой, потому что пишется всё головотяпами-энтузиастами).

Ответить | Правка | Наверх | Cообщить модератору

52. "Вышла версия 2.066 компилятора языка D"  +1 +/
Сообщение от rob pike (?), 19-Авг-14, 23:15 
> Разработчикам не нужны "аналоги", "копии", "обходные пути" - им нужен ПРЯМОЙ инструмент для выражения своих мыслей

Такого человечество не придумало.
Включая язык, секретаршу и энцефалографию.

Ответить | Правка | Наверх | Cообщить модератору

55. "Вышла версия 2.066 компилятора языка D"  +3 +/
Сообщение от angra (ok), 19-Авг-14, 23:41 
> Линуксу давно уже нужен нормальный язык, позволяющий хотя бы в 21 веке
> забыть кошмарный сон "buffer overflow" (а количество этих потенциальных уязвимостей растёт
> десятикратно с каждой новой перделкой/библиотекой, потому что пишется всё головотяпами-энтузиастами).

Вот в php нет buffer overflow. Как там с безопасностью рассказать или сам знаешь?

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

56. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от chinarulezzz (ok), 20-Авг-14, 00:20 
>давно уже нужен нормальный язык

Уже есть. Но с одной стороны legacy, с другой инерция.

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

53. "Вышла версия 2.066 компилятора языка D"  +2 +/
Сообщение от rob pike (?), 19-Авг-14, 23:16 
Ну да. А еще эксепшны есть. В setjmp.h
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

66. "Вышла версия 2.066 компилятора языка D"  +3 +/
Сообщение от arisu (ok), 20-Авг-14, 04:53 
это, мягко говоря, соооовсем не то. mixin'ы в D — это геренация кода во время компиляции. проще говоря: mixin(`int a=42;`) во время компиляции будет заменено на «int a=42;».

с первого взгляда эта фича кажется бессмысленной, но если узнать, что в ди во время компиляции можно исполнять код на ди (ограничение — нет глобальных переменных; но на функциональщине можно много всего сделать; например, функция toHash(), вычисляющая SuperFastHash, работает как во время компиляции, так и во время исполнения), то mixin'ы сразу становятся намного более интересными. потому что строки для них можно генерировать довольно сложным ди-кодом.

например, парзить дишным кодом во время компиляции некие файлы с диска и на их основе генерировать дишный код (привет, шаблоны страниц в vide.d).

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

67. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 04:59 
p.s. например, библиотека std.regex активно пользуется этой фичей для того, чтобы превратить регулярку в обычный ди-код. при этом ей хватает мозгов использовать автоматы, когда регулярка без бэктрэйсинга и делать другие разные гитики.

конечно, буст тоже нечто подобное умеет на шаблонной магии, но попробуйте почитать код буста для этого, а потом — код std.regex.

Ответить | Правка | Наверх | Cообщить модератору

69. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 05:12 
кстати, спасибо. как-то я пропустил чудесный ключ «-fplan9-extensions».
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру