The OpenNET Project / Index page

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



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

Оглавление

Релиз набора компиляторов GCC 13, opennews (??), 26-Апр-23, (0) [смотреть все]

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


58. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (58), 26-Апр-23, 21:31 
И прострела пяток поизящнее, как на JS :)
Ответить | Правка | Наверх | Cообщить модератору

76. "Релиз набора компиляторов GCC 13"  +3 +/
Сообщение от warlock66613email (ok), 26-Апр-23, 22:01 
> И прострела пяток поизящнее, как на JS :)

На самом деле применение автовывода типов может помогать бороться со слабостями системы типов.

Например, в C# есть атавизм в конструкции `foreach`: `foreach(ItemType item in collection)` неявно приводит элементы `collection` к типу `ItemType`. Поэтому возможность писать `foreach(var item in collection)` позволяет перенести часть ошибок с этапа выполнения на этап компиляции.

В Си тоже есть такие слабости типизации, которые могут быть устранены умелым применением `auto`.

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

78. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от Аноним (78), 26-Апр-23, 22:06 
> На самом деле применение автовывода типов может помогать бороться со слабостями системы типов.

И обувает статический анализатор на возможность проверить баганул ли тут кодер или нет. Если кодер явно заказал тип и он не сощелся, тут почти наверняка зарыт баг.

А если там auto написано - оно такой себе catch all. И вон то уже отловить не катит. А чтоб совсем не скучать в сях раньше был auto но это _другой_ auto и означал он иные вещи. А теперь счастливой отладки, и попробуйте угадать какой auto имеется в виду, старый или новые :)

> Например, в C# есть атавизм в конструкции `foreach`: `foreach(ItemType item in collection)`
> неявно приводит элементы `collection` к типу `ItemType`.

Софт на шарпее вообще любит крайне неочевидно баговать, течь и проч и отлаживать его занятие очень на любителя. Неявная автоматика один из замечательных методов прострела себе пяток.

> В Си тоже есть такие слабости типизации, которые могут быть устранены умелым
> применением `auto`.

Например как? Обычно им пользуются чтобы код лаконичнее сделать. Это конечно достигается, но ценой потери декларации намерений кодера в этом куске кода.

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

93. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Илья (??), 26-Апр-23, 22:51 
> Софт на шарпее вообще любит крайне неочевидно баговать, течь и проч и отлаживать его занятие очень на любителя. Неявная автоматика один из замечательных методов прострела себе пяток.

Очень интересно было бы пример услышать. Я думаю, ты выдаёшь желаемое за действительное.

Дебаггер работает отлично, средства анализа кода лучшие из всего, что представлено на рынке. Решарпер, рослин. Райдер и visual studio или vocoder как среды разработки. Статическая типизация везде. Есть даже di контейнер, который на этапе компиляции не пропускает забыть регистрацию.


Что тебе ещё надо?
Чего тебе ещё надо?

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

109. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от Аноним (-), 27-Апр-23, 01:14 
> Очень интересно было бы пример услышать. Я думаю, ты выдаёшь желаемое за
> действительное.

Например малоочевидные утечки памяти в мало-мальски крупных дотнет программах просто норма жизни. И хрен поймешь, GC это протупляет или проблема серьезнее.

> разработки. Статическая типизация везде. Есть даже di контейнер, который на этапе
> компиляции не пропускает забыть регистрацию.

Однако в целом это переросточный неспешный урод с страшноватым синтаксисом и проблемами перфоманса. Вплоть до того что LSE оказалось дешевле купить тиму сишников чем накидывать десятки миллионам тем кто так и не смог обеспечить обещаную латенси.

> Что тебе ещё надо?
> Чего тебе ещё надо?

Потанцевать на могилке всего этого барахла. Что характерно даже майки наверное депрекейтнут это в пользу того же хруста.

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

150. "Релиз набора компиляторов GCC 13"  +1 +/
Сообщение от Инжиниринг (?), 27-Апр-23, 10:16 
> Например малоочевидные утечки памяти в мало-мальски крупных дотнет программах просто норма жизни.

Это не общеизвестный пример. Есть ссылка на баги в таких проектах?

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

216. "Релиз набора компиляторов GCC 13"  +/
Сообщение от InuYasha (??), 27-Апр-23, 17:50 
Я под НДА, но проекты на моно у нас текут. Могу сказать только что там дохрена-дохренища строковых манипуляций.
Ответить | Правка | Наверх | Cообщить модератору

236. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 27-Апр-23, 23:06 
> Это не общеизвестный пример. Есть ссылка на баги в таких проектах?

Те проекты - confidential/proprietary и сослаться на это вообще совсем не вариант. Да, гамно с ломовыми утечками памяти, проблемами перфоманса и кучей багов можно получить и за весьма приличные деньги.

А опенсорсных крупных проектов на дотнете я особо и не знаю. Крмое может разве что самого mono. Я вообще не понимаю нахрена оно такое надо. Майки походу тоже, с одной стороны хруст зажмет, с другой веб, и окажется это ни два ни полтора очередным deprecated, все как майкрософт любит.

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

108. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (108), 27-Апр-23, 01:12 
Всегда удивляло что находятся люди, которые избыточный код считают дополнительной проверкой.
Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

207. "Релиз набора компиляторов GCC 13"  +/
Сообщение от warlock66613email (ok), 27-Апр-23, 16:49 
> Например как?

Например если взять следующий код без авто.

    short i = -3;
    unsigned short u = i;

Тут будет неявное преобразование типа. С авто его не будет.

    short i = -3;
    auto u = i;

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

237. "Релиз набора компиляторов GCC 13"  +1 +/
Сообщение от Аноним (237), 27-Апр-23, 23:10 
>     short i = -3;
>     unsigned short u = i;

При том если вы написали unsigned вы реально имели в виду намерение поработать с положительными числами и дальнейший код, вероятно, уповал на данное допущение. За вон то - можно варнинг в два счета получить, особенно если вас хватит на -Wconversion.

> Тут будет неявное преобразование типа. С авто его не будет.

И варнинг за назначение знакового беззнаковому, что явно баг.

>     short i = -3;
>     auto u = i;

А вот тут варнингов не будет, но если вы вон там unsigned писали, вероятно, дальнейшая логика этого хотела, но вы заныкали это намерение и вот тут варнинга уже не будет. Добро пожаловать в мир багов. И спасибо за отличную иллюстрацию как именно можно стрельнуть себе в пятку auto.

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

90. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Илья (??), 26-Апр-23, 22:39 
> Например, в C# есть атавизм в конструкции 'foreach': 'foreach(ItemType item in collection)' неявно приводит элементы 'collection' к типу 'ItemType'.

В c# в обоих случаях с типом не будет проблем.

Давай пример, а?

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

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

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




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

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