Re[4]: Безопасный код без GC - вы готовы?
От: -n1l-  
Дата: 18.10.14 06:31
Оценка:
Здравствуйте, Слава, Вы писали:

С>Heartbleed и прочее байтогрызиков ничему не учит, я смотрю...


А чему может научить баг, кроме как не совершать его повторно?
Чему, отказу от языков без GC, или чему?
Re[7]: Безопасный код без GC - вы готовы?
От: Sharowarsheg  
Дата: 18.10.14 07:28
Оценка:
Здравствуйте, Иван Дубров, Вы писали:


S>>Это ты в кучу смешал опять GC и гарантии. Не пиши unsafe — гарантии будут, но они будут независимо от того, есть ли GC или нет.


ИД>Нет, не независимо. Если в C коде


А почему именно C код? Возьми, скажем, бейсик-код, или фортран-код.

ИД>есть,скажем, free,


нету

ИД>то потенциально может возникнуть ситуация, когда ссылка будет указывать на мусор. С GC такое невозможно (ну, с ограничениями, что нет unsafe, и.т.д).


и с фортраном невозможно, с ограничением, что это F77.

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


S>>Сужает или нет, это совершенно второе дело.


ИД>Если это второе дело, то воробще непонятно, как можно обсуждать какие-либо свойства языков или платформ.


Ну как, тетрис написать достаточно и на луну слетать тоже можно без указателей.
Re[3]: Безопасный код без GC - вы готовы?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 18.10.14 07:36
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, Don Reba, Вы писали:


DR>>В кои-то веки рад переводу, ибо оригинал ужасающе неграмотен.


N>Примеры неграмотности можно?



http://chrismorgan.info/blog/rust-fizzbuzz.html

> FizzBuzz is intended as a simple task, but in Rust there are a few pitfalls for the novice to be aware of.


Style. "Pitfalls, of which the user should be aware."

> These aren’t problems with Rust but rather differences from what people are commonly familiar with, restrictions that may seem arduous at first but ultimately give you more power, at a small cost.


"From that, with which people are commonly familiar."

Unnecessary comma before "at a small cost."

Switch from third person to first person.

> The version of Rust latest confirmed to work for this post is Rust 0.12.


"The latest version of Rust."

> If anything has broken with it, please contact me.


"If anything is broken with it" or "if anything has become broken since then."

> You might write it like this which follows, for example, a way that works fine.


Missed comma before "which." Run-on sentence. Terrible phrasing.

"You might write it like the following example, which works fine."

etc…
Ce n'est que pour vous dire ce que je vous dis.
Отредактировано 18.10.2014 7:43 Don Reba . Предыдущая версия . Еще …
Отредактировано 18.10.2014 7:37 Don Reba . Предыдущая версия .
Re[4]: Безопасный код без GC - вы готовы?
От: -n1l-  
Дата: 18.10.14 07:41
Оценка:
Спасибо.
Re[3]: Безопасный код без GC - вы готовы?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.14 09:19
Оценка: +1 -1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Sharowarsheg, Вы писали:


S>>А какая вообще связь между безопасностью и GC? GC имитирует систему с бесконечной памятью и больше ничего не делает. Возможны, теоретически, любые комбинации с GC/без GC и опасно/беозпасно.

C>Если нет GC, то память нужно освобождать руками (с той или иной степенью автоматизации). А это небезопасно в современных распространённых языках без GC.

В C++, используя только смартпоинтеры+RAII (без обычных поинтеров, адресной арифметики и unsafe cast) можно получить гарантии, фактически без ручного управления памятью и фактически без GC.
Re[4]: Безопасный код без GC - вы готовы?
От: dimgel Россия https://github.com/dimgel
Дата: 18.10.14 09:22
Оценка:
Здравствуйте, Слава, Вы писали:

С>Heartbleed и прочее байтогрызиков ничему не учит, я смотрю...


(зевает) Торвальдсу это скажи.
Re[4]: Безопасный код без GC - вы готовы?
От: s22  
Дата: 18.10.14 11:27
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Cyberax, Вы писали:


C>>Здравствуйте, Sharowarsheg, Вы писали:


S>>>А какая вообще связь между безопасностью и GC? GC имитирует систему с бесконечной памятью и больше ничего не делает. Возможны, теоретически, любые комбинации с GC/без GC и опасно/беозпасно.

C>>Если нет GC, то память нужно освобождать руками (с той или иной степенью автоматизации). А это небезопасно в современных распространённых языках без GC.

G>В C++, используя только смартпоинтеры+RAII (без обычных поинтеров, адресной арифметики и unsafe cast) можно получить гарантии, фактически без ручного управления памятью и фактически без GC.


В многопоточном режиме?
Re[4]: Безопасный код без GC - вы готовы?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.10.14 11:34
Оценка: +5
Здравствуйте, Sharowarsheg, Вы писали:

S>И тогда это будет совершенно безопасно


Простите, что встреваю, но у меня уже глаз дергается от настолько вольного использования этого слова =/ Не будет "совершенно безопасно". Будет "типо-безопасно", в лучшем случае. До "совершенно" там еще как до луны

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Безопасный код без GC - вы готовы?
От: Evgeny.Panasyuk Россия  
Дата: 18.10.14 11:41
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

S>>И тогда это будет совершенно безопасно

KV>Простите, что встреваю, но у меня уже глаз дергается от настолько вольного использования этого слова =/ Не будет "совершенно безопасно". Будет "типо-безопасно", в лучшем случае. До "совершенно" там еще как до луны

При формальной трактовке "совершенно безопасно" недоступно для любых языков полных по Тьюрингу
Re[4]: Безопасный код без GC - вы готовы?
От: hi_octane Беларусь  
Дата: 18.10.14 11:42
Оценка: +1
G>В C++, используя только смартпоинтеры+RAII (без обычных поинтеров, адресной арифметики и unsafe cast) можно получить гарантии, фактически без ручного управления памятью и фактически без GC.
Смарт-пойнтеры это простейший ref-counting GC. И, кстати, с ними можно нарваться на почти все недостатки GC.
Re[3]: Безопасный код без GC - вы готовы?
От: Evgeny.Panasyuk Россия  
Дата: 18.10.14 11:49
Оценка: :))) :)
Здравствуйте, Иван Дубров, Вы писали:

ИД>Ещё система с GC гарантирует отсутсвие ссылок на "освобождённые" куски памяти и на случайные объекты.


Всего лишь для некоторых примитивных семейств объектов
using System;
using System.IO;

public class Test
{
    public delegate void fireworks();
    public static fireworks make_closure(FileStream fs)
    {
        return () => fs.Read(new byte[10], 0, 10);
    }
    public static fireworks fire()
    {
        using (var fs = File.Open("file", FileMode.Open))
        {
            return make_closure(fs);
        }
    }
    public static void Main()
    {
        fire()(); // System.ObjectDisposedException 
    }
}
Re[6]: Безопасный код без GC - вы готовы?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 18.10.14 11:56
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>При формальной трактовке "совершенно безопасно" недоступно для любых языков полных по Тьюрингу


Я именно это и сказал. "Как до Луны" — это общепринятое сокращение от "как до Луны на тракторе", вообще-то.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[7]: Безопасный код без GC - вы готовы?
От: Evgeny.Panasyuk Россия  
Дата: 18.10.14 12:01
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Я именно это и сказал. "Как до Луны" — это общепринятое сокращение от "как до Луны на тракторе", вообще-то.


Я лишь дополнил, что это относится в том числе и к "безопасным языкам с GC", а не только к C++ с верификатором обеспечивающим отсутствие растерла памяти.
Re[5]: Безопасный код без GC - вы готовы?
От: Sharowarsheg  
Дата: 18.10.14 12:23
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, Sharowarsheg, Вы писали:


S>>И тогда это будет совершенно безопасно


KV>Простите, что встреваю, но у меня уже глаз дергается от настолько вольного использования этого слова =/ Не будет "совершенно безопасно". Будет "типо-безопасно", в лучшем случае. До "совершенно" там еще как до луны


Совершенно безопасно в смысле "если захочется, то можно сделать не хуже, чем в С#"
Re[5]: Безопасный код без GC - вы готовы?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.14 12:28
Оценка:
Здравствуйте, s22, Вы писали:

G>>В C++, используя только смартпоинтеры+RAII (без обычных поинтеров, адресной арифметики и unsafe cast) можно получить гарантии, фактически без ручного управления памятью и фактически без GC.


s22>В многопоточном режиме?


Да, стандартные смартпоинтеры потокобезопасны, как утверждает МСДН.

От состояния гонок в коде приложения ни смартпоинтеры, ни GC не спасает.
Отредактировано 26.10.2014 21:55 VladD2 . Предыдущая версия .
Re[5]: Безопасный код без GC - вы готовы?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.14 12:34
Оценка:
Здравствуйте, hi_octane, Вы писали:

G>>В C++, используя только смартпоинтеры+RAII (без обычных поинтеров, адресной арифметики и unsafe cast) можно получить гарантии, фактически без ручного управления памятью и фактически без GC.

_>Смарт-пойнтеры это простейший ref-counting GC. И, кстати, с ними можно нарваться на почти все недостатки GC.
Это философский вопрос — считать смартпоинтеры GC или нет.
Но сути не меняет. Можно в языке C++ выделить safe подмножество, хотя в самом языке нет никакого GC.

И в других языка, без встроенного GC, можно выделить Safe подмножество с помощью конструкций, аналогичных смартпоинтерам.
Re[6]: Безопасный код без GC - вы готовы?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 18.10.14 16:28
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Это философский вопрос — считать смартпоинтеры GC или нет.


Страуструп, их отец, прямым текстом говорит, что это "a form of garbage collection".

G>Но сути не меняет. Можно в языке C++ выделить safe подмножество, хотя в самом языке нет никакого GC.


Однако что мозилловцы, что гуглохромовцы пришли к осознанию, что в реальности это не работает. Одни вон Rust стали изобретать, другие мигрировать на GC.
Re[7]: Безопасный код без GC - вы готовы?
От: Evgeny.Panasyuk Россия  
Дата: 18.10.14 16:42
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Однако что мозилловцы, что гуглохромовцы пришли к осознанию, что в реальности это не работает. Одни вон Rust стали изобретать, другие мигрировать на GC.


Для каких задач? Случайно не interop?
Re[7]: Безопасный код без GC - вы готовы?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.14 16:57
Оценка:
Здравствуйте, D. Mon, Вы писали:

G>>Но сути не меняет. Можно в языке C++ выделить safe подмножество, хотя в самом языке нет никакого GC.

DM>Однако что мозилловцы, что гуглохромовцы пришли к осознанию, что в реальности это не работает. Одни вон Rust стали изобретать, другие мигрировать на GC.
В реальности куча других причин, кроме type-safety и memory-safety.
Re[8]: Безопасный код без GC - вы готовы?
От: AlexRK  
Дата: 18.10.14 17:57
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, D. Mon, Вы писали:


DM>>Однако что мозилловцы, что гуглохромовцы пришли к осознанию, что в реальности это не работает. Одни вон Rust стали изобретать, другие мигрировать на GC.


EP>Для каких задач? Случайно не interop?


Да по сути ни для каких. Потому что Firefox периодически падает, а для Windows каждый месяц закрывают уязвимости. Можно это, конечно, назвать "работает" (и по факту оно действительно бОльшую часть времени работает, вот сейчас я пишу из Firefox, например), но люди хотят идти дальше.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.